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>
This commit is contained in:
root
2026-04-29 15:32:23 +00:00
parent 57b752f54e
commit b6df4dbb92
5385 changed files with 838580 additions and 2416 deletions
@@ -0,0 +1 @@
<svg width="14" height="21" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3.875 18.469V16.75h6.21v1.719c0 .117-.038.234-.077.351l-.977 1.407a.57.57 0 0 1-.508.273H5.438a.57.57 0 0 1-.508-.273l-.977-1.407c-.078-.117-.078-.234-.078-.351ZM7 13c-.703 0-1.25-.547-1.25-1.25 0-.664.547-1.25 1.25-1.25.664 0 1.25.586 1.25 1.25C8.25 12.453 7.664 13 7 13ZM7 .5c3.79 0 6.875 3.086 6.875 6.875 0 1.758-.664 3.32-1.719 4.531-.664.742-1.68 2.305-2.031 3.594H8.25c0-.195 0-.352.078-.547.195-.703.899-2.539 2.422-4.258.781-.937 1.25-2.11 1.25-3.32 0-2.734-2.266-5-5-5-2.695 0-5.04 2.148-5 5 0 1.21.43 2.383 1.21 3.32 1.563 1.758 2.228 3.555 2.423 4.258.078.195.078.39.078.547H3.836c-.352-1.29-1.367-2.852-2.031-3.594a6.82 6.82 0 0 1-1.68-4.531C.125 3.742 2.977.5 7 .5Zm-.39 8.75a.632.632 0 0 1-.626-.547l-.507-3.75c-.04-.351.273-.703.625-.703h1.757c.352 0 .664.352.625.703l-.507 3.75a.632.632 0 0 1-.625.547h-.743Z" fill="#D63638"/></svg>

After

Width:  |  Height:  |  Size: 935 B