[object Object]

← back to Commercialrealestate

broker profile item 3: honest 'listings as of <date>' snapshot-vintage caveat

d4447f78d7566b63d34a430a64a8777b89b7895e · 2026-08-19 11:59:52 -0700 · Steve

- serve.js snapContact: pass exported_at through so the page can show snapshot vintage.
- broker.html: render '📅 as of <date>' in the Active Listings header when exported_at is
  present (snapshot mode only; the live-DB path is inherently fresh, no caveat).
Verified in forced-snapshot mode (prod-equivalent): broker 26 returns exported_at +
27 active listings from brokerDetail.current; inline script parses clean.

Files touched

Diff

commit d4447f78d7566b63d34a430a64a8777b89b7895e
Author: Steve <steve@designerwallcoverings.com>
Date:   Wed Aug 19 11:59:52 2026 -0700

    broker profile item 3: honest 'listings as of <date>' snapshot-vintage caveat
    
    - serve.js snapContact: pass exported_at through so the page can show snapshot vintage.
    - broker.html: render '📅 as of <date>' in the Active Listings header when exported_at is
      present (snapshot mode only; the live-DB path is inherently fresh, no caveat).
    Verified in forced-snapshot mode (prod-equivalent): broker 26 returns exported_at +
    27 active listings from brokerDetail.current; inline script parses clean.
---
 public/broker.html | 1 +
 scripts/serve.js   | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/public/broker.html b/public/broker.html
index 088d1f1..7085596 100644
--- a/public/broker.html
+++ b/public/broker.html
@@ -229,6 +229,7 @@ function render(b){
              </select>
            </div>
            <div class="ctl">Density <input type="range" id="ldens" min="1" max="4" step="1" value="${PREF.cols}"></div>
+           ${b.exported_at?`<div class="ctl" style="margin-left:auto" title="Listings are from the CRCP snapshot and refresh on its regen cadence — not live.">📅 as of ${new Date(b.exported_at).toLocaleDateString(undefined,{month:'short',day:'numeric',year:'numeric'})}</div>`:''}
          </div>
          <div class="lgrid" id="lgrid"></div>
        </div>
diff --git a/scripts/serve.js b/scripts/serve.js
index db9fc53..773dd38 100644
--- a/scripts/serve.js
+++ b/scripts/serve.js
@@ -330,6 +330,9 @@ const snapContact = (id) => {
     specialties: b.specialties, state: b.state, crexi_id: b.crexi_id, listings: b.listings,
     created_at: b.created_at, enriched_at: b.enriched_at || b.created_at,
     provenance: [], our_listings, other_listings: [], closed_listings, closed_count: closed_listings.length,
+    // snapshot vintage — broker.html surfaces this as an honest "listings as of <date>" caveat, since
+    // snapshot-mode listings are only as fresh as the last regen (DTD 2026-08-19, A-with-rider item 3).
+    exported_at: s.exported_at || null,
     source: b.source || 'snapshot' };
 };
 app.get('/api/brokers/contact/:id', async (req, res) => {

← 38e4820 CRCP: infinite scroll across all grid pages (replace hard ro  ·  back to Commercialrealestate  ·  Valley pools: map view + deal-tier colors + $/sqft + price-c b33fc03 →