Files
root b6df4dbb92 Snapshot: MLS sync fixes, image refresh, plugin/theme updates
MLS plugin fixes from this session:
- Fix silent insert failures: location column NOT NULL was rejecting wpdb->insert calls,
  causing ~18k new properties since Dec 2025 to be lost. Inserts now build raw SQL
  with ST_PointFromText so the spatial column is populated atomically.
- Auto-refresh expired media URLs in MLS_Media_Handler::fetch_and_cache(), guarded by
  a property-level GET_LOCK so concurrent fetches share one API refresh.
- Normalize WP_Error to null in mls_get_property_image() so callers can rely on the
  documented string|null contract.
- Support comma-separated property_type filters in MLS_Query and MLS_Cluster so the
  homepage "View All Commercial" link (?property_type=Commercial+Sale,Land,Farm)
  actually filters correctly.
- Incremental sync now looks back 10 minutes past the latest modification timestamp
  as a safety margin against missed records.
- Smart sync exits silently (info-level, not warning) when a full sync is in progress.

Operational:
- New cron: weekly full sync Sundays at 3 AM (/usr/local/bin/mls-full-sync).
- New cron: hourly 2GB cap on mls-thumbnails/ and cache/transformed-images/
  (/usr/local/bin/mls-image-cache-cap).
- Logrotate config for wp-content/debug.log (2-day retention, daily rotation,
  delaycompress).

Repo policy:
- CLAUDE.md updated with explicit "commit everything except build artifacts" policy.
- .gitignore: untrack runtime image caches and debug.log rotations.

Other modifications in this snapshot are pre-existing in-flight theme/plugin/db_content_updates work.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 15:32:23 +00:00

4 lines
1.8 KiB
XML
Executable File

<svg width="12" height="16" viewBox="0 0 12 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 3.8125C12 3.65625 11.875 3.40625 11.75 3.28125L8.71875 0.25C8.5625 0.09375 8.375 0 8.1875 0H8V4H12V3.8125ZM7.75 5C7.3125 5 7 4.6875 7 4.25V0H0.75C0.3125 0 0 0.34375 0 0.75V15.25C0 15.6875 0.3125 16 0.75 16H11.25C11.6562 16 12 15.6875 12 15.25V5H7.75ZM3.84375 12.5312C3.8125 12.5625 3.75 12.5938 3.71875 12.5938C3.6875 12.5938 3.625 12.5625 3.59375 12.5312L1.5625 10.625C1.53125 10.625 1.53125 10.5625 1.53125 10.5C1.53125 10.4688 1.53125 10.4062 1.5625 10.4062L3.59375 8.5C3.625 8.46875 3.6875 8.4375 3.71875 8.4375C3.75 8.4375 3.8125 8.46875 3.84375 8.5L4.4375 9.15625C4.46875 9.1875 4.5 9.21875 4.5 9.28125C4.5 9.3125 4.46875 9.375 4.4375 9.40625L3.15625 10.5L4.4375 11.625C4.46875 11.6562 4.5 11.7188 4.5 11.75C4.5 11.8125 4.46875 11.8438 4.4375 11.875L3.84375 12.5312ZM5.4375 14.0938L4.59375 13.875C4.5 13.8438 4.46875 13.7812 4.46875 13.6875V13.6562L6.375 7.03125C6.40625 6.96875 6.46875 6.90625 6.53125 6.90625C6.5625 6.90625 6.59375 6.90625 6.59375 6.9375L7.4375 7.15625C7.53125 7.1875 7.5625 7.25 7.5625 7.34375V7.375L5.65625 14C5.625 14.0625 5.5625 14.125 5.5 14.125C5.46875 14.125 5.4375 14.125 5.4375 14.0938ZM10.4688 10.625L8.4375 12.5312C8.40625 12.5625 8.34375 12.5938 8.3125 12.5938C8.28125 12.5938 8.21875 12.5625 8.1875 12.5312L7.59375 11.875C7.5625 11.8438 7.53125 11.8125 7.53125 11.75C7.53125 11.7188 7.5625 11.6562 7.59375 11.625L8.875 10.5L7.59375 9.40625C7.5625 9.375 7.53125 9.3125 7.53125 9.28125C7.53125 9.21875 7.5625 9.1875 7.59375 9.15625L8.1875 8.5C8.21875 8.46875 8.28125 8.4375 8.3125 8.4375C8.34375 8.4375 8.40625 8.46875 8.4375 8.5L10.4688 10.4062C10.5 10.4062 10.5312 10.4688 10.5312 10.5C10.5312 10.5625 10.5 10.625 10.4688 10.625Z" fill="#32373C"/>
</svg>