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,75 @@
/**
* Adjusts the display of header images based on the user's preference for dark color schemes.
*/
@media (prefers-color-scheme: light) {
.header-wrapper.dark-mode {
display: none !important;
}
}
@media (prefers-color-scheme: dark) {
.header-wrapper.dark-mode {
display: table-row !important;
}
.header-wrapper.dark-mode + .light-mode {
display: none !important;
}
}
@media only screen and (max-width: 599px) {
.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name {
display: block !important;
}
.wpforms-layout-table .wpforms-layout-table-row {
display: block;
width: 100%;
}
.wpforms-layout-table .wpforms-layout-table-row table, .wpforms-layout-table .wpforms-layout-table-row thead, .wpforms-layout-table .wpforms-layout-table-row tbody, .wpforms-layout-table .wpforms-layout-table-row tr, .wpforms-layout-table .wpforms-layout-table-row td, .wpforms-layout-table .wpforms-layout-table-row th {
display: block;
width: 100% !important;
padding-bottom: 0 !important;
}
.wpforms-layout-table .wpforms-layout-table-row tr {
padding-top: 0 !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-value {
padding-bottom: 25px !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-name {
padding-bottom: 10px !important;
}
.wpforms-layout-table > td {
padding-bottom: 0 !important;
}
}
@media only screen and (max-width: 599px) {
.body-inner {
padding-top: 25px !important;
padding-bottom: 25px !important;
}
.wrapper-inner {
padding: 0 25px 25px 25px !important;
}
.header {
padding-bottom: 25px !important;
}
.header .has-image-size-small img {
max-height: 100px !important;
}
.header .has-image-size-medium img {
max-height: 140px !important;
}
.header .has-image-size-large img {
max-height: 180px !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-value {
padding-bottom: 10px !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-name {
padding-bottom: 7px !important;
}
.wpforms-layout-table-display-blocks table:not(:first-child) .field-repeater-name {
padding-top: 25px !important;
}
}
@@ -0,0 +1 @@
@media (prefers-color-scheme: light){.header-wrapper.dark-mode{display:none !important}}@media (prefers-color-scheme: dark){.header-wrapper.dark-mode{display:table-row !important}.header-wrapper.dark-mode+.light-mode{display:none !important}}@media only screen and (max-width: 599px){.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name{display:block !important}.wpforms-layout-table .wpforms-layout-table-row{display:block;width:100%}.wpforms-layout-table .wpforms-layout-table-row table,.wpforms-layout-table .wpforms-layout-table-row thead,.wpforms-layout-table .wpforms-layout-table-row tbody,.wpforms-layout-table .wpforms-layout-table-row tr,.wpforms-layout-table .wpforms-layout-table-row td,.wpforms-layout-table .wpforms-layout-table-row th{display:block;width:100% !important;padding-bottom:0 !important}.wpforms-layout-table .wpforms-layout-table-row tr{padding-top:0 !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:25px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:10px !important}.wpforms-layout-table>td{padding-bottom:0 !important}}@media only screen and (max-width: 599px){.body-inner{padding-top:25px !important;padding-bottom:25px !important}.wrapper-inner{padding:0 25px 25px 25px !important}.header{padding-bottom:25px !important}.header .has-image-size-small img{max-height:100px !important}.header .has-image-size-medium img{max-height:140px !important}.header .has-image-size-large img{max-height:180px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:10px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:7px !important}.wpforms-layout-table-display-blocks table:not(:first-child) .field-repeater-name{padding-top:25px !important}}
@@ -0,0 +1,75 @@
/**
* Adjusts the display of header images based on the user's preference for dark color schemes.
*/
@media (prefers-color-scheme: light) {
.header-wrapper.dark-mode {
display: none !important;
}
}
@media (prefers-color-scheme: dark) {
.header-wrapper.dark-mode {
display: table-row !important;
}
.header-wrapper.dark-mode + .light-mode {
display: none !important;
}
}
@media only screen and (max-width: 599px) {
.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name {
display: block !important;
}
.wpforms-layout-table .wpforms-layout-table-row {
display: block;
width: 100%;
}
.wpforms-layout-table .wpforms-layout-table-row table, .wpforms-layout-table .wpforms-layout-table-row thead, .wpforms-layout-table .wpforms-layout-table-row tbody, .wpforms-layout-table .wpforms-layout-table-row tr, .wpforms-layout-table .wpforms-layout-table-row td, .wpforms-layout-table .wpforms-layout-table-row th {
display: block;
width: 100% !important;
padding-bottom: 0 !important;
}
.wpforms-layout-table .wpforms-layout-table-row tr {
padding-top: 0 !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-value {
padding-bottom: 25px !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-name {
padding-bottom: 10px !important;
}
.wpforms-layout-table > td {
padding-bottom: 0 !important;
}
}
@media only screen and (max-width: 599px) {
.wrapper-inner {
padding: 0 25px 25px 25px !important;
}
.header .has-image-size-small img {
max-height: 100px !important;
}
.header .has-image-size-medium img {
max-height: 140px !important;
}
.header .has-image-size-large img {
max-height: 180px !important;
}
.content td {
display: block;
}
.content td.field-name {
padding-bottom: 0 !important;
border-bottom: 0 !important;
}
.content td.field-value {
padding-top: 10px !important;
}
.content td.field-repeater-name + .field-value {
padding-top: 0 !important;
}
.content td td {
display: table-cell;
}
}
@@ -0,0 +1 @@
@media (prefers-color-scheme: light){.header-wrapper.dark-mode{display:none !important}}@media (prefers-color-scheme: dark){.header-wrapper.dark-mode{display:table-row !important}.header-wrapper.dark-mode+.light-mode{display:none !important}}@media only screen and (max-width: 599px){.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name{display:block !important}.wpforms-layout-table .wpforms-layout-table-row{display:block;width:100%}.wpforms-layout-table .wpforms-layout-table-row table,.wpforms-layout-table .wpforms-layout-table-row thead,.wpforms-layout-table .wpforms-layout-table-row tbody,.wpforms-layout-table .wpforms-layout-table-row tr,.wpforms-layout-table .wpforms-layout-table-row td,.wpforms-layout-table .wpforms-layout-table-row th{display:block;width:100% !important;padding-bottom:0 !important}.wpforms-layout-table .wpforms-layout-table-row tr{padding-top:0 !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:25px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:10px !important}.wpforms-layout-table>td{padding-bottom:0 !important}}@media only screen and (max-width: 599px){.wrapper-inner{padding:0 25px 25px 25px !important}.header .has-image-size-small img{max-height:100px !important}.header .has-image-size-medium img{max-height:140px !important}.header .has-image-size-large img{max-height:180px !important}.content td{display:block}.content td.field-name{padding-bottom:0 !important;border-bottom:0 !important}.content td.field-value{padding-top:10px !important}.content td.field-repeater-name+.field-value{padding-top:0 !important}.content td td{display:table-cell}}
@@ -0,0 +1,54 @@
@media only screen and (max-width: 599px) {
.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name {
display: block !important;
}
.wpforms-layout-table .wpforms-layout-table-row {
display: block;
width: 100%;
}
.wpforms-layout-table .wpforms-layout-table-row table, .wpforms-layout-table .wpforms-layout-table-row thead, .wpforms-layout-table .wpforms-layout-table-row tbody, .wpforms-layout-table .wpforms-layout-table-row tr, .wpforms-layout-table .wpforms-layout-table-row td, .wpforms-layout-table .wpforms-layout-table-row th {
display: block;
width: 100% !important;
padding-bottom: 0 !important;
}
.wpforms-layout-table .wpforms-layout-table-row tr {
padding-top: 0 !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-value {
padding-bottom: 25px !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-name {
padding-bottom: 10px !important;
}
.wpforms-layout-table > td {
padding-bottom: 0 !important;
}
}
a {
text-decoration: none;
}
@media only screen and (max-width: 599px) {
table.body .container {
width: 95% !important;
}
.header {
padding: 15px 15px 12px 15px !important;
}
.header img {
width: 200px !important;
height: auto !important;
}
.content,
.aside {
padding: 30px 40px 20px 40px !important;
}
.upsell-pro table.features td {
width: 100% !important;
display: block !important;
}
table.receipt-details td.receipt-details-inner {
padding: 30px 0px 20px 0px !important;
}
}
@@ -0,0 +1 @@
@media only screen and (max-width: 599px){.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name{display:block !important}.wpforms-layout-table .wpforms-layout-table-row{display:block;width:100%}.wpforms-layout-table .wpforms-layout-table-row table,.wpforms-layout-table .wpforms-layout-table-row thead,.wpforms-layout-table .wpforms-layout-table-row tbody,.wpforms-layout-table .wpforms-layout-table-row tr,.wpforms-layout-table .wpforms-layout-table-row td,.wpforms-layout-table .wpforms-layout-table-row th{display:block;width:100% !important;padding-bottom:0 !important}.wpforms-layout-table .wpforms-layout-table-row tr{padding-top:0 !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:25px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:10px !important}.wpforms-layout-table>td{padding-bottom:0 !important}}a{text-decoration:none}@media only screen and (max-width: 599px){table.body .container{width:95% !important}.header{padding:15px 15px 12px 15px !important}.header img{width:200px !important;height:auto !important}.content,.aside{padding:30px 40px 20px 40px !important}.upsell-pro table.features td{width:100% !important;display:block !important}table.receipt-details td.receipt-details-inner{padding:30px 0px 20px 0px !important}}
@@ -0,0 +1,242 @@
@media only screen and (max-width: 599px) {
.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name {
display: block !important;
}
.wpforms-layout-table .wpforms-layout-table-row {
display: block;
width: 100%;
}
.wpforms-layout-table .wpforms-layout-table-row table, .wpforms-layout-table .wpforms-layout-table-row thead, .wpforms-layout-table .wpforms-layout-table-row tbody, .wpforms-layout-table .wpforms-layout-table-row tr, .wpforms-layout-table .wpforms-layout-table-row td, .wpforms-layout-table .wpforms-layout-table-row th {
display: block;
width: 100% !important;
padding-bottom: 0 !important;
}
.wpforms-layout-table .wpforms-layout-table-row tr {
padding-top: 0 !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-value {
padding-bottom: 25px !important;
}
.wpforms-layout-table .wpforms-layout-table-row td.field-name {
padding-bottom: 10px !important;
}
.wpforms-layout-table > td {
padding-bottom: 0 !important;
}
}
@media only screen and (max-width: 700px) {
.header .header-image {
max-width: 221px;
}
.body-inner {
padding-bottom: 0 !important;
}
.summary-content {
border-radius: 0 !important;
padding: 30px !important;
}
.summary-header,
.email-summaries-overview-wrapper {
margin-bottom: 30px !important;
}
.email-summaries-overview h5 {
font-size: 18px !important;
line-height: 26px !important;
}
.email-summaries-overview p {
font-size: 14px !important;
line-height: 20px !important;
}
.email-summaries .entry-count,
.email-summaries .form-name {
font-size: 14px !important;
}
.summary-notice h4 {
font-size: 20px !important;
line-height: 30px !important;
}
.summary-notification-block,
.summary-info-block {
border-radius: 0 !important;
padding: 30px 30px 6px 30px !important;
}
}
@media only screen and (max-width: 320px) {
.email-summaries th {
padding: 15px !important;
}
.email-summaries .form-name,
.email-summaries .entry-count,
.email-summaries .summary-trend {
padding: 12px !important;
}
}
@media (prefers-color-scheme: light) {
tr.dark-mode {
display: none !important;
}
}
@media (prefers-color-scheme: dark) {
tr.dark-mode {
display: table-row !important;
}
tr.light-mode {
display: none !important;
}
body,
table.body,
.email-summaries th {
background-color: #2d2f31 !important;
}
.email-summaries td,
.summary-header,
.summary-content {
background-color: #1f1f1f !important;
}
body, table.body, h4, h6, p, td, th {
color: #dddddd !important;
}
.email-summaries th, .email-summaries td {
border: 1px solid #424446 !important;
}
.email-summaries-overview {
border: 1px solid #424446 !important;
background: #2d2f31 !important;
}
.email-summaries-overview h5 {
color: #dddddd !important;
}
.email-summaries-overview p {
color: #999999 !important;
}
.footer,
.entry-count {
color: #999999 !important;
}
.footer a,
.entry-count a {
color: #999999 !important;
}
.footer a:hover,
.entry-count a:hover {
color: #999999 !important;
}
.summary-notice {
color: #ffffff !important;
}
.summary-notice h4, .summary-notice p {
color: #ffffff !important;
}
.summary-info-block {
background-color: #383230 !important;
}
.summary-notification-block {
background-color: #2e353b !important;
}
.summary-notification-block .summary-notice-content a {
color: #3389bd !important;
}
.button-blue a,
.button-orange a {
color: #ffffff !important;
}
.button-blue-outline {
border: 1px solid #3389bd !important;
}
.button-blue-outline a {
color: #3389bd !important;
}
}
[data-ogsc] tr.dark-mode {
display: table-row !important;
}
[data-ogsc] tr.light-mode {
display: none !important;
}
[data-ogsc] body,
[data-ogsc] table.body,
[data-ogsc] .email-summaries th {
background-color: #2d2f31 !important;
}
[data-ogsc] .email-summaries td,
[data-ogsc] .summary-header,
[data-ogsc] .summary-content {
background-color: #1f1f1f !important;
}
[data-ogsc] body, [data-ogsc] table.body, [data-ogsc] h4, [data-ogsc] h6, [data-ogsc] p, [data-ogsc] td, [data-ogsc] th {
color: #dddddd !important;
}
[data-ogsc] .email-summaries th, [data-ogsc] .email-summaries td {
border: 1px solid #424446 !important;
}
[data-ogsc] .email-summaries-overview {
border: 1px solid #424446 !important;
background: #2d2f31 !important;
}
[data-ogsc] .email-summaries-overview h5 {
color: #dddddd !important;
}
[data-ogsc] .email-summaries-overview p {
color: #999999 !important;
}
[data-ogsc] .footer,
[data-ogsc] .entry-count {
color: #999999 !important;
}
[data-ogsc] .footer a,
[data-ogsc] .entry-count a {
color: #999999 !important;
}
[data-ogsc] .footer a:hover,
[data-ogsc] .entry-count a:hover {
color: #999999 !important;
}
[data-ogsc] .summary-notice {
color: #ffffff !important;
}
[data-ogsc] .summary-notice h4, [data-ogsc] .summary-notice p {
color: #ffffff !important;
}
[data-ogsc] .summary-info-block {
background-color: #383230 !important;
}
[data-ogsc] .summary-notification-block {
background-color: #2e353b !important;
}
[data-ogsc] .summary-notification-block .summary-notice-content a {
color: #3389bd !important;
}
[data-ogsc] .button-blue a,
[data-ogsc] .button-orange a {
color: #ffffff !important;
}
[data-ogsc] .button-blue-outline {
border: 1px solid #3389bd !important;
}
[data-ogsc] .button-blue-outline a {
color: #3389bd !important;
}
@@ -0,0 +1 @@
@media only screen and (max-width: 599px){.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name{display:block !important}.wpforms-layout-table .wpforms-layout-table-row{display:block;width:100%}.wpforms-layout-table .wpforms-layout-table-row table,.wpforms-layout-table .wpforms-layout-table-row thead,.wpforms-layout-table .wpforms-layout-table-row tbody,.wpforms-layout-table .wpforms-layout-table-row tr,.wpforms-layout-table .wpforms-layout-table-row td,.wpforms-layout-table .wpforms-layout-table-row th{display:block;width:100% !important;padding-bottom:0 !important}.wpforms-layout-table .wpforms-layout-table-row tr{padding-top:0 !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:25px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:10px !important}.wpforms-layout-table>td{padding-bottom:0 !important}}@media only screen and (max-width: 700px){.header .header-image{max-width:221px}.body-inner{padding-bottom:0 !important}.summary-content{border-radius:0 !important;padding:30px !important}.summary-header,.email-summaries-overview-wrapper{margin-bottom:30px !important}.email-summaries-overview h5{font-size:18px !important;line-height:26px !important}.email-summaries-overview p{font-size:14px !important;line-height:20px !important}.email-summaries .entry-count,.email-summaries .form-name{font-size:14px !important}.summary-notice h4{font-size:20px !important;line-height:30px !important}.summary-notification-block,.summary-info-block{border-radius:0 !important;padding:30px 30px 6px 30px !important}}@media only screen and (max-width: 320px){.email-summaries th{padding:15px !important}.email-summaries .form-name,.email-summaries .entry-count,.email-summaries .summary-trend{padding:12px !important}}@media (prefers-color-scheme: light){tr.dark-mode{display:none !important}}@media (prefers-color-scheme: dark){tr.dark-mode{display:table-row !important}tr.light-mode{display:none !important}body,table.body,.email-summaries th{background-color:#2d2f31 !important}.email-summaries td,.summary-header,.summary-content{background-color:#1f1f1f !important}body,table.body,h4,h6,p,td,th{color:#dddddd !important}.email-summaries th,.email-summaries td{border:1px solid #424446 !important}.email-summaries-overview{border:1px solid #424446 !important;background:#2d2f31 !important}.email-summaries-overview h5{color:#dddddd !important}.email-summaries-overview p{color:#999999 !important}.footer,.entry-count{color:#999999 !important}.footer a,.entry-count a{color:#999999 !important}.footer a:hover,.entry-count a:hover{color:#999999 !important}.summary-notice{color:#ffffff !important}.summary-notice h4,.summary-notice p{color:#ffffff !important}.summary-info-block{background-color:#383230 !important}.summary-notification-block{background-color:#2e353b !important}.summary-notification-block .summary-notice-content a{color:#3389bd !important}.button-blue a,.button-orange a{color:#ffffff !important}.button-blue-outline{border:1px solid #3389bd !important}.button-blue-outline a{color:#3389bd !important}}[data-ogsc] tr.dark-mode{display:table-row !important}[data-ogsc] tr.light-mode{display:none !important}[data-ogsc] body,[data-ogsc] table.body,[data-ogsc] .email-summaries th{background-color:#2d2f31 !important}[data-ogsc] .email-summaries td,[data-ogsc] .summary-header,[data-ogsc] .summary-content{background-color:#1f1f1f !important}[data-ogsc] body,[data-ogsc] table.body,[data-ogsc] h4,[data-ogsc] h6,[data-ogsc] p,[data-ogsc] td,[data-ogsc] th{color:#dddddd !important}[data-ogsc] .email-summaries th,[data-ogsc] .email-summaries td{border:1px solid #424446 !important}[data-ogsc] .email-summaries-overview{border:1px solid #424446 !important;background:#2d2f31 !important}[data-ogsc] .email-summaries-overview h5{color:#dddddd !important}[data-ogsc] .email-summaries-overview p{color:#999999 !important}[data-ogsc] .footer,[data-ogsc] .entry-count{color:#999999 !important}[data-ogsc] .footer a,[data-ogsc] .entry-count a{color:#999999 !important}[data-ogsc] .footer a:hover,[data-ogsc] .entry-count a:hover{color:#999999 !important}[data-ogsc] .summary-notice{color:#ffffff !important}[data-ogsc] .summary-notice h4,[data-ogsc] .summary-notice p{color:#ffffff !important}[data-ogsc] .summary-info-block{background-color:#383230 !important}[data-ogsc] .summary-notification-block{background-color:#2e353b !important}[data-ogsc] .summary-notification-block .summary-notice-content a{color:#3389bd !important}[data-ogsc] .button-blue a,[data-ogsc] .button-orange a{color:#ffffff !important}[data-ogsc] .button-blue-outline{border:1px solid #3389bd !important}[data-ogsc] .button-blue-outline a{color:#3389bd !important}