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,3 @@
<svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.75" d="M3.25 7.16675C3.65625 7.16675 4 7.5105 4 7.91675V15.4167C4 15.8542 3.65625 16.1667 3.25 16.1667H0.75C0.3125 16.1667 0 15.8542 0 15.4167V7.91675C0 7.5105 0.3125 7.16675 0.75 7.16675H3.25ZM2 14.9167C2.40625 14.9167 2.75 14.6042 2.75 14.1667C2.75 13.7605 2.40625 13.4167 2 13.4167C1.5625 13.4167 1.25 13.7605 1.25 14.1667C1.25 14.6042 1.5625 14.9167 2 14.9167ZM12 2.72925C12 4.04175 11.1875 4.79175 10.9375 5.66675H14.125C15.1562 5.66675 15.9688 6.54175 15.9688 7.5105C16 8.073 15.75 8.66675 15.375 9.04175C15.6875 9.7605 15.625 10.7917 15.0938 11.5105C15.3438 12.323 15.0938 13.323 14.5625 13.8542C14.7188 14.4167 14.6562 14.8855 14.375 15.2605C13.75 16.1667 12.1562 16.1667 10.8125 16.1667H10.7188C9.21875 16.1667 8 15.6355 7 15.198C6.5 14.9792 5.84375 14.698 5.34375 14.698C5.15625 14.6667 5 14.5105 5 14.323V7.6355C5 7.54175 5.03125 7.448 5.09375 7.35425C6.34375 6.1355 6.875 4.85425 7.875 3.823C8.34375 3.35425 8.5 2.66675 8.6875 1.97925C8.8125 1.41675 9.09375 0.166748 9.75 0.166748C10.5 0.166748 12 0.416748 12 2.72925Z" fill="#9B64E8"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB