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

197 lines
7.8 KiB
PHP
Executable File

<?php return array(
'root' => array(
'name' => 'awesomemotive/wpforms',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '9aeb12ae1bbfc80de47d89307a82700c13b356ca',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
'dev' => true,
),
'versions' => array(
'apimatic/core' => array(
'pretty_version' => '0.3.14',
'version' => '0.3.14.0',
'reference' => 'c3eaad6cf0c00b793ce6d9bee8b87176247da582',
'type' => 'library',
'install_path' => __DIR__ . '/../apimatic/core',
'aliases' => array(),
'dev_requirement' => false,
),
'apimatic/core-interfaces' => array(
'pretty_version' => '0.1.5',
'version' => '0.1.5.0',
'reference' => 'b4f1bffc8be79584836f70af33c65e097eec155c',
'type' => 'library',
'install_path' => __DIR__ . '/../apimatic/core-interfaces',
'aliases' => array(),
'dev_requirement' => false,
),
'apimatic/jsonmapper' => array(
'pretty_version' => '3.1.7',
'version' => '3.1.7.0',
'reference' => '61e45f6021e4a4e07497be596b4787c3c6b39bea',
'type' => 'library',
'install_path' => __DIR__ . '/../apimatic/jsonmapper',
'aliases' => array(),
'dev_requirement' => false,
),
'apimatic/unirest-php' => array(
'pretty_version' => '4.0.7',
'version' => '4.0.7.0',
'reference' => 'bdfd5f27c105772682c88ed671683f1bd93f4a3c',
'type' => 'library',
'install_path' => __DIR__ . '/../apimatic/unirest-php',
'aliases' => array(),
'dev_requirement' => false,
),
'awesomemotive/wpforms' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '9aeb12ae1bbfc80de47d89307a82700c13b356ca',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
'dev_requirement' => false,
),
'box/spout' => array(
'pretty_version' => 'v3.3.0',
'version' => '3.3.0.0',
'reference' => '9bdb027d312b732515b884a341c0ad70372c6295',
'type' => 'library',
'install_path' => __DIR__ . '/../box/spout',
'aliases' => array(),
'dev_requirement' => false,
),
'ezyang/htmlpurifier' => array(
'pretty_version' => 'v4.19.0',
'version' => '4.19.0.0',
'reference' => 'b287d2a16aceffbf6e0295559b39662612b77fcf',
'type' => 'library',
'install_path' => __DIR__ . '/../ezyang/htmlpurifier',
'aliases' => array(),
'dev_requirement' => false,
),
'mk-j/php_xlsxwriter' => array(
'pretty_version' => '0.39',
'version' => '0.39.0.0',
'reference' => '67541cff96eab25563aa7fcecba33e03368fa464',
'type' => 'project',
'install_path' => __DIR__ . '/../mk-j/php_xlsxwriter',
'aliases' => array(),
'dev_requirement' => false,
),
'php-jsonpointer/php-jsonpointer' => array(
'pretty_version' => 'v3.0.2',
'version' => '3.0.2.0',
'reference' => '4428f86c6f23846e9faa5a420c4ef14e485b3afb',
'type' => 'library',
'install_path' => __DIR__ . '/../php-jsonpointer/php-jsonpointer',
'aliases' => array(),
'dev_requirement' => false,
),
'psr/log' => array(
'pretty_version' => '1.1.4',
'version' => '1.1.4.0',
'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/log',
'aliases' => array(),
'dev_requirement' => false,
),
'roave/security-advisories' => array(
'pretty_version' => 'dev-latest',
'version' => 'dev-latest',
'reference' => '4400137eb61cd0db3192a409353ae83e811395fe',
'type' => 'metapackage',
'install_path' => null,
'aliases' => array(
0 => '9999999-dev',
),
'dev_requirement' => true,
),
'square/square' => array(
'pretty_version' => '40.0.0.20250123',
'version' => '40.0.0.20250123',
'reference' => '4c8c88afbafb476a3e3f5751c987674874361ca9',
'type' => 'library',
'install_path' => __DIR__ . '/../square/square',
'aliases' => array(),
'dev_requirement' => false,
),
'stripe/stripe-php' => array(
'pretty_version' => 'v16.5.0',
'version' => '16.5.0.0',
'reference' => '3fb22256317344e049fce02ff289af3b776b0464',
'type' => 'library',
'install_path' => __DIR__ . '/../stripe/stripe-php',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/css-selector' => array(
'pretty_version' => 'v4.4.44',
'version' => '4.4.44.0',
'reference' => 'bd0a6737e48de45b4b0b7b6fc98c78404ddceaed',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/css-selector',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/polyfill-iconv' => array(
'pretty_version' => 'v1.33.0',
'version' => '1.33.0.0',
'reference' => '5f3b930437ae03ae5dff61269024d8ea1b3774aa',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-iconv',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/polyfill-mbstring' => array(
'pretty_version' => 'v1.33.0',
'version' => '1.33.0.0',
'reference' => '6d857f4d76bd4b343eac26d6b539585d2bc56493',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/polyfill-php80' => array(
'pretty_version' => 'v1.33.0',
'version' => '1.33.0.0',
'reference' => '0cc9dd0f17f61d8131e7df6b84bd344899fe2608',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-php80',
'aliases' => array(),
'dev_requirement' => false,
),
'tijsverkoyen/css-to-inline-styles' => array(
'pretty_version' => 'v2.2.7',
'version' => '2.2.7.0',
'reference' => '83ee6f38df0a63106a9e4536e3060458b74ccedb',
'type' => 'library',
'install_path' => __DIR__ . '/../tijsverkoyen/css-to-inline-styles',
'aliases' => array(),
'dev_requirement' => false,
),
'true/punycode' => array(
'pretty_version' => 'v2.1.1',
'version' => '2.1.1.0',
'reference' => 'a4d0c11a36dd7f4e7cd7096076cab6d3378a071e',
'type' => 'library',
'install_path' => __DIR__ . '/../true/punycode',
'aliases' => array(),
'dev_requirement' => false,
),
'woocommerce/action-scheduler' => array(
'pretty_version' => '3.9.3',
'version' => '3.9.3.0',
'reference' => 'c58cdbab17651303d406cd3b22cf9d75c71c986c',
'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../woocommerce/action-scheduler',
'aliases' => array(),
'dev_requirement' => false,
),
),
);