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 viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><path d="M48.333 24c0-13.255-10.745-24-24-24s-24 10.745-24 24 10.745 24 24 24 24-10.745 24-24Z" fill="#e6f0f7"/><path d="M35.25 13.5H12.75C11.4844 13.5 10.5 14.5312 10.5 15.75V32.25C10.5 33.5156 11.4844 34.5 12.75 34.5H35.25C36.4688 34.5 37.5 33.5156 37.5 32.25V15.75C37.5 14.5312 36.4688 13.5 35.25 13.5ZM12.75 15H35.25C35.625 15 36 15.375 36 15.75V18H12V15.75C12 15.375 12.3281 15 12.75 15ZM35.25 33H12.75C12.3281 33 12 32.6719 12 32.25V22.5H36V32.25C36 32.6719 35.625 33 35.25 33ZM19.5 29.0625C19.5 28.7812 19.2188 28.5 18.9375 28.5H15.5625C15.2344 28.5 15 28.7812 15 29.0625V29.4375C15 29.7656 15.2344 30 15.5625 30H18.9375C19.2188 30 19.5 29.7656 19.5 29.4375V29.0625ZM28.5 29.0625C28.5 28.7812 28.2188 28.5 27.9375 28.5H21.5625C21.2344 28.5 21 28.7812 21 29.0625V29.4375C21 29.7656 21.2344 30 21.5625 30H27.9375C28.2188 30 28.5 29.7656 28.5 29.4375V29.0625Z" fill="#056aab"/></svg>

After

Width:  |  Height:  |  Size: 948 B