Commercialrealestate
Search the build
-
c645c3e2026-09-26 auto-data-snapshot: 2026-09-26T15:48:33 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
930c8612026-09-26 afternoon CRE update 2026-09-26 -
ad5b2662026-09-26 auto-data-snapshot: 2026-09-26T12:44:57 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
2eb7bd02026-09-26 auto-data-snapshot: 2026-09-26T12:14:18 (1 data files) — data/condos-redfin.json -
1aad8c72026-09-26 auto-data-snapshot: 2026-09-26T09:40:15 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
6abfd332026-09-26 TK-11856 rc-propagation (EMAIL): CRE residential/morning/afternoon/condos reports propagate build/send rc -
0d1c4f82026-09-26 TK-11856 rc-propagation (RSYNC): crcp-loan-officers exits nonzero on failed prod backup/rsync -
6e70efd2026-09-26 auto-data-snapshot: 2026-09-26T07:18:02 (1 data files) — data/alerts-state.json -
47814322026-09-26 auto-data-snapshot: 2026-09-26T06:47:29 (10 data files) — data/.crexi-broker-done.json data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json -
b7adbaa2026-09-26 auto-data-snapshot: 2026-09-26T06:16:37 (4 data files) — data/.loan-officers-fingerprint data/condos-redfin.json data/ranked.json data/valley-pools.json -
6d287492026-09-26 loan-officers: daily DRE refresh (5253 officers) -
dd474962026-09-26 auto-data-snapshot: 2026-09-26T05:45:52 (1 data files) — data/listings.json -
66bda912026-09-26 auto-data-snapshot: 2026-09-26T04:44:27 (2 data files) — data/brokers-snapshot.json data/ranked.json -
121867d2026-09-26 auto-data-snapshot: 2026-09-26T03:43:38 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
37117fc2026-09-26 auto-data-snapshot: 2026-09-26T00:41:00 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
43cb96c2026-09-26 auto-data-snapshot: 2026-09-26T00:10:15 (1 data files) — data/condos-redfin.json -
247e4b12026-09-25 auto-data-snapshot: 2026-09-25T21:38:12 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
86346f82026-09-25 auto-data-snapshot: 2026-09-25T18:35:34 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
ff661ed2026-09-25 auto-data-snapshot: 2026-09-25T15:32:10 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
ec94fb22026-09-25 afternoon CRE update 2026-09-25 -
31ee1712026-09-25 auto-data-snapshot: 2026-09-25T12:23:56 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
712f8442026-09-25 auto-data-snapshot: 2026-09-25T11:52:49 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
f99756c2026-09-25 auto-data-snapshot: 2026-09-25T11:35:27 (2 data files) — data/crcp-data-freshness-state.json data/latest.json -
7f280162026-09-25 auto-data-snapshot: 2026-09-25T08:49:33 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
4aa72642026-09-25 auto-data-snapshot: 2026-09-25T07:12:13 (1 data files) — data/alerts-state.json -
38776252026-09-25 auto-data-snapshot: 2026-09-25T06:41:36 (13 data files) — data/.crexi-broker-done.json data/.loan-officers-fingerprint data/broker-phone-overlay.json data/buildout-listings.json data/condos-redfin.json -
18423fb2026-09-25 loan-officers: daily DRE refresh (5202 officers) -
15a19cb2026-09-25 auto-data-snapshot: 2026-09-25T06:10:16 (2 data files) — data/condos-redfin.json data/ranked.json -
a60c5ed2026-09-25 auto-data-snapshot: 2026-09-25T05:39:47 (1 data files) — data/listings.json -
7e989ec2026-09-25 auto-data-snapshot: 2026-09-25T04:38:13 (2 data files) — data/brokers-snapshot.json data/ranked.json -
1a9c32d2026-09-25 auto-data-snapshot: 2026-09-25T04:07:37 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
ab3367e2026-09-25 auto-data-snapshot: 2026-09-25T00:34:03 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
6b75f282026-09-24 auto-data-snapshot: 2026-09-24T22:31:34 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
e2c37c92026-09-24 auto-data-snapshot: 2026-09-24T18:27:35 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
7e3f0002026-09-24 auto-data-snapshot: 2026-09-24T16:24:12 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
dd68a8c2026-09-24 afternoon CRE update 2026-09-24 -
d5369802026-09-24 auto-data-snapshot: 2026-09-24T12:18:37 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
85118112026-09-24 auto-data-snapshot: 2026-09-24T10:15:55 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
0e8c66b2026-09-24 auto-data-snapshot: 2026-09-24T09:12:24 (3 data files) — data/buildout-listings.json data/lyonstahl-listings.json data/westmac-listings.json -
b7497272026-09-24 auto-data-snapshot: 2026-09-24T07:06:26 (1 data files) — data/alerts-state.json -
5cc179f2026-09-24 auto-data-snapshot: 2026-09-24T06:34:34 (12 data files) — data/.loan-officers-fingerprint data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json -
050716f2026-09-24 loan-officers: daily DRE refresh (5171 officers) -
309989e2026-09-24 auto-data-snapshot: 2026-09-24T06:02:25 (2 data files) — data/listings.json data/ranked.json -
76528542026-09-24 auto-data-snapshot: 2026-09-24T05:30:55 (1 data files) — data/listings.json -
96624192026-09-24 auto-data-snapshot: 2026-09-24T04:27:32 (5 data files) — data/brokers-snapshot.json data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json data/ranked.json -
99ee4622026-09-24 auto-data-snapshot: 2026-09-24T00:47:39 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
1d1d09a2026-09-24 auto-data-snapshot: 2026-09-24T00:15:56 (1 data files) — data/condos-redfin.json -
7bc47d52026-09-23 auto-data-snapshot: 2026-09-23T22:10:19 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
fd771c12026-09-23 auto-data-snapshot: 2026-09-23T18:30:30 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
36d4d0c2026-09-23 auto-data-snapshot: 2026-09-23T16:24:32 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
0cc031f2026-09-23 afternoon CRE update 2026-09-23 -
5ddda1e2026-09-23 chore: lint, refactor (shared normalizeCrexiId), v0.26.1 (session close TK-12033) -
0aa4c7e2026-09-23 auto-data-snapshot: 2026-09-23T12:42:16 (8 data files) — data/condos-redfin.json data/crcp-data-freshness-state.json data/crcp-drift-state.json data/crexi-progress.json data/crexi-queue.json -
cd843132026-09-23 CRCP crexi DB scraper: harden per Kimi review — scalar results parsed only after stripping the boxed preamble, 'Listed by' keeps $ in names, strips a same-line price, word-bounded, never locks the agent name in as the firm (TK-12033) -
46f77212026-09-23 CRCP crexi DB scraper: count brokers actually INSERTED on --apply (summary said 0 while 4 landed) (TK-12033) -
e778fe02026-09-23 CRCP crexi DB scraper: also strip a leading 'NNN SqFt' marketing prefix from detail addresses (TK-12033) -
de855502026-09-23 auto-data-snapshot: 2026-09-23T12:09:58 (7 data files) — data/buildout-listings.json data/crcp-data-freshness-state.json data/crcp-drift-state.json data/crexi-queue.json data/latest.json -
5d363672026-09-23 CRCP crexi DB scraper: parse openclaw CLI output past its stdout preamble, 'Listed by' as primary firm source, measured 0-card diagnostics, 6s SPA settle (TK-12033) -
6c44ca02026-09-23 CRCP data: repair 47 crexi rows minted with v2 'sales-' id prefix (id crxN, numeric source URL) + re-rank (TK-12033) -
9b71f502026-09-23 CRCP crexi: normalize v2 'sales-N' ids to bare N + pass zip through (both extractors); DB scraper on new /search/ scheme (TK-12033) -
94a236d2026-09-23 auto-data-snapshot: 2026-09-23T10:03:20 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
3735dc52026-09-23 auto-data-snapshot: 2026-09-23T08:59:35 (1 data files) — data/ranked.json -
4dfd4cc2026-09-23 auto-data-snapshot: 2026-09-23T07:25:20 (1 data files) — data/alerts-state.json -
41358bf2026-09-23 auto-data-snapshot: 2026-09-23T06:53:48 (4 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json data/showcase-listings.json -
91d95772026-09-23 auto-data-snapshot: 2026-09-23T06:21:53 (10 data files) — data/.loan-officers-fingerprint data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json -
8b33af52026-09-23 loan-officers: daily DRE refresh (5094 officers) -
848edc32026-09-23 auto-data-snapshot: 2026-09-23T05:50:13 (1 data files) — data/listings.json -
65ef8e12026-09-23 auto-data-snapshot: 2026-09-23T04:15:24 (5 data files) — data/brokers-snapshot.json data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json data/ranked.json -
8eb74f62026-09-23 auto-data-snapshot: 2026-09-23T00:35:48 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
92fe3392026-09-22 auto-data-snapshot: 2026-09-22T22:30:10 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
0ccc19a2026-09-22 auto-data-snapshot: 2026-09-22T18:19:13 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
6e62cee2026-09-22 auto-data-snapshot: 2026-09-22T17:15:32 (1 data files) — data/ranked.json -
a9a5a982026-09-22 auto-data-snapshot: 2026-09-22T16:42:26 (3 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json -
766c2322026-09-22 TK-12033: add data-freshness half to crcp-drift-canary + a gated one-command data sync script -
85a7cad2026-09-22 auto-data-snapshot: 2026-09-22T16:09:18 (4 data files) — data/crcp-data-freshness-state.json data/crcp-drift-state.json data/latest.json data/ranked.json -
52b68ab2026-09-22 auto-data-snapshot: 2026-09-22T15:36:13 (3 data files) — data/last-refresh.json data/listings.json data/ranked.json -
b2acc842026-09-22 Fix Crexi extractor for universal-search/v2 API (json.items + new schema + CA-state gate); unblocks stale feed -
9a4acb82026-09-22 afternoon CRE update 2026-09-22 -
6a15d6a2026-09-22 auto-data-snapshot: 2026-09-22T12:15:47 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e4ae1592026-09-22 auto-data-snapshot: 2026-09-22T10:04:06 (2 data files) — data/crcp-drift-state.json data/latest.json -
1e6d8dc2026-09-22 auto-data-snapshot: 2026-09-22T09:54:34 (3 data files) — data/alerts-state.json data/crcp-drift-state.json data/latest.json -
b72c3562026-09-22 auto-data-snapshot: 2026-09-22T06:51:20 (2 data files) — data/crcp-drift-state.json data/latest.json -
64c4a932026-09-22 auto-data-snapshot: 2026-09-22T06:44:53 (2 data files) — data/crcp-drift-state.json data/latest.json -
5fb0fae2026-09-21 auto-data-snapshot: 2026-09-21T17:27:28 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
cb93b1c2026-09-21 auto-data-snapshot: 2026-09-21T16:51:55 (2 data files) — data/crcp-drift-state.json data/latest.json -
45fb4a72026-09-21 auto-data-snapshot: 2026-09-21T16:01:25 (2 data files) — data/crcp-drift-state.json data/latest.json -
9992d732026-09-21 auto-data-snapshot: 2026-09-21T15:19:42 (2 data files) — data/crcp-drift-state.json data/latest.json -
fa226ab2026-09-21 afternoon CRE update 2026-09-21 -
d9ec8c42026-09-21 auto-data-snapshot: 2026-09-21T12:37:32 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
99b8f052026-09-21 auto-data-snapshot: 2026-09-21T09:21:33 (2 data files) — data/crcp-drift-state.json data/latest.json -
c2df95c2026-09-21 weekly Crexi refresh 2026-09-21 -
1c2a1aa2026-09-21 auto-data-snapshot: 2026-09-21T07:12:32 (1 data files) — data/alerts-state.json -
2f7d4112026-09-21 weekly unwarrantable-condos report 2026-09-21 -
e752abb2026-09-21 auto-data-snapshot: 2026-09-21T06:39:23 (5 data files) — data/condo-brokers.json data/condos-redfin.json data/map-points.json data/sfr-redfin.json data/valley-pools.json -
a5181fc2026-09-21 auto-data-snapshot: 2026-09-21T06:06:14 (1 data files) — data/ranked.json -
1cf9a212026-09-21 auto-data-snapshot: 2026-09-21T05:33:35 (1 data files) — data/listings.json -
c1612f32026-09-21 auto-data-snapshot: 2026-09-21T04:28:28 (2 data files) — data/brokers-snapshot.json data/ranked.json -
4bc94732026-09-21 auto-data-snapshot: 2026-09-21T03:22:12 (2 data files) — data/crcp-drift-state.json data/latest.json -
f5e02522026-09-21 auto-data-snapshot: 2026-09-21T00:35:04 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
94b888d2026-09-20 auto-data-snapshot: 2026-09-20T21:47:38 (2 data files) — data/crcp-drift-state.json data/latest.json -
ac921012026-09-20 auto-data-snapshot: 2026-09-20T18:25:19 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e9eed582026-09-20 auto-data-snapshot: 2026-09-20T15:36:19 (2 data files) — data/crcp-drift-state.json data/latest.json -
20ef79e2026-09-20 afternoon CRE update 2026-09-20 -
1eb740f2026-09-20 auto-data-snapshot: 2026-09-20T12:15:15 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
6af48202026-09-20 auto-data-snapshot: 2026-09-20T09:27:07 (2 data files) — data/crcp-drift-state.json data/latest.json -
3f7f7362026-09-20 auto-data-snapshot: 2026-09-20T07:15:24 (1 data files) — data/alerts-state.json -
db16be32026-09-20 auto-data-snapshot: 2026-09-20T06:42:09 (4 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json data/valley-pools.json -
25418422026-09-20 auto-data-snapshot: 2026-09-20T06:08:12 (2 data files) — data/condos-redfin.json data/ranked.json -
37ede352026-09-20 auto-data-snapshot: 2026-09-20T05:34:32 (1 data files) — data/listings.json -
284eb3a2026-09-20 auto-data-snapshot: 2026-09-20T04:26:57 (2 data files) — data/brokers-snapshot.json data/ranked.json -
3fed5f72026-09-20 auto-data-snapshot: 2026-09-20T03:19:32 (2 data files) — data/crcp-drift-state.json data/latest.json -
1780af22026-09-20 auto-data-snapshot: 2026-09-20T00:31:26 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
210331c2026-09-19 auto-data-snapshot: 2026-09-19T21:44:50 (2 data files) — data/crcp-drift-state.json data/latest.json -
144a1942026-09-19 auto-data-snapshot: 2026-09-19T18:28:04 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
3795c742026-09-19 auto-data-snapshot: 2026-09-19T15:48:40 (2 data files) — data/crcp-drift-state.json data/latest.json -
6b8663c2026-09-19 afternoon CRE update 2026-09-19 -
e97697a2026-09-19 auto-data-snapshot: 2026-09-19T12:38:08 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
c1f84622026-09-19 auto-data-snapshot: 2026-09-19T09:27:32 (2 data files) — data/crcp-drift-state.json data/latest.json -
b7493fe2026-09-19 auto-data-snapshot: 2026-09-19T07:20:19 (1 data files) — data/alerts-state.json -
77514482026-09-19 auto-data-snapshot: 2026-09-19T06:48:50 (7 data files) — data/.crexi-broker-done.json data/buildout-listings.json data/encore-listings.json data/lyonstahl-listings.json data/showcase-listings.json -
2b84f582026-09-19 auto-data-snapshot: 2026-09-19T06:16:43 (6 data files) — data/.loan-officers-fingerprint data/condos-redfin.json data/map-points.json data/ranked.json data/sfr-redfin.json -
9b2be2a2026-09-19 loan-officers: daily DRE refresh (5042 officers) -
2b3766d2026-09-19 auto-data-snapshot: 2026-09-19T05:44:32 (1 data files) — data/listings.json -
f3ec22c2026-09-19 auto-data-snapshot: 2026-09-19T04:40:20 (2 data files) — data/brokers-snapshot.json data/ranked.json -
e158d542026-09-19 auto-data-snapshot: 2026-09-19T03:36:55 (2 data files) — data/crcp-drift-state.json data/latest.json -
46b43b72026-09-19 auto-data-snapshot: 2026-09-19T00:26:16 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
d156f302026-09-18 auto-data-snapshot: 2026-09-18T21:47:54 (2 data files) — data/crcp-drift-state.json data/latest.json -
d0b8cab2026-09-18 auto-data-snapshot: 2026-09-18T18:37:36 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e0215482026-09-18 auto-data-snapshot: 2026-09-18T15:26:25 (2 data files) — data/crcp-drift-state.json data/latest.json -
be0c49d2026-09-18 fix(sfr): upsert arbiter must be source (URL), not id — kills ~4,900 sfr_source_key dupe-key errors -
aa6fd572026-09-18 afternoon CRE update 2026-09-18 -
a7ed04a2026-09-18 auto-data-snapshot: 2026-09-18T12:40:33 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
da2b5582026-09-18 auto-data-snapshot: 2026-09-18T09:26:51 (2 data files) — data/crcp-drift-state.json data/latest.json -
fcbda792026-09-18 auto-data-snapshot: 2026-09-18T07:17:32 (1 data files) — data/alerts-state.json -
bece6ac2026-09-18 auto-data-snapshot: 2026-09-18T06:45:31 (13 data files) — data/.crexi-broker-done.json data/.loan-officers-fingerprint data/buildout-listings.json data/condos-redfin.json data/encore-listings.json -
9dd09fc2026-09-18 loan-officers: daily DRE refresh (5006 officers) -
4e546ef2026-09-18 auto-data-snapshot: 2026-09-18T05:41:24 (1 data files) — data/listings.json -
ee3952d2026-09-18 auto-data-snapshot: 2026-09-18T04:37:40 (2 data files) — data/brokers-snapshot.json data/ranked.json -
61f4e5b2026-09-18 auto-data-snapshot: 2026-09-18T03:33:53 (2 data files) — data/crcp-drift-state.json data/latest.json -
de9a42b2026-09-18 auto-data-snapshot: 2026-09-18T00:21:36 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
a59913d2026-09-17 auto-data-snapshot: 2026-09-17T21:42:36 (2 data files) — data/crcp-drift-state.json data/latest.json -
61fa2e82026-09-17 auto-data-snapshot: 2026-09-17T18:29:30 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
0a1ed4c2026-09-17 auto-data-snapshot: 2026-09-17T15:48:34 (2 data files) — data/crcp-drift-state.json data/latest.json -
5239b972026-09-17 afternoon CRE update 2026-09-17 -
eed0b752026-09-17 auto-data-snapshot: 2026-09-17T12:37:18 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
a6d64172026-09-17 auto-data-snapshot: 2026-09-17T09:20:48 (2 data files) — data/crcp-drift-state.json data/latest.json -
fcb55922026-09-17 auto-data-snapshot: 2026-09-17T07:44:57 (3 data files) — data/buildout-listings.json data/lyonstahl-listings.json data/westmac-listings.json -
70de3d62026-09-17 auto-data-snapshot: 2026-09-17T07:12:37 (1 data files) — data/alerts-state.json -
cf9902f2026-09-17 auto-data-snapshot: 2026-09-17T06:40:35 (4 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json data/valley-pools.json -
2df82ba2026-09-17 auto-data-snapshot: 2026-09-17T06:08:13 (2 data files) — data/condos-redfin.json data/ranked.json -
5886f792026-09-17 auto-data-snapshot: 2026-09-17T05:36:32 (1 data files) — data/listings.json -
1d5eebb2026-09-17 auto-data-snapshot: 2026-09-17T04:30:36 (2 data files) — data/brokers-snapshot.json data/ranked.json -
476b4fc2026-09-17 auto-data-snapshot: 2026-09-17T03:26:49 (2 data files) — data/crcp-drift-state.json data/latest.json -
c9c469a2026-09-17 auto-data-snapshot: 2026-09-17T00:15:59 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
15a07082026-09-16 auto-data-snapshot: 2026-09-16T21:37:03 (2 data files) — data/crcp-drift-state.json data/latest.json -
69ff3932026-09-16 auto-data-snapshot: 2026-09-16T18:26:15 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
f5c57c22026-09-16 auto-data-snapshot: 2026-09-16T15:43:40 (2 data files) — data/crcp-drift-state.json data/latest.json -
30f2e0b2026-09-16 afternoon CRE update 2026-09-16 -
cc9538b2026-09-16 auto-data-snapshot: 2026-09-16T12:19:41 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
025c9022026-09-16 auto-data-snapshot: 2026-09-16T09:33:20 (2 data files) — data/crcp-drift-state.json data/latest.json -
60208c22026-09-16 auto-data-snapshot: 2026-09-16T07:20:09 (1 data files) — data/alerts-state.json -
a2983782026-09-16 auto-data-snapshot: 2026-09-16T06:48:17 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
896cbd92026-09-16 auto-data-snapshot: 2026-09-16T06:15:51 (4 data files) — data/.loan-officers-fingerprint data/condos-redfin.json data/ranked.json data/valley-pools.json -
8326c4a2026-09-16 loan-officers: daily DRE refresh (4955 officers) -
d28e0db2026-09-16 auto-data-snapshot: 2026-09-16T05:44:01 (1 data files) — data/listings.json -
9da5d012026-09-16 auto-data-snapshot: 2026-09-16T04:39:34 (2 data files) — data/brokers-snapshot.json data/ranked.json -
50e12562026-09-16 auto-data-snapshot: 2026-09-16T03:35:57 (2 data files) — data/crcp-drift-state.json data/latest.json -
24561262026-09-16 auto-data-snapshot: 2026-09-16T00:24:38 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
71438092026-09-15 auto-data-snapshot: 2026-09-15T21:46:01 (2 data files) — data/crcp-drift-state.json data/latest.json -
8fad6412026-09-15 security: remove served source-leak backups (.css/.js .pre-3view.bak) — yoloforever cycle 4 -
f0308192026-09-15 auto-data-snapshot: 2026-09-15T18:34:22 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
26b26e32026-09-15 auto-data-snapshot: 2026-09-15T15:48:53 (2 data files) — data/crcp-drift-state.json data/latest.json -
729106a2026-09-15 chore: commit code deployed in 2026-09-15 fleet push -
9fe372b2026-09-15 afternoon CRE update 2026-09-15 -
081f9602026-09-15 auto-data-snapshot: 2026-09-15T12:33:48 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
c7c81f22026-09-15 auto-data-snapshot: 2026-09-15T09:48:56 (2 data files) — data/crcp-drift-state.json data/latest.json -
fbbf8522026-09-15 auto-data-snapshot: 2026-09-15T07:09:15 (1 data files) — data/alerts-state.json -
fd6621d2026-09-15 auto-data-snapshot: 2026-09-15T06:37:28 (11 data files) — data/.loan-officers-fingerprint data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json -
aa029272026-09-15 loan-officers: daily DRE refresh (4928 officers) -
21db0c22026-09-15 auto-data-snapshot: 2026-09-15T06:04:48 (1 data files) — data/ranked.json -
98b99ff2026-09-15 auto-data-snapshot: 2026-09-15T05:32:03 (1 data files) — data/listings.json -
9e877552026-09-15 auto-data-snapshot: 2026-09-15T04:27:49 (2 data files) — data/brokers-snapshot.json data/ranked.json -
99cec032026-09-15 auto-data-snapshot: 2026-09-15T03:24:10 (2 data files) — data/crcp-drift-state.json data/latest.json -
819ebee2026-09-15 auto-data-snapshot: 2026-09-15T00:44:56 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
fc794382026-09-15 auto-data-snapshot: 2026-09-15T00:13:09 (1 data files) — data/condos-redfin.json -
9feb7e82026-09-14 auto-data-snapshot: 2026-09-14T21:33:50 (2 data files) — data/crcp-drift-state.json data/latest.json -
d53e2e72026-09-14 auto-data-snapshot: 2026-09-14T18:23:01 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
8719ba52026-09-14 auto-data-snapshot: 2026-09-14T15:41:36 (2 data files) — data/crcp-drift-state.json data/latest.json -
ba726912026-09-14 afternoon CRE update 2026-09-14 -
2c126ba2026-09-14 auto-data-snapshot: 2026-09-14T12:23:25 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
83e22d52026-09-14 auto-data-snapshot: 2026-09-14T09:19:35 (5 data files) — data/buildout-listings.json data/crcp-drift-state.json data/latest.json data/lyonstahl-listings.json data/westmac-listings.json -
96b11f32026-09-14 weekly Crexi refresh 2026-09-14 -
c8a0e192026-09-14 auto-data-snapshot: 2026-09-14T07:18:26 (1 data files) — data/alerts-state.json -
a29de9a2026-09-14 weekly unwarrantable-condos report 2026-09-14 -
9ad4cc42026-09-14 auto-data-snapshot: 2026-09-14T06:45:42 (11 data files) — data/buildout-listings.json data/condo-brokers.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json -
39876fe2026-09-14 auto-data-snapshot: 2026-09-14T06:13:15 (2 data files) — data/condos-redfin.json data/ranked.json -
0bb9d8f2026-09-14 auto-data-snapshot: 2026-09-14T05:41:34 (1 data files) — data/listings.json -
53d616d2026-09-14 auto-data-snapshot: 2026-09-14T05:09:49 (2 data files) — data/crcp-drift-state.json data/latest.json -
47c83b22026-09-14 auto-data-snapshot: 2026-09-14T04:37:30 (2 data files) — data/brokers-snapshot.json data/ranked.json -
7aa3f472026-09-14 auto-data-snapshot: 2026-09-14T00:22:42 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
50e2b412026-09-13 auto-data-snapshot: 2026-09-13T22:45:28 (2 data files) — data/crcp-drift-state.json data/latest.json -
9a263a52026-09-13 auto-data-snapshot: 2026-09-13T22:30:29 (2 data files) — data/crcp-drift-state.json data/latest.json -
0848ada2026-09-13 auto-data-snapshot: 2026-09-13T18:46:28 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
af320682026-09-13 auto-data-snapshot: 2026-09-13T18:14:20 (1 data files) — data/condos-redfin.json -
287af712026-09-13 auto-data-snapshot: 2026-09-13T16:30:12 (2 data files) — data/crcp-drift-state.json data/latest.json -
09148f82026-09-13 afternoon CRE update 2026-09-13 -
0c519c92026-09-13 auto-data-snapshot: 2026-09-13T12:43:31 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
2b55fb12026-09-13 auto-data-snapshot: 2026-09-13T12:11:10 (1 data files) — data/condos-redfin.json -
addce3a2026-09-13 auto-data-snapshot: 2026-09-13T10:00:49 (2 data files) — data/crcp-drift-state.json data/latest.json -
7b693ec2026-09-13 auto-data-snapshot: 2026-09-13T09:49:22 (2 data files) — data/crcp-drift-state.json data/latest.json -
db833462026-09-13 auto-data-snapshot: 2026-09-13T07:02:23 (2 data files) — data/.crexi-broker-done.json data/alerts-state.json -
2f2e6ee2026-09-13 auto-data-snapshot: 2026-09-13T06:28:15 (12 data files) — data/.crexi-broker-done.json data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json -
2d7fc6e2026-09-13 auto-data-snapshot: 2026-09-13T05:55:37 (1 data files) — data/listings.json -
277b9c22026-09-13 auto-data-snapshot: 2026-09-13T04:15:01 (2 data files) — data/brokers-snapshot.json data/ranked.json -
e46a6e62026-09-13 auto-data-snapshot: 2026-09-13T03:42:21 (2 data files) — data/crcp-drift-state.json data/latest.json -
0bae5522026-09-13 auto-data-snapshot: 2026-09-13T00:21:19 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
232148e2026-09-12 auto-data-snapshot: 2026-09-12T21:34:07 (2 data files) — data/crcp-drift-state.json data/latest.json -
e1c25ee2026-09-12 auto-data-snapshot: 2026-09-12T18:17:16 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
197f0062026-09-12 auto-data-snapshot: 2026-09-12T15:35:41 (2 data files) — data/crcp-drift-state.json data/latest.json -
7773c4f2026-09-12 afternoon CRE update 2026-09-12 -
7e19d762026-09-12 auto-data-snapshot: 2026-09-12T12:21:53 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
65c2ffd2026-09-12 auto-data-snapshot: 2026-09-12T10:01:53 (3 data files) — data/buildout-listings.json data/lyonstahl-listings.json data/westmac-listings.json -
8dcd39e2026-09-12 auto-data-snapshot: 2026-09-12T09:28:54 (2 data files) — data/crcp-drift-state.json data/latest.json -
ba427772026-09-12 auto-data-snapshot: 2026-09-12T07:18:58 (1 data files) — data/alerts-state.json -
306c8ef2026-09-12 auto-data-snapshot: 2026-09-12T06:45:13 (6 data files) — data/.loan-officers-fingerprint data/condos-redfin.json data/map-points.json data/ranked.json data/sfr-redfin.json -
44152fe2026-09-12 loan-officers: daily DRE refresh (4842 officers) -
cd9fe082026-09-12 auto-data-snapshot: 2026-09-12T05:38:11 (1 data files) — data/listings.json -
68326d52026-09-12 auto-data-snapshot: 2026-09-12T04:26:59 (2 data files) — data/brokers-snapshot.json data/ranked.json -
d2803d82026-09-12 auto-data-snapshot: 2026-09-12T03:53:49 (2 data files) — data/crcp-drift-state.json data/latest.json -
7669ef72026-09-12 auto-data-snapshot: 2026-09-12T00:36:40 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
1a8e8592026-09-11 auto-data-snapshot: 2026-09-11T21:52:42 (2 data files) — data/crcp-drift-state.json data/latest.json -
f8d2b6f2026-09-11 auto-data-snapshot: 2026-09-11T18:34:41 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
0bbdc3f2026-09-11 auto-data-snapshot: 2026-09-11T15:49:18 (2 data files) — data/crcp-drift-state.json data/latest.json -
59d3d672026-09-11 afternoon CRE update 2026-09-11 -
2c8626d2026-09-11 auto-data-snapshot: 2026-09-11T12:47:38 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
0656f3d2026-09-11 auto-data-snapshot: 2026-09-11T12:03:30 (1 data files) — data/condos-redfin.json -
c432b702026-09-11 auto-data-snapshot: 2026-09-11T09:31:49 (2 data files) — data/crcp-drift-state.json data/latest.json -
cbbb29b2026-09-11 auto-data-snapshot: 2026-09-11T07:11:09 (1 data files) — data/alerts-state.json -
d9689952026-09-11 auto-data-snapshot: 2026-09-11T06:38:19 (5 data files) — data/.loan-officers-fingerprint data/condos-redfin.json data/map-points.json data/sfr-redfin.json data/valley-pools.json -
182ac772026-09-11 loan-officers: daily DRE refresh (4789 officers) -
c41a8782026-09-11 auto-data-snapshot: 2026-09-11T06:04:43 (1 data files) — data/ranked.json -
d7985462026-09-11 auto-data-snapshot: 2026-09-11T05:32:16 (1 data files) — data/listings.json -
dd515c42026-09-11 auto-data-snapshot: 2026-09-11T04:24:06 (2 data files) — data/brokers-snapshot.json data/ranked.json -
73fef302026-09-11 auto-data-snapshot: 2026-09-11T03:51:39 (2 data files) — data/crcp-drift-state.json data/latest.json -
871bd272026-09-11 auto-data-snapshot: 2026-09-11T00:34:33 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
bd7a6dc2026-09-10 auto-data-snapshot: 2026-09-10T21:50:55 (2 data files) — data/crcp-drift-state.json data/latest.json -
88ed4432026-09-10 auto-data-snapshot: 2026-09-10T18:07:04 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
9966f822026-09-10 auto-data-snapshot: 2026-09-10T15:54:39 (2 data files) — data/crcp-drift-state.json data/latest.json -
eb04e8b2026-09-10 afternoon CRE update 2026-09-10 -
bc4b39f2026-09-10 auto-data-snapshot: 2026-09-10T12:25:41 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
6a5ee8e2026-09-10 auto-data-snapshot: 2026-09-10T09:22:46 (2 data files) — data/crcp-drift-state.json data/latest.json -
862ae252026-09-10 auto-data-snapshot: 2026-09-10T07:00:36 (2 data files) — data/alerts-state.json data/showcase-listings.json -
0bfd15e2026-09-10 auto-data-snapshot: 2026-09-10T06:27:49 (12 data files) — data/.loan-officers-fingerprint data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json -
83b574d2026-09-10 loan-officers: daily DRE refresh (4647 officers) -
3f82a6e2026-09-10 auto-data-snapshot: 2026-09-10T05:55:20 (1 data files) — data/listings.json -
e6dcc4d2026-09-10 auto-data-snapshot: 2026-09-10T04:15:51 (2 data files) — data/brokers-snapshot.json data/ranked.json -
f5b1e492026-09-10 auto-data-snapshot: 2026-09-10T03:43:17 (2 data files) — data/crcp-drift-state.json data/latest.json -
f56fb2c2026-09-10 auto-data-snapshot: 2026-09-10T00:28:57 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
2a5eea12026-09-09 auto-data-snapshot: 2026-09-09T21:46:00 (2 data files) — data/crcp-drift-state.json data/latest.json -
b316da22026-09-09 auto-data-snapshot: 2026-09-09T18:26:03 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e0213b72026-09-09 auto-data-snapshot: 2026-09-09T15:36:04 (2 data files) — data/crcp-drift-state.json data/latest.json -
f73cf282026-09-09 afternoon CRE update 2026-09-09 -
673d3da2026-09-09 auto-data-snapshot: 2026-09-09T12:49:50 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
c1a06c12026-09-09 auto-data-snapshot: 2026-09-09T12:16:55 (1 data files) — data/condos-redfin.json -
e9df7d62026-09-09 auto-data-snapshot: 2026-09-09T09:32:15 (2 data files) — data/crcp-drift-state.json data/latest.json -
411c2db2026-09-09 auto-data-snapshot: 2026-09-09T07:22:07 (1 data files) — data/alerts-state.json -
58769a32026-09-09 auto-data-snapshot: 2026-09-09T06:50:05 (6 data files) — data/buildout-listings.json data/encore-listings.json data/lyonstahl-listings.json data/showcase-listings.json data/trinity-listings.json -
c1f04502026-09-09 auto-data-snapshot: 2026-09-09T06:17:53 (6 data files) — data/.loan-officers-fingerprint data/condos-redfin.json data/map-points.json data/ranked.json data/sfr-redfin.json -
e5d83d62026-09-09 loan-officers: daily DRE refresh (4609 officers) -
9ff08102026-09-09 auto-data-snapshot: 2026-09-09T05:45:52 (1 data files) — data/listings.json -
54f0a412026-09-09 auto-data-snapshot: 2026-09-09T04:40:57 (2 data files) — data/brokers-snapshot.json data/ranked.json -
7c1532b2026-09-09 auto-data-snapshot: 2026-09-09T03:37:19 (2 data files) — data/crcp-drift-state.json data/latest.json -
c7accb82026-09-09 auto-data-snapshot: 2026-09-09T00:25:51 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
009a5232026-09-08 auto-data-snapshot: 2026-09-08T21:46:57 (2 data files) — data/crcp-drift-state.json data/latest.json -
5d148a42026-09-08 auto-data-snapshot: 2026-09-08T18:35:21 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
d5c09662026-09-08 auto-data-snapshot: 2026-09-08T15:35:04 (2 data files) — data/crcp-drift-state.json data/latest.json -
30704312026-09-08 afternoon CRE update 2026-09-08 -
61dc5ef2026-09-08 auto-data-snapshot: 2026-09-08T12:16:02 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
ad555b72026-09-08 auto-data-snapshot: 2026-09-08T09:40:47 (2 data files) — data/crcp-drift-state.json data/latest.json -
2242aeb2026-09-08 auto-data-snapshot: 2026-09-08T07:07:04 (1 data files) — data/alerts-state.json -
911a1f92026-09-08 auto-data-snapshot: 2026-09-08T06:28:19 (11 data files) — data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json data/map-points.json -
a0e08e82026-09-08 auto-data-snapshot: 2026-09-08T05:50:05 (1 data files) — data/listings.json -
bb2c1022026-09-08 auto-data-snapshot: 2026-09-08T04:33:12 (2 data files) — data/brokers-snapshot.json data/ranked.json -
b328e3d2026-09-08 auto-data-snapshot: 2026-09-08T03:55:22 (2 data files) — data/crcp-drift-state.json data/latest.json -
f0931942026-09-08 auto-data-snapshot: 2026-09-08T00:45:26 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e435f612026-09-08 auto-data-snapshot: 2026-09-08T00:07:00 (1 data files) — data/condos-redfin.json -
6e472522026-09-07 auto-data-snapshot: 2026-09-07T21:35:10 (2 data files) — data/crcp-drift-state.json data/latest.json -
96f9e702026-09-07 auto-data-snapshot: 2026-09-07T18:25:33 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
a033cc82026-09-07 auto-data-snapshot: 2026-09-07T15:53:48 (2 data files) — data/crcp-drift-state.json data/latest.json -
80db6882026-09-07 afternoon CRE update 2026-09-07 -
283bd622026-09-07 auto-data-snapshot: 2026-09-07T12:38:54 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
4a7f4e52026-09-07 auto-data-snapshot: 2026-09-07T09:25:49 (2 data files) — data/crcp-drift-state.json data/latest.json -
8d2c3e92026-09-07 weekly Crexi refresh 2026-09-07 -
6a33d382026-09-07 auto-data-snapshot: 2026-09-07T06:51:38 (1 data files) — data/alerts-state.json -
a8945e02026-09-07 weekly unwarrantable-condos report 2026-09-07 -
559d5552026-09-07 auto-data-snapshot: 2026-09-07T06:12:13 (8 data files) — data/buildout-listings.json data/condos-redfin.json data/lyonstahl-listings.json data/map-points.json data/ranked.json -
83a16942026-09-07 auto-data-snapshot: 2026-09-07T05:33:36 (1 data files) — data/listings.json -
3718dfe2026-09-07 auto-data-snapshot: 2026-09-07T04:15:57 (2 data files) — data/brokers-snapshot.json data/ranked.json -
fd674b92026-09-07 auto-data-snapshot: 2026-09-07T03:37:33 (2 data files) — data/crcp-drift-state.json data/latest.json -
26d97ec2026-09-07 auto-data-snapshot: 2026-09-07T00:25:13 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
71b3ea62026-09-06 auto-data-snapshot: 2026-09-06T21:51:55 (2 data files) — data/crcp-drift-state.json data/latest.json -
3c1e4e32026-09-06 auto-data-snapshot: 2026-09-06T18:40:11 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
3836e872026-09-06 auto-data-snapshot: 2026-09-06T18:01:40 (1 data files) — data/condos-redfin.json -
555051e2026-09-06 auto-data-snapshot: 2026-09-06T15:27:58 (2 data files) — data/crcp-drift-state.json data/latest.json -
b095f202026-09-06 afternoon CRE update 2026-09-06 -
3ffa9642026-09-06 auto-data-snapshot: 2026-09-06T12:54:02 (3 data files) — data/.pre-afternoon-ids.json data/last-refresh.json data/ranked.json -
bf218272026-09-06 auto-data-snapshot: 2026-09-06T12:15:28 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
32312a82026-09-06 auto-data-snapshot: 2026-09-06T09:42:39 (2 data files) — data/crcp-drift-state.json data/latest.json -
5b4565e2026-09-06 auto-data-snapshot: 2026-09-06T07:09:19 (1 data files) — data/alerts-state.json -
b9be90c2026-09-06 auto-data-snapshot: 2026-09-06T06:30:35 (11 data files) — data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json data/map-points.json -
a9e54f82026-09-06 auto-data-snapshot: 2026-09-06T05:51:58 (1 data files) — data/listings.json -
6b6b51e2026-09-06 auto-data-snapshot: 2026-09-06T04:34:41 (2 data files) — data/brokers-snapshot.json data/ranked.json -
2753d712026-09-06 auto-data-snapshot: 2026-09-06T03:18:08 (2 data files) — data/crcp-drift-state.json data/latest.json -
e385d852026-09-06 auto-data-snapshot: 2026-09-06T00:44:47 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
f71e66a2026-09-06 auto-data-snapshot: 2026-09-06T00:06:24 (1 data files) — data/condos-redfin.json -
4859c9b2026-09-05 auto-data-snapshot: 2026-09-05T21:33:11 (2 data files) — data/crcp-drift-state.json data/latest.json -
23274d12026-09-05 auto-data-snapshot: 2026-09-05T18:21:36 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
d52d8ea2026-09-05 auto-data-snapshot: 2026-09-05T15:48:21 (2 data files) — data/crcp-drift-state.json data/latest.json -
11237082026-09-05 afternoon CRE update 2026-09-05 -
1ad48de2026-09-05 auto-data-snapshot: 2026-09-05T12:36:37 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
b36e4b72026-09-05 auto-data-snapshot: 2026-09-05T09:24:41 (2 data files) — data/crcp-drift-state.json data/latest.json -
8e0e3952026-09-05 auto-data-snapshot: 2026-09-05T08:46:42 (5 data files) — data/buildout-listings.json data/encore-listings.json data/lyonstahl-listings.json data/trinity-listings.json data/westmac-listings.json -
b8af63d2026-09-05 auto-data-snapshot: 2026-09-05T06:52:09 (4 data files) — data/alerts-state.json data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
ff091742026-09-05 auto-data-snapshot: 2026-09-05T06:13:03 (8 data files) — data/.loan-officers-fingerprint data/buildout-listings.json data/condos-redfin.json data/lyonstahl-listings.json data/ranked.json -
0c1738e2026-09-05 loan-officers: daily DRE refresh (4534 officers) -
885d89a2026-09-05 auto-data-snapshot: 2026-09-05T05:34:51 (1 data files) — data/listings.json -
8d6e7ee2026-09-05 auto-data-snapshot: 2026-09-05T04:17:39 (2 data files) — data/brokers-snapshot.json data/ranked.json -
813b4ff2026-09-05 auto-data-snapshot: 2026-09-05T03:39:28 (2 data files) — data/crcp-drift-state.json data/latest.json -
923c62b2026-09-05 auto-data-snapshot: 2026-09-05T00:27:41 (4 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json scripts/com.steve.crexi-accrual.plist -
2c634db2026-09-04 auto-data-snapshot: 2026-09-04T21:53:46 (2 data files) — data/crcp-drift-state.json data/latest.json -
78633332026-09-04 auto-data-snapshot: 2026-09-04T18:42:47 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
f861edd2026-09-04 auto-data-snapshot: 2026-09-04T18:04:25 (1 data files) — data/condos-redfin.json -
41c23a12026-09-04 auto-data-snapshot: 2026-09-04T15:31:50 (2 data files) — data/crcp-drift-state.json data/latest.json -
6f4a3f52026-09-04 afternoon CRE update 2026-09-04 -
d277d282026-09-04 auto-data-snapshot: 2026-09-04T12:55:58 (3 data files) — data/.pre-afternoon-ids.json data/last-refresh.json data/ranked.json -
f3edcdf2026-09-04 auto-data-snapshot: 2026-09-04T12:10:54 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
aff04ef2026-09-04 auto-data-snapshot: 2026-09-04T09:31:20 (2 data files) — data/crcp-drift-state.json data/latest.json -
62e5d422026-09-04 auto-data-snapshot: 2026-09-04T07:10:31 (1 data files) — data/alerts-state.json -
f79c5e62026-09-04 auto-data-snapshot: 2026-09-04T06:32:13 (13 data files) — data/.crexi-broker-done.json data/.loan-officers-fingerprint data/buildout-listings.json data/condos-redfin.json data/encore-listings.json -
c667d6b2026-09-04 loan-officers: daily DRE refresh (4503 officers) -
50d90f22026-09-04 auto-data-snapshot: 2026-09-04T05:53:32 (2 data files) — data/listings.json data/ranked.json -
f18db642026-09-04 auto-data-snapshot: 2026-09-04T04:33:28 (2 data files) — data/brokers-snapshot.json data/ranked.json -
5aed3b72026-09-04 auto-data-snapshot: 2026-09-04T03:52:16 (2 data files) — data/crcp-drift-state.json data/latest.json -
8a03ba92026-09-04 auto-data-snapshot: 2026-09-04T00:35:53 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
2f09f832026-09-03 auto-data-snapshot: 2026-09-03T21:26:08 (2 data files) — data/crcp-drift-state.json data/latest.json -
87c95f82026-09-03 auto-data-snapshot: 2026-09-03T18:17:45 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
1c67fcc2026-09-03 auto-data-snapshot: 2026-09-03T15:45:08 (2 data files) — data/crcp-drift-state.json data/latest.json -
1f99af72026-09-03 afternoon CRE update 2026-09-03 -
8ee7b842026-09-03 auto-data-snapshot: 2026-09-03T12:32:21 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
b59116b2026-09-03 auto-data-snapshot: 2026-09-03T09:53:05 (2 data files) — data/crcp-drift-state.json data/latest.json -
1d84a992026-09-03 auto-data-snapshot: 2026-09-03T07:17:12 (1 data files) — data/alerts-state.json -
51288d52026-09-03 auto-data-snapshot: 2026-09-03T06:39:23 (10 data files) — data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json data/map-points.json -
c83fe4d2026-09-03 auto-data-snapshot: 2026-09-03T06:01:09 (2 data files) — data/listings.json data/ranked.json -
bd6c5af2026-09-03 auto-data-snapshot: 2026-09-03T05:23:20 (1 data files) — data/listings.json -
bb9397d2026-09-03 auto-data-snapshot: 2026-09-03T04:44:57 (2 data files) — data/brokers-snapshot.json data/ranked.json -
8bece072026-09-03 auto-data-snapshot: 2026-09-03T03:29:44 (2 data files) — data/crcp-drift-state.json data/latest.json -
4f6539d2026-09-03 auto-data-snapshot: 2026-09-03T00:20:09 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
405cbf52026-09-02 auto-data-snapshot: 2026-09-02T21:48:54 (2 data files) — data/crcp-drift-state.json data/latest.json -
85840e02026-09-02 auto-data-snapshot: 2026-09-02T18:39:50 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
9e16e662026-09-02 auto-data-snapshot: 2026-09-02T18:02:03 (1 data files) — data/condos-redfin.json -
ef712c52026-09-02 auto-data-snapshot: 2026-09-02T16:03:42 (3 data files) — data/buildout-listings.json data/lyonstahl-listings.json data/westmac-listings.json -
15317c32026-09-02 auto-data-snapshot: 2026-09-02T15:21:07 (2 data files) — data/crcp-drift-state.json data/latest.json -
98303ef2026-09-02 afternoon CRE update 2026-09-02 -
bb5337f2026-09-02 auto-data-snapshot: 2026-09-02T12:46:36 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
cfe60572026-09-02 auto-data-snapshot: 2026-09-02T12:07:47 (1 data files) — data/condos-redfin.json -
f24b6502026-09-02 crcp: add firecities.agentabrams.com short-alias to HUB_PAGES (TK-11104) -
dafa2132026-09-02 auto-data-snapshot: 2026-09-02T09:35:20 (2 data files) — data/crcp-drift-state.json data/latest.json -
d62a6182026-09-02 auto-data-snapshot: 2026-09-02T07:10:19 (1 data files) — data/alerts-state.json -
d624a832026-09-02 auto-data-snapshot: 2026-09-02T06:32:31 (5 data files) — data/condos-redfin.json data/map-points.json data/ranked.json data/sfr-redfin.json data/valley-pools.json -
449b0552026-09-02 auto-data-snapshot: 2026-09-02T05:54:41 (2 data files) — data/listings.json data/ranked.json -
01a71252026-09-02 auto-data-snapshot: 2026-09-02T04:39:22 (2 data files) — data/brokers-snapshot.json data/ranked.json -
b3b82e22026-09-02 auto-data-snapshot: 2026-09-02T03:24:05 (2 data files) — data/crcp-drift-state.json data/latest.json -
9ef17162026-09-02 auto-data-snapshot: 2026-09-02T00:52:55 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
191871d2026-09-02 auto-data-snapshot: 2026-09-02T00:14:50 (1 data files) — data/condos-redfin.json -
d164c2b2026-09-01 auto-data-snapshot: 2026-09-01T21:44:50 (2 data files) — data/crcp-drift-state.json data/latest.json -
d69e8502026-09-01 auto-data-snapshot: 2026-09-01T18:38:25 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
31849562026-09-01 auto-data-snapshot: 2026-09-01T15:29:45 (2 data files) — data/crcp-drift-state.json data/latest.json -
80d724f2026-09-01 afternoon CRE update 2026-09-01 -
31002932026-09-01 auto-data-snapshot: 2026-09-01T12:16:45 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
c7950f52026-09-01 auto-data-snapshot: 2026-09-01T09:42:16 (2 data files) — data/crcp-drift-state.json data/latest.json -
bdcce642026-09-01 auto-data-snapshot: 2026-09-01T07:13:20 (1 data files) — data/alerts-state.json -
4ecaee32026-09-01 auto-data-snapshot: 2026-09-01T06:36:17 (11 data files) — data/.loan-officers-fingerprint data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json -
ca6c9c22026-09-01 loan-officers: daily DRE refresh (4502 officers) -
9a6ff502026-09-01 auto-data-snapshot: 2026-09-01T05:58:40 (2 data files) — data/listings.json data/ranked.json -
1316fc12026-09-01 auto-data-snapshot: 2026-09-01T04:43:03 (2 data files) — data/brokers-snapshot.json data/ranked.json -
b9b104a2026-09-01 auto-data-snapshot: 2026-09-01T03:29:10 (2 data files) — data/crcp-drift-state.json data/latest.json -
dcac96e2026-09-01 auto-data-snapshot: 2026-09-01T00:24:29 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
214f7e22026-08-31 auto-data-snapshot: 2026-08-31T21:20:03 (2 data files) — data/crcp-drift-state.json data/latest.json -
fa82b552026-08-31 auto-data-snapshot: 2026-08-31T18:15:28 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
9c6b7742026-08-31 auto-data-snapshot: 2026-08-31T16:59:21 (3 data files) — data/buildout-listings.json data/lyonstahl-listings.json data/westmac-listings.json -
15fcfc32026-08-31 auto-data-snapshot: 2026-08-31T15:44:48 (2 data files) — data/crcp-drift-state.json data/latest.json -
1e9cfd72026-08-31 afternoon CRE update 2026-08-31 -
31115ec2026-08-31 auto-data-snapshot: 2026-08-31T12:34:16 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
cb8aa032026-08-31 auto-data-snapshot: 2026-08-31T09:29:05 (2 data files) — data/crcp-drift-state.json data/latest.json -
6908cc72026-08-31 weekly Crexi refresh 2026-08-31 -
befac522026-08-31 auto-data-snapshot: 2026-08-31T07:01:20 (1 data files) — data/alerts-state.json -
859a3462026-08-31 weekly unwarrantable-condos report 2026-08-31 -
57045762026-08-31 auto-data-snapshot: 2026-08-31T06:23:12 (5 data files) — data/condos-redfin.json data/map-points.json data/ranked.json data/sfr-redfin.json data/valley-pools.json -
6f460dd2026-08-31 auto-data-snapshot: 2026-08-31T05:45:56 (1 data files) — data/listings.json -
f72697b2026-08-31 auto-data-snapshot: 2026-08-31T04:30:23 (2 data files) — data/brokers-snapshot.json data/ranked.json -
c3b631f2026-08-31 auto-data-snapshot: 2026-08-31T03:53:27 (2 data files) — data/crcp-drift-state.json data/latest.json -
321a8e42026-08-31 auto-data-snapshot: 2026-08-31T00:45:11 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
5e0f9d02026-08-31 auto-data-snapshot: 2026-08-31T00:07:16 (1 data files) — data/condos-redfin.json -
e6862c62026-08-30 auto-data-snapshot: 2026-08-30T21:32:01 (2 data files) — data/crcp-drift-state.json data/latest.json -
789a19c2026-08-30 auto-data-snapshot: 2026-08-30T18:26:21 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
66f5ef82026-08-30 auto-data-snapshot: 2026-08-30T15:20:13 (2 data files) — data/crcp-drift-state.json data/latest.json -
dffa4812026-08-30 prove authenticated CRCP header runtime -
091a86c2026-08-30 afternoon CRE update 2026-08-30 -
b9a44e02026-08-30 auto-data-snapshot: 2026-08-30T12:12:38 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
47fc46c2026-08-30 auto-data-snapshot: 2026-08-30T09:43:11 (2 data files) — data/crcp-drift-state.json data/latest.json -
ec80acf2026-08-30 auto-data-snapshot: 2026-08-30T07:15:22 (1 data files) — data/alerts-state.json -
15723632026-08-30 auto-data-snapshot: 2026-08-30T06:38:24 (4 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json data/valley-pools.json -
7ed82672026-08-30 auto-data-snapshot: 2026-08-30T06:00:18 (2 data files) — data/listings.json data/ranked.json -
54f7efa2026-08-30 auto-data-snapshot: 2026-08-30T04:08:11 (2 data files) — data/brokers-snapshot.json data/ranked.json -
8eb07b02026-08-30 auto-data-snapshot: 2026-08-30T03:31:23 (2 data files) — data/crcp-drift-state.json data/latest.json -
54674ac2026-08-30 auto-data-snapshot: 2026-08-30T00:26:44 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
55bed412026-08-29 auto-data-snapshot: 2026-08-29T21:23:03 (2 data files) — data/crcp-drift-state.json data/latest.json -
9d03fe52026-08-29 auto-data-snapshot: 2026-08-29T18:19:19 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
9bd0aa42026-08-29 auto-data-snapshot: 2026-08-29T15:52:29 (2 data files) — data/crcp-drift-state.json data/latest.json -
813ed7e2026-08-29 afternoon CRE update 2026-08-29 -
738f65b2026-08-29 auto-data-snapshot: 2026-08-29T12:47:37 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
f6a33922026-08-29 auto-data-snapshot: 2026-08-29T12:10:50 (1 data files) — data/condos-redfin.json -
884ad8a2026-08-29 auto-data-snapshot: 2026-08-29T09:43:04 (2 data files) — data/crcp-drift-state.json data/latest.json -
31b12e82026-08-29 auto-data-snapshot: 2026-08-29T07:15:37 (1 data files) — data/alerts-state.json -
a714d232026-08-29 auto-data-snapshot: 2026-08-29T06:38:47 (4 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json data/valley-pools.json -
333f30a2026-08-29 auto-data-snapshot: 2026-08-29T06:00:28 (2 data files) — data/listings.json data/ranked.json -
f1a1d242026-08-29 auto-data-snapshot: 2026-08-29T04:08:23 (2 data files) — data/brokers-snapshot.json data/ranked.json -
07c2d602026-08-29 auto-data-snapshot: 2026-08-29T03:31:35 (2 data files) — data/crcp-drift-state.json data/latest.json -
40fcacb2026-08-29 auto-data-snapshot: 2026-08-29T00:25:44 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
28f72d02026-08-28 auto-data-snapshot: 2026-08-28T21:21:29 (2 data files) — data/crcp-drift-state.json data/latest.json -
05211542026-08-28 auto-data-snapshot: 2026-08-28T18:16:57 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
ecfc6102026-08-28 auto-data-snapshot: 2026-08-28T15:48:59 (2 data files) — data/crcp-drift-state.json data/latest.json -
51897df2026-08-28 afternoon CRE update 2026-08-28 -
0d4e9e72026-08-28 auto-data-snapshot: 2026-08-28T12:44:16 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
57ed9dc2026-08-28 auto-data-snapshot: 2026-08-28T12:07:22 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e65ee7c2026-08-28 auto-data-snapshot: 2026-08-28T09:39:28 (2 data files) — data/crcp-drift-state.json data/latest.json -
d7d27972026-08-28 auto-data-snapshot: 2026-08-28T07:08:13 (1 data files) — data/alerts-state.json -
d53702d2026-08-28 auto-data-snapshot: 2026-08-28T06:30:22 (6 data files) — data/.loan-officers-fingerprint data/condos-redfin.json data/map-points.json data/ranked.json data/sfr-redfin.json -
9ba9a3d2026-08-28 loan-officers: daily DRE refresh (4500 officers) -
545ba142026-08-28 auto-data-snapshot: 2026-08-28T05:53:21 (1 data files) — data/listings.json -
f8f684d2026-08-28 auto-data-snapshot: 2026-08-28T04:38:35 (2 data files) — data/brokers-snapshot.json data/ranked.json -
ff26cab2026-08-28 auto-data-snapshot: 2026-08-28T03:24:48 (2 data files) — data/crcp-drift-state.json data/latest.json -
0f9fd272026-08-28 auto-data-snapshot: 2026-08-28T00:19:23 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
ae5b5ad2026-08-27 auto-data-snapshot: 2026-08-27T21:52:04 (2 data files) — data/crcp-drift-state.json data/latest.json -
dc67c1a2026-08-27 auto-data-snapshot: 2026-08-27T18:47:45 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e0e78cd2026-08-27 auto-data-snapshot: 2026-08-27T18:10:50 (1 data files) — data/condos-redfin.json -
823790c2026-08-27 auto-data-snapshot: 2026-08-27T15:43:16 (2 data files) — data/crcp-drift-state.json data/latest.json -
6b295062026-08-27 afternoon CRE update 2026-08-27 -
99ad8b42026-08-27 auto-data-snapshot: 2026-08-27T12:38:09 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
185c3932026-08-27 auto-data-snapshot: 2026-08-27T09:33:34 (2 data files) — data/crcp-drift-state.json data/latest.json -
f1f2e462026-08-27 auto-data-snapshot: 2026-08-27T07:06:07 (1 data files) — data/alerts-state.json -
64f3c632026-08-27 auto-data-snapshot: 2026-08-27T06:28:43 (12 data files) — data/.loan-officers-fingerprint data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json -
706cb3d2026-08-27 loan-officers: daily DRE refresh (4499 officers) -
cd9a30c2026-08-27 auto-data-snapshot: 2026-08-27T05:52:15 (1 data files) — data/listings.json -
005c9dd2026-08-27 auto-data-snapshot: 2026-08-27T04:38:11 (2 data files) — data/brokers-snapshot.json data/ranked.json -
e38871f2026-08-27 TK-10905: fix admin pill overlap at 375px — reposition below header on <=640px screens -
f5bbff12026-08-27 auto-data-snapshot: 2026-08-27T03:25:19 (2 data files) — data/crcp-drift-state.json data/latest.json -
ef88c4b2026-08-27 auto-data-snapshot: 2026-08-27T00:22:48 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
1ec4a812026-08-26 auto-data-snapshot: 2026-08-26T21:20:57 (2 data files) — data/crcp-drift-state.json data/latest.json -
6263da52026-08-26 auto-data-snapshot: 2026-08-26T18:18:32 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
3b5b0b92026-08-26 auto-data-snapshot: 2026-08-26T15:52:28 (2 data files) — data/crcp-drift-state.json data/latest.json -
f9f93872026-08-26 afternoon CRE update 2026-08-26 -
e81be142026-08-26 auto-data-snapshot: 2026-08-26T12:47:56 (9 data files) — data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json data/map-points.json -
56883172026-08-26 auto-data-snapshot: 2026-08-26T12:08:58 (1 data files) — data/condos-redfin.json -
3f9c93d2026-08-26 user-badge: Saved Searches menu under the user-name icon — per-user server-backed (/api/saved-searches), snapshots the checked-field layout (cre_fields+filters+navagent) and restores it, name/list/restore/delete; appears on ?v=list + every page via the injected badge (no page-file edits); v0.26.0 -
12e12542026-08-26 corner-nav: ghost/outline menu pill (transparent bg, slate 1.5px hairline, #334155 label) so it stops out-contrasting the wordmark; dark-theme legibility override; reserve() re-measures the new geometry so header overlap fix holds (TK-10883 #3) -
cb833c42026-08-26 crcp header: display-scale two-line title lockup (LA County CRE / Investment Explorer), 34/28/22px responsive weight-800, fixes mobile truncation; comma-format + de-bold subline counts (TK-10883 #1,#2) -
06ef2762026-08-26 auto-data-snapshot: 2026-08-26T10:15:42 (4 data files) — data/buildout-listings.json data/lyonstahl-listings.json data/sfr-pools.json data/westmac-listings.json -
d13e16d2026-08-26 corner-nav: widen ☰ Menu pill padding-x to 16px so 'Menu' label clears the rounded left corner (no clip); reserve() re-measures the wider pill so header overlap fix holds -
3c0d9742026-08-26 corner-nav: reserve header corner space in CSS (timing-independent) so the ☰ Menu burger never overlaps the page title -
68140d82026-08-26 chore: broker-extract helper + two-section pool/land report, v0.25.1 (session close) -
28b3bb22026-08-26 sfv-pool map: Zillow-style price pins colored by pool + keyless Esri dark tiles (CARTO now needs API key) + legend; shortlist deep-link fix (verified 953 checked off); sub-header + Pool field cleanup -
bb5a3722026-08-26 Fix ?shortlist=sfv-pool (robust reload via native localStorage restore — verified 953 checked off); clean sfv-pool sub-header; clean Pool field value -
c87ea0c2026-08-26 auto-data-snapshot: 2026-08-26T09:38:32 (3 data files) — data/crcp-drift-state.json data/latest.json data/sfr-pools.json -
8d764712026-08-26 sfv-pool: add Cards/Map view toggle — Leaflet map w/ clustered markers colored by pool, photo popups, respects filters -
84c2a7c2026-08-26 Apply Nav Agent to CRCP (9 pages incl. sfv-pool): field toggles, sort-any, group-by, list/KV views; data-field model on pool cards -
5f4acf62026-08-26 SFV pool: mls.html ?shortlist=sfv-pool deep-link (lands on main CRCP with items checked off) + repoint email/page links + keep-building-images loop -
5ed31482026-08-26 auto-data-snapshot: 2026-08-26T09:01:00 (1 data files) — data/sfr-pools.json -
49751ea2026-08-26 SFV pool page: click any card -> detail modal with photo, sqft, $/sqft, lot, pool, beds/baths, year, DOM -
c6eda172026-08-26 SFV pool list: add lot size, price/sqft, photo to enrichment + endpoint + email + page -
edff3662026-08-26 auto-data-snapshot: 2026-08-26T08:21:31 (3 data files) — data/loopnet-progress.json data/sfr-pools.json package-lock.json -
548c0192026-08-26 SFV $700k-$1.2M pool split: enrichment + /api/sfv-pool + details page + email report -
9198a6e2026-08-26 chore: lint + quality-gate fixes, v0.25.0 (session close) -
d11b90f2026-08-26 TK-10864: LoopNet second-source scraper (broker graph, source=loopnet) -
777bca52026-08-26 auto-data-snapshot: 2026-08-26T07:08:04 (1 data files) — data/alerts-state.json -
e85e4522026-08-26 TK-10709: add paced Crexi accrual wrapper script (install of the launchd schedule stays a Steve-run paste) -
5fb3d882026-08-26 auto-data-snapshot: 2026-08-26T06:30:25 (11 data files) — data/buildout-listings.json data/condos-redfin.json data/encore-listings.json data/lyonstahl-listings.json data/map-points.json -
9dc4ab42026-08-26 auto-data-snapshot: 2026-08-26T05:53:46 (1 data files) — data/listings.json -
f4751ec2026-08-26 auto-data-snapshot: 2026-08-26T04:39:06 (2 data files) — data/brokers-snapshot.json data/ranked.json -
0e2ec422026-08-26 auto-data-snapshot: 2026-08-26T03:25:32 (2 data files) — data/crcp-drift-state.json data/latest.json -
5e00fbf2026-08-26 auto-data-snapshot: 2026-08-26T00:21:52 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
d7c9b372026-08-25 auto-data-snapshot: 2026-08-25T21:19:24 (2 data files) — data/crcp-drift-state.json data/latest.json -
e13bc6b2026-08-25 auto-data-snapshot: 2026-08-25T18:16:26 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
66e131f2026-08-25 auto-data-snapshot: 2026-08-25T17:03:18 (1 data files) — data/crexi-progress.json -
b048ea22026-08-25 TK-10709: dedup across ALL sources, not just crexi -
d7cdfed2026-08-25 TK-10709: remove Crexi profile link-out from broker page + restore 6-scroll grid sweep -
e126de62026-08-25 auto-data-snapshot: 2026-08-25T16:26:17 (2 data files) — data/crexi-progress.json data/crexi-queue.json -
346aff92026-08-25 auto-data-snapshot: 2026-08-25T15:49:32 (4 data files) — data/crcp-drift-state.json data/crexi-progress.json data/crexi-queue.json data/latest.json -
b3628712026-08-25 auto-data-snapshot: 2026-08-25T15:12:26 (2 data files) — data/crexi-progress.json data/crexi-queue.json -
963bc1d2026-08-25 TK-10709: strip Crexi marketing-header prefix from detail addresses -
f0860c12026-08-25 TK-10709: robust Crexi agent-attributed scraper -
73615262026-08-25 afternoon CRE update 2026-08-25 -
54ce1e62026-08-25 auto-data-snapshot: 2026-08-25T12:44:18 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
44be61b2026-08-25 auto-data-snapshot: 2026-08-25T12:06:42 (1 data files) — data/condos-redfin.json -
a4a793f2026-08-25 chore: v0.24.1 (session close) — crexi->broker-direct resolver + guard fix; firmKey parity verified, code twice-reviewed+deployed -
151a81f2026-08-25 CRCP: run resolve-broker-direct.js in the nightly broker-feed sync (Encore/Trinity refresh like other feeds) [TK-10848] -
e6592c62026-08-25 auto-data-snapshot: 2026-08-25T11:28:19 (1 data files) — data/crexi-progress.json -
41624722026-08-25 CRCP: unstick crexi->broker-direct substitution + add Encore/Trinity own-site feeds -
71519a52026-08-25 chore: v0.24.0 (session close) — broker-phone list column [lint ✓ refactor ✓] -
838f5892026-08-25 CRCP list view: add Broker phone column + relabel agent phone -
f7005672026-08-25 auto-data-snapshot: 2026-08-25T09:32:22 (2 data files) — data/crcp-drift-state.json data/latest.json -
c2106652026-08-25 auto-data-snapshot: 2026-08-25T07:02:59 (1 data files) — data/alerts-state.json -
4f1e21d2026-08-25 auto-data-snapshot: 2026-08-25T06:25:22 (9 data files) — data/buildout-listings.json data/condos-redfin.json data/lyonstahl-listings.json data/map-points.json data/ranked.json -
4de5b5f2026-08-25 auto-data-snapshot: 2026-08-25T05:49:00 (1 data files) — data/listings.json -
698945a2026-08-25 auto-data-snapshot: 2026-08-25T04:35:37 (2 data files) — data/brokers-snapshot.json data/ranked.json -
2f3d4c82026-08-25 auto-data-snapshot: 2026-08-25T03:23:00 (2 data files) — data/crcp-drift-state.json data/latest.json -
785be692026-08-25 auto-data-snapshot: 2026-08-25T00:22:08 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
000df462026-08-24 auto-data-snapshot: 2026-08-24T21:21:09 (2 data files) — data/crcp-drift-state.json data/latest.json -
cdde8682026-08-24 auto-data-snapshot: 2026-08-24T18:33:36 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
b9c32912026-08-24 auto-data-snapshot: 2026-08-24T15:30:55 (2 data files) — data/crcp-drift-state.json data/latest.json -
7e5c7b72026-08-24 auto-data-snapshot: 2026-08-24T13:25:50 (2 data files) — data/.crexi-broker-done.json data/broker-phone-overlay.json -
dd8a7882026-08-24 afternoon CRE update 2026-08-24 -
08d03ea2026-08-24 auto-data-snapshot: 2026-08-24T12:55:01 (6 data files) — data/buildout-listings.json data/condos-redfin.json data/lyonstahl-listings.json data/map-points.json data/sfr-redfin.json -
4682a8d2026-08-24 auto-data-snapshot: 2026-08-24T12:20:25 (1 data files) — data/condos-redfin.json -
8622ddf2026-08-24 auto-data-snapshot: 2026-08-24T09:36:43 (2 data files) — data/crcp-drift-state.json data/latest.json -
be55ce52026-08-24 weekly Crexi refresh 2026-08-24 -
71d657f2026-08-24 weekly unwarrantable-condos report 2026-08-24 -
670b2be2026-08-24 auto-data-snapshot: 2026-08-24T06:55:00 (2 data files) — data/condo-brokers.json data/condos-redfin.json -
98c66d32026-08-24 auto-data-snapshot: 2026-08-24T06:21:40 (6 data files) — data/.loan-officers-fingerprint data/condos-redfin.json data/map-points.json data/ranked.json data/sfr-redfin.json -
6299b222026-08-24 loan-officers: daily DRE refresh (4495 officers) -
095a9822026-08-24 auto-data-snapshot: 2026-08-24T05:49:45 (1 data files) — data/listings.json -
c7d01cf2026-08-24 auto-data-snapshot: 2026-08-24T04:45:01 (2 data files) — data/brokers-snapshot.json data/ranked.json -
2aaf18e2026-08-24 Swap Browserbase transport -> openclaw in refresh-all.js (TK-10745) -
afde0f32026-08-24 auto-data-snapshot: 2026-08-24T03:41:17 (2 data files) — data/crcp-drift-state.json data/latest.json -
73ea77e2026-08-24 auto-data-snapshot: 2026-08-24T00:29:53 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
547dec42026-08-23 auto-data-snapshot: 2026-08-23T21:50:21 (2 data files) — data/crcp-drift-state.json data/latest.json -
3ae976f2026-08-23 auto-data-snapshot: 2026-08-23T18:39:41 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
bee8fda2026-08-23 auto-data-snapshot: 2026-08-23T18:07:55 (1 data files) — data/condos-redfin.json -
0a9cda62026-08-23 auto-data-snapshot: 2026-08-23T15:28:58 (2 data files) — data/crcp-drift-state.json data/latest.json -
f46b9d12026-08-23 afternoon CRE update 2026-08-23 -
60ba1c62026-08-23 auto-data-snapshot: 2026-08-23T12:18:01 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
aae2ad92026-08-23 auto-data-snapshot: 2026-08-23T09:39:07 (2 data files) — data/crcp-drift-state.json data/latest.json -
bffddf32026-08-23 auto-data-snapshot: 2026-08-23T07:00:05 (1 data files) — data/alerts-state.json -
7cf7dc32026-08-23 auto-data-snapshot: 2026-08-23T06:27:08 (5 data files) — data/condos-redfin.json data/map-points.json data/ranked.json data/sfr-redfin.json data/valley-pools.json -
e1e3fff2026-08-23 auto-data-snapshot: 2026-08-23T05:55:15 (1 data files) — data/listings.json -
ebcba4a2026-08-23 auto-data-snapshot: 2026-08-23T04:19:03 (2 data files) — data/brokers-snapshot.json data/ranked.json -
68a0cbe2026-08-23 auto-data-snapshot: 2026-08-23T03:47:15 (2 data files) — data/crcp-drift-state.json data/latest.json -
336e58d2026-08-23 auto-data-snapshot: 2026-08-23T00:36:04 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
d102fef2026-08-22 auto-data-snapshot: 2026-08-22T21:25:09 (2 data files) — data/crcp-drift-state.json data/latest.json -
5e2bea92026-08-22 auto-data-snapshot: 2026-08-22T18:46:26 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
a7a43ff2026-08-22 auto-data-snapshot: 2026-08-22T18:14:40 (1 data files) — data/condos-redfin.json -
ae8ca502026-08-22 auto-data-snapshot: 2026-08-22T15:34:47 (2 data files) — data/crcp-drift-state.json data/latest.json -
68f081b2026-08-22 afternoon CRE update 2026-08-22 -
c45ea492026-08-22 auto-data-snapshot: 2026-08-22T12:23:53 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e8797da2026-08-22 chore: portola.crcp onboard script (server_name + cert --expand, lookbehind-guarded) — session close -
1b8bf172026-08-22 condos.html: add page-level Reset button (clears all filters/search/sort + strips deep-link URL params); fix top-left overlap — corner-nav menu icon-only + nav-agent field toggle side-by-side (Steve 2026-08-22) -
fff6d012026-08-22 auto-data-snapshot: 2026-08-22T09:43:39 (2 data files) — data/crcp-drift-state.json data/latest.json -
81a56e32026-08-22 auto-data-snapshot: 2026-08-22T07:04:52 (1 data files) — data/alerts-state.json -
9b17cca2026-08-22 auto-data-snapshot: 2026-08-22T06:32:10 (9 data files) — data/buildout-listings.json data/condos-redfin.json data/lyonstahl-listings.json data/map-points.json data/ranked.json -
21cd5e92026-08-22 auto-data-snapshot: 2026-08-22T05:59:25 (2 data files) — data/listings.json data/ranked.json -
fe5d1a42026-08-22 auto-data-snapshot: 2026-08-22T04:22:57 (2 data files) — data/brokers-snapshot.json data/ranked.json -
7b72c2d2026-08-22 auto-data-snapshot: 2026-08-22T03:51:11 (2 data files) — data/crcp-drift-state.json data/latest.json -
8b47c482026-08-22 auto-data-snapshot: 2026-08-22T00:40:11 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
55571df2026-08-22 auto-data-snapshot: 2026-08-22T00:08:20 (1 data files) — data/condos-redfin.json -
69295fe2026-08-21 auto-data-snapshot: 2026-08-21T21:29:42 (2 data files) — data/crcp-drift-state.json data/latest.json -
aa6fc342026-08-21 auto-data-snapshot: 2026-08-21T18:19:14 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
56878db2026-08-21 auto-data-snapshot: 2026-08-21T15:40:21 (2 data files) — data/crcp-drift-state.json data/latest.json -
3e3f6102026-08-21 auto-data-snapshot: 2026-08-21T13:00:36 (3 data files) — data/.pre-afternoon-ids.json data/last-refresh.json data/ranked.json -
067e7632026-08-21 auto-data-snapshot: 2026-08-21T12:28:01 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
6312ed52026-08-21 auto-data-snapshot: 2026-08-21T09:49:18 (2 data files) — data/crcp-drift-state.json data/latest.json -
8bef3f62026-08-21 auto-data-snapshot: 2026-08-21T07:10:15 (1 data files) — data/alerts-state.json -
0cff5ac2026-08-21 TK-10703 cycle7: commit the direct-listings + linkedin verification harnesses (consistent with existing 5x/*-assert.js) -
1d2233c2026-08-21 TK-10703 cycle7: contrarian-gate fixes — robust address normalizer (split on comma OR 2+ spaces so LA Assessor double-space addresses join; property contact strip was always-off), all-digit multi-address guard (no wrong-join), linkedin esc() escapes ' and > -
05883e82026-08-21 TK-10703 cycle7: linkedin → CRCP standard (List/Grid view toggle + always-on firm-confirmed phone/email via brokers/all id-join) -
cc4510a2026-08-21 TK-10703 cycle7: direct-listings → CRCP standard (grid-controls + always-on phone/email via listing-brokers address-join) -
1390e7a2026-08-21 TK-10703 cycle7: property → always-on listing-agent contact strip (address-join, non-fabricated) -
184e5b12026-08-21 TK-10703 cycle7: recities → corner-nav + day/night theme (accent preserved) -
1f957112026-08-21 TK-10703 cycle7: firecities → corner-nav + day/night theme (accent preserved) -
b9773412026-08-21 TK-10703 cycle7: document canonical CRCP UI standard + data-reality + non-fabrication contact rule -
c93485f2026-08-21 auto-data-snapshot: 2026-08-21T06:38:13 (8 data files) — data/buildout-listings.json data/condos-redfin.json data/lyonstahl-listings.json data/map-points.json data/sfr-redfin.json -
0cdfd2f2026-08-21 auto-data-snapshot: 2026-08-21T06:05:08 (1 data files) — data/ranked.json -
4bb9aa92026-08-21 auto-data-snapshot: 2026-08-21T05:33:27 (1 data files) — data/listings.json -
79086e22026-08-21 auto-data-snapshot: 2026-08-21T04:29:08 (2 data files) — data/brokers-snapshot.json data/ranked.json -
033272c2026-08-21 auto-data-snapshot: 2026-08-21T03:25:40 (2 data files) — data/crcp-drift-state.json data/latest.json -
a8259b82026-08-21 auto-data-snapshot: 2026-08-21T00:46:45 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e4b903e2026-08-21 auto-data-snapshot: 2026-08-21T00:14:48 (1 data files) — data/condos-redfin.json -
42c7bfc2026-08-20 auto-data-snapshot: 2026-08-20T21:36:19 (2 data files) — data/crcp-drift-state.json data/latest.json -
721586b2026-08-20 auto-data-snapshot: 2026-08-20T18:24:03 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e258eee2026-08-20 CRCP scope Cycle 7: anchor isCalifornia crexi-CA regex to the leading /properties/ID/california- slug token (was /california-, could theoretically false-match a street named 'California' in another state); verified loss-free (keeps all 5147 CA rows) + WebKit 9/9 -
02e8a052026-08-20 CRCP scope Cycle 6: California guard on scoped grids — Crexi feeds are national but CRCP is CA-only, so sameCity name-match pulled out-of-state cities onto CA subdomains (georgetown.crcp was 11/11 Texas). isCalifornia(item) requires CA source-slug/zip/address; contamination killed, real CA rows preserved -
804a7882026-08-20 auto-data-snapshot: 2026-08-20T17:19:08 (2 data files) — data/broker-of-record.sqlite data/last-broker-of-record.json -
adbdad42026-08-20 CRCP scope Cycle 5: empty-state fires on any scoped grid that resolves to 0 rows (drop arrBefore>0 clause) so an empty-source grid also explains itself instead of rendering a bare blank -
ed37f762026-08-20 CRCP: stop tracking generated data reports (afternoon/residential) — gitignore + untrack so they stop dirtying the tree -
78cb8e72026-08-20 CRCP: add self-provisioning CTA health runner (TK-10753) — mints fresh session each run, fail-loud, schedule-safe but deferred -
84870a42026-08-20 CRCP refresh-all: Browserbase 30-min TTL + proxies — fixes multi-city sweep timing out at 5m and killing later gotos -
111d4f32026-08-20 auto-data-snapshot: 2026-08-20T15:43:22 (2 data files) — data/crcp-drift-state.json data/latest.json -
a9088ee2026-08-20 CRCP scope Cycle 4: derive city from address for direct-listings (0%->correctly scoped); fha-loans statewide (national HUD data); event-driven honest empty-state for scoped property grids that filter to 0 -
c4ea6632026-08-20 CRCP: inline-city SSO — one hub login reaches all cities inline, no re-prompt (Steve directive) -
c56a9932026-08-20 CRCP scope: sameCity strips trailing state suffix ('City, CA') before norm so standard City,ST data still scopes (was silent under-scope) -
22ec0ea2026-08-20 auto-data-snapshot: 2026-08-20T14:07:04 (2 data files) — package-lock.json scripts/__pycache__/fetch-dre-mlo.cpython-314.pyc -
dff786b2026-08-20 CRCP per-city scope: filter property grids (sales/direct-listings/just-listed/fha/valley-pools) on city subdomains; directories stay statewide -
d1d3af22026-08-20 chore: v0.23.0 — recities+firecities hubs, per-city scoping, ranked.json geocode (session close) -
81c91222026-08-20 chore: lint fetch-dre-mlo.py (sort imports, drop unused re) — session close -
46544432026-08-20 loan-officers: refresher auto-deploys to prod (no approval to add data) -
f30d3c72026-08-20 chore: add broker-name normalizer + version bump (session close) -
9cfd1922026-08-20 CRCP: firecities.crcp hub — 2025 burn-zone cities (Eaton+Palisades) grouped by incident -
83765032026-08-20 auto-data-snapshot: 2026-08-20T13:34:43 (1 data files) — scripts/__pycache__/fetch-dre-mlo.cpython-314.pyc -
b521fc42026-08-20 CRCP: drag-to-resize the Controls rail (#ctrlrail) — vertical expansion bar -
b2f33122026-08-20 loan-officers: daily local-refresh wrapper (gate-safe: local commit + drafts gated prod-deploy memo, never auto-deploys) + PII hard-abort + change fingerprint -
9f0d5e12026-08-20 chore: untrack data/qwen-cache.json (key-shaped strings) + gitignore it -
e43a05a2026-08-20 loan-officers: daily DRE refresh (4494 officers) -
6c05d362026-08-20 loan-officers: add LA-County 'Officer'-type MLOs (+107 unique after NMLS dedup) → 4,494 officers -
77778392026-08-20 direct-listings: add aria-label to density slider (a11y — Cody gate) -
2645a222026-08-20 direct-listings: add density slider (Steve grid rule — every grid needs sort + density) -
37164772026-08-20 CRCP table view: columns expand full-width + sticky header & frozen first column -
55440212026-08-20 CRCP: geocode ranked.json (free Census, +zip/latlng on 9286 rows) + pipeline hook; spec proves ZIP scoping is net-zero -
beeafe72026-08-20 loan-officers: ingest CA DRE MLO List (LA-County active individuals, PII-stripped) → 4,387 officers; add fetch-dre-mlo.py + register DRE bulk source -
5cef9ae2026-08-20 CRCP: Phase-1 per-city scoping — host-keyed fetch filter + hide-empty hub (index.html untouched) -
34a021c2026-08-20 5x: verify crcp list view — six-way green, 29 clickthrough fails classified as harness artifacts (collapsed panels + session-auth), 0 real defects -
81565402026-08-20 CRCP: spec for per-city scoping of the *.crcp fleet (front-end filter + coverage reality) -
a337f9a2026-08-20 loan-officers: seed 29 CA officers from firm public rosters (first-party public web, NMLS re-verified on page) -
7f18f172026-08-20 CRCP: recities.crcp hub — city launcher dropdown of all 50 markets, host-routed -
1b7ba1f2026-08-20 CRCP: resolve popup double-fire — ONE row-expand panel, server-synced notes (DTD verdict A) -
0938efc2026-08-20 CRCP index: fix overlapping UI — bar controls no longer spill under the #ctrlrail -
cc288932026-08-20 CRCP index: ALWAYS show agent/phone/firm/broker on the list view (Steve directive) -
9ed857d2026-08-20 CRCP list: click row open-space to expand consolidated detail + PRIVATE per-user notes (localStorage, not shared) -
39a36a42026-08-20 CRCP index: fix property-detail popup — findProp must read the top-level DATA binding, not window.DATA (window.DATA is undefined, so clicks silently no-oped) -
be1fb302026-08-20 CRCP index: bake full nav-agent skillset into UI — list-on-load, KV+Table views, right-rail collapsed panels, group/sort-any-field/density (TK-10747) -
9b4f89b2026-08-20 CRCP: top-right signed-in user badge (person icon + name + sign out) -
05eae712026-08-20 CRCP: replace whole-site Basic-auth popup with single real-user login -
3fb3f6a2026-08-20 nav-agent: sync v1.3 (host left-sidebar collapse on load) -
74fc2a62026-08-20 auto-data-snapshot: 2026-08-20T00:23:34 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
3658ed72026-08-19 auto-data-snapshot: 2026-08-19T21:39:47 (2 data files) — data/crcp-drift-state.json data/latest.json -
422b55d2026-08-19 auto-data-snapshot: 2026-08-19T18:24:30 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
2cc53a32026-08-19 auto-data-snapshot: 2026-08-19T15:40:38 (2 data files) — data/crcp-drift-state.json data/latest.json -
32714532026-08-19 nav-agent: List data full-width tight columns (grid) — layout fix -
82487e22026-08-19 CRCP: refresh nav-agent copy to v1.2 (adds the kv-list compact List view) -
e3cfcc52026-08-19 chore: v0.22.0 (session close — infinite scroll + notes + non-warrant + Frank filter; lint ✓; refactor skipped — code already deployed+verified live) -
88b48c02026-08-19 chore: v0.21.0 (session close) — valley-pools feature + multi-cred gate + daily prod push -
f7500292026-08-19 auto-data-snapshot: 2026-08-19T13:27:48 (2 data files) — data/.pre-afternoon-ids.json data/last-refresh.json -
685e76b2026-08-19 Fix valley-pools renderer crash (filter-modal infinite-loop) + TV.refresh typo -
cf9fb572026-08-19 auto-data-snapshot: 2026-08-19T12:54:53 (1 data files) — data/valley-pools.json -
036e4b52026-08-19 Daily valley-pools refresh now pushes the fresh snapshot to prod -
9bbc6932026-08-19 CRCP gate: multi-credential auth (CRCP_EXTRA_USERS) — add steve to main :9911 -
c6ab3e82026-08-19 gitignore data/sfr-notes.json (per-user runtime notes) -
ac8f2f32026-08-19 Valley pools: CRCP-standard left rail + three-view + per-user listing notes -
71b1dce2026-08-19 auto-data-snapshot: 2026-08-19T12:22:10 (4 data files) — data/condos-redfin.json data/map-points.json data/sfr-notes.json data/sfr-redfin.json -
d25f2e62026-08-19 CRCP nav: link Valley Pools from the landing hub topnav -
b33fc032026-08-19 Valley pools: map view + deal-tier colors + $/sqft + price-cut + payment est + on-map price tags -
d4447f72026-08-19 broker profile item 3: honest 'listings as of <date>' snapshot-vintage caveat -
38e48202026-08-19 CRCP: infinite scroll across all grid pages (replace hard row caps / all-at-once renders) -
77b92992026-08-19 broker snapshot: active-listing recency gate + size-ceiling health verdict (DTD A-with-rider) -
86a32ab2026-08-19 Add SFV single-family pool-homes viewer (new crcp landing) -
fd9337c2026-08-19 Prod broker cards show active+closed deals: snapContact reads brokerDetail (prod has no cre DB); regen snapshot with 60k closed deals (2,130 brokers) -
3fdbc0b2026-08-19 auto-data-snapshot: 2026-08-19T11:14:55 (3 data files) — data/.crexi-broker-done.json data/agent-notes.json data/broker-phone-overlay.json -
95ff71b2026-08-19 CRCP: 'Pocket listing' badge for off-market rows with no contact at all (Steve 2026-08-19) -
cf0bd412026-08-19 CRCP: Frank onload 4-unit multifamily default filter + non-warrantable condos section + per-agent private notes -
258bd682026-08-19 firm-site scraper: add missing sleep() helper (pageText crashed the improved re-sweep) -
88f093b2026-08-19 corner-nav: add 'Direct Listings' to Properties menu (the dedicated-store viewer) -
8f9ce552026-08-19 direct-listings viewer: /api/direct-listings + public/direct-listings.html — browse the dedicated broker_direct_listing store (sort/filter/search, day/night); fix int/text broker_id join casts -
eab941c2026-08-19 firm-site scraper: scroll for lazy-loaded grids + try common listings subpaths (/listings,/properties,/for-sale,/inventory), keep best-yielding page — unlocks firms that yielded 0 -
c189e732026-08-19 CRCP: harden per-broker grind — auto-dismiss JS dialogs + allSettled (one bad Crexi page no longer crashes the run) -
17681072026-08-19 repoint all 3 direct scrapers (crexi/firm-site/personal-site) to write to broker_direct_listing (its own dbase) instead of the main graph -
cff722f2026-08-19 broker listings in their own dbase: new broker_direct_listing table (migration 021); /api/agent-profile reads direct listings (own + firm) from it, main graph stays crexi-originals only (Steve) -
d523da02026-08-19 auto-data-snapshot: 2026-08-19T10:40:44 (2 data files) — data/.crexi-broker-done.json data/broker-phone-overlay.json -
5cba5cb2026-08-19 brokers.html: drop last 'on Crexi' text -> 'total listings on record' -
b9d6c4c2026-08-19 brokers.html: node 'View full profile' -> /agent.html (our page) instead of /broker.html; drop 'on Crexi' text -
5205cc52026-08-19 backfill firm-site: add --offset to sweep beyond the top 40 firms -
e4bc3152026-08-19 CRCP: sync rsync now includes broker-phone-overlay.json to prod -
edd64222026-08-19 CRCP: wire per-broker crexi grind into daily sync (capped 400/run, resumable) -
7992c242026-08-19 CRCP: per-broker Crexi-tail phone grind — $0 openclaw CDP own-tabs, resumable (Steve: grind the tail in background) -
a04fb2b2026-08-19 Fold 8,796 new active broker-book listings into catalog (national expansion, Steve-approved); $0 no-auth /assets/search crawl -
89fb4912026-08-19 DRE->CRCP-id join: link condo/residential brokers to broker profiles -
435a3042026-08-19 chore: lint (node --check clean, no linter configured) + refactor (agent-profile helpers, done in-session) + v0.20.0 (session close) -
8ee869d2026-08-19 CRCP: wire overlay seed + crexi firm-backfill into daily sync (keeps aggregator-row phones current, $0) -
06686692026-08-19 CRCP: all-day parallel firm-phone backfill for Crexi-base rows — $0 openclaw (Steve: max-it, parallel browsers) -
3c7ce7f2026-08-19 CRCP: broker-phone OVERLAY for Crexi-base rows — free usre seed + serve.js overlay (Steve: crexi-base coverage) -
d81c5102026-08-19 refactor(agent-profile): extract shared helpers (agentOverlayCondos/fetchCondoCards/mergeListings/sumPrice/distinctCities) — de-duplicate the condo-overlay scan that was copy-pasted across the found/not-found branches, drop the stale name-match comment; behavior-identical (verified same API output + 5x click-through) -
fb68fcb2026-08-19 CRCP: backfill broker contacts for Lyon Stahl/WESTMAC/BuildOut — $0 curl (Steve: 'find their contact info while on their site') -
0b756292026-08-19 CRCP agent-profile: agents now show their real listings across ALL data paths — commercial (broker_listing), condo (broker_condo edge + condoBrokers() overlay by name/co-agent), and an overlay-only profile for residential agents not in the broker graph; fixes empty agent pages found in the 5x click-through test -
58c2ad42026-08-19 auto-data-snapshot: 2026-08-19T10:08:05 (1 data files) — data/showcase-listings.json -
af117012026-08-19 TK-10709: Crexi two-level openclaw crawl (grid->detail) -> broker graph master DB, per-agent attribution (name+firm confirmed, creates new brokers), source=crexi reversible, dedup by address; recon-verified selectors -
dddefaf2026-08-19 spec: robust Crexi/LoopNet agent-attributed scraper (openclaw two-level crawl -> broker graph master DB, per-agent attribution, reversible; CoStar parked) — ready to run fresh -
7adb0f72026-08-19 CRCP agent precision: /api/agent-profile + agent.html accept ?id= (exact broker; names collide) — backward-compatible with ?name=; firms roster now deep-links by id -
36981312026-08-19 Wire broker closed-deal book into broker cards: brokerContact returns closed_listings + closed_count (outlier-filtered); broker.html renders SOLD deals. Active-listings crawler now $0 no-auth (POST /assets/search). -
73008d62026-08-19 broker.html: linter formatting pass (no behavior change) -
b0d8b1d2026-08-19 broker-grid: 'View full profile ->' link in the broker modal to /broker.html -
c45525e2026-08-19 agent.html: render labeled 'Firm listings' section (firm-site inventory, honestly not claimed as the agent's own book) -
c3952702026-08-19 agent-profile: add firm_listings (direct-from-firm-site inventory via firm_name match, labeled — not claimed as the agent's own) -
6939e722026-08-19 auto-data-snapshot: 2026-08-19T09:34:55 (1 data files) — data/showcase-listings.json -
e77b85d2026-08-19 CRCP: Showcase daily refresh now openclaw-first ($0), browserbase fallback + carry-over broker phones + backfill in sync -
86b82192026-08-19 backfill option-3: openclaw real-Chrome (beats 403/JS) + qwen3:14b extraction of firm-site listings, attributed at FIRM level (role=firm-listing, reversible source=broker-site-oc) — Steve: build option 3, fan to top 200 -
200087f2026-08-19 CRCP: extend 'agent opens its own page' — condos listing agents (default-visible, 797 links) + mls broker_agent column + agentBits name now deep-link to /agent.html (mls agent col is opt-in per its dense default) -
73618442026-08-19 CRCP: backfill real broker phones for Showcase listings — FREE via openclaw (yoloforever) -
48a8e852026-08-19 backfill: garbage-address filter + unique-domain-only attribution (skip shared firm sites); applied 24 clean direct listings to 5 agents (reversible source=broker-site) -
b422f112026-08-19 CRCP: every agent opens its own page — link agent names in the explorer (list/card/agent-window) to /agent.html; agent page + /api/agent-profile now show CURRENT and PAST (closed/sold) listings with a track-record stat (Steve: 'errol should have its own page with current/past listings') -
83593fe2026-08-19 broker-grid: agent name -> /agent.html?name= (our profile page, never crexi); card body keeps contact modal -
84a87bc2026-08-19 CRCP firms: roster brokers now deep-link to their canonical /agent.html profile page (our own page, no Crexi) in a new tab, replacing the in-modal drill; firm → broker profile → their listings -
7e3bea32026-08-19 backfill: broker-website listing scraper (plain-fetch pilot + heuristic extractor, dry-run default, reversible source=broker-site tag) — Steve: find listings direct from broker sites, not crexi -
31c55f52026-08-19 Add crawl-broker-comps.js: $0 no-auth Crexi broker book-expansion (fills broker_closed_listing, backfills global_id); +discover-broker-endpoint -
36bec4d2026-08-19 agent profiles: /api/agent-profile?name= (our broker graph -> their listings, ZERO crexi) + public/agent.html CRCP-styled profile page (Steve: click agent -> our-own page, no crexi) -
23372d32026-08-19 Add Crexi-style individual broker profile page (broker.html) -
2f6ff292026-08-19 CRCP: paginate Showcase (16 -> 440 LA for-sale listings, ~27x) via /for-sale/N/ URL walk -
6e1d7c52026-08-19 CRCP refine: add optional async CFG.detail hook to lending-grid engine (backward-compatible); firms drill a firm → full broker roster + active listings via /api/firm (click-to-call/email), turning the directory navigable -
3a8c1682026-08-19 crawl-broker-listings: read sale[]/lease[] payloads + honor totalCount (no 12-page truncation) + accurate other-listing count (codex review) -
ce630d72026-08-19 Add crawl-broker-listings.js: Crexi broker→full-book expansion crawler (fills broker_other_listing) -
3222d2e2026-08-19 CRCP: Showcase (BuildOut marketplace) via browserbase — cron-safe Akamai bypass (yoloforever) -
04e9c8c2026-08-19 crcp-theme: define --onacc fleet-wide (text-on-accent: black in dark, white in light) so accent contrast is correct across all pages -
94d8ebe2026-08-19 CRCP hub: wire Firms → /firms.html (repoint the existing mis-pointed 'draft→/broker-grid.html' tile to the new live firms directory + add nav link) — DTD verdict A -
635ffad2026-08-19 just-listed: ticker bg -> var (reference page now 100% light-mode clean) -
d9d46a92026-08-19 admin: convert bare dark-surface literals to themed vars (day-mode flip); map left dark by design (chips over satellite imagery) -
a2064052026-08-19 rent-rolls: convert bare dark-surface literals to themed vars (day-mode specks -> flip in light) -
50e13d62026-08-19 CRCP: migrate last 4 pages (index/mls/fha-loans/graphics) off stale crcp-theme2 key -> crcp-theme, so day/night choice syncs fleet-wide -
92d0cec2026-08-19 CRCP firms: new /api/firms directory endpoint (firm rosters: brokers, commercial/residential split, listings, contact coverage) + firms.html on the shared grid engine (grid/list/table + facets + mobile modal, 1121 firms) -
4a85e2d2026-08-19 chore: bump v0.19.0 (session close) — CRCP UI standardization: just-listed rebuild, fleet day/night, 3-view, broker contact -
ea071d62026-08-19 CRCP fix: deals-flow + gov-agents lacked a .hide{display:none} rule, so Grid/List/Table stacked instead of switching — add it so exactly one view shows -
83763a92026-08-19 auto-data-snapshot: 2026-08-19T07:27:42 (1 data files) — data/alerts-state.json -
12ea4e12026-08-19 auto-data-snapshot: 2026-08-19T06:24:18 (8 data files) — data/buildout-listings.json data/condos-redfin.json data/lyonstahl-listings.json data/map-points.json data/qwen-cache.json -
1c25b892026-08-19 auto-data-snapshot: 2026-08-19T05:52:44 (1 data files) — data/listings.json -
44c1fb82026-08-19 auto-data-snapshot: 2026-08-19T04:17:42 (2 data files) — data/brokers-snapshot.json data/ranked.json -
f236dcc2026-08-19 auto-data-snapshot: 2026-08-19T03:46:07 (2 data files) — data/crcp-drift-state.json data/latest.json -
ee9b4e42026-08-19 auto-data-snapshot: 2026-08-19T00:35:54 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
c95e2602026-08-18 auto-data-snapshot: 2026-08-18T21:26:29 (2 data files) — data/crcp-drift-state.json data/latest.json -
0e9fa7b2026-08-18 CRCP contractors.html: add Grid/List/Table to browse mode + sortable table headers (match mode unchanged) -
9e31cc72026-08-18 CRCP deals-flow.html: add Grid/List/Table views + sortable table headers (card grid + compact list + dense table) -
284092d2026-08-18 CRCP: generic BuildOut scraper (class-cracker) + auto-discover broker feeds (yoloforever cycle 6) -
ca331992026-08-18 CRCP rent-rolls.html: add compact List view (Table/List/Cards) -
d5a0b832026-08-18 crcp-theme: theme fleet custom SURFACE vars (--panel/--panel2/--glass/--glassb/--fg/--txt/--g2) for LIGHT mode only — systemic fix so bespoke pages' surfaces flip in day mode; dark unchanged (keeps each page's :root) -
6074d062026-08-18 CRCP: broker-direct SUBSTITUTES the aggregator row (sub out Crexi when the firm's own listing is found) — Steve 2026-08-18 -
4eac4b62026-08-18 CRCP gov-agents.html: add grid/list/table view system (was table-only) + all-sortable + mobile ⚙ Filters modal -
f6345702026-08-18 CRCP sales.html: add compact List view (grid/list/table) + mobile ⚙ Filters modal -
324dab82026-08-18 CRCP: browser-render template (scrape-stepp.js) via global Playwright — proven working; Stepp deferred (linkless sold-comp cards, 0 usable rows) so not in daily sync (yoloforever cycle 5) -
2bf64b62026-08-18 CRCP: morning broker-feed sync — scrape all firms + rsync data to prod + reload (Steve-authorized daily prod freshness) -
e3492112026-08-18 licensed: add 3-view + all-field sort per tab (TK-10703) -
b439ff02026-08-18 licensed-agents: add 3-view + all-field sort (TK-10703) -
3971e262026-08-18 residential-brokers: add 3-view (grid/list/table) + all-field sort + collapsed rails (TK-10703) -
132b8b72026-08-18 licensed-agents + licensed: require name+firm match for broker contact (Cody gate) — name-alone join published the WRONG person's phone as fact; unconfirmed now falls back to DRE lookup -
5d500172026-08-18 CRCP filters: fan responsive filter-modal to deals-flow + contractors; sparse (<=2 section) pages start expanded -
26810782026-08-18 contractors: always show email alongside phone (TK-10703) -
a7b19042026-08-18 loan-officers: always show phone+email (TK-10703) -
352846c2026-08-18 licensed-agents: always show agent phone+email (TK-10703) -
853e0862026-08-18 licensed: always show professional phone+email (TK-10703) -
f97fd3d2026-08-18 CRCP filters: responsive hybrid (collapsed rail desktop / ⚙ Filters modal mobile) + grid/list/table + all-sortable on fha-leads.html -
90f39542026-08-18 residential-brokers: always show broker phone+email (TK-10703) -
ebdd2532026-08-18 auto-data-snapshot: 2026-08-18T18:16:14 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
89494912026-08-18 CRCP: add WESTMAC broker-direct listings feed + cron (yoloforever cycle 3) -
fcfd72b2026-08-18 CRCP theme Cody-gate fixes: lending-grid.css + deals-flow + map #phmodal dark literals -> theme vars (light mode now flips); reconcile condos native theme onto crcp-theme key (was double-added) -
dbe30512026-08-18 CRCP fleet: add canonical day/night theme (crcp-theme.css/js + head boot) to 24 theme-less pages; corner-nav on property.html; fix crcp.html crcp-theme2->crcp-theme key -
8cdf8382026-08-18 just-listed: Cody-gate fixes — recency join by address (new-only was broken), theme-aware --onacc contrast, drip-timer cleanup on view switch, lock broker contact cols in all views, sanitize Null/website, cap TV retry -
30278bc2026-08-18 just-listed: rebuild to canonical CRCP UI (grid/list/table, day/night, collapsed rail, chat, new-drip, always-on broker contact by address) -
09148262026-08-18 snapshot before CRCP UI standardization -
b648ef92026-08-18 CRCP real-phone reveal: standalone Phone/Email/Firm-website columns, tel: click-to-call, CA-area-code suppression, no row pop-out, kill Open button (TK-10687) -
8215dbe2026-08-18 CRCP: real phone reveal — resolve broker/firm phone+email+website from usre, inline in agent cell + Has phone/email filters (TK-10687) -
884b8b72026-08-18 CRCP root: center the top chat bar (constrained width, centered chips) -
376087d2026-08-18 CRCP root: add working client-side NL chat bar at top + remove Top-brokers people panel on load (show properties) -
e53f98e2026-08-18 CRCP: move financing scenario control (25%/30%/All cash) from top nav into left filter drawer -
fbbc9ea2026-08-18 auto-data-snapshot: 2026-08-18T15:36:46 (2 data files) — data/crcp-drift-state.json data/latest.json -
5a583842026-08-18 boom-records: refresh (+3 verified leads: Aventura, NAI Vegas, Whitestone) -
cb3bbcc2026-08-18 boom-records: clean junk placeholder phones (777/666/999-xxxx) from record + sheet -
568a6e12026-08-18 boom-records: durable record of 699 contact additions to Boom Spreadsheet 2.0 (2026-08-18) -
5d89be82026-08-18 CRCP mls chat: example chips + unwarrantable/non-QM/condo terms (TK-10698) -
938bfff2026-08-18 CRCP mls: natural-language chat bar across the top (TK-10698) -
d1b8c3d2026-08-18 CRCP mls: admin default 4-unit multifamily + persist-filters-on-every-change + contact columns (TK-10687) -
4c32dfd2026-08-18 afternoon CRE update 2026-08-18 -
0709a682026-08-18 auto-data-snapshot: 2026-08-18T12:56:03 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
687eef02026-08-18 auto-data-snapshot: 2026-08-18T12:24:13 (1 data files) — data/condos-redfin.json -
7412b452026-08-18 mls.html: split load-vs-render catch so errors stop mislabeling (DTD 5/5+contrarian) -
d6f3dbf2026-08-18 Apply credential-safe fetch wrapper fleet-wide (22 CRCP pages) -
98859702026-08-18 CRE: reroute fetch-sfr-redfin off Browserbase to local Chrome ($0) -
9ac1e112026-08-18 Fix mls.html empty grid: relative fetch() threw on credentialed baseURI -
74d6c6e2026-08-18 auto-data-snapshot: 2026-08-18T11:49:58 (2 data files) — data/condo-brokers.json data/condos-redfin.json -
6c792a92026-08-18 CRE: reroute condo scrapers off Browserbase to local real Chrome ($0) -
fd084c52026-08-18 auto-data-snapshot: 2026-08-18T09:42:51 (2 data files) — data/crcp-drift-state.json data/latest.json -
c7e71e12026-08-18 chore: v0.18.6 — mls.html flash-then-blank fix + search perf (session close) -
9c57dd22026-08-18 auto-data-snapshot: 2026-08-18T07:09:42 (1 data files) — data/alerts-state.json -
d2d609a2026-08-18 auto-data-snapshot: 2026-08-18T06:39:22 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
94afeb72026-08-18 auto-data-snapshot: 2026-08-18T06:08:57 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
d0a6a7b2026-08-18 auto-data-snapshot: 2026-08-18T05:38:34 (1 data files) — data/listings.json -
296d5732026-08-18 auto-data-snapshot: 2026-08-18T04:37:55 (2 data files) — data/brokers-snapshot.json data/ranked.json -
e7b8a262026-08-18 auto-data-snapshot: 2026-08-18T03:37:22 (2 data files) — data/crcp-drift-state.json data/latest.json -
edc2f152026-08-18 auto-data-snapshot: 2026-08-18T00:35:06 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
a2fb6102026-08-17 nav-agent ROOT FIX (Steve-approved): never restore a 'removed' grid across reloads — kills the no-recovery blank-grid footgun at the source (keeps float/max/collapsed persistence) -
8e72c302026-08-17 auto-data-snapshot: 2026-08-17T21:33:20 (2 data files) — data/crcp-drift-state.json data/latest.json -
9106ef22026-08-17 CRCP: gitignore CTA/screenrecord debug artifacts + scratch pngs (repo hygiene, yoloforever cycle 2) -
d3395bc2026-08-17 mls.html: agent-discover writes back to the row (searchable), not just the DOM -
c630a2d2026-08-17 CRCP: extend nav-agent blank-grid self-heal to all 22 nav-agent pages (heal 'removed' only, preserve legit 'collapsed'); root shared-component fix drafted to pending-approval -
80e76602026-08-17 auto-data-snapshot: 2026-08-17T18:31:52 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
58d7a292026-08-17 mls.html: fix "data flashes then blank body" — kill boot() location.reload() -
926630a2026-08-17 CRCP listings: self-heal the blank-grid bug — clear any persisted nav-agent removed/collapsed state on load so the records grid can never stay hidden (root cause of the disappearing data) -
7e0658e2026-08-17 auto-data-snapshot: 2026-08-17T18:01:33 (8 data files) — screenrecord/debug-log.jsonl screenrecord/rec/run0/01-before-popwin.png screenrecord/rec/run0/02-after-popwin.png screenrecord/rec/run0/03-drag-right.png screenrecord/rec/run0/04-drag-past-edge.png -
890dbe12026-08-17 CRCP listings: property panel now docks to the right full-height (no longer a floating center card) + drag its left edge to widen (savable); corner-nav Sections drawer also resizable + saved -
5a913c42026-08-17 CRCP listings: records table fills the full panel width and expands with the divider (override col-resize's fixed col/table widths so columns stretch to fill instead of overflow-scrolling) -
2bae93c2026-08-17 CRCP listings: per-user saved settings — self-serve account (create with your own name/password), view saves to your account, auto-saves on exit (never wipes), shows 'last saved' -
6b786582026-08-17 CRCP listings: records body now fills to the right screen edge (table min-width:100% stretches columns to fill; trim wrap side padding) -
6d85d992026-08-17 CRCP listings: replace full-width/fit-all experiments with a draggable vertical divider (resize filters↔records, double-click to collapse; records widen to the screen edge) -
df047242026-08-17 CRCP listings: add Full-width toggle (hide rail, span page) + prominent Download CSV button in a results toolbar -
c3832ac2026-08-17 auto-data-snapshot: 2026-08-17T16:30:27 (4 data files) — cta/rec/safari.mp4 cta/rec/safari/page@cc1e5d6fa489786581843f85246a52c0.webm cta/results.json cta/shots/safari/11-regression-final.png -
d542e172026-08-17 CRCP listings: fix invisible Fields/columns panel text — remap ColumnManager's hardcoded dark palette to the page theme (black text on the light theme) -
6a61f292026-08-17 CRCP listings: stage price/units/year filters behind a Go button (apply on click or Enter, not per-keystroke) -
b36a4de2026-08-17 CRCP listings + just-listed: add Max units (and Units/size min+max + built after/before on mls) to match the main grid -
706f95a2026-08-17 CRCP properties: add Max units + Built-before to the units/size filter (min AND max bounds) -
7c445432026-08-17 auto-data-snapshot: 2026-08-17T15:59:57 (30 data files) — cta/rec/chrome.mp4 cta/rec/chrome/page@4586815c64c3355dcbfcc5ae83517399.webm cta/rec/safari.mp4 cta/rec/safari/page@cc1e5d6fa489786581843f85246a52c0.webm cta/results.json -
6c979c52026-08-17 auto-data-snapshot: 2026-08-17T15:29:38 (2 data files) — data/crcp-drift-state.json data/latest.json -
7aa62a32026-08-17 afternoon CRE update 2026-08-17 -
683a8d92026-08-17 auto-data-snapshot: 2026-08-17T12:27:54 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
b7f06c82026-08-17 auto-data-snapshot: 2026-08-17T09:25:02 (2 data files) — data/crcp-drift-state.json data/latest.json -
6a0f8f12026-08-17 auto-data-snapshot: 2026-08-17T07:32:48 (4 data files) — data/last-refresh.json data/listings.json data/qwen-cache.json data/ranked.json -
25a10d22026-08-17 auto-data-snapshot: 2026-08-17T07:02:20 (1 data files) — data/alerts-state.json -
ea56bc72026-08-17 snapshot before restart: preserve in-flight work (auto-saved by /restart pre-reboot) -
3b33a192026-08-17 weekly unwarrantable-condos report 2026-08-17 -
39bc1c22026-08-17 auto-data-snapshot: 2026-08-17T06:31:33 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
9f385ac2026-08-17 auto-data-snapshot: 2026-08-17T06:00:57 (3 data files) — data/listings.json data/qwen-cache.json data/ranked.json -
6e27a472026-08-17 auto-data-snapshot: 2026-08-17T05:30:33 (1 data files) — data/listings.json -
39067472026-08-17 weekly Crexi refresh 2026-08-17 -
1e4482c2026-08-17 auto-data-snapshot: 2026-08-17T04:29:37 (2 data files) — data/brokers-snapshot.json data/ranked.json -
b05f2aa2026-08-17 auto-data-snapshot: 2026-08-17T00:56:32 (2 data files) — data/crcp-drift-state.json data/latest.json -
f529b1b2026-08-17 auto-data-snapshot: 2026-08-17T00:25:59 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e1998682026-08-16 auto-data-snapshot: 2026-08-16T18:51:05 (2 data files) — data/crcp-drift-state.json data/latest.json -
81d50e52026-08-16 auto-data-snapshot: 2026-08-16T13:27:22 (2 data files) — data/crcp-drift-state.json data/latest.json -
51661702026-08-16 afternoon CRE update 2026-08-16 -
b90719b2026-08-16 auto-data-snapshot: 2026-08-16T12:26:32 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e9c97ba2026-08-16 auto-data-snapshot: 2026-08-16T07:22:50 (3 data files) — data/alerts-state.json data/crcp-drift-state.json data/latest.json -
bd2c9902026-08-16 auto-data-snapshot: 2026-08-16T06:21:58 (5 data files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
549c6dd2026-08-16 auto-data-snapshot: 2026-08-16T05:51:39 (1 data files) — data/listings.json -
1fb0b522026-08-16 auto-data-snapshot: 2026-08-16T04:20:17 (2 data files) — data/brokers-snapshot.json data/ranked.json -
a02cb8f2026-08-16 auto-data-snapshot: 2026-08-16T01:17:41 (2 data files) — data/crcp-drift-state.json data/latest.json -
4dcd2312026-08-16 auto-data-snapshot: 2026-08-16T00:47:15 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
5130c892026-08-16 auto-data-snapshot: 2026-08-16T00:16:53 (1 data files) — data/condos-redfin.json -
d673ce62026-08-15 auto-data-snapshot: 2026-08-15T19:12:38 (2 data files) — data/crcp-drift-state.json data/latest.json -
eb7356f2026-08-15 auto-data-snapshot: 2026-08-15T18:52:36 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
923cb8a2026-08-15 auto-data-snapshot: 2026-08-15T18:22:11 (1 data files) — data/condos-redfin.json -
49b7f022026-08-15 auto-data-snapshot: 2026-08-15T15:50:00 (1 data files) — package-lock.json -
dea16682026-08-15 chore: v0.18.5 (session close — name-method broker classifier) -
7b0095a2026-08-15 auto-data-snapshot: 2026-08-15T15:19:36 (2 data files) — data/crcp-drift-state.json data/latest.json -
e936a262026-08-15 afternoon CRE update 2026-08-15 -
e0a2ed32026-08-15 auto-data-snapshot: 2026-08-15T12:46:51 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
2fded812026-08-15 auto-data-snapshot: 2026-08-15T12:16:23 (1 data files) — data/condos-redfin.json -
14d6a672026-08-15 auto-data-snapshot: 2026-08-15T09:13:26 (2 data files) — data/crcp-drift-state.json data/latest.json -
697537a2026-08-15 auto-data-snapshot: 2026-08-15T07:11:28 (1 data files) — data/alerts-state.json -
bb829b92026-08-15 auto-data-snapshot: 2026-08-15T06:40:54 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
b303af12026-08-15 auto-data-snapshot: 2026-08-15T06:10:16 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
54f3e8d2026-08-15 auto-data-snapshot: 2026-08-15T05:39:53 (1 data files) — data/listings.json -
6c018ce2026-08-15 auto-data-snapshot: 2026-08-15T04:38:51 (2 data files) — data/brokers-snapshot.json data/ranked.json -
8faa7762026-08-15 auto-data-snapshot: 2026-08-15T03:07:36 (2 data files) — data/crcp-drift-state.json data/latest.json -
5e2578e2026-08-15 auto-data-snapshot: 2026-08-15T00:34:50 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
12c4bed2026-08-14 auto-data-snapshot: 2026-08-14T21:32:21 (2 data files) — data/crcp-drift-state.json data/latest.json -
36932132026-08-14 auto-data-snapshot: 2026-08-14T18:29:45 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
f28dbf22026-08-14 auto-data-snapshot: 2026-08-14T15:27:10 (2 data files) — data/crcp-drift-state.json data/latest.json -
6cac1312026-08-14 afternoon CRE update 2026-08-14 -
b01c0e82026-08-14 auto-data-snapshot: 2026-08-14T12:54:45 (1 data files) — data/brokers-snapshot.json -
780b4702026-08-14 CRCP: name-method commercial/residential classifier for cre brokers (conservative else=keep, TK-10583) + wire into nightly snapshot refresh; fixes Coldwell Banker Residential mis-tagged commercial -
d79654c2026-08-14 auto-data-snapshot: 2026-08-14T12:24:03 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
69b35cf2026-08-14 CRCP: apply asset_class=commercial filter on the snapshot path too (prod serves /api/brokers/all from snapshot) — TK-10535 desk residential-leak fix -
acf29032026-08-14 CRCP: /api/brokers/all honors ?asset_class=commercial (agent_type filter) so RENTV CRE desk can't surface residential brokers (TK-10535 leak fix) -
a4fac772026-08-14 auto-data-snapshot: 2026-08-14T09:20:46 (2 data files) — data/crcp-drift-state.json data/latest.json -
ce0e5222026-08-14 auto-data-snapshot: 2026-08-14T07:18:58 (1 data files) — data/alerts-state.json -
646f4e42026-08-14 auto-data-snapshot: 2026-08-14T06:18:02 (5 data files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
11e31f12026-08-14 auto-data-snapshot: 2026-08-14T05:47:36 (1 data files) — data/listings.json -
070d0422026-08-14 auto-data-snapshot: 2026-08-14T04:16:15 (2 data files) — data/brokers-snapshot.json data/ranked.json -
24e80592026-08-14 auto-data-snapshot: 2026-08-14T03:15:23 (2 data files) — data/crcp-drift-state.json data/latest.json -
8767b5c2026-08-14 auto-data-snapshot: 2026-08-14T00:42:57 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
fc4ff3e2026-08-14 auto-data-snapshot: 2026-08-14T00:12:33 (1 data files) — data/condos-redfin.json -
2c467262026-08-13 auto-data-snapshot: 2026-08-13T21:10:05 (2 data files) — data/crcp-drift-state.json data/latest.json -
42482562026-08-13 nav-agent: opt-out detail/chart page(s) from grid-controls (data-nav-agent=off, TK-10525) — resolves findTarget-miss NEEDS flag; documented reason inline -
2ea2f852026-08-13 auto-data-snapshot: 2026-08-13T18:37:41 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
30b17852026-08-13 auto-data-snapshot: 2026-08-13T15:35:02 (2 data files) — data/crcp-drift-state.json data/latest.json -
3c50a812026-08-13 afternoon CRE update 2026-08-13 -
b83f4e82026-08-13 auto-data-snapshot: 2026-08-13T12:26:31 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
fb2a46f2026-08-13 CRCP: residential broker/firm directory proxied from usre (asset_class=residential) as Frank's lending-lead source (Node C, TK-10535) -
8437e2e2026-08-13 auto-data-snapshot: 2026-08-13T09:53:42 (2 data files) — public/crcp-grid.css.pre-3view.bak public/crcp-grid.js.pre-3view.bak -
ded628b2026-08-13 chore: untrack crcp-grid .pre-3view.bak backups (TK-10526; kept on disk, *.bak gitignored) -
6c1c45b2026-08-13 auto-data-snapshot: 2026-08-13T09:23:12 (2 data files) — data/crcp-drift-state.json data/latest.json -
c7994852026-08-13 chore: v0.18.4 (session close — TK-10526 three-view.js fix) -
f86719c2026-08-13 TK-10526: add missing three-view.js <script> to broker-grid/mls/fha-loans (had CSS only; toggle was styled-but-dead) — matches condos.html -
ff880e52026-08-13 fha-loans.html: add grid(cards)+compact-list views + view toggle + all-field sort select (was table-only, no view buttons) — detail modal/red-flags/facets/search preserved -
242d5692026-08-13 nav-agent: v1.1 merge-mode asset refresh -
b36efec2026-08-13 mls.html: add compact-list view (3rd mode) — grid/list/table + all-col sort; property-history modal + shortlist + facets/search/pagination preserved -
ca654ac2026-08-13 broker-grid.html: add compact-list view (3rd mode) — grid/list/table + all-col sort; contact modal + find-email + facets/search preserved -
badc0592026-08-13 condos.html: add compact-list view (3rd mode) + shared three-view helper — grid/list/table + all-col sort, facets/search/notes/modal/drill preserved -
680d4422026-08-13 nav-agent: add universal grid-controls drop-in (field-toggle panel + sort/group/density + movable/removable/expandable panels) to all internal grid pages -
3fd84652026-08-13 auto-data-snapshot: 2026-08-13T07:20:35 (1 data files) — data/alerts-state.json -
ab5e01b2026-08-13 auto-data-snapshot: 2026-08-13T06:19:17 (5 data files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
c435a362026-08-13 auto-data-snapshot: 2026-08-13T05:48:41 (1 data files) — data/listings.json -
d3032142026-08-13 auto-data-snapshot: 2026-08-13T04:16:27 (2 data files) — data/brokers-snapshot.json data/ranked.json -
f524c7a2026-08-13 auto-data-snapshot: 2026-08-13T03:15:18 (2 data files) — data/crcp-drift-state.json data/latest.json -
0d936b32026-08-13 auto-data-snapshot: 2026-08-13T00:42:36 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
bb9acf62026-08-13 auto-data-snapshot: 2026-08-13T00:12:07 (1 data files) — data/condos-redfin.json -
41b75c82026-08-12 auto-data-snapshot: 2026-08-12T21:09:16 (2 data files) — data/crcp-drift-state.json data/latest.json -
a52098f2026-08-12 auto-data-snapshot: 2026-08-12T18:36:17 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
050e87c2026-08-12 auto-data-snapshot: 2026-08-12T15:31:57 (2 data files) — data/crcp-drift-state.json data/latest.json -
8f91e902026-08-12 afternoon CRE update 2026-08-12 -
77258132026-08-12 auto-data-snapshot: 2026-08-12T12:29:13 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
9bc8bba2026-08-12 crcp: send scoped Basic auth to usre contractor API (TK-10488) -
7deca8f2026-08-12 Add "Contractors for this deal" surface (TK-10488) -
c98c3fe2026-08-12 auto-data-snapshot: 2026-08-12T09:25:42 (2 data files) — data/crcp-drift-state.json data/latest.json -
2baa93b2026-08-12 auto-data-snapshot: 2026-08-12T08:54:38 (1 data files) — package-lock.json -
59e00542026-08-12 chore: bump v0.18.2 → v0.18.3 (session close) -
69268842026-08-12 just-listed: harden esc() against attribute-breakout XSS + fix CSV var shadow + Escape-to-close picker (session-close review) -
60799a12026-08-12 crcp parcel detail: safeHref protocol whitelist (XSS fix) + drop dead deal_city drill → plain text (TK-10482 contrarian blockers) -
9cde5e22026-08-12 crcp: full property→parcel/deal DETAIL drill-down (TK-10482) -
de54b6d2026-08-12 just-listed: add CSV export of current filtered/sorted view (visible columns) -
6d53e852026-08-12 auto-data-snapshot: 2026-08-12T07:20:53 (1 data files) — data/alerts-state.json -
373b3d12026-08-12 just-listed: add drag-to-reorder columns + persisted column order -
ae591002026-08-12 auto-data-snapshot: 2026-08-12T06:18:56 (5 data files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
79eab8f2026-08-12 auto-data-snapshot: 2026-08-12T05:48:07 (1 data files) — data/listings.json -
9caf9c22026-08-12 auto-data-snapshot: 2026-08-12T04:15:31 (2 data files) — data/brokers-snapshot.json data/ranked.json -
3853ced2026-08-12 auto-data-snapshot: 2026-08-12T03:13:39 (2 data files) — data/crcp-drift-state.json data/latest.json -
e03462f2026-08-12 auto-data-snapshot: 2026-08-12T00:39:03 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
e9ffcec2026-08-11 auto-data-snapshot: 2026-08-11T21:34:15 (2 data files) — data/crcp-drift-state.json data/latest.json -
c726ac92026-08-11 auto-data-snapshot: 2026-08-11T18:29:19 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
0b7153f2026-08-11 auto-data-snapshot: 2026-08-11T15:24:21 (2 data files) — data/crcp-drift-state.json data/latest.json -
2ff69712026-08-11 just-listed: card grid → sortable, removable-column list view -
9250ac02026-08-11 afternoon CRE update 2026-08-11 -
87a6b5b2026-08-11 auto-data-snapshot: 2026-08-11T12:47:11 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
5d02d362026-08-11 auto-data-snapshot: 2026-08-11T12:16:13 (1 data files) — data/condos-redfin.json -
53482432026-08-11 auto-data-snapshot: 2026-08-11T09:10:52 (2 data files) — data/crcp-drift-state.json data/latest.json -
1cb6f562026-08-11 auto-data-snapshot: 2026-08-11T07:04:50 (1 data files) — data/alerts-state.json -
3f2a21d2026-08-11 auto-data-snapshot: 2026-08-11T06:33:56 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
3f3db942026-08-11 auto-data-snapshot: 2026-08-11T06:02:59 (2 data files) — data/qwen-cache.json data/ranked.json -
ffe0bfd2026-08-11 auto-data-snapshot: 2026-08-11T05:32:12 (1 data files) — data/listings.json -
6217eca2026-08-11 auto-data-snapshot: 2026-08-11T04:29:53 (2 data files) — data/brokers-snapshot.json data/ranked.json -
ee026af2026-08-11 auto-data-snapshot: 2026-08-11T03:28:16 (2 data files) — data/crcp-drift-state.json data/latest.json -
d987b352026-08-11 auto-data-snapshot: 2026-08-11T00:23:16 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
f230ff32026-08-10 auto-data-snapshot: 2026-08-10T21:18:09 (2 data files) — data/crcp-drift-state.json data/latest.json -
6acbf442026-08-10 auto-data-snapshot: 2026-08-10T18:43:57 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
8ebb51a2026-08-10 auto-data-snapshot: 2026-08-10T18:13:07 (1 data files) — data/condos-redfin.json -
cf6d5792026-08-10 auto-data-snapshot: 2026-08-10T15:07:00 (2 data files) — data/crcp-drift-state.json data/latest.json -
528cc612026-08-10 afternoon CRE update 2026-08-10 -
fd9e8952026-08-10 auto-data-snapshot: 2026-08-10T12:32:05 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
2b6ebe42026-08-10 auto-data-snapshot: 2026-08-10T09:25:36 (2 data files) — data/crcp-drift-state.json data/latest.json -
517d7742026-08-10 auto-data-snapshot: 2026-08-10T07:21:36 (1 data files) — data/alerts-state.json -
73aeb312026-08-10 weekly unwarrantable-condos report 2026-08-10 -
af4cc462026-08-10 auto-data-snapshot: 2026-08-10T06:19:43 (5 data files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
c875bb12026-08-10 auto-data-snapshot: 2026-08-10T05:48:56 (1 data files) — data/listings.json -
fc2aed02026-08-10 weekly Crexi refresh 2026-08-10 -
b1916902026-08-10 auto-data-snapshot: 2026-08-10T04:16:24 (2 data files) — data/brokers-snapshot.json data/ranked.json -
570abb62026-08-10 auto-data-snapshot: 2026-08-10T03:14:37 (2 data files) — data/crcp-drift-state.json data/latest.json -
fdfd0472026-08-10 auto-data-snapshot: 2026-08-10T00:40:03 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
bdb0ed82026-08-09 auto-data-snapshot: 2026-08-09T21:04:23 (2 data files) — data/crcp-drift-state.json data/latest.json -
2c357652026-08-09 auto-data-snapshot: 2026-08-09T18:30:24 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
96edc692026-08-09 auto-data-snapshot: 2026-08-09T15:25:36 (2 data files) — data/crcp-drift-state.json data/latest.json -
f5e95c62026-08-09 afternoon CRE update 2026-08-09 -
c991bf82026-08-09 auto-data-snapshot: 2026-08-09T12:20:46 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
648aa792026-08-09 auto-data-snapshot: 2026-08-09T09:15:44 (2 data files) — data/crcp-drift-state.json data/latest.json -
29c95e52026-08-09 auto-data-snapshot: 2026-08-09T07:12:34 (1 data files) — data/alerts-state.json -
322c6252026-08-09 auto-data-snapshot: 2026-08-09T06:41:43 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
578a94d2026-08-09 auto-data-snapshot: 2026-08-09T06:09:59 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
f44ca212026-08-09 auto-data-snapshot: 2026-08-09T05:39:14 (1 data files) — data/listings.json -
1affbbd2026-08-09 auto-data-snapshot: 2026-08-09T04:37:25 (2 data files) — data/brokers-snapshot.json data/ranked.json -
e9138662026-08-09 auto-data-snapshot: 2026-08-09T03:04:53 (2 data files) — data/crcp-drift-state.json data/latest.json -
1959c3b2026-08-09 auto-data-snapshot: 2026-08-09T00:30:18 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
ea1fbe42026-08-08 auto-data-snapshot: 2026-08-08T21:25:10 (2 data files) — data/crcp-drift-state.json data/latest.json -
a68b8572026-08-08 auto-data-snapshot: 2026-08-08T18:51:08 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
3f6478f2026-08-08 auto-data-snapshot: 2026-08-08T18:20:18 (1 data files) — data/condos-redfin.json -
af00f812026-08-08 auto-data-snapshot: 2026-08-08T15:15:29 (2 data files) — data/crcp-drift-state.json data/latest.json -
40a6aa42026-08-08 afternoon CRE update 2026-08-08 -
472a9192026-08-08 auto-data-snapshot: 2026-08-08T12:41:11 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
a334a012026-08-08 auto-data-snapshot: 2026-08-08T12:10:19 (1 data files) — data/condos-redfin.json -
c6f5cc22026-08-08 auto-data-snapshot: 2026-08-08T09:04:57 (2 data files) — data/crcp-drift-state.json data/latest.json -
eb909b22026-08-08 chore: gitignore crcp-live-*.png review artifacts -
61d504f2026-08-08 TK-10330 chore: drop review screenshots/.playwright-mcp from tree + gitignore them (auto-snapshot cron had picked them up) -
97ff1c72026-08-08 crcp: give FHA-approved tile a data-href fallback (keeps modal on left-click) -
6c1cc892026-08-08 auto-data-snapshot: 2026-08-08T07:55:02 (9 data files) — .playwright-mcp/page-2026-08-08T14-43-14-677Z.yml .playwright-mcp/page-2026-08-08T14-49-54-197Z.yml .playwright-mcp/page-2026-08-08T14-50-01-441Z.yml .playwright-mcp/page-2026-08-08T14-54-49-373Z.yml .playwright-mcp/page-2026-08-08T14-54-57-652Z.yml -
86a04992026-08-08 TK-10330 CRCP flagship layout redesign — industry-grade (Four Horsemen/graphic-agent panel) -
af6cf042026-08-08 TK-10358 yoloforever c2 Cody-gate fix: repair IREA row unquoted-comma column split (12->11 cols); SURMOUNT CONFIRMED emails verified on-page (live fetch), labels kept -
49756ee2026-08-08 TK-10358 yoloforever c2: free/$0 profile enrichment of 8 needs_enrichment contacts (SURMOUNT x5, Zubia, Kurinets, Pomer) — reachability 41->48/50 -
a035ec12026-08-08 auto-data-snapshot: 2026-08-08T07:24:16 (1 data files) — data/alerts-state.json -
f8cd5cc2026-08-08 TK-10358 yoloforever c1 Cody-gate fixes: flag 9 no-contact-method rows needs_enrichment; flag Van Henkels 215 phone unverified (email-first); HOLD Borrayo unsourced Tier-1 call phone -
7f088822026-08-08 TK-10358 yoloforever c1: add 3 CONFIRMED-email tail contacts to outreach drafts (sends gated) -
a25d5aa2026-08-08 TK-10358: finish CRE marketing-exec lead tail (ind-06+ind-08 research) + reconcile MASTER to 54 named contacts -
b0eba5b2026-08-08 auto-data-snapshot: 2026-08-08T06:53:50 (2 data files) — data/marketing-exec-leads/results/ind-05.json data/marketing-exec-leads/results/ind-07.json -
6be00982026-08-08 auto-data-snapshot: 2026-08-08T06:23:20 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
06d67742026-08-08 auto-data-snapshot: 2026-08-08T05:52:59 (1 data files) — data/listings.json -
2cb678e2026-08-08 auto-data-snapshot: 2026-08-08T05:21:14 (2 data files) — data/crcp-drift-state.json data/latest.json -
c0b69432026-08-08 auto-data-snapshot: 2026-08-08T00:31:29 (3 data files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json -
6ce6fa62026-08-07 auto-data-snapshot: 2026-08-07T18:31:41 (5 data files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json data/map-points.json data/sfr-redfin.json -
7fa1abc2026-08-07 CRCP sweep: Day-theme default on crcp/fha-loans/graphics; Fields panel to top + column drag-reorder on broker-grid/gov-agents/sales -
ad59feb2026-08-07 CRE leads: wide sweep chunks 1-4 (72 firms) - +8 marketing contacts (Zacuto, Sperry, Ingenious, Pinnacle, Ed Koenig, Equity Union, IREA) -
39844e42026-08-07 auto-data-snapshot: 2026-08-07T17:58:34 (2 data files) — data/crcp-drift-state.json data/latest.json -
7a5e8292026-08-07 auto-data-snapshot: 2026-08-07T16:56:57 (12 data files) — data/marketing-exec-leads/chunks2/ind-01.json data/marketing-exec-leads/chunks2/ind-02.json data/marketing-exec-leads/chunks2/ind-03.json data/marketing-exec-leads/chunks2/ind-04.json data/marketing-exec-leads/chunks2/ind-05.json -
1229a732026-08-07 mls + properties grid: Day theme default (fresh key), Fields panel to top+expanded, panel drag-to-reorder columns -
7c4d9f32026-08-07 CRE leads: Lead Desk viewer (sortable grid + density + filters + drill-down, auth) -
abab6272026-08-07 CRE leads: personalized outreach queue (drafts only, sends gated) - 30 contacts tiered by channel -
03c9c5a2026-08-07 condos: Day theme default via fresh key, persist only on explicit toggle -
e3e5a8f2026-08-07 crcp deploy: exclude runtime solicitation-drafts.jsonl from rsync --delete -
7553ed12026-08-07 CRE leads: full email enrichment (free web patterns + local qwen3 inference), Mogharebi resolved; $0 -
4ea459d2026-08-07 graphics: point warrantability 'expiring' tiles at the new pre-filtered deep-links -
f19da0e2026-08-07 condos: renewal-outreach tooling — wider expiring buckets, CSV export, draft outreach -
e288be32026-08-07 CRE leads: enrich master with 9 direct-dial/email contacts + resolve 4 flagged names + outreach drafts -
56e5e812026-08-07 CRE marketing-exec leads: seed + master contact list (name+phone) for 20 majors + regionals -
e8f05ab2026-08-07 condos: add Contact-ready outreach chip + 'FHA expires soonest' sort preset -
c25ae4d2026-08-07 condos: add date-based quick-filter chips (Expiring ≤90d / Lapsed ≤180d) -
0f76d8b2026-08-07 auto-data-snapshot: 2026-08-07T15:54:54 (13 data files) — data/marketing-exec-leads/chunks/chunk-01.csv data/marketing-exec-leads/chunks/chunk-02.csv data/marketing-exec-leads/chunks/chunk-03.csv data/marketing-exec-leads/chunks/chunk-04.csv data/marketing-exec-leads/chunks/chunk-05.csv -
41ae00f2026-08-07 condos: add color-coded 'Days to expiry' field (live calc from FHA expiration) -
4edfac92026-08-07 condos: surface FHA expiration date as a toggleable grid column -
c9925322026-08-07 CRCP: fleet-wide day/night toggle + legibility pass across all pages -
1cb56be2026-08-07 condos: rework colors for legibility + add day/night toggle -
4a7febc2026-08-07 afternoon CRE update 2026-08-07 -
9059b962026-08-07 auto-data-snapshot: 2026-08-07T12:18:30 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
2a90b162026-08-07 auto-data-snapshot: 2026-08-07T11:47:33 (2 data files) — data/crcp-drift-state.json data/latest.json -
2bb224e2026-08-07 security: swap xlsx 0.18.5 → SheetJS CDN 0.20.3 (clears HIGH GHSA-4r6h/5pgg; audit=0 vulns, XLSX.read verified) -
d844cd62026-08-07 auto-data-snapshot: 2026-08-07T08:00:20 (1 data files) — package-lock.json -
7b784722026-08-07 CPRA deed-source scaffold + draft request (dormant) + deals-flow→/property nav link; v0.18.2 -
a6093d92026-08-07 auto-data-snapshot: 2026-08-07T07:29:27 (2 data files) — data/alerts-state.json package-lock.json -
0f9ec8b2026-08-07 add standalone /property public-record lookup page (reuses cached assessor+ULA endpoints); v0.18.1 -
e82c03c2026-08-07 auto-data-snapshot: 2026-08-07T06:58:19 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
b5312a72026-08-07 auto-data-snapshot: 2026-08-07T06:27:13 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
5d5af112026-08-07 auto-data-snapshot: 2026-08-07T05:56:28 (3 data files) — data/crcp-drift-state.json data/latest.json data/listings.json -
2a9f7af2026-08-07 auto-data-snapshot: 2026-08-07T04:23:46 (2 data files) — data/brokers-snapshot.json data/ranked.json -
aab6e2d2026-08-07 a11y(corner-nav): focus trap, arrow-key nav, dialog ARIA roles, keyboard accordion (TK-10324) -
9fe920b2026-08-07 auto-data-snapshot: 2026-08-07T00:47:33 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
d1f46692026-08-07 auto-data-snapshot: 2026-08-07T00:16:37 (1 data files) — data/condos-redfin.json -
e47889b2026-08-06 auto-data-snapshot: 2026-08-06T23:45:50 (2 data files) — data/crcp-drift-state.json data/latest.json -
44659622026-08-06 auto-data-snapshot: 2026-08-06T18:37:41 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
4180a972026-08-06 property lookup: disambiguate from grid-filter search (Cody Cycle-4 UX fix) -
899eba82026-08-06 auto-data-snapshot: 2026-08-06T18:06:44 (2 data files) — data/crcp-drift-state.json data/latest.json -
1d92fcb2026-08-06 deals-flow: 'look up any LA property' address box -> dossier (TK-10313 Cycle 4) -
f6db22c2026-08-06 CRCP mls: surface '🕓 Newest (first seen)' at top of sort dropdown → first_seen desc (Cody cycle-4 hole #3; dedupes the buried 'Sort: First seen') -
59bdb782026-08-06 property-detail drill: Cody Cycle-3 fixes (Escape-close + stale-render guard) -
e0876242026-08-06 deals-flow: property-detail drill — click a county deal -> inline public-record dossier (TK-10313 Cycle 3) -
2d61ca72026-08-06 enrich endpoints: Cody Cycle-2 hardening (timeout + address gate + LRU cache) -
8e331482026-08-06 DSCR Qualifier: add vacancy % + interest-only underwriting levers (R1 completed) -
03cae432026-08-06 CRCP: /api/property/:ain + /api/property/by-address enrichment endpoints (TK-10313 Cycle 2) -
bc720b12026-08-06 CRCP mls: make 'First seen' visible per admin-card rule — unconditional grid-card 🕓 chip + default-on column (matches condos.html reference; Cody FIX-FIRST) -
8ebbc432026-08-06 CRCP mls: add opt-in 'First seen' column (datetime cell type, date+time) surfacing listing.created_at — admin-card recency rule; default-hidden per START TIGHT -
cea42652026-08-06 security: npm audit fix — patch body-parser DoS (GHSA-v422-hmwv-36x6), non-breaking -
fccb4e72026-08-06 CRCP: snapLeads rank-then-slice — rank full snapshot pool by fit before taking limit (fixes Cody slice-before-rank drop of high-fit brokers) -
fe2521c2026-08-06 CRCP: snapLeads() fallback for /api/leads/top — homepage broker panel now populates on prod (no cre DB) from snapshot top[]+brokerDetail, incl. created_at -
d30373f2026-08-06 enrich-property: fix Cody-verified field bugs + honest labeling (Cycle 1 revise) -
e515bc52026-08-06 CRCP: surface listing.created_at as '🕓 captured <date+time>' chip on broker card rows (admin-card recency rule) -
4d95c1e2026-08-06 CRCP: per-property public-record enrichment module (free assessor dossier + ULA + deed-gap decl) -
f05ff592026-08-06 CRCP: retry ranked.json fetch-only so success body (12 event listeners) runs once — fixes double-wire regression (Cody HOLE-1) -
00b81922026-08-06 CRCP: soften dev-facing load errors + one-shot auto-retry on ranked.json & broker leads -
bd5c0232026-08-06 Polish corner nav: type-to-filter search, focus-on-open, current-link scroll, focus restore -
3814ddc2026-08-06 Refine corner nav: thoughtful 6-group IA, all sections collapsed, you-are-here marker + counts -
82c72702026-08-06 Fold top tab-bars into the hamburgers; strip horizontal nav from every page header -
4588a782026-08-06 CRCP: add LA City Measure ULA feed — current 2025/2026 LA CRE deals (public record) -
955b3712026-08-06 fix(brokers): resolve relative API fetches against location.origin so they can't inherit credentials from a user:pass@ document URL (fetch() rejects credentialed URLs) -
619dd532026-08-06 Add shared two-hamburger corner navigation to every CRCP page -
e8c77da2026-08-06 docs: LA current-sales sourcing memo (ULA/deeds, public-record only) -
3d60c862026-08-06 Keep DSCR Qualifier on crcp.html only; revert index.html addition -
750c9b82026-08-06 Add DSCR Qualifier to the initial page (index.html) + Frank's lending desk -
143952a2026-08-06 deals-flow: map SEC EDGAR filing date to year so 2025/2026 REIT deals surface -
63a53ca2026-08-06 afternoon CRE update 2026-08-06 -
39507362026-08-06 auto-data-snapshot: 2026-08-06T12:57:07 (1 data files) — data/agent-sites.json -
3e014272026-08-06 auto-data-snapshot: 2026-08-06T12:25:51 (3 data files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
c95386d2026-08-06 CRCP auth hardening from security review (TK-10301) -
1934c922026-08-06 CRCP full login: admin+standard roles, per-user private notes, admin console (TK-10301) -
53717bd2026-08-06 auto-data-snapshot: 2026-08-06T11:54:28 (2 data files) — data/crcp-drift-state.json data/latest.json -
9ddd2582026-08-06 auto-data-snapshot: 2026-08-06T11:23:39 (1 data files) — data/agent-sites.json -
193f7b32026-08-06 CRCP: bounded $0 agent-site+phone discovery (2022 agents, free SERP + local qwen3:14b) → data/agent-sites.json; /api/agent-sites + on-demand /api/agent/discover; mls.html renders 📞 phone · 👤 agent site (or find btn) · 🔗 listing per deal -
b0d2cf62026-08-06 auto-save: 2026-08-06T07:19:35 (1 files) — data/alerts-state.json -
8dab2312026-08-06 auto-save: 2026-08-06T06:49:23 (1 files) — data/residential-report.html -
18332412026-08-06 auto-save: 2026-08-06T06:19:10 (5 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
653a88c2026-08-06 auto-save: 2026-08-06T05:48:58 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
4fb023b2026-08-06 auto-save: 2026-08-06T04:18:20 (2 files) — data/brokers-snapshot.json data/ranked.json -
a59e7e12026-08-06 auto-save: 2026-08-06T00:47:08 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
dbb101e2026-08-06 auto-save: 2026-08-06T00:16:57 (1 files) — data/condos-redfin.json -
80a3aab2026-08-05 auto-save: 2026-08-05T23:46:47 (2 files) — data/crcp-drift-state.json data/latest.json -
4ebdb2d2026-08-05 auto-save: 2026-08-05T18:44:47 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
4e142e12026-08-05 auto-save: 2026-08-05T18:14:36 (1 files) — data/condos-redfin.json -
ceb365b2026-08-05 auto-save: 2026-08-05T17:44:25 (2 files) — data/crcp-drift-state.json data/latest.json -
10c6b652026-08-05 afternoon CRE update 2026-08-05 -
34ca7da2026-08-05 auto-save: 2026-08-05T12:42:02 (5 files) — data/condo-brokers.json data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
3bd01d52026-08-05 docstring: correct enrich-condo-emails to note brand-map-only (no domain guessing) — TK-10243 -
f1d23c62026-08-05 auto-save: 2026-08-05T12:11:52 (4 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json scripts/enrich-condo-emails.js -
2bee9322026-08-05 condos both-sides: buyer-side scraper (Redfin buyingAgents) + /api/condos overlay plumbing — TK-10243 -
115cbb92026-08-05 condos.html: add broker/agent contact field toggles (listing agent, phone, office, email, DRE#, responsible broker+address, buyer's side) — TK-10243 -
74c643a2026-08-05 auto-save: 2026-08-05T07:09:54 (1 files) — data/alerts-state.json -
24bc7b12026-08-05 auto-save: 2026-08-05T06:39:44 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
d894a272026-08-05 auto-save: 2026-08-05T06:09:34 (4 files) — data/crcp-drift-state.json data/latest.json data/qwen-cache.json data/ranked.json -
4cbc8d52026-08-05 auto-save: 2026-08-05T05:39:25 (1 files) — data/listings.json -
72728182026-08-05 auto-save: 2026-08-05T04:39:04 (2 files) — data/brokers-snapshot.json data/ranked.json -
e8735402026-08-05 auto-save: 2026-08-05T00:37:47 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
32b90212026-08-05 auto-save: 2026-08-05T00:07:36 (2 files) — data/crcp-drift-state.json data/latest.json -
95bfcd32026-08-04 CRCP: add CRCP GA4 tag (G-7R2X3B2V18) to origin index.html — reconciles origin to the live hotfix so a future deploy won't strip analytics (drift canary was flagging this) -
4e86a952026-08-04 auto-save: 2026-08-04T18:35:48 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
f8464272026-08-04 auto-save: 2026-08-04T18:05:34 (2 files) — data/crcp-drift-state.json data/latest.json -
83ec09b2026-08-04 afternoon CRE update 2026-08-04 -
8246c7d2026-08-04 auto-save: 2026-08-04T13:03:31 (2 files) — data/.pre-afternoon-ids.json data/last-refresh.json -
64373952026-08-04 auto-save: 2026-08-04T12:33:18 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
1e8a48d2026-08-04 auto-save: 2026-08-04T12:03:05 (2 files) — data/crcp-drift-state.json data/latest.json -
b1c6ee82026-08-04 auto-save: 2026-08-04T07:00:57 (1 files) — data/alerts-state.json -
f939ee82026-08-04 auto-save: 2026-08-04T06:30:44 (6 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/residential-report.html -
409dd262026-08-04 auto-save: 2026-08-04T06:00:27 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
2587ae02026-08-04 auto-save: 2026-08-04T04:29:46 (2 files) — data/brokers-snapshot.json data/ranked.json -
f1f91312026-08-04 auto-save: 2026-08-04T00:58:37 (1 files) — data/residential-report.html -
7fca39a2026-08-04 auto-save: 2026-08-04T00:28:28 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
532e5ba2026-08-03 auto-save: 2026-08-03T23:58:19 (2 files) — data/crcp-drift-state.json data/latest.json -
10fa8632026-08-03 auto-save: 2026-08-03T18:56:31 (1 files) — data/residential-report.html -
f7870dd2026-08-03 auto-save: 2026-08-03T18:26:20 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
598ded72026-08-03 auto-save: 2026-08-03T17:56:09 (2 files) — data/crcp-drift-state.json data/latest.json -
096bff82026-08-03 chore: v0.18.0 (session close) — sort-option chip bar on left panel (Cody-gated), shipped live to crcp -
19586842026-08-03 sort-bar (Cody gate): preserve <optgroup> labels as rail section headers so dynamic 20+ column sorts show grouped (Financial/Location/…) not a wall of unlabeled chips -
75aff2f2026-08-03 afternoon CRE update 2026-08-03 -
3bd92012026-08-03 sort options as a chip bar in the LEFT PANEL (Steve): shared sort-bar.js mirrors each page's sort <select> into a .rail 'Sort' chip section (inline fallback where no rail), proxying clicks to reuse existing sort logic; on 7 grids; reverted condos to a plain select for uniformity -
044dfa42026-08-03 condos: sort control is now a visible BAR of all 8 sort-option chips (Newest/Price/$SF/Year/HOA/Project/City) — active highlighted, persists — instead of a hidden dropdown -
d0c5f862026-08-03 chore: lint (global-search clear-on-error), refactor (SEARCH_LIMIT, BB_RATE_PER_MIN consts), v0.17.0 (session close) -
fc0a3622026-08-03 auto-save: 2026-08-03T12:54:16 (2 files) — data/residential-report.html scripts/serve.js -
ca8094e2026-08-03 deploy: prep combined frontend+serve.js Kamatera push (push-full-kamatera.sh) for global search — backup-first (public/ + serve.js), no --delete, auto-detect pm2/systemd restart w/ safe abort (no blind kill), dry-run verified -
4e78f992026-08-03 auto-save: 2026-08-03T12:23:59 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
02f97152026-08-03 global search (Cody gate): deep-link ?q= readers in broker-grid + mls so result clicks actually filter (was dead-end); add .topnav to mount selector so index docks in-nav (was floating pill collision) -
7f384b22026-08-03 global search at top: /api/search across brokers+condos+SFRs (address/name/firm/license/DRE#, allSettled-resilient) + global-search.js nav search box w/ grouped dropdown + keyboard nav; included on 10 CRE pages -
ddf3ff72026-08-03 commercial-broker CA-DRE hook: daily $0 cron (Steve-authorized) — confirm-broker-ca-dre.js resolves unchecked brokers via free public DRE HTTP; resumable, catches new brokers; launchd 05:30 daily -
1c0e4e42026-08-03 condos: pull ALL 115 listings (multi-agent) — 136 license#s / 21 listings with co-agents; every license hooked 100% to internal CA DRE store (dre-bylicense-cache); rebuilt report -
92e42fc2026-08-03 auto-save: 2026-08-03T11:53:46 (3 files) — data/condo-brokers.json data/crcp-drift-state.json data/latest.json -
1e8ea8f2026-08-03 fetch-redfin-agents (condo): record ALL license numbers per listing (multi-agent, role listing/co-listing) — mirrors the SFR + FHA-condo fix; completes multi-agent capture across all 3 Redfin listing scrapers -
5bb6bfb2026-08-03 fetch-sfr-agents: record ALL license numbers per SFR listing (capture every listingAgent, not just [0]) — persist each as a broker w/ role listing/co-listing; only primary writes flat sfr.broker_name; deduped; tested -
a5ff4d22026-08-03 condos table DRE# (Cody gate): resolve broker_dre BEFORE the null-guard so agents-only listings show the license (not '—'), + digit-format guard before linking -
ea6498d2026-08-03 condos table: add drillable DRE# column (License# → CA DRE record, +N co-agent indicator) — completes all-licenses visibility across card/modal/table (all 3 per-listing surfaces) -
8e1bfaa2026-08-03 enrich-condo-brokers: cost circuit-breaker (Codex dissent) — abort after 8 consecutive WAF blocks OR 12 session-min (~$1.80 ceiling); preserves data, tells you to rerun --only-missing when WAF cools -
d3c49a32026-08-03 enrich-condo-brokers (Cody gate): FIX partial-hit clobber (merge prior agents[] so a fallback-only re-scrape can't nuke recorded co-agent licenses) + robust nesting-safe extractAgents (balanced-bracket JSON.parse, regex fallback) — tested 1-level/2-level/malformed -
67623f32026-08-03 condos: rebuild + send date-ordered all-licenses report (msg 19fc8ce54698cddb) -
158df082026-08-03 condos: date-order the list (newest-listed first) + all-licenses in detail modal + DOM chip; FIX preserve-on-block (never clobber good broker data with an empty WAF-blocked scrape); restore 27 backup-recovered listings -
c0235f62026-08-03 index broker-line: tighten DRE link guard /^d{7,8}/ -> /^d{8}/ (Cody: CA DRE licenses are exactly 8 digits) -
3a9480d2026-08-03 record all license numbers on every listing (display): email + viewer card render one row per agent w/ each DRE# linked to its record; overlayBroker + report overlay carry agents[]; graceful fallback to single broker -
fcd24a82026-08-03 enrich-condo-brokers: record ALL license numbers per listing (multi-agent listingAgents capture, not just [0]) + hook every agent DRE# into its full CA DRE record (cached, $0) -
a06fde22026-08-03 detail-modal drill enrichment (index/sales/mls): index broker-line DRE#→CA DRE record + phone→tel; sales & mls modal address→Google Maps (all-data-href rule) -
5d14bae2026-08-03 modal drill (Cody fixes): gate broker DRE link on verified dre_license not raw regex (+serve.js SELECT), style .maddr a.dl, drop trailing zip space -
0d5ac4f2026-08-03 detail-modal drill enrichment: condos modal address→Google Maps + View-listing→source link; broker-grid modal DRE# (8-digit)→full CA DRE record (all-data-href rule) -
c5e64972026-08-03 rent-rolls density: hide slider in Table view (Cody — dead control), cap to 1 col <=820px so density can't crush the DSCR calc, max 4 cols -
685b2102026-08-03 rent-rolls: add density slider (Steve HARD rule: every product grid needs sort + density) — #rolls becomes a --cols-driven card grid, persisted; default 1 = original stacked look -
864b07c2026-08-03 broker-grid: esc() now escapes > too (defensive, Cody follow-up) — the reference esc is copied fleet-wide -
8b81a612026-08-03 broker-grid: 'Added' (created_at) admin-card column now renders date+time w/ ISO title — comply with admin-card timestamp HARD rule (was date-only via dt()) -
64d69b92026-08-03 condos viewer: make list-view sticky-column city drillable too (Cody gate — was dead text); clarify drill-handler comment -
aa830f92026-08-03 condos viewer: city + firm datums drill to filtered view (no dead-end text rule) — reuse F.cities/F.firms facet state, stopPropagation so it doesn't open modal -
e0227f62026-08-03 condos viewer: DRY date rendering into fmtDateTime/dateTimeSpan — fix modal date-only regression (Cody gate), guard Invalid Date, ISO in title everywhere -
f7b6b052026-08-03 condos viewer: always-on created date+time chip on cards + date+time (not date-only) in list — comply with admin-card timestamp HARD rule -
685110b2026-08-03 chore: lint, refactor (path.join, delete stale note keys), v-minor (per-listing broker + notes + cost-logging) — session close -
640b8122026-08-03 fetch-condos-redfin: log Browserbase spend to cost-ledger for AbramsEgo budget tracking -
de3b4772026-08-03 condos: weekly auto-scrape of NEW-listing brokers (--only-missing) + log Browserbase spend to cost-ledger for AbramsEgo budget tracking -
3a288f62026-08-03 auto-save: 2026-08-03T08:52:19 (1 files) — data/condos-report.html -
16720d92026-08-03 condos-report: overlay persistent broker cache so weekly refresh can't wipe per-listing broker data -
7faca572026-08-03 condos: per-listing broker/firm/DRE (Redfin+Browserbase scrape, DRE# hooked to full CA DRE record) + notes (viewer box API + printable email line) -
72929862026-08-03 auto-save: 2026-08-03T08:22:05 (1 files) — data/condos-report.html -
34b13682026-08-03 condos-report: add Frank Thomas (Arcstone Financial) broker/lender contact block to email + viewer -
e8aab682026-08-03 auto-save: 2026-08-03T07:21:35 (1 files) — data/alerts-state.json -
60af93f2026-08-03 weekly unwarrantable-condos report 2026-08-03 -
9566eab2026-08-03 auto-save: 2026-08-03T06:21:04 (5 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
1204c182026-08-03 auto-save: 2026-08-03T05:50:52 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
cca24bd2026-08-03 weekly Crexi refresh 2026-08-03 -
9a37b092026-08-03 auto-save: 2026-08-03T04:20:12 (2 files) — data/brokers-snapshot.json data/ranked.json -
2e427c52026-08-03 auto-save: 2026-08-03T00:49:10 (1 files) — data/residential-report.html -
d1f45d82026-08-03 auto-save: 2026-08-03T00:19:00 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
7d1d29d2026-08-02 auto-save: 2026-08-02T23:48:52 (2 files) — data/crcp-drift-state.json data/latest.json -
8c171442026-08-02 crcp: explicit column list in broker-of-record recorder (satisfy deploy PII-leak lint gate) (TK-10139) -
9ac54082026-08-02 auto-save: 2026-08-02T18:47:17 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
82ed07f2026-08-02 auto-save: 2026-08-02T18:17:08 (1 files) — data/condos-redfin.json -
4f04dd82026-08-02 auto-save: 2026-08-02T17:46:59 (2 files) — data/crcp-drift-state.json data/latest.json -
cadf9b72026-08-02 afternoon CRE update 2026-08-02 -
ce5a08d2026-08-02 auto-save: 2026-08-02T12:45:17 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
8f5b8bf2026-08-02 auto-save: 2026-08-02T12:15:06 (1 files) — data/condos-redfin.json -
48b12b72026-08-02 auto-save: 2026-08-02T11:44:56 (2 files) — data/crcp-drift-state.json data/latest.json -
b4364f02026-08-02 auto-save: 2026-08-02T08:13:37 (1 files) — data/ranked.json -
089c3682026-08-02 crcp: drive broker-of-record recorder nightly (TK-10139) -
a4cd3fa2026-08-02 crcp: checkpoint broker-of-record.sqlite after recorder verification (TK-10139) -
32d6df52026-08-02 crcp: /api/broker-of-record endpoint + Last Broker/Firm of Record columns in mls (TK-10139) -
2c292462026-08-02 chore: v0.15.1 — deals-flow.html blank-grid fix (loadTicker try/catch), session close. Author: steve@designerwallcoverings.com -
7bd66392026-08-02 crcp: append-only broker-of-record history store + recorder + backfill (TK-10139) -
be379e12026-08-02 deals-flow.html: verified drill + fixed try-without-catch in loadTicker (blank-grid regression since 771efe62, 7/31); fix landed in auto-save 3398919. Headless drill verify PASS 11/11. Author: steve@designerwallcoverings.com -
33989192026-08-02 auto-save: 2026-08-02T07:43:26 (1 files) — public/deals-flow.html -
7cb0f032026-08-02 auto-save: 2026-08-02T07:13:15 (1 files) — data/alerts-state.json -
c5f3d492026-08-02 auto-save: 2026-08-02T06:43:03 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
dff33ae2026-08-02 auto-save: 2026-08-02T06:12:47 (5 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json data/qwen-cache.json data/ranked.json -
083e1a82026-08-02 auto-save: 2026-08-02T05:42:34 (1 files) — data/listings.json -
5925db32026-08-02 auto-save: 2026-08-02T04:42:12 (1 files) — data/brokers-snapshot.json -
67153cb2026-08-02 auto-save: 2026-08-02T00:40:47 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
276701e2026-08-02 auto-save: 2026-08-02T00:10:36 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json -
91cb19f2026-08-01 Adopt column-manager.js into lending-grid.js engine — 5 pages in one edit (TK-10128) -
4ba8f302026-08-01 auto-save: 2026-08-01T22:40:01 (1 files) — public/lending-grid.js -
a01bf5e2026-08-01 Adopt column-manager.js in gov-agents + sales (TK-10120 sweep) -
3b9663c2026-08-01 column-manager: add external-state + footer/hint opts; adopt in mls.html (TK-10120) -
67100212026-08-01 Add reusable column-manager.js drop-in (DTD verdict A — docked rail, TK-10120) -
ab388582026-08-01 auto-save: 2026-08-01T21:09:29 (1 files) — package-lock.json -
03f01592026-08-01 chore: lint (node --check ✓) + v0.15.0 (firm-direct deep-links + crexi scrub, session close) -
a04788c2026-08-01 crcp: Matthews firm-direct recon — no listings JSON XHR (SSR/Next.js, data in __NEXT_DATA__); no cheap crack, deferred (TK-10081) -
a241df12026-08-01 condos: normalize junk broker/firm placeholders (N/A etc) to null (yoloforever c8) -
9cea4042026-08-01 commercialrealestate: adopt href-to-deeper-data primitives (TK-10093) -
54134252026-08-01 crcp: M&M firm-direct DEAD-END — API caps at 100 results server-side + no street address in feed (property-name keyed), can't match our address-based deals; $0.08 recon spent, documented (TK-10081) -
f97798f2026-08-01 residential: rental-leak floor — drop sub-$25k 'sale' prices from the for-sale SFR feed (yoloforever c7) -
9951d442026-08-01 auto-save: 2026-08-01T20:09:07 (1 files) — public/deals-flow.html -
57b49b82026-08-01 crcp: apply 25 Lyon Stahl firm-direct deep-links (Steve-approved, $0 sitemap) TK-10081 -
68f40f92026-08-01 crcp: $0 Lyon Stahl sitemap deep-link harvester — 25/74 clean matches, staged for approval (TK-10081) -
5f8c2702026-08-01 crcp: apply 31 Lee firm-direct deep-links to ranked.json (Steve-approved; Browserbase-harvested, agent-corroborated) TK-10081 -
8591e842026-08-01 auto-save: 2026-08-01T19:38:57 (1 files) — public/deals-flow.html -
91012102026-08-01 crcp: wire display to prefer firm_direct_url deep-links + Browserbase Lee harvester ($0.04, 31 deep-links resolved + agent-corroborated); data write staged for approval (TK-10081) -
0914b662026-08-01 auto-save: 2026-08-01T18:38:36 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
0add5e52026-08-01 auto-save: 2026-08-01T18:08:28 (2 files) — data/crcp-drift-state.json data/latest.json -
5d5e3ba2026-08-01 afternoon CRE update 2026-08-01 -
0464fb72026-08-01 auto-save: 2026-08-01T12:36:48 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
4b346d12026-08-01 auto-save: 2026-08-01T12:06:38 (2 files) — data/crcp-drift-state.json data/latest.json -
93cb9092026-08-01 auto-save: 2026-08-01T07:04:40 (1 files) — data/alerts-state.json -
899f2492026-08-01 auto-save: 2026-08-01T06:34:23 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
fd9c49d2026-08-01 auto-save: 2026-08-01T06:03:58 (4 files) — data/crcp-drift-state.json data/latest.json data/qwen-cache.json data/ranked.json -
794843c2026-08-01 auto-save: 2026-08-01T05:33:46 (1 files) — data/listings.json -
cf50fa92026-08-01 auto-save: 2026-08-01T04:33:25 (1 files) — data/brokers-snapshot.json -
42272812026-08-01 crcp: guard property-history popup URLs (expired/comps) against aggregator leaks — closes loose end from graph audit (TK-10081) -
d0a15992026-08-01 auto-save: 2026-08-01T00:32:05 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
0dd3b1c2026-08-01 auto-save: 2026-08-01T00:01:56 (2 files) — data/crcp-drift-state.json data/latest.json -
0b4a8752026-07-31 auto-save: 2026-07-31T18:30:09 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
6baa4912026-07-31 auto-save: 2026-07-31T17:59:58 (2 files) — data/crcp-drift-state.json data/latest.json -
0d5f4712026-07-31 crcp: WIP $0 firm-direct harvesters (Lee/Buildout + Lyon Stahl) — prove path; bot-walled at scale, correctness fixes applied (TK-10081 Phase 2) -
ff6c52b2026-07-31 crcp: doctrine link-scrub — never link CREXi/aggregators; link firm-direct listing only, honest firm-site + Google finder fallback (TK-10081 Phase 2 display) -
32755542026-07-31 condos/stats + crcp/stats: re-aggregate warrantability with listingEffectiveWarrant (Cody FIX-FIRST) -
86076262026-07-31 condos: re-derive listing-level warrantability from embedded cert date (yoloforever c5) -
ba2514a2026-07-31 deals-flow ticker: add reversible dismiss (deselect) control w/ session-scoped restore (DTD verdict C + contrarian constraint) -
771efe62026-07-31 deals-flow ticker: halve default speed, constant read-pace, add stop/resume control -
daf39992026-07-31 afternoon CRE update 2026-07-31 -
9e3fedc2026-07-31 auto-save: 2026-07-31T12:57:59 (1 files) — data/residential-report.html -
1635fcc2026-07-31 auto-save: 2026-07-31T12:27:46 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
a6365d02026-07-31 index.html: fix list-view column resize not persisting (CSS-class sort arrows) -
ebb3d7b2026-07-31 warrantability: extract fhaEffectiveSignal helper, wire all 3 FHA consumers (Cody FIX-FIRST) -
8ba940e2026-07-31 warrantability: reclassify lapsed FHA certs as expired at request time (yoloforever c4) -
ac745302026-07-31 auto-save: 2026-07-31T11:57:35 (2 files) — data/crcp-drift-state.json data/latest.json -
b7adfa42026-07-31 go-live: username/password login live on crcp.agentabrams.com — timing-safe scrypt /auth/login + rate-limit + /auth/profile role picker + seed user; verified prod login 200. (parallel-session auth work committed to keep git=prod) -
889a29c2026-07-31 deals.html: scored-deal address drills to city-scoped explorer (yoloforever c3) -
47172882026-07-31 crcp: surface Panel 4 in the Warrantability panel — HUD reference-list total (2661) + HRAP/DELRAP method split via /api/crcp/stats fhaTotal+fhaMethods -
2d6cee12026-07-31 chore: v0.14.0 (session close) — user sign-in + personalization + news ticker + Just Listed page -
3c6f1982026-07-31 auto-save: 2026-07-31T11:27:21 (13 files) — data/fdic-lenders.json data/hmda-market.json data/sba-lenders.json public/broker-grid.html public/crcp.html -
b80ef482026-07-31 P3 federal export API + Cody-gate security fixes: BLOCK /data/crcp-accounts.json from static (was leaking session tokens+scrypt hashes); export gated to Team tier; CSV formula-injection guard -
ed3c6332026-07-31 crcp: apply fixCity to /api/fha-condos too — title-case ALL-CAPS HUD cities + repair CANADA→La Cañada Flintridge, consistent with Panel 7 -
1c3f3732026-07-31 crcp list pages: resize handles survive sort/search re-render (5 pages) -
98653362026-07-31 col-resize: don't enhance/pin HIDDEN tables (fleet regression fix) -
b8c63bc2026-07-31 crcp: make all stat tiles + enrichment bars drill to their filtered-list views -
df8a26f2026-07-31 harden esc(): escape > as well as & < " (condos + crcp) -
653c5c92026-07-31 condos detail modal: broker/firm fields drill to crcp (TK-10091 cycle 2) -
6aeef282026-07-31 CRCP: harden auth surface (yolo iter 1) — login rate-limit + form semantics + ticker a11y -
ba57a252026-07-31 crcp Panel 7: add 6/12/24-month window toggle (persisted, re-queries /api/fha-expiring; h3 + count update live) -
97887fa2026-07-31 CRCP lending layer: wire Lending into CRCP nav, mark NCUA/HMDA/SBA live in source register, tidy hub -
792f0702026-07-31 CRCP lending layer: SBA lenders dataset (TK-10090) -
8c86e802026-07-31 CRCP lending layer: NCUA credit unions dataset (TK-10090) -
c95a76a2026-07-31 CRCP lending layer: HMDA mortgage-market dataset (TK-10090) -
75dfa642026-07-31 auto-save: 2026-07-31T10:57:10 (1 files) — public/crcp.html -
ef3c1622026-07-31 graphics-drill-assert: env-overridable BASE (crcp app port moves) -
c998e222026-07-31 P2 assumable-loan lead engine: crcp-leads.js /api/leads/assumable — ranks FHA below-market by assumable spread (342 CA targets), anon teaser / signed-in full; $0 public data -
384b5412026-07-31 CRCP: Just Listed active-inventory page (just-listed.html) + nav link -
84529ce2026-07-31 CRCP lending layer: hub page + compliance-gated loan-officers surface + data policy/source register -
e25aad32026-07-31 crcp: drilldown on Warrantability (FHA proxy) — bars + tile open filtered condo list -
f5e7a1a2026-07-31 crcp graphics.html: make every datum drillable (TK-10091) -
ed0652f2026-07-31 Fix broker-grid column resize (adjust column not working) -
22eb7002026-07-31 CRCP lending layer: FDIC lenders slice — 95 banks w/ LA-County branches + 1414 branches, generic config-driven grid engine, /api/lending route -
459008e2026-07-31 P1.5 Stripe/tiers TEST scaffold: crcp-billing.js (Free/Pro $79/Team $299) — tiers catalog + checkout + webhook, TEST-keys-only, degrades to configured:false; live keys/charges Steve-gated -
25ec39f2026-07-31 deploy P1 + wire email: send-magic-link.js (George, fail-closed, gated behind CRCP_MAIL) + deploy excludes user store; P1 live on crcp.agentabrams.com (accounts/saved/watchlist/alerts). Concurrent UI enhancements (ticker/persona/modal/password-auth) ride along, verified 0 errors. -
52f46ca2026-07-31 P1 subscription layer: accounts (magic-link) + saved searches + watchlist + daily alert digest — crcp-accounts.js mounted in serve.js, deals-flow.html wired (sign-in pill, save/star), deal-alerts.js ($0 digest); launchd plist written not installed. Verified E2E: 632-match digest for a saved search. -
76508c92026-07-31 crcp /api/firm: dedupe current/closed/expired by address+city (DB-path parity with snapshot) -
ee6f9c42026-07-31 CRCP modals: graceful no-coverage state + modal-open telemetry (DTD-C rider) -
ddf2b472026-07-31 spec: tool/subscription layer (DTD Option C) — sell the tool over full corpus, assessor view-only + federal exportable, tiers/features/build-order, billing gated -
94b5bba2026-07-31 nav: add 💰 Deal Flow link (home + mls) — board now discoverable; DTD-verdict finisher, redeployed + live-verified -
eceeb412026-07-31 chore: v0.13.0 — broker mind-map feature + firm/broker cleanup (session close) -
4b539082026-07-31 deal-flow: broaden county source to commercial+industrial+institutional (not just multifamily) — 15k->22k deals, $34.9B->$64.2B; redeployed + live-verified -
610cbf02026-07-31 crcp: apply broker/firm cleanup on cre (1215->1163 firms, 2622->2510 brokers, dup groups ->0) + rebuild snapshot; fix keep_name to prefer least-uppercase (Compass not COMPASS) -
0b381802026-07-31 auto-save: 2026-07-31T09:56:41 (1 files) — .deploy.conf -
8bc12cc2026-07-31 crcp: fix cleanup script — dedup brokers on (name,target-firm) before firm repoint; DISTINCT-ON conflict-safe child moves across all 7 FK tables; dry-run verified clean (1215->1163 firms, 2622->2510 brokers) -
e4f907d2026-07-31 deal-flow C3: FHA co-source (494 CA FHA-financed multifamily w/ rate + assumable flag, 🏦 badge) + EDGAR window 120->365d (35->87 deals); 3 free public sources in one board -
94bdca52026-07-31 EDGAR deals now PRICED: parse-edgar-prices.js (local Ollama hermes3:8b + regex, $0) -> 30/35 filings carry real acquisition price+property+city; wired into deal cards (e.g. Core University Living $303.5M) -
d6175f22026-07-31 auto-save: 2026-07-31T09:26:15 (6 files) — data/brokers-snapshot.json public/broker-grid.html public/crcp.html scripts/export-brokers-snapshot.js scripts/serve.js -
342556f2026-07-31 Cody-gate fixes: null build-after-transfer est prices; filter EDGAR earnings-releases (40->35); remove 'resellable' overclaim + add CA R&T 408.3(c) resale caveat; label EDGAR price-pending -
c0a2efa2026-07-31 crcp: draft gated cleanup script — firm case-merge + null-firm broker dedup (conflict-safe, backup-first; not executed) -
4c2ac2a2026-07-31 deal-flow card viewer: icon cards over both free public sources (assessor sales + SEC EDGAR REIT), per-card source badge, left filters + sort + density; 15040 deals $27.69B; headless-verified -
fe58f9e2026-07-31 EDGAR REIT deal-flow: fetch-edgar-reit-deals.js — institutional acquisitions from SEC 8-Ks (public/resellable, $0); 1255 REITs, 40 filings/120d; every record source-stamped -
7c677702026-07-31 broker mind-map: add firm-relationship graph (/api/graph?history=1) -
add9ada2026-07-31 CRCP list sweep (round 2): deferred pages + Explorer flagship -
4efa70a2026-07-31 auto-save: 2026-07-31T08:55:43 (5 files) — public/brokers.html scripts/db/brokers-db.js scripts/serve.js public/data/ scripts/db/migrations/ -
439898b2026-07-31 CRCP list sweep: apply 7-control list-UX standard to sibling pages -
5c7d62c2026-07-31 RESELLABLE sale prices from public records: derive-sale-prices.py (Prop-13 reassessment ÷1.02^yrs) -> 1.33M derived sales, 38k multifamily 2023+, all $0/public/no-scrape -
cfbe5032026-07-31 broker-grid: nulls-last sort so sparse columns (Company/Firm) don't front-load a wall of —; add Mindmap nav entry -
ea76efd2026-07-31 B2B: assumable-loan lead viewer (/fha-leads.html, 100% HUD public data) + Recorder sale-price verdict (no $0 clean source; DTT-proxy or ATTOM ~$500-2k/yr) -
982582e2026-07-31 broker-grid: tight-default columns, drag-to-reorder, search all fields -
73d873b2026-07-31 map: CRCP data by B2B-legality — assessor/FHA/DRE/Census + assumable heuristic are clean-to-resell; CREXi/Redfin listings + Redfin closed-sales are tainted; sale-price gap = re-source from County Recorder -
a70ff5b2026-07-31 research: MLS/listing data licensing — cost + B2B-use verdict (IDX display-only; B2B needs commercial license; public records are the usable core) -
4de252a2026-07-31 doctrine refined: CREXi/Redfin = discover broker+firm ONLY; all listing DATA from the firm's own site (Steve 2026-07-31) -
ccaba2e2026-07-31 doctrine HARD RULE: an aggregator is never a data source — kill the Redfin residential-broker scrape (Steve 2026-07-31) -
40ef73d2026-07-31 docs: residential (Redfin) sourcing section — writeback path + cost + baseline -
3f752e82026-07-31 viewer: Brokerage left-rail facet — filter deals by listing broker-of-record (Amazon-style) -
3d69f5c2026-07-31 auto-save: 2026-07-31T07:25:03 (1 files) — data/alerts-state.json -
4a78abf2026-07-31 auto-save: 2026-07-31T06:54:53 (1 files) — data/residential-report.html -
bcfaba12026-07-31 auto-save: 2026-07-31T06:24:28 (4 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/sfr-redfin.json -
53820312026-07-31 Phase 2-lite: resolve broker-of-record for 1696 aggregator-only deals + broker's-own-site deep-links -
b5786922026-07-31 auto-save: 2026-07-31T05:54:17 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
6007ead2026-07-31 auto-save: 2026-07-31T04:23:41 (1 files) — data/brokers-snapshot.json -
65aa2312026-07-31 auto-save: 2026-07-31T00:52:31 (1 files) — data/residential-report.html -
fff1c012026-07-31 auto-save: 2026-07-31T00:22:20 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
7f9391a2026-07-30 auto-save: 2026-07-30T23:52:10 (2 files) — data/crcp-drift-state.json data/latest.json -
a5884dc2026-07-30 auto-save: 2026-07-30T22:51:51 (1 files) — .gitignore -
95b03a32026-07-30 Phase 2 findings: national firm-direct APIs are nationwide/price-sparse, wrong for LA — keep CREXi as discovery layer; docs + capture tooling -
8030c9b2026-07-30 auto-save: 2026-07-30T22:21:42 (1 files) — data/ranked.json.pre-provenance.bak -
e3626ca2026-07-30 Phase 2: firm-direct discovery runner + M&M discovery (geo-bbox POST, needs custom extractor) -
a819e4a2026-07-30 CRE sourcing doctrine: broker-of-record as source of truth -
03058642026-07-30 chore: lint ✓ + refactor ✓ (no changes) + v0.12.0 (session close) -
7eaf4382026-07-30 rename user-facing 'MLS' -> 'LA County Listings' (Redfin-sourced, not the licensed MLS); URL /mls.html unchanged; keep real MLS listing-number refs -
70f8f1f2026-07-30 mls viewer: default landing sorts newest-first (days-on-market asc); missing values sink to bottom in all sorts -
47bee702026-07-30 mls viewer: land populated (all 22,948 listings) instead of empty 'pick a filter' state — Amazon-style default view -
e5539e22026-07-30 auto-save: 2026-07-30T18:50:20 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
2a649742026-07-30 auto-save: 2026-07-30T18:20:08 (1 files) — data/condos-redfin.json -
76359ab2026-07-30 auto-save: 2026-07-30T17:49:57 (2 files) — data/crcp-drift-state.json data/latest.json -
a6d96262026-07-30 afternoon CRE update 2026-07-30 -
0b840902026-07-30 auto-save: 2026-07-30T12:48:10 (1 files) — data/residential-report.html -
ce12f662026-07-30 auto-save: 2026-07-30T12:17:59 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
1dd22722026-07-30 auto-save: 2026-07-30T11:47:45 (2 files) — data/crcp-drift-state.json data/latest.json -
743be5e2026-07-30 auto-save: 2026-07-30T07:15:28 (1 files) — data/alerts-state.json -
1ffb6f62026-07-30 auto-save: 2026-07-30T06:45:19 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
a4d513b2026-07-30 auto-save: 2026-07-30T06:15:10 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
42687872026-07-30 auto-save: 2026-07-30T05:45:00 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
310f7b32026-07-30 auto-save: 2026-07-30T04:44:39 (1 files) — data/brokers-snapshot.json -
20765a72026-07-30 auto-save: 2026-07-30T00:43:24 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
f32ecb92026-07-30 auto-save: 2026-07-30T00:13:16 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json -
d9e75fd2026-07-29 auto-save: 2026-07-29T18:41:27 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
d46c44f2026-07-29 auto-save: 2026-07-29T18:11:10 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json -
2fb087f2026-07-29 afternoon CRE update 2026-07-29 -
e4bfcef2026-07-29 auto-save: 2026-07-29T12:38:56 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
143af8c2026-07-29 auto-save: 2026-07-29T12:08:45 (2 files) — data/crcp-drift-state.json data/latest.json -
c5c2e0f2026-07-29 auto-save: 2026-07-29T07:06:42 (1 files) — data/alerts-state.json -
1d8dfd52026-07-29 auto-save: 2026-07-29T06:36:32 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
22050682026-07-29 auto-save: 2026-07-29T06:06:22 (4 files) — data/crcp-drift-state.json data/latest.json data/qwen-cache.json data/ranked.json -
1b870282026-07-29 auto-save: 2026-07-29T05:36:12 (1 files) — data/listings.json -
51e87232026-07-29 auto-save: 2026-07-29T04:35:46 (1 files) — data/brokers-snapshot.json -
f91a01f2026-07-29 auto-save: 2026-07-29T00:34:23 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
56650692026-07-29 auto-save: 2026-07-29T00:04:14 (2 files) — data/crcp-drift-state.json data/latest.json -
0226dfa2026-07-28 auto-save: 2026-07-28T18:32:25 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
2354eef2026-07-28 auto-save: 2026-07-28T18:02:15 (2 files) — data/crcp-drift-state.json data/latest.json -
b22d6b12026-07-28 afternoon CRE update 2026-07-28 -
133d0162026-07-28 auto-save: 2026-07-28T07:28:16 (1 files) — data/alerts-state.json -
c6d781a2026-07-28 auto-save: 2026-07-28T06:58:06 (1 files) — data/residential-report.html -
824f2632026-07-28 auto-save: 2026-07-28T06:27:56 (5 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
05120b12026-07-28 auto-save: 2026-07-28T05:57:47 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
4de4dbc2026-07-28 auto-save: 2026-07-28T04:27:17 (1 files) — data/brokers-snapshot.json -
e2a4ff32026-07-28 auto-save: 2026-07-28T00:56:07 (1 files) — data/residential-report.html -
b1762872026-07-28 auto-save: 2026-07-28T00:25:56 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
c091e8e2026-07-27 auto-save: 2026-07-27T23:55:46 (2 files) — data/crcp-drift-state.json data/latest.json -
d1fae032026-07-27 auto-save: 2026-07-27T18:53:10 (1 files) — data/residential-report.html -
0fb18442026-07-27 auto-save: 2026-07-27T18:22:43 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
1410e3f2026-07-27 auto-save: 2026-07-27T17:52:34 (2 files) — data/crcp-drift-state.json data/latest.json -
2845c452026-07-27 afternoon CRE update 2026-07-27 -
e3609472026-07-27 auto-save: 2026-07-27T12:50:40 (1 files) — data/residential-report.html -
cb49ede2026-07-27 auto-save: 2026-07-27T12:20:30 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
d9221ee2026-07-27 auto-save: 2026-07-27T11:50:21 (2 files) — data/crcp-drift-state.json data/latest.json -
c4e95ba2026-07-27 auto-save: 2026-07-27T07:18:47 (1 files) — data/alerts-state.json -
16a192f2026-07-27 weekly unwarrantable-condos report 2026-07-27 -
d9400f12026-07-27 auto-save: 2026-07-27T06:18:28 (5 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
bf298042026-07-27 auto-save: 2026-07-27T05:48:20 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
c7939072026-07-27 weekly Crexi refresh 2026-07-27 -
1b76b6d2026-07-27 auto-save: 2026-07-27T04:17:53 (1 files) — data/brokers-snapshot.json -
11e408e2026-07-27 auto-save: 2026-07-27T00:46:55 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
11abb762026-07-27 auto-save: 2026-07-27T00:16:47 (1 files) — data/condos-redfin.json -
61969cf2026-07-26 auto-save: 2026-07-26T23:46:40 (2 files) — data/crcp-drift-state.json data/latest.json -
2d4c80b2026-07-26 auto-save: 2026-07-26T18:45:13 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
3a4b4002026-07-26 auto-save: 2026-07-26T18:15:03 (1 files) — data/condos-redfin.json -
8a68ec42026-07-26 auto-save: 2026-07-26T17:44:55 (2 files) — data/crcp-drift-state.json data/latest.json -
c5474202026-07-26 afternoon CRE update 2026-07-26 -
6bd7f502026-07-26 auto-save: 2026-07-26T12:43:27 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
110ac642026-07-26 auto-save: 2026-07-26T12:13:19 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json -
b74cbab2026-07-26 auto-save: 2026-07-26T07:11:20 (1 files) — data/alerts-state.json -
12bb9712026-07-26 auto-save: 2026-07-26T06:41:11 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
03edf252026-07-26 auto-save: 2026-07-26T06:11:02 (5 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json data/qwen-cache.json data/ranked.json -
59eaec22026-07-26 auto-save: 2026-07-26T05:40:54 (1 files) — data/listings.json -
6fe0d5f2026-07-26 auto-save: 2026-07-26T04:40:35 (1 files) — data/brokers-snapshot.json -
e17a2002026-07-26 auto-save: 2026-07-26T00:39:31 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
56eda3b2026-07-26 auto-save: 2026-07-26T00:09:22 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json -
e78904b2026-07-25 auto-save: 2026-07-25T18:37:55 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
47170fd2026-07-25 auto-save: 2026-07-25T18:07:45 (2 files) — data/crcp-drift-state.json data/latest.json -
4440d472026-07-25 afternoon CRE update 2026-07-25 -
4fabfad2026-07-25 auto-save: 2026-07-25T12:36:15 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
27e17b22026-07-25 auto-save: 2026-07-25T12:06:06 (2 files) — data/crcp-drift-state.json data/latest.json -
379ab202026-07-25 CRCP: harden serve.js — atomic brokers-snapshot write (H3) + clip /api/comps inputs before child-process env (H2) -
aeb00282026-07-25 CRCP: graceful-degrade /api/brokers/linkedin + /api/segments to 200+unavailable on DB error (match /api/leads/top; clean prod console) -
44f86d62026-07-25 CRCP: scrub persona flag_reason twin in broker-history-pilot.json (agent-caught residual) -
1c035bb2026-07-25 CRCP: remove verified Frank residuals — served flag_reason string + linkedin localStorage key (contrarian-caught) -
14f019d2026-07-25 CRCP: drop Frank signature from agentDraft signoff (parity with live) -
1ba902c2026-07-25 auto-save: 2026-07-25T07:04:29 (1 files) — data/alerts-state.json -
5d4b7cf2026-07-25 auto-save: 2026-07-25T06:34:19 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
f96d44b2026-07-25 auto-save: 2026-07-25T06:04:08 (4 files) — data/crcp-drift-state.json data/latest.json data/qwen-cache.json data/ranked.json -
e8eef162026-07-25 auto-save: 2026-07-25T05:33:58 (1 files) — data/listings.json -
0673a1d2026-07-25 auto-save: 2026-07-25T04:33:37 (1 files) — data/brokers-snapshot.json -
0a1a3b82026-07-25 auto-save: 2026-07-25T00:32:03 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
a6b4cb32026-07-25 auto-save: 2026-07-25T00:01:48 (2 files) — data/crcp-drift-state.json data/latest.json -
aa4300a2026-07-24 auto-save: 2026-07-24T18:59:11 (1 files) — data/residential-report.html -
8df63a02026-07-24 auto-save: 2026-07-24T18:29:03 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
c617b9e2026-07-24 auto-save: 2026-07-24T17:58:56 (2 files) — data/crcp-drift-state.json data/latest.json -
9989efc2026-07-24 auto-save: 2026-07-24T13:58:01 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
817e6962026-07-24 auto-save: 2026-07-24T13:27:55 (1 files) — data/condos-redfin.json -
692b5732026-07-24 afternoon CRE update 2026-07-24 -
12891e32026-07-24 auto-save: 2026-07-24T12:57:48 (1 files) — data/residential-report.html -
faa77152026-07-24 auto-save: 2026-07-24T11:57:36 (1 files) — data/latest.json -
0a55b7c2026-07-24 serve.js: handle EADDRINUSE gracefully to stop launchd crash-restart storm -
5cfe1b72026-07-24 auto-save: 2026-07-24T07:26:03 (1 files) — data/alerts-state.json -
848c8332026-07-24 auto-save: 2026-07-24T06:55:55 (1 files) — data/residential-report.html -
35f50c42026-07-24 auto-save: 2026-07-24T06:25:47 (5 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
9e485a82026-07-24 auto-save: 2026-07-24T05:55:40 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
562c5502026-07-24 auto-save: 2026-07-24T04:25:19 (1 files) — data/brokers-snapshot.json -
549bd002026-07-24 auto-save: 2026-07-24T00:54:30 (1 files) — data/residential-report.html -
b719f7f2026-07-24 auto-save: 2026-07-24T00:24:22 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
89a78b82026-07-23 auto-save: 2026-07-23T23:54:14 (2 files) — data/crcp-drift-state.json data/latest.json -
72b1f152026-07-23 auto-save: 2026-07-23T18:53:06 (1 files) — data/residential-report.html -
3ca99412026-07-23 auto-save: 2026-07-23T18:22:59 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
cc325132026-07-23 auto-save: 2026-07-23T17:52:50 (2 files) — data/crcp-drift-state.json data/latest.json -
9ce5a122026-07-23 Remove Frank + Arcstone from CRCP entirely -
6ad26c32026-07-23 auto-save: 2026-07-23T14:52:02 (1 files) — scripts/serve.js -
2dd43832026-07-23 afternoon CRE update 2026-07-23 -
f5983b72026-07-23 auto-save: 2026-07-23T12:51:13 (1 files) — data/residential-report.html -
79a87bf2026-07-23 auto-save: 2026-07-23T12:20:57 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
1e1b5d42026-07-23 auto-save: 2026-07-23T11:50:46 (2 files) — data/crcp-drift-state.json data/latest.json -
ef98b502026-07-23 auto-save: 2026-07-23T07:19:17 (1 files) — data/alerts-state.json -
47d04022026-07-23 auto-save: 2026-07-23T06:49:07 (1 files) — data/residential-report.html -
8989a9a2026-07-23 auto-save: 2026-07-23T06:19:01 (5 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
626986c2026-07-23 auto-save: 2026-07-23T05:48:54 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
ad5f7862026-07-23 auto-save: 2026-07-23T04:18:33 (1 files) — data/brokers-snapshot.json -
00fe3922026-07-23 auto-save: 2026-07-23T00:47:42 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
1a365cb2026-07-23 auto-save: 2026-07-23T00:17:34 (1 files) — data/condos-redfin.json -
1ff33272026-07-22 auto-save: 2026-07-22T23:47:26 (2 files) — data/crcp-drift-state.json data/latest.json -
4fc16482026-07-22 auto-save: 2026-07-22T18:46:04 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
ef7ac332026-07-22 auto-save: 2026-07-22T18:15:55 (1 files) — data/condos-redfin.json -
94e297a2026-07-22 auto-save: 2026-07-22T17:45:47 (2 files) — data/crcp-drift-state.json data/latest.json -
b26c96e2026-07-22 afternoon CRE update 2026-07-22 -
d6344aa2026-07-22 auto-save: 2026-07-22T12:44:11 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
ff421942026-07-22 auto-save: 2026-07-22T12:13:58 (1 files) — data/condos-redfin.json -
a48bdc92026-07-22 auto-save: 2026-07-22T11:43:42 (2 files) — data/crcp-drift-state.json data/latest.json -
96016d62026-07-22 auto-save: 2026-07-22T07:12:00 (1 files) — data/alerts-state.json -
bd69f712026-07-22 auto-save: 2026-07-22T06:41:50 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
70f8f732026-07-22 auto-save: 2026-07-22T06:11:42 (5 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json data/qwen-cache.json data/ranked.json -
c07f8812026-07-22 auto-save: 2026-07-22T05:41:36 (1 files) — data/listings.json -
020a3262026-07-22 auto-save: 2026-07-22T04:41:22 (1 files) — data/brokers-snapshot.json -
5c012e52026-07-22 auto-save: 2026-07-22T00:40:31 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
1efb63e2026-07-22 auto-save: 2026-07-22T00:10:24 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json -
40f7d2c2026-07-21 auto-save: 2026-07-21T18:39:12 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
09719d72026-07-21 auto-save: 2026-07-21T18:09:04 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json -
5031cac2026-07-21 afternoon CRE update 2026-07-21 -
b79b5cc2026-07-21 auto-save: 2026-07-21T12:37:29 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
5e326932026-07-21 auto-save: 2026-07-21T12:07:22 (2 files) — data/crcp-drift-state.json data/latest.json -
e2798c82026-07-21 auto-save: 2026-07-21T07:06:14 (1 files) — data/alerts-state.json -
9c375cc2026-07-21 auto-save: 2026-07-21T06:36:08 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
427fad12026-07-21 auto-save: 2026-07-21T06:06:01 (4 files) — data/crcp-drift-state.json data/latest.json data/qwen-cache.json data/ranked.json -
e29def02026-07-21 auto-save: 2026-07-21T05:35:54 (1 files) — data/listings.json -
adc59c02026-07-21 auto-save: 2026-07-21T04:35:41 (1 files) — data/brokers-snapshot.json -
22589dc2026-07-21 auto-save: 2026-07-21T00:34:53 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
610e16d2026-07-21 auto-save: 2026-07-21T00:04:47 (2 files) — data/crcp-drift-state.json data/latest.json -
139682b2026-07-20 auto-save: 2026-07-20T18:33:36 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
cabc6de2026-07-20 auto-save: 2026-07-20T18:03:31 (2 files) — data/crcp-drift-state.json data/latest.json -
3c101f72026-07-20 afternoon CRE update 2026-07-20 -
426f7212026-07-20 auto-save: 2026-07-20T13:02:15 (1 files) — data/.pre-afternoon-ids.json -
5afbd032026-07-20 auto-save: 2026-07-20T12:32:08 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
6ab6fe82026-07-20 auto-save: 2026-07-20T12:02:00 (2 files) — data/crcp-drift-state.json data/latest.json -
f6799872026-07-20 weekly unwarrantable-condos report 2026-07-20 -
7fa0b2d2026-07-20 auto-save: 2026-07-20T06:30:25 (6 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/residential-report.html -
fa009342026-07-20 auto-save: 2026-07-20T06:00:16 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
e5bde072026-07-20 weekly Crexi refresh 2026-07-20 -
a8e1e5d2026-07-20 auto-save: 2026-07-20T04:29:52 (1 files) — data/brokers-snapshot.json -
6d0e97d2026-07-20 auto-save: 2026-07-20T00:59:05 (1 files) — data/residential-report.html -
42378f42026-07-20 auto-save: 2026-07-20T00:28:58 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
b8be3a92026-07-19 auto-save: 2026-07-19T23:58:51 (2 files) — data/crcp-drift-state.json data/latest.json -
6f5842c2026-07-19 auto-save: 2026-07-19T18:57:38 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
1c26b572026-07-19 auto-save: 2026-07-19T18:27:32 (1 files) — data/condos-redfin.json -
9e133472026-07-19 auto-save: 2026-07-19T17:57:26 (2 files) — data/crcp-drift-state.json data/latest.json -
a011bd52026-07-19 afternoon CRE update 2026-07-19 -
deb74cc2026-07-19 auto-save: 2026-07-19T12:56:25 (1 files) — data/residential-report.html -
8e306892026-07-19 auto-save: 2026-07-19T12:26:19 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
f8f067d2026-07-19 auto-save: 2026-07-19T11:56:13 (2 files) — data/crcp-drift-state.json data/latest.json -
8689c732026-07-19 auto-save: 2026-07-19T07:25:16 (1 files) — data/alerts-state.json -
9fcbcf22026-07-19 auto-save: 2026-07-19T06:55:10 (1 files) — data/residential-report.html -
a1671742026-07-19 auto-save: 2026-07-19T06:25:04 (5 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
c7c4d5f2026-07-19 auto-save: 2026-07-19T05:54:59 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
8a2a3cb2026-07-19 auto-save: 2026-07-19T04:24:38 (1 files) — data/brokers-snapshot.json -
19f69e72026-07-19 auto-save: 2026-07-19T00:53:53 (1 files) — data/residential-report.html -
29b45562026-07-19 auto-save: 2026-07-19T00:23:46 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
1e6f2782026-07-18 auto-save: 2026-07-18T23:53:39 (2 files) — data/crcp-drift-state.json data/latest.json -
08841642026-07-18 auto-save: 2026-07-18T18:52:32 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
3741ee32026-07-18 auto-save: 2026-07-18T18:22:25 (1 files) — data/condos-redfin.json -
65779272026-07-18 auto-save: 2026-07-18T17:52:20 (2 files) — data/crcp-drift-state.json data/latest.json -
619a1c42026-07-18 afternoon CRE update 2026-07-18 -
aa050132026-07-18 auto-save: 2026-07-18T12:51:21 (1 files) — data/residential-report.html -
999a61b2026-07-18 auto-save: 2026-07-18T12:21:15 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
8af74292026-07-18 auto-save: 2026-07-18T11:51:10 (2 files) — data/crcp-drift-state.json data/latest.json -
6dd4f8c2026-07-18 auto-save: 2026-07-18T07:20:11 (1 files) — data/alerts-state.json -
b1a66122026-07-18 auto-save: 2026-07-18T06:50:05 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
08fa5ae2026-07-18 auto-save: 2026-07-18T06:19:57 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
95c2d5a2026-07-18 auto-save: 2026-07-18T05:49:50 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json -
037a9982026-07-18 auto-save: 2026-07-18T04:19:30 (1 files) — data/brokers-snapshot.json -
253c0ef2026-07-18 auto-save: 2026-07-18T00:48:43 (1 files) — data/residential-report.html -
580d9112026-07-18 auto-save: 2026-07-18T00:18:37 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
406b25d2026-07-17 auto-save: 2026-07-17T23:48:30 (2 files) — data/crcp-drift-state.json data/latest.json -
69651932026-07-17 auto-save: 2026-07-17T19:47:29 (6 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json data/map-points.json data/residential-report.html -
99ea9db2026-07-17 afternoon CRE update 2026-07-17 -
f8421a42026-07-17 chore: lint (fix shadowed var), v0.11.0 (session close) -
d438cb42026-07-17 CRCP License Directory: agents/firms/title/escrow from cre license DB (4615 agents, 707 firms) as contactable cards w/ firm-IG inline, sort+density; export script; +title/escrow IG handles -
50009ed2026-07-17 CRCP firm-IG: render inline & LINK-FREE under agent-contact cards (honor no-outside-links); unify leads strip to same global renderer -
3db44ca2026-07-17 chore: refactor (drop dead toggleExpand), lint pass, v0.10.0 (session close) -
4211af82026-07-17 CRCP firm-IG: cache thumbnails locally (fix IG hotlink block), +7 firms (CBRE/JLL/Cushman/Newmark/Elliman/BHHS-CA), short-alias matching -
79bc0cf2026-07-17 Consolidate everything into ONE tabbed Agent window (links OK again) -
4d0bb9f2026-07-17 Agent CRM: all-inline (no outside links) + inline Notes field -
ed5770b2026-07-17 Harden agent-contact CRM (contrarian gate): serialize writes, stable letter ids, XSS guards -
5a195952026-07-17 serve.js: load project .env via native process.loadEnvFile (enables GEORGE_AUTH/GMAIL_BASIC_AUTH_B64 + fixes CENSUS_API_KEY loading) -
c164c3f2026-07-17 Add gated Send-via-George button — creates a Gmail DRAFT (never sends) -
f503eb12026-07-17 Agent-contact CRM now on EVERY listing + card view (one modal everywhere) -
123b0e32026-07-17 CRCP list view: sortable + fully hrefd rows, inline row expansion, and an Agent·contact column with save-date + saved-letter CRM -
cb778e72026-07-16 graceful-degrade /api/leads/frank + /api/broker (502 -> 200 when cre DB absent) -
b4b3c102026-07-16 add CRCP origin-vs-live drift canary (DTD verdict D) -
a8e43862026-07-16 add on-demand CRCP front-end deploy script (mac3->Kamatera) -
0f635d92026-07-16 iPad fix sweep: crcp.html nav breakpoint 760->1024, licensed-agents badge width cap -
b59aea12026-07-16 afternoon CRE update 2026-07-16 -
1cdd91f2026-07-16 iPad fix: header nav becomes swipeable strip + grid minmax, no horizontal overflow on tablet -
30822fa2026-07-16 auto-save: 2026-07-16T07:11:48 (1 files) — data/alerts-state.json -
8f11f322026-07-16 auto-save: 2026-07-16T06:41:42 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
d1ce8362026-07-16 auto-save: 2026-07-16T06:11:35 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
e2e26092026-07-16 auto-save: 2026-07-16T05:41:28 (1 files) — data/listings.json -
e4a922a2026-07-16 auto-save: 2026-07-16T04:41:14 (1 files) — data/brokers-snapshot.json -
3aa29ff2026-07-16 auto-save: 2026-07-16T00:40:23 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
2679e352026-07-16 auto-save: 2026-07-16T00:10:17 (1 files) — data/condos-redfin.json -
d8dc6852026-07-15 auto-save: 2026-07-15T18:39:06 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
c79df342026-07-15 afternoon CRE update 2026-07-15 -
259e52d2026-07-15 auto-save: 2026-07-15T12:36:34 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
0c5c19e2026-07-15 auto-save: 2026-07-15T07:05:05 (1 files) — data/alerts-state.json -
8b87f812026-07-15 auto-save: 2026-07-15T06:34:59 (6 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/residential-report.html -
acc24642026-07-15 auto-save: 2026-07-15T05:34:45 (1 files) — data/listings.json -
5a9fe712026-07-15 auto-save: 2026-07-15T04:34:32 (1 files) — data/brokers-snapshot.json -
b7d27072026-07-15 auto-save: 2026-07-15T00:33:42 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
0ca32442026-07-14 auto-save: 2026-07-14T18:32:24 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
d3c8b8e2026-07-14 afternoon CRE update 2026-07-14 -
136ce9d2026-07-14 auto-save: 2026-07-14T13:01:14 (1 files) — data/.pre-afternoon-ids.json -
8fcd14e2026-07-14 auto-save: 2026-07-14T12:31:06 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
5bdd0af2026-07-14 auto-save: 2026-07-14T07:29:44 (1 files) — data/alerts-state.json -
8ef33582026-07-14 auto-save: 2026-07-14T06:59:38 (1 files) — data/residential-report.html -
a374bb92026-07-14 auto-save: 2026-07-14T06:29:31 (5 files) — data/condos-redfin.json data/map-points.json data/qwen-cache.json data/ranked.json data/sfr-redfin.json -
e4a82c52026-07-14 auto-save: 2026-07-14T05:59:19 (1 files) — data/listings.json -
384bd602026-07-14 auto-save: 2026-07-14T04:28:59 (1 files) — data/brokers-snapshot.json -
d5296c22026-07-14 auto-save: 2026-07-14T00:58:14 (1 files) — data/residential-report.html -
c0b30622026-07-14 auto-save: 2026-07-14T00:28:06 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
92c39682026-07-13 auto-save: 2026-07-13T18:56:46 (1 files) — data/residential-report.html -
e87e3da2026-07-13 auto-save: 2026-07-13T18:26:38 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
34ace812026-07-13 afternoon CRE update 2026-07-13 -
eee3d972026-07-13 auto-save: 2026-07-13T12:55:05 (1 files) — data/residential-report.html -
779f41b2026-07-13 auto-save: 2026-07-13T12:24:56 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
2f574202026-07-13 auto-save: 2026-07-13T11:24:39 (1 files) — package-lock.json -
471ec092026-07-13 chore: v0.9.1 — launchd bare-node PATH fix (session close) -
d16f1a42026-07-13 auto-save: 2026-07-13T10:54:28 (1 files) — data/brokers-snapshot.json -
71b7a182026-07-13 fix: pin Homebrew PATH in refresh-broker-snapshot.sh (launchd bare-node bug) -
8a22cdc2026-07-13 auto-save: 2026-07-13T10:24:15 (1 files) — package-lock.json -
701f6cd2026-07-13 data: CRCP listings sweep +2 (palm-beach) from launchd kickstart verify -
87cbbde2026-07-13 chore: lint, refactor, v0.9.0 (session close) -
96492dc2026-07-13 auto-save: 2026-07-13T09:54:06 (1 files) — data/alerts-state.json -
d6c86162026-07-13 fix(launchd): pin PATH so node resolves — both CRCP jobs were failing (email exit127, listings N=0/node-not-found); contrarian caught it, kickstart-verified email now sends end-to-end -
00b7b5b2026-07-13 5x re-verify: homepage core 6/6 green, 0 JS errors; Jul-10 fixes held; 6 clickthrough fails = same triaged harness artifact -
9ea52c82026-07-13 weekly unwarrantable-condos report 2026-07-13 -
448406f2026-07-13 auto-save: 2026-07-13T06:23:11 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
398ad292026-07-13 weekly Crexi refresh 2026-07-13 -
51399ad2026-07-13 prod CRCP: snapshot fallback for stats top-brokers + id/website in snapshot top rows -
47b46622026-07-13 find-email button: on-demand broker email hunt from their website (CRCP + broker grid) -
eec551f2026-07-13 auto-save: 2026-07-13T00:51:43 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
dee1dce2026-07-13 auto-save: 2026-07-13T00:21:34 (1 files) — data/condos-redfin.json -
cad0dba2026-07-12 auto-save: 2026-07-12T22:51:02 (1 files) — scripts/install-alerts-launchd.sh -
7bb04402026-07-12 auto-save: 2026-07-12T18:49:42 (1 files) — data/residential-report.html -
b699cec2026-07-12 auto-save: 2026-07-12T18:19:36 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
8d3a4012026-07-12 afternoon CRE update 2026-07-12 -
d5ea8e22026-07-12 auto-save: 2026-07-12T13:18:21 (2 files) — data/.pre-afternoon-ids.json data/last-refresh.json -
5e73b202026-07-12 auto-save: 2026-07-12T12:48:16 (1 files) — data/residential-report.html -
f83266a2026-07-12 auto-save: 2026-07-12T12:18:09 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
24bc8a12026-07-12 CRCP alerts FIX-THEN-SHIP (contrarian+DTD-B): enforce per-subscriber cadence + watermarks, log untagged listings, gov seen-state sidecar (no main-state bloat), Browserbase cost logging -
06ae1102026-07-12 CRCP listings: all-metro Crexi sweep complete — 2,791 listings, 1,177 metro-tagged across 17 markets (+1,177 from baseline) -
cd428e02026-07-12 CRCP listings: daily rotating refresh (DTD verdict C) — ~3 metros/day, timeout-safe; launchd+recurring-spend gated -
0a6e0fc2026-07-12 CRCP email-alerts: opt-in gov-agent segment (DTD verdict C) — per-metro new-licensee diff, default stays low-noise -
95003172026-07-12 broker-email: contrarian-driven hardening — exact last-name-token name-match, cross-domain block, vendor blocklist, shared-inbox dedup, colleague-sole-email guard -
310925d2026-07-12 auto-save: 2026-07-12T11:48:02 (2 files) — data/listings.json scripts/sweep-remaining-metros.sh -
beb40362026-07-12 broker-email: poison-guard sole-email on corporate megasite/office pages (mis-assigns stranger emails) + log-parse committer with rollback -
f93ac062026-07-12 broker-email-finder: hard per-broker timeout so a single hung site can't wedge the batch -
db7a5da2026-07-12 Serve col-resize.js via dedicated no-cache route (revalidate-every-load) ahead of static mount -
c102c072026-07-12 auto-save: 2026-07-12T11:17:54 (2 files) — data/alerts-state.json data/listings.json -
7d99a282026-07-12 CRCP email-alerts: George Basic Auth header + don't advance state on send failure (news-loss guard) -
035640a2026-07-12 CRCP email-alerts: fix George send (/api/send + body field) + wire token from george-gmail/.env -
d433ef82026-07-12 col-resize: add click-to-sort headers (asc/desc/reset, numeric-aware, blanks last) -
dd4abf62026-07-12 Add spreadsheet-style draggable column resizing (col-resize.js) to all table pages -
367513f2026-07-12 CRCP multi-metro listings sweep: generalize SFV Crexi scrape to all 21 metros + per-metro config; paid run gated -
91621f02026-07-12 CRCP email-alerts: snapshot-diff engine + George send wiring (DTD verdict A), dry-run proven, launchd+send gated -
52b71e12026-07-12 broker-email-finder: --browser tier (real system Chrome) recovers 403/anti-bot + JS-rendered sites; name-match disambiguates multi-agent firm pages -
88612822026-07-12 CRCP gov data: regenerate snapshot with all 21 metros (top-expensive-cities) — prior export was in a blocked bash call and never ran -
561fd542026-07-12 CRCP gov data: CT Greenwich (648, DCP eLicense API). Top-expensive-cities expansion: 19/20 loaded; WY Jackson walled (portal, no bulk) -
86793a42026-07-12 CRCP gov data: CO Aspen/Telluride/Vail (777, DORA API) + FL luxury cities Palm Beach/Naples/Miami Beach (DBPR) -
988e9892026-07-12 CRCP gov data: CA luxury cities (Atherton/Beverly Hills/Malibu/Newport Beach/Montecito/Hillsborough/Woodside) city-level from DRE CurrList -
32e449e2026-07-12 CRCP gov data: 7 metros / 337,725 agents live-ready (add CA SF+Silicon Valley + TX statewide); cache gov metro snapshot reads (TX 40MB read once) -
a3f111a2026-07-12 CRCP gov data: CA SF+Silicon Valley (13,714 from DRE bulk CurrList) + TX statewide (188,932 active, SB510 no-geo). 7 metros now -
715d28a2026-07-12 CRCP brokers: nightly snapshot refresh (launchd com.steve.crcp-broker-snapshot, sanity-gated, no-restart) + harden brokers-db PG user so it never silently defaults to root on prod -
31412702026-07-12 CRCP: snapshot fallback for ALL broker endpoints (graph/top/enrich-stats/contact) via cached readBrokerSnap; broker snapshot now carries graph+top+enrichStats so brokers.html mind-map works on prod too -
c1d67092026-07-12 auto-save: 2026-07-12T08:17:05 (7 files) — data/brokers-snapshot.json public/broker-grid.html scripts/export-brokers-snapshot.js scripts/serve.js data/gov/ -
7b4fce32026-07-12 CRCP gov data: Las Vegas loaded (18,023 Clark-county licensees from NV Real Estate Division xlsx); 4 metros / 135,079 gov-licensed agents total -
235cba42026-07-12 CRCP: fix empty prod broker-grid — snapshot fallback for /api/brokers/all (prod has no Postgres → was erroring 'role root does not exist'); export-brokers-snapshot.js + data/brokers-snapshot.json (2,537 w/ geo labels) -
3d612002026-07-12 CRCP: FL DBPR CSV adapter — Miami (Dade county) 67,776 licensees loaded (brokers+salespersons, active); streaming quoted-CSV parser + batched upsert -
7fe75972026-07-12 CRCP: NY metros loaded from gov data — NYC 47,019 + Hamptons 2,261 licensees (brokers+salespersons); batched upsert + office/branch filter -
cdf28712026-07-12 CRCP: multi-metro gov-license ingest — gov_licensed_agent table + NY DOS SODA API adapter; loaded Hamptons (2,617 licensees, $0, authoritative govt data) -
068be0a2026-07-12 CRCP broker grid: organize all fields into categories (Identity/Geography/Activity/Contact/Details) + grouped sort menu with optgroups; surface State + CA-Confidence as badged sortable columns; every field sortable -
9939cbd2026-07-12 CRCP: default broker view lists ALL brokers again (Steve: ok if not CA); ?scope=ca keeps the California-only cut -
bce9ae62026-07-12 auto-save: 2026-07-12T06:46:47 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
41456642026-07-12 auto-save: 2026-07-12T06:16:42 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
7cc109c2026-07-12 auto-save: 2026-07-12T00:45:38 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
fce8c2b2026-07-12 auto-save: 2026-07-12T00:15:33 (1 files) — data/condos-redfin.json -
7d08d222026-07-11 CRCP: pass-3 broker CA recovery — city-disambiguation (marginal) + listing-activity confirmation (234 brokers CA by operation of law); DB now 93.7% confirmed-California -
b1e900b2026-07-11 CRCP: pass-2 fuzzy broker CA-DRE recovery (nickname+prefix, surname-search, single-person guard); fix norm-strips-comma parse bug -
f9af5432026-07-11 auto-save: 2026-07-11T18:44:33 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
801a86a2026-07-11 auto-save: 2026-07-11T18:14:27 (1 files) — data/condos-redfin.json -
894dfe02026-07-11 afternoon CRE update 2026-07-11 -
51162a12026-07-11 auto-save: 2026-07-11T12:43:24 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
f8985642026-07-11 auto-save: 2026-07-11T12:13:17 (1 files) — data/condos-redfin.json -
de954cf2026-07-11 CRCP: California-scope the broker DB — /api/brokers/all defaults to CA + unknown (hides 22 confirmed out-of-state; ?scope=all override). Backed by DRE cross-ref: 2,075/2,537 now confirmed CA -
482a1692026-07-11 CRCP: confirm unknown-geography brokers as CA via CA-DRE cross-ref (bridges cre.broker ↔ licensed-agents; $0 local, resumable) -
abbed742026-07-11 auto-save: 2026-07-11T06:42:06 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
5ad18e12026-07-11 auto-save: 2026-07-11T06:12:00 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
7de1a842026-07-11 auto-save: 2026-07-11T00:41:01 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
2bb63e52026-07-11 auto-save: 2026-07-11T00:10:56 (1 files) — data/condos-redfin.json -
71cc6172026-07-10 CRCP: contrarian fixes on broker rollup — disclose 123 broker-licensed non-supervisors, persist broker sort, guard agent re-fetch, reorder cleanBrokerName address-strip -
93c26422026-07-10 CRCP: broker-level rollup view — /api/brokers/licensed + Agents⇄Brokers toggle (131 brokers from DRE responsible-broker field, $0) -
aa5fee62026-07-10 CRCP: full 556-agent DRE license snapshot (162 verified / 262 probable / 132 unmatched, 0 errors) -
b6bd8852026-07-10 chore: v0.5.0 — DRE-licensed agents feature (session close) -
1e4b4672026-07-10 auto-save: 2026-07-10T18:39:55 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
4c1be112026-07-10 auto-save: 2026-07-10T18:09:50 (1 files) — data/condos-redfin.json -
6abac2e2026-07-10 CRCP DRE: contrarian fixes — verified only on exact match, drop dead DB branch -
e914e062026-07-10 CRCP: DRE-licensed agents/brokers DB from CA public govt data -
a3bff782026-07-10 afternoon CRE update 2026-07-10 -
06a035c2026-07-10 auto-save: 2026-07-10T12:38:21 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
65dbb602026-07-10 5x: correct report scope note — verified deals/fha/rent-rolls are dashboards not catalogs -
a19ee812026-07-10 5x sweep 4 (contrarian follow-up): sort+density on broker-grid + condos grids; fix pre-existing favicon 404 on condos+graphics -
9e620372026-07-10 5x: sweeps 2-3 clean + REPORT (clean twice, done) -
bb93e9c2026-07-10 5x sweep 1: add sort select + density slider to mls.html grid (Steve grid rule); persisted, 0 JS errors -
69e27602026-07-10 5x sweep 1: triage — clickthrough FAILs are phantom (wrong-app vocabulary), not defects -
5aaf9b22026-07-10 auto-save: 2026-07-10T08:44:50 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
c71fc8d2026-07-10 map: popup shows residential lifecycle — status (Active/In Escrow/Sold/Withdrawn) + days-on-market tags -
a8e7f8a2026-07-10 auto-save: 2026-07-10T08:14:41 (1 files) — data/condos-redfin.json -
92df9732026-07-10 scrapers: capture LATITUDE/LONGITUDE from gis-csv -> lat/lng (was discarded) -
b11c2872026-07-10 auto-save: 2026-07-10T06:44:22 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
a568ac42026-07-10 auto-save: 2026-07-10T06:14:15 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
4a6713e2026-07-10 auto-save: 2026-07-10T00:43:01 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
df748422026-07-10 auto-save: 2026-07-10T00:12:54 (1 files) — data/condos-redfin.json -
44256f42026-07-09 auto-save: 2026-07-09T18:41:42 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
8cadaa22026-07-09 auto-save: 2026-07-09T18:11:36 (1 files) — data/condos-redfin.json -
f8b28f82026-07-09 afternoon CRE update 2026-07-09 -
6cc61662026-07-09 auto-save: 2026-07-09T12:40:29 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
e52657d2026-07-09 auto-save: 2026-07-09T12:10:23 (1 files) — data/condos-redfin.json -
b2bccff2026-07-09 auto-save: 2026-07-09T06:39:18 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
a64f26b2026-07-09 auto-save: 2026-07-09T06:09:13 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json -
f3ed4b02026-07-09 auto-save: 2026-07-09T00:38:11 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
1b9dcd32026-07-08 auto-save: 2026-07-08T18:37:07 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
14d68e42026-07-08 afternoon CRE update 2026-07-08 -
1258f682026-07-08 auto-save: 2026-07-08T12:35:41 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
4fa17ee2026-07-08 auto-save: 2026-07-08T06:34:26 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
bea08ab2026-07-08 chore: version bump v0.4.1 (session close — auth gate) -
66769262026-07-08 Gate crcp.agentabrams.com behind Basic Auth (admin/DW2024!); open /healthz for smoke test -
08981d02026-07-08 auto-save: 2026-07-08T06:04:21 (2 files) — data/qwen-cache.json data/ranked.json -
eb104312026-07-08 auto-save: 2026-07-08T00:33:23 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
5778fde2026-07-07 auto-save: 2026-07-07T18:32:03 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
b7ae2912026-07-07 chore: lint (syntax-check ✓), v0.3.1 → v0.4.0 (session close) -
0ab08f22026-07-07 add fix-workspace-trust.js — restores hasTrustDialogAccepted after mac3 migration -
f81d9202026-07-07 afternoon CRE update 2026-07-07 -
18f673e2026-07-07 auto-save: 2026-07-07T13:30:45 (1 files) — data/last-refresh.json -
7ffa8da2026-07-07 crcp: auto-rebuild assessor SQLite on ingest + refresh/push wrapper -
df421742026-07-07 chore: v0.3.1 (session close) -
13a73ac2026-07-07 crcp: bridge 2.43M assessor roll to DB-less prod via read-only SQLite + honest miss copy -
f572b742026-07-07 auto-save: 2026-07-07T13:00:27 (1 files) — data/.pre-afternoon-ids.json -
945fe2b2026-07-07 auto-save: 2026-07-07T12:30:21 (4 files) — data/condos-redfin.json data/map-points.json data/residential-report.html data/sfr-redfin.json -
7abb1022026-07-07 auto-save: 2026-07-07T09:59:53 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json -
0ddd3652026-07-07 explorer: Fields section starts expanded (toggle cards visible on load); other left-panel sections stay collapsed -
bb116972026-07-07 explorer: density slider 1-10 (was 1-20, clamps saved values) + field toggles restyled as click-on/off cards (:has() keeps existing wiring) -
79fb3952026-07-07 auto-save: 2026-07-07T09:29:44 (1 files) — data/condos-redfin.json -
c37e1412026-07-07 fix: export PATH in run-residential-refresh.sh — launchd's minimal PATH lacked /opt/homebrew/bin so node was not found; the scheduled 4x/day refresh would have silently failed every run -
67dff5f2026-07-07 map: residential on the map colored by status (Active/In Escrow/Sold/Withdrawn) -
d8dc3ea2026-07-07 residential: price-drop tracking — 💸 Price Cut chip + report section -
809771f2026-07-07 auto-save: 2026-07-07T08:59:49 (2 files) — scripts/export-residential-snapshots.js scripts/serve.js -
18bf3fc2026-07-07 auto-save: 2026-07-07T08:59:35 (4 files) — scripts/export-residential-snapshots.js scripts/fetch-condos-redfin.js scripts/fetch-sfr-redfin.js scripts/db/price-drop-migration.sql -
bf516b72026-07-07 reports: refresh generated HTML (morning/afternoon/condos/residential pulse) -
eb0c10c2026-07-07 residential report: LA Residential Pulse (SFR+condo) email — just listed / in escrow / just sold / fell out -
84883622026-07-07 fix: raise /api/residential cap 12k->25k — SFR active grew past 12k, truncating off-market/sold rows off prod -
27c5ece2026-07-07 snapshots: escrow + DOM coverage (sfr 3860 escrow/13079 dom, condo 380 escrow/1578 dom) -
eb3ad192026-07-07 fix: condo fetchStatus referenced loop-scoped reg from outer closure -> captured 0; pass reg as param (matches SFR fetchRegion pattern) -
a31904e2026-07-07 listings: real DAYS ON MARKET (gap-immune Just Listed) + In Escrow / Fell Out tabs -
fae32252026-07-07 mls: Just Listed + Just Sold quick-filter chips with adjustable day window (persisted) -
018ff112026-07-07 off-market: re-check withdrawn rows for later-recorded sales (escrow lag) + fresh snapshots w/ 1,647 pulled listings -
60613492026-07-07 CRE: migrate condos-report from mac2 (node path + Max-plan claude strip); harden morning/condos claude calls to Max plan -
2d64c252026-07-07 residential: off-market tracking — see pulled listings, labeled SOLD vs WITHDRAWN -
ce1d6f22026-07-07 refresh: email steve-office (George) on sanity-gate abort or rsync failure -
843d5592026-07-06 mls: rename browser title -> 'LA County MLS — Residential + CRE' -
dcf9b4d2026-07-06 refresh: set CC_FRESH=1 so SFR re-sweeps every run (ledger was skipping all regions -> no-op) -
4a6fac72026-07-06 residential refresh: CC_LOCAL=1 mode ($0 local Chrome, no Browserbase) + 4x/day launchd -
9a70d222026-07-06 residential: fresh Redfin scrape snapshots (10.6k SFR + 1.29k condos) + lift condo cap 1000->5000 -
0dae1772026-07-06 mls: add residential inventory (9.6k SFR + condos) alongside CRE + Census rent averages -
6e2d2bf2026-07-04 closed-sales: snapshot fallback so sales.html has data on prod (no cre DB on Kamatera) -
d7077f32026-07-04 fix: guard brokers.map in graphics.html against non-array payload -
adc85c12026-07-04 sales: Amazon rail + field toggles + grid/list via crcp-grid engine; add ?limit to closed-sales; engine link+cap support -
11171682026-07-04 fha-loans: Amazon left-rail + field toggles + grid/list via shared crcp-grid engine -
10edd442026-07-04 condos api: explicit column projection (drop SELECT *, satisfies pre-deploy PII lint) -
a665e5c2026-07-04 condos: Amazon-rail UI live + /api/condos snapshot fallback for prod (no cre DB on Kamatera) -
883f96e2026-07-03 chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew) -
253a4372026-07-02 auto-save: 2026-07-02T17:51:29 (1 files) — public/broker-grid.html -
8ceee472026-07-02 perf(mls): paginated table (DTD verdict B, UNANIMOUS 3/3 Codex+Qwen+Claude) — 200 rows / 60 grid cards per page with 'Show N more'; count + stats strip computed over the FULL filtered set, only the DOM windowed. Cuts a 1823-row MLS render to 200. Pass-20 milestone: all 4 surfaces smoke-clean (0 console errors, no regressions from 19 passes). Contrarian-gated. -
9b10d002026-07-02 feat(mls): heat cues + copy summary parity (DTD verdict D, UNANIMOUS 3/3 Codex+Qwen+Claude) — color-by-metric Heat (Cap rate / Score) tints table rows red->green over the filtered set (only real values), legend; per-row 📋 Copy summary (address/type/units/price/cap/$-unit/$-SF/year/beds-baths/warrantability/URL) to clipboard. Closes the index<->mls consistency gap. Contrarian-gated, 0 errors. -
a8fedb12026-07-02 feat(index): per-card 📋 Copy summary (DTD verdict C, UNANIMOUS 3/3 Codex+Qwen+Claude) — copies a clean multi-line text block (address, type/units/price, cap/$-unit/$-SF, DSCR/CoC/cash needed/cash flow, est rent/deal score/warrantability, listing URL) to the clipboard for email/CRM; honest fields only (omits missing values); ✓ confirmation. Contrarian-gated, 0 errors. -
45fe54b2026-07-02 feat(index): saved searches (DTD verdict D, 2/3 Codex+Claude; Qwen dissent C=$/SF-vs-submarket OVERRIDDEN on honest-data grounds — comps.json submarket benchmarks are prose cap ranges, no joinable $/SF/median) — name + save the current filter/sort/view/heat state (reuses the shareable-URL serialization) into a rail 'Saved searches' list; one-click restore (full-URL, bulletproof) + ✕ delete; localStorage-persisted. Contrarian-gated, 0 errors. -
6c08b422026-07-02 feat(index): Compare -> deliverable (DTD verdict A, 2/3 Codex+Claude; Qwen dissent C=similar-in-city) — ⬇ CSV export of the compared listings (one row per listing x 17 metric columns, entity-decoded) + 🖨 Print with a scoped @media print stylesheet (body.printing-compare) that prints only the side-by-side clean black-on-white for deal memos, without breaking normal Cmd+P. Contrarian-gated, 0 errors. -
6d8e1822026-07-02 feat(condos): surface parity (DTD verdict C, 2/3 Codex+Claude; Qwen dissent B=export-compare) — collapsible rail tabs (all collapsed on load) + aggregate stats strip (count/median price/$-SF/HOA/year) + ⭐shortlist stars sharing the SAME cre_shortlist key/ids as Explorer+MLS (shortlist now unified across ALL 4 surfaces) + a11y focus-visible/reduced-motion. Contrarian-gated, 0 errors. -
589fdb52026-07-02 a11y(index): accessibility pass (DTD verdict A, 2/3 Codex+Claude; Qwen dissent C=export-compare) — aria-label + aria-pressed on ★ shortlist buttons, scope=col on list + compare table headers, :focus-visible keyboard focus rings, @media prefers-reduced-motion, and Escape-to-close on the compare + broker/property-history modals. Contrarian-gated, 0 errors. -
ac724c32026-07-02 feat(index): empty-state quick-start chips (DTD verdict D, 2/3 Qwen+Claude; Codex dissent B=a11y, queued next) — the wait-for-selection screen now offers one-click starters (Condos · Multifamily · ◆Non-QM · ⚑Unwarrantable · ✓In budget · ⭐My shortlist when non-empty) that apply a filter instantly, fixing the collapsed-tabs first-action dead-end. Contrarian-gated, 0 errors. -
793d08b2026-07-02 perf(index): paginated DOM rendering (DTD verdict D, UNANIMOUS 3/3 Codex+Qwen+Claude) — grid renders 60 cards / list 200 rows per page with a 'Show N more' button; count + stats strip + facet counts still computed over the FULL filtered set (only the DOM is windowed). Cuts a 1823-card Non-QM render to 60. Contrarian-gated, 0 errors. -
bf0b6002026-07-02 afternoon CRE update 2026-07-02 -
7e7b8f42026-07-02 feat(mls): feature parity (DTD verdict B, 2/3 Codex+Claude; Qwen dissent D=export-compare) — port ⭐shortlist + aggregate stats strip to the MLS table; shortlist shares the SAME cre_shortlist localStorage key + listing ids as the Explorer, so starring is UNIFIED across index<->mls. Stats: count/median price/$-unit/$-SF/avg cap/median year over the filtered set. Star column + grid-card stars, shortlist toggle filters. Contrarian-gated, 0 errors. -
681a9b82026-07-02 feat(index): color-by-metric heat cues (DTD verdict D, 2/3 Qwen+Claude; Codex dissent C=rent-control OVERRIDDEN on honest-data grounds — rent_control is 98% 'verify' placeholder, real RSO needs a classification-data task) — Heat select (Deal score / Cap rate / Cash-on-cash) tints each card left-border / list row red→green over the filtered set's min-max; only real values colored; gradient legend; persisted + in shareable URL (?ht=). Contrarian-gated, 0 errors. -
b5a7c9f2026-07-02 feat(index): live facet counts (DTD verdict A, 2/3 Codex+Claude; Qwen dissent=saved-searches) — Asset-type/Firm/City chip counts update to reflect matches given the OTHER active filters (skip own dimension, Amazon-style narrowing); zero-match chips dimmed. Contrarian-gated, 0 errors. -
14963d52026-07-02 feat(index): side-by-side Compare modal for shortlisted listings — 17 aligned metric rows (price, $/unit, $/SF, cap, DSCR, CoC, cash needed/flow, rent, beds/baths/sqft, year, warrantability, scores), sticky label col + header, star-2-first hint. Contrarian-gated, 0 errors. -
d9c099f2026-07-02 feat(index): aggregate stats strip — median price / $-per-unit / $-per-SF / avg cap (disclosed) / median est. rent / in-budget count computed over the current filtered slice; hidden on the wait-for-selection state. Contrarian-gated, 0 errors. -
8b66d892026-07-02 feat(index): shortlist — ⭐ star any listing (grid + list), device-local persisted set, '⭐ Shortlist (N)' toggle filters to starred only, removable active-filter chip. Contrarian-gated, 0 errors. -
c919ae12026-07-02 feat(index): ⬇ CSV export of the current filtered+sorted view (visible columns, proper escaping) + column-sort persisted in the shareable URL (?cs=key:a|d restores click-to-sort). Contrarian-gated, 0 errors. -
acf37682026-07-02 feat(mls+broker-grid): fleet consistency (DTD Option D) — collapsible rail tabs (all collapsed on load) on both; mls gains wait-for-selection empty state + ◆ Non-QM in-grid filter (unwarrantable condos + small multifamily 1-9u + mixed-use = 1823). broker-grid keeps its browsable ranked default (people directory, not filter-first). Contrarian-gated, 0 errors. -
12bcd302026-07-02 feat(index): click-to-sort on List column headers (Option C) — sort by ANY visible data point (price, $/SF, beds, sqft, HOA, year, assessed-derived, etc.) asc/desc with ▲▼ indicators; generic fieldVal resolver; sort dropdown clears column-sort. Contrarian-gated (grid clicks unaffected; colSort scoped to .listtbl th). -
d036a012026-07-02 auto-save: 2026-07-02T10:47:21 (1 files) — public/index.html -
2414c9b2026-07-02 feat(index): shareable URL state (DTD dissent B / Codex) — every filter/sort/view/scenario ↔ query string via replaceState; deep-links restore the exact view and override wait-for-selection; 🔗 Copy-link button. Contrarian gate caught + fixed a real bug: local 'history' array shadowed window.history, silently no-op'ing replaceState. -
9dc699f2026-07-02 feat(index): active-filter summary bar — removable chips for every applied filter + one-click Reset all above the grid (DTD verdict A, 2/3: Claude+Qwen; Codex dissent=URL-share). Closes the 'what's filtering this?' gap from the collapsed-tabs/wait-for-selection UX; empty-state now guides expanding a tab. Contrarian-gated. -
e9d13a82026-07-02 feat(index): collapsible filter tabs (all collapsed on load) + wait-for-selection empty state (no 2134-card dump on load) + ◆ Non-QM in-grid filter (unwarrantable condos + small multifamily 1-9u + mixed-use) + lazy assessor data points (assessed value / land-imp split / use-code / prior sale via /api/property-history, IntersectionObserver + eager first batch, concurrency-capped, cached) -
44c3be82026-07-02 feat(index+mls): merge condos IN-GRID as a real 'Condo' asset type (727 rows → 2134 total) — filters in place like any asset class; ⚑ Unwarrantable in-grid filter (713); +6 condo data points (beds/baths/sqft/HOA/warrantability/broker) as toggles on index, auto-discovered as columns on mls; $/unit suppressed for 1-unit condos -
ad43c252026-07-02 auto-save: 2026-07-02T10:17:10 (1 files) — public/index.html -
58cbced2026-07-02 fix(index): surface Condos + Unwarrantable as the FIRST chips inside the Asset type facet (were separate links below, easy to miss); nav-chips deep-link to the condos page -
a33bd462026-07-02 feat(condos): full Amazon left-rail drill-down — warrantability (incl. Unwarrantable) + city(20) + firm(14) + beds/baths mins + price/HOA/sqft/$-per-sqft/year ranges + 17 per-field show/hide toggles (computed $/sqft, $/bed, age); list/grid both field-driven; ?status deep-link -
a2c781e2026-07-02 feat(condos): add Unwarrantable (non-FHA-approved) filter — 713 condos, Arcstone non-QM target; deep-link ?status=unwarrantable; red Unwarrantable chips in index+mls asset-class rails -
f5711112026-07-02 feat(broker-grid+index): Amazon left rail on broker-grid (agent-type/Arcstone/firm facets + per-column show/hide, auto-discovers every scalar field driving table+grid+CSV); Condos added as an asset class in the index left rail -
d74ce022026-07-02 auto-save: 2026-07-02T09:46:55 (1 files) — public/mls.html -
5a3ee552026-07-02 feat(condos): List/Grid toggle (both DB-listing & FHA-directory schemas) + density max to 20 -
c02f5b22026-07-02 feat(index): Amazon-style docked left filter rail + List/Grid toggle + per-field show/hide (34 fields) + density to 20 + new data points (price/unit, price/SF, GRM, year built, days-on-market, ZIP) -
177e1b02026-07-02 style: roomier collection grids — bigger card+container padding, 2px white stroke on cards/tiles across index/condos/mls/broker-grid/graphics/deals/fha-loans -
c5796c22026-07-01 afternoon CRE update 2026-07-01 -
8edbdfd2026-07-01 feat: CRE deeds part (b) — current_broker for FREE-fetchable listings (compass/coldwell/myelisting/M&M) via verified WebFetch; crexi 98% deferred (anti-bot, needs Browserbase) -
6be26bf2026-07-01 chore: lint ✓ (clean, no linter) · refactor ✓ (no change) · v0.3.0 (session close) -
7f658fc2026-07-01 feat: clean extension-less URLs (/mls, /brokers, /map, etc.) alongside .html links -
b40a08b2026-07-01 ops: launchd LaunchAgent for cre-viewer reboot persistence (KeepAlive, no pm2) -
07e09772026-07-01 feat: deeds FREE-PASS part (a) — extend broker-history to all 1,407 listings -
6ee845c2026-07-01 chore: v0.2.0 (session close — broker contacts/MLS+broker grids/property-history/CSV/assessor 2.43M/tailscale) -
192e8892026-06-30 feat: broker-history pilot — transaction history + listing-agent enrichment on property cards -
584c4092026-06-30 auto-save: 2026-06-30T19:42:55 (3 files) — public/index.html scripts/serve.js data/broker-history-pilot.json -
d96d2832026-06-30 auto-save: 2026-06-30T18:12:29 (1 files) — package-lock.json -
ddb1e4d2026-06-30 chore: lint ✓, v0.1.1 (session close — condos render fix) -
ac6be592026-06-30 Map markers → 100-yr property-history popup (📜 History link in every marker popup) -
1760f5c2026-06-30 assessor keyset: stream line-count (1.3GB file exceeds V8 max string; readFileSync failed) -
1634e832026-06-30 assessor: key-set pagination completion (AIN>cursor) to finish the roll past the resultOffset false-stop at 1.884M -
ad0fbf92026-06-30 Arcstone prior-relationship flag (chip on grid card + list + firm roster + modal) + always show email/phone/website on broker modals -
8d4f2eb2026-06-30 Add .deploy.conf for Kamatera prod deploy (CRCP + FHA loans feature) -
c469c562026-06-30 Add CSV export to MLS + broker grids (exports current filtered/sorted rows) -
5a26b032026-06-30 Make the grids actionable: MLS row → 100-yr property history popup; broker-grid row → full contact/listings/pitch modal -
ddcd86b2026-06-30 Broker grid+list view — all 2,537 brokers, every field sortable & searchable -
41913072026-06-30 FHA loans: add /fha-loans route + /api/fha-loans JSON endpoint to serve.js -
06ad8912026-06-30 auto-save: 2026-06-30T16:41:53 (10 files) — public/condos.html public/crcp.html public/deals.html public/index.html public/map.html -
03d91292026-06-30 Broker card: current+expired+sales with dates/MLS#/url across both modals -
9c3c4e82026-06-30 Add MLS spreadsheet + grid view (sortable & searchable, all property data) -
22644c32026-06-30 fix(condos): render listings — warrant_signals is an object, .map threw and stuck grid on loading -
bfc32f82026-06-30 fix(assessor): stop on exceededTransferLimit, not short page (was truncating at 294k/2.43M) + CC_START_OFFSET resume -
531f7e72026-06-30 Add DW-Wins-Dashboard.png — CRE build wins dashboard (emailed to steve-office) -
69ac4d32026-06-30 CRE :9911 — 'Best leads for Frank' ranked list: expandable MLS-style current listings + Sold button + 100-yr address-only property history -
6d18e702026-06-30 auto-save: 2026-06-30T13:40:46 (1 files) — scripts/seed-frank-arcstone.js -
ee71adf2026-06-30 CRE :9911 — front-page broker contacts (name/company/phone/email) + ready-pitch popup, Frank Arcstone demo, LinkedIn follow-tab -
aafcd092026-06-30 Assessor parcel roll: streaming Socrata/eGIS fetcher + cre.assessor_parcel schema + NDJSON ingest (2025 roll, all parcels, disk-aware capped to current snapshot) -
a45ddb92026-06-30 afternoon CRE update 2026-06-30 -
e2e6fb42026-06-29 afternoon CRE update 2026-06-29 -
311558a2026-06-29 auto-save: 2026-06-29T07:19:26 (7 files) — 5x/deals-assert.js 5x/index-assert.js 5x/map-assert.js public/deals.html public/index.html -
d10cdb42026-06-29 officer-yolo: DTD verdict A (Unified Deal Score) 3-0 for next build -
a8e2d742026-06-29 Map: marker clustering (Leaflet.markercluster — per-type colored cluster bubbles w/ counts at low zoom, individual dots past z16) + 'Color by: Type | Price' mode (5-tier price coloring + price-key legend, recolors all 10,876 markers). Updated cluster-aware strong gate (zoom-to-uncluster popup + price-toggle assertion) — PASS. Closes deferred item 7 -
22f626a2026-06-29 Surface assumable-FHA/VA heuristic on the map: bake assumable likelihood+rate into map-points export (4,239 condo/SFR points, medium/high only) + 🔑 badge in popups (est rate when known, clearly labeled heuristic-not-title-verified). Closes the assumable UI gap (task 13). Map gate still PASS -
157d8352026-06-29 Build rent-roll → DSCR underwriting: /api/rent-rolls endpoint + rent-rolls.html viewer (unit table + underwriting tiles + live DSCR calculator: NOI/debt-service, verdict vs target, max-loan-at-target). Parser fix: money-formatted-rent only (no phantom unit from street#/zip). Strong gate (PASS) + health-check + nav links. Labeled DEMO rent roll included -
ec348692026-06-29 weekly Crexi refresh 2026-06-29 -
119516b2026-06-29 5x: OVERNIGHT-REPORT.md (final) — all 6 pages gated + PASS; loop substantive work complete; items 4+7 deferred for Steve -
9c2a5fc2026-06-29 5x: index.html strong gate (index-assert.js — 1407 cards/no-NaN/loopnet+rent links/sort-reorders/filter-narrows/empty-degrades, PASS). No defect; all 6 pages now gated. Added index to health-check.sh -
94555712026-06-29 5x: health-check.sh (server + all 5 strong gates) + night-log final state (primary queue complete; index gate is the one remaining candidate) -
bae2d752026-06-29 5x night option A: gate sales.html + brokers.html. Real fix: favicon 404 (1 JS err each) → inline favicon → both 6/6. New strong gates sales-assert.js + brokers-assert.js (PASS). Caught 2 bugs in my OWN verifiers first (sales #city=input not select; brokers row-click highlights graph, node-click opens detail) -
ec4d78b2026-06-29 5x night-log: item 8 done; primary queue essentially complete (items 4,7 deferred to do with Steve); next-wake options + anti-churn note -
7f52ab62026-06-29 5x night item 8: mobile/a11y pass — fix real 390px overflow (crcp nav-wrap, map topbar-wrap, index scenario-seg wrap; map/index overflow-x guard); prefers-reduced-motion on deals gradient anim; aria-labels on density slider + modal close. All 3 strong gates still PASS (no desktop regression) -
e121e472026-06-28 auto-save: 2026-06-28T23:47:35 (1 files) — data/map-points.json -
28c0b792026-06-28 5x night-log: items 2+5 done; item 4 deferred (do with Steve); next = price-band chart + map clustering -
ad89b922026-06-28 5x night item 5: harden geocoder — strip unit designators (#4/Apt/Ste) + skip un-geocodable junk (Call Broker/Plan N); recovered +1 retroactively. Honest: remaining ~769 un-placed are Census TIGER gaps (new-build streets), not fixable free — durable value is correct geocoding of future unit-suffixed imports -
928c43f2026-06-28 5x night item 2: crcp.html strong gate (crcp-assert.js — tiles/segments/expand/modal/sort/empty all PASS); six-way 6/6 with correct visible selector. No crcp defect — M3 FAIL was collapse-default vs visibility-selector mismatch, not a bug -
cdaa2b42026-06-28 5x night-log: items 1+3 done; queue + method note for next wake -
b6a5bdd2026-06-28 5x night item 3: wire nonqm segment agent count (union of non-FHA condo agents + 1-9-unit/mixed listing agents) — was unwired/0, now 1696 -
f98b8af2026-06-28 5x night item 1: map.html — aerial-img onerror graceful fallback + strong map-assert.js gate (markers/toggles/popup-decode/empty-data); map verified 6/6 + strong PASS -
14b36ac2026-06-28 5x: overnight refinement night-log + queue -
2f5592e2026-06-28 5x: final REPORT — clean twice (sweeps 4-5) with strengthened gate after contrarian caught 3 real defects in sweep 3 -
292b7fb2026-06-28 5x sweep 3 (contrarian-gated): fix medAll ÷0 → $NaN tile; guard F.money/F.num/countUp + grad() undefined-color crash (was swallowed on empty data); make Refresh/toggle verifier-discoverable; add strong deals-assert.js (charts-drew-data + empty-data + no-NaN gate) -
022582f2026-06-28 5x: sweep logs + REPORT (deals.html clean twice; clickthrough false-negatives escalated) -
7a4f4572026-06-28 5x sweep 1: add live Refresh + pipeline metric toggle (Deals/Median $) to deals.html — refactor to pull()/draw() with chart-destroy guards (no double-init); real interactive controls -
d5d29c92026-06-28 Deal Intelligence dashboard: 2026 liquid-glass UI (animated gradient mesh + frosted panels) with 6 dynamic Chart.js charts bound to live deal data; nav links across pages -
f4cd5322026-06-28 Property map: all 10,875 geocoded properties on Leaflet, colored overlays per type, free Esri aerial photo per property; free Census batch geocoder (scripts/geocode-census.js); nav links from index+crcp -
9e99f282026-06-28 LoopNet for all listings (free deep-links on every card + gated CoStar adapter) + local rent-roll PDF ingester + feasibility doc -
3054e112026-06-28 CRCP: collapse-all-until-activated panels + chip density slider + building prices; dedupe caret CSS, inline favicon -
495d8d62026-06-28 auto-save: 2026-06-28T17:15:46 (1 files) — public/crcp.html -
b0cabb22026-06-28 CRCP: building prices on Call Segments (med + p10–p90 band) and per-agent avg/top price in call list; chip density slider + collapse-all-until-activated panels (persisted) -
80c28382026-06-28 additive: Assumable FHA/VA call segment + read-only /api/assumable endpoint -
5f05fc12026-06-28 assumable-loan heuristic + estimate model + credentialed source adapters + integration plan -
50e36fe2026-06-28 CRE: transaction-party entity model — title/escrow/insurance/lender companies + per-property edges (transaction_company + transaction_party), seeded major LA players; populated from title-records adapter once Steve's login lands -
5aaf0872026-06-28 CRE viewer: neighborhood rent estimate (std + proforma from Census median gross rent × units) per card + Pro-forma Rent ROI sort, with implausible-yield (>18%) guard flagging bad unit counts -
9f0bd7e2026-06-28 Wire sfr-bankstmt segment to cre.sfr + add fetch-sfr-agents.js (broker_sfr edge) -
9a5c2602026-06-28 Add fetch-sfr-redfin.js — feed-first uipt=1 SFR sweep w/ price-banding + swept_region_sfr ledger -
e39860e2026-06-28 CRCP: SFR/non-QM segments open the lead-source playbook even at 0 listings (compliant social/referral channels) -
dfbb2c52026-06-28 CRCP: compliant lead-source playbook on SFR/non-QM segments (referral partners + Special-Ad-Category social marketing, NOT scraped consumers) -
44fe3fb2026-06-28 Add cre.sfr table + broker_sfr edge (mirror condo/broker_condo for SFR for-sale) -
f51be7b2026-06-28 CRCP: Call Segments panel (Arcstone loan products) — mixed-use / non-warrantable condos / standard condos (FNMA CPM offer) / DSCR 1-4 / DSCR 5-9 / SFR bank-stmt / non-QM; click a segment → agents-to-call list → segment-tailored pitch -
99ec9a72026-06-28 CRE: local XLSX exporter (no Drive API) — 5-tab workbook of all brokers/agents/firms/condos/sales for Drive upload -
2b992932026-06-28 CRE: comprehensive 5-tab Google Sheet exporter (commercial brokers + residential agents + firms + warrantable condos + 17k closed sales), shares to steve@ as writer -
a880a292026-06-28 afternoon CRE update 2026-06-28 -
4d1c2a92026-06-28 CRE: sortable columns on /sales.html comps table (address/city/price/date, click to rank ▲▼) -
cc6c1a92026-06-28 closed-sales: full LA County coverage — 228 resolved regions, price-banding past the 350 cap, resume ledger, honest ~5yr depth note (6,391 -> 17,023 rows) -
52878762026-06-28 CRCP: sortable columns on broker + firm tables (click any header to rank asc/desc, ▲▼ indicator) -
56c18982026-06-28 auto-save: 2026-06-28T10:14:06 (2 files) — scripts/serve.js public/sales.html -
ed384932026-06-28 CRE residential agents: final capture artifact — 637 agents across 19 Browserbase sessions ($0.76), 104 phone / 102 email / 636 license; 74 honestly labeled no-public-agent (Redfin-suppressed) -
43075b02026-06-28 auto-save: 2026-06-28T08:43:43 (2 files) — public/crcp.html scripts/serve.js -
8e180852026-06-28 auto-save: 2026-06-28T08:13:35 (2 files) — scripts/fetch-closed-sales.js data/redfin-agents.json -
3fb9caa2026-06-28 CRE residential agents: integrate into CRCP — fetch-redfin-agents.js capture, agent_type+license through /api/crcp/stats topBrokers + /api/broker (id-safe lookup, condos as listings) + /api/broker/pitch (condo refs for residential) + mind-map graph()/contact card; CRCP residential/commercial badge + Agents tile + agent counts in /api/condos/stats -
a686d472026-06-28 CRE: closed-sales scraper (Redfin gis-csv sold feed, 10yr) → closed_sale market-comps table; per-agent attribution follows agent resolution -
2d837a22026-06-28 CRE residential agents: feasibility probe (mainHouseInfo endpoint confirms agent name+brokerage+phone/email/license) + residential schema (broker.agent_type/license, broker_condo edge, extended broker_node view) -
44b69732026-06-28 auto-save: 2026-06-28T07:43:27 (2 files) — public/brokers.html scripts/db/brokers-db.js -
d7ca6492026-06-28 CRCP: broker contact columns (phone/email/web) + click-through contact modal (full business contact + current/closed listings) + Frank user (admin) + Arcstone Financial resources + non-warrantable-condo pitch generator (email/call-script DRAFTS, send stays George-gated) -
c5507a72026-06-28 CRE Job B Tier 3: filter data-aggregator emails (signalhire/rocketreach/zoominfo/apollo/etc) — keep only real broker/firm contacts; scrub 1 false-positive -
63ed0e22026-06-28 CRE Job B Tier 3: Brave-search enrichment (~$0.004/q) for brokers-with-listings missing email — top-result fetch+harvest, last-name email attribution, firm/linkedin/crexi result ranking, $10 global cap + running spend surfaced -
22629f02026-06-28 CRCP: live Commercial Real Estate Control Panel (CNCP-styled) — /crcp.html + /api/crcp/stats, auto-polls every 3s showing listings/brokers/firms/condos + live broker-enrichment progress bars -
88d26a32026-06-28 CRE Job B Tier 2: firm-website team-page crawler ($0 local HTTPS) — mailto/tel + regex harvest, firm-domain email preference, office-level fallback assignment w/ provenance -
8378bf72026-06-28 CRE Job B: enrichment schema (website/linkedin/specialties/office_addr cols + broker_field_source provenance + broker_other_listing) + Tier 1 Crexi re-fetch (office addr/website/title/phone + book sizes) -
fc5b4d42026-06-28 auto-save: 2026-06-28T07:13:19 (1 files) — scripts/db/broker-enrich-schema.sql -
8bfec9f2026-06-28 CRE Job A: graphics reflect REAL scraped condos — /api/condos/stats (warrantable-vs-unwarranted + by-city + avg price over cre.condo), 2 new charts + stats; condos API serves all 1000 -
e64aea12026-06-28 CRE Job A: Redfin feed-first condo scraper (gis-csv) — region resolvers (city+neighborhood region_ids) + capped sweep w/ FHA warrantability classify + cre.condo upsert; probes confirm gis-csv feed (~350 condos/region) -
d9dfc392026-06-28 CRE: 5-broker enrichment PoC (~$0.04) — public Crexi broker-profile API exposes no contact fields via /brokers/<id> or /profile/<id>; full harvest needs source-discovery, documented for gated memo -
09e1ede2026-06-28 CRE: 1-session Browserbase condo-sample pipeline (capture->classify->DB, ~$0.04) — proves end-to-end flow; Crexi /condo found to be national commercial inventory not LA residential condos (purged from DB), residential source (Zillow/Redfin) is the gated full-scale path -
37b95ec2026-06-28 CRE: graphics page (broker leaderboard, firm market-share, FHA warrantability breakdown + by-city + expiring-soon charts via Chart.js) + condos warrantability view + /api/firms/share /api/warrantability /api/condos /api/fha-condos endpoints; link from index -
b27a82b2026-06-28 CRE: warrantability classifier — FHA-list match (name + street/zip) primary, heuristic text flags (condotel/cash-only/litigation/investor/mixed-use/new-construction) secondary; honest proxy labeling -
848cc192026-06-28 CRE: add condo + warrantability schema (fha_condo ref table, condo table w/ broker linkage, warrant_status enum, fha_match fn); load 2,661 FHA rows -
f67266d2026-06-28 CRE: ingest HUD FHA-approved condo list for LA County (2,661 records: 358 approved / 2,303 expired) — warrantability proxy source -
a9547bc2026-06-28 auto-save: 2026-06-28T06:13:03 (2 files) — data/fha-approved-condos.json scripts/fetch-fha-condos.js -
298a0a42026-06-27 CRE: AI narratives backfilled for all 1407 properties -
45d44d02026-06-27 CRE: extend Crexi sweep to 30 more LA County cities (1028→1407 properties); fetch-brokers incremental skip of already-captured listings -
08e290a2026-06-27 CRE: broker/agent relationship graph — cre Postgres DB (firm/broker/listing + co-list edges), Crexi /assets/<id>/brokers capture, /api/graph, vis-network mind-map at /brokers.html (verified: 68 brokers/52 firms/16 co-list edges from 60-listing sample) -
216da732026-06-27 afternoon CRE update 2026-06-27 -
c70d4a62026-06-27 CRE: case-insensitive generic sniffer (handles M&M/.NET capitalized Results+fields); record firm discovery — M&M has /api/contentsearch/properties (needs POST payload), LoopNet anti-bot dead-end -
e133dd42026-06-27 auto-save: 2026-06-27T05:37:39 (1 files) — scripts/sources/firms.js -
6594d542026-06-27 CRE: qwen narratives backfilled for all 1028 properties (thesis + recommendation) -
b6964fd2026-06-27 CRE: live Census ACS demographics for 73 LA submarkets (keyless Census Reporter) — renter%, med rent, income, pop, home value, rent burden on every card -
baf6f582026-06-27 CRE: add Census ACS demographics fetcher (70 LA submarkets) + per-card 📊 demographics line; npm run demographics -
46ede352026-06-27 CRE data: Crexi LA County sweep — 104→1028 properties (all asset types, wide band), re-ranked for viewer -
741304a2026-06-27 CRE viewer rebuilt like-new: left filter drawer behind hamburger (collapsed) with rich facets (asset type/firm/submarket/price/cap/units/year/status/budget); capture band widened to all properties + all asset classes -
ddd052e2026-06-27 CRE: add chunked full-firm LA County sweep runner (run-sweep.sh) -
690567b2026-06-27 CRE: wire read-only WhoLivedThere/pastdoor archive (assessor parcel + permits + film history) into viewer via /api/history -
2674ef82026-06-26 CRE: expand geographic scope to all of LA County (88 cities + neighborhoods + unincorporated) -
9c2ab882026-06-26 auto-save: 2026-06-26T23:36:14 (2 files) — scripts/refresh-all.js scripts/sources/firms.js -
9c8ad7b2026-06-26 CRE: multi-firm listing-source framework + firm badges in viewer -
aa88a982026-06-26 CRE reports: add score bar-chart, rich table-of-info ($/unit, $/sqft, GRM), and suggested Zillow data points (per Steve's 1pm reply) -
81019262026-06-26 afternoon CRE update 2026-06-26 -
b6dbc622026-06-26 afternoon CRE update 2026-06-26 -
133b5832026-06-26 morning CRE report: add steve-personal as second recipient -
99d728a2026-06-26 add 1pm afternoon CRE report: new-listings diff + red-hot deals, launchd 13:00 PT -
42bff372026-06-22 weekly Crexi refresh 2026-06-22 -
a3711a12026-06-22 weekly Crexi refresh 2026-06-22 -
39b655c2026-06-21 Add rent-yield (rent÷price) metric + broader SFV sweep (81 listings) -
f205d2c2026-06-21 Verify Granada Hills #1 (pro-forma 6.66%, lease-up risk) + detailed per-property recap in daily email -
fc9d2732026-06-21 Weekly Crexi refresh job + 38 new SFV listings (62 total) -
c09a4262026-06-21 Daily 6am top-10 report -> steve-office via George (launchd) -
de42fa52026-06-21 Add daily morning-report generator (top 10 SFV CRE opportunities -> HTML email body) -
5b97a772026-06-21 Tighten live-comps units parse -
89f1ab22026-06-21 Live comps -> Browserbase/Crexi (drop Exa dependency) -
1351a122026-06-21 Expand listing set (+5) + gated live-comps route -
a22e0f02026-06-21 Chat: add per-unit rent rolls + real SFV sale comps to grounding context -
0feadae2026-06-21 Ranking integrity: verify top picks vs MLS + unverified-NOI penalty -
e27dd0a2026-06-21 SFV CRE viewer + grounded control-chat -
33e19722026-06-21 initial scaffold: SFV CRE investment ranker
Authors
- Steve1147
- auto-commit-fleet656
- steve49
- Steve Abrams (DW)4
Agents used
- vp-engineering20
- code-reviewer1
Skills used
- /condos-redfin410
- /map-points305
- /latest291
- /sfr-redfin291
- /crcp-drift-state290
- /ranked134
- /residential-report111
- /listings87
- /brokers-snapshot76
- /alerts-state73
- /qwen-cache43
- /buildout-listings35
- /lyonstahl-listings31
- /firm28
- /condos26
- /crcp-data-freshness-state22
- /brokers21
- /phone20
- /encore-listings19
- /search19
- /crcp17
- /sqft15
- /stats15
- /broker15
- /agent15
- /valley-pools13
- /list13
- /table13
- /units13
- /claude12
Creative ideas + design notes
6abfd33 · 2026-09-26 · TK-11856 rc-propagation (EMAIL): CRE residential/morning/afternoon/condos reports propagate build/send rc
Exit-code ONLY, no behavior change (Steve ruling 2026-09-26 Q1/Q2): every step still runs as before; the wrapper now exits with the first nonzero rc of its side-effecting step(s) instead of swallowing it, so cron-fire-canary's exit corroboration can see a failed run. No heartbeat file added. Revert: git -C /Users/macstudio3/Projects/commercialrealestate revert <this sha> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YaiWjfgEuKQLTb5cdDreS3
0d1c4f8 · 2026-09-26 · TK-11856 rc-propagation (RSYNC): crcp-loan-officers exits nonzero on failed prod backup/rsync
Exit-code ONLY, no behavior change (Steve ruling 2026-09-26 Q1/Q2): every step still runs as before; the wrapper now exits with the first nonzero rc of its side-effecting step(s) instead of swallowing it, so cron-fire-canary's exit corroboration can see a failed run. No heartbeat file added. Revert: git -C /Users/macstudio3/Projects/commercialrealestate revert <this sha> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YaiWjfgEuKQLTb5cdDreS3
cd84313 · 2026-09-23 · CRCP crexi DB scraper: harden per Kimi review — scalar results parsed only after stripping the boxed preamble, 'Listed by' keeps $ in names, strips a same-line price, word-bounded, never locks the agent name in as the firm (TK-12033)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X7HcZ26MePoJ5QpcvDhKmH
46f7721 · 2026-09-23 · CRCP crexi DB scraper: count brokers actually INSERTED on --apply (summary said 0 while 4 landed) (TK-12033)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X7HcZ26MePoJ5QpcvDhKmH
e778fe0 · 2026-09-23 · CRCP crexi DB scraper: also strip a leading 'NNN SqFt' marketing prefix from detail addresses (TK-12033)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X7HcZ26MePoJ5QpcvDhKmH
5d36367 · 2026-09-23 · CRCP crexi DB scraper: parse openclaw CLI output past its stdout preamble, 'Listed by' as primary firm source, measured 0-card diagnostics, 6s SPA settle (TK-12033)
The openclaw CLI printed a Config-warnings box on STDOUT before the JSON result, so every evaluate() parsed as a string -> 0 cards -> a false THROTTLED verdict (the same 'inferred from an empty parse' class as the extractor bug). The 2026-09 detail page adds masked/PRO lines that the reverse line-scan misread as the firm; the structured 'Listed by <firm>' line is now primary. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X7HcZ26MePoJ5QpcvDhKmH
6c44ca0 · 2026-09-23 · CRCP data: repair 47 crexi rows minted with v2 'sales-' id prefix (id crxN, numeric source URL) + re-rank (TK-12033)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X7HcZ26MePoJ5QpcvDhKmH
9b71f50 · 2026-09-23 · CRCP crexi: normalize v2 'sales-N' ids to bare N + pass zip through (both extractors); DB scraper on new /search/ scheme (TK-12033)
Crexi's universal-search/v2 ids arrive as 'sales-2066415' but the canonical detail URL is /properties/2066415/<slug> and our historical ids are crxN. Passing the prefix through (b2acc84) stored source links that 302 to a dead brokerage-search page, forked the id namespace, and made crcp-scope.js isCalifornia() fail closed so every new row was hidden on CA city subdomains. scrape-crexi-loopnet.js: the old ?types[]=&placeIds[]= URL no longer navigates (read as a false THROTTLED); use the verified /search/<slug>-properties-for-sale/los-angeles-ca scheme. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X7HcZ26MePoJ5QpcvDhKmH
766c232 · 2026-09-22 · TK-12033: add data-freshness half to crcp-drift-canary + a gated one-command data sync script
Root cause: data/ranked.json + data/listings.json (the live CRCP listing data,
served straight off Kamatera disk) were excluded from every deploy/sync script
and unwatched by the drift canary, so the Mac2 rotating cron regenerated them
daily with nothing carrying the result to prod — prod listing data silently
froze since Sep 15 while the canary reported IN_SYNC (it only ever hashed
public/*.{html,js,css}).
- deploy/push-data-kamatera.sh: new, models push-frontend-kamatera.sh's safety
style (timestamped remote backup, rsync with no --delete, --dry-run support,
post-push verify). Deliberately NOT wired into the unattended rotating cron —
external publish to the live site stays a deliberate, gated step.
- scripts/crcp-drift-canary.js: extends the existing front-end drift check with
a data-freshness check (local vs remote sha256 + remote mtime age) that FAILs
on the exact "prod frozen" condition, and adds a top-level `verdict` field in
the PASS/WARN/FAIL fleet-health-rollup vocabulary (the old `status` field used
IN_SYNC/DRIFTED/UNKNOWN, which reads as a silent false-green to any consumer
expecting the standard vocabulary). Ships a 7-scenario negative self-test
(`--test`) proving it goes FAIL/WARN on injected staleness, missing files, and
a real unreachable-host ssh failure, red-teamed by the contrarian panel
(FIX FIRST -> added local-missing + real-ssh-exception scenarios + a
documented clock-skew limitation before shipping).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQ2dobMo2M69Rq582uR7pd
be0c49d · 2026-09-18 · fix(sfr): upsert arbiter must be source (URL), not id — kills ~4,900 sfr_source_key dupe-key errors
The sfr table has two unique constraints (id PK, source UNIQUE). The Redfin upsert declared ON CONFLICT(id), but id drifts across re-sweeps (MLS# appears late / addr+zip synthetic hash shifts) while the URL stays constant. A same-URL new-id row slipped past the id check and violated sfr_source_key; the error was swallowed by .catch(() => null), silently dropping the fresh price/status update (stale listings). source is the schema's stated idempotency key. DO UPDATE never rewrites id, so broker_sfr's FK to sfr.id stays stable. Verified in a rolled-back txn: old arbiter throws the exact error, new arbiter updates in place, id kept, no duplicate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hi31Ew38GE15TY3oCFtz5d
8fad641 · 2026-09-15 · security: remove served source-leak backups (.css/.js .pre-3view.bak) — yoloforever cycle 4
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
729106a · 2026-09-15 · chore: commit code deployed in 2026-09-15 fleet push
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EwddjWujivh6oHPnqGqRoK
548c019 · 2026-08-26 · SFV $700k-$1.2M pool split: enrichment + /api/sfv-pool + details page + email report
- enrich-sfr-pools.js: real-Chrome scrape of Redfin POOL_FEATURES into cre.sfr_pool (gis-csv feed has no pool data); resumable/incremental - /api/sfv-pool endpoint (DB-first + snapshot fallback), 3-way with/without/pending split - public/sfv-pool.html details page: pool + city filters, sort + density controls (standing rule) - sfv-pool-report.js + run-sfv-pool-report.sh: the digest email to Steve's inboxes
9198a6e · 2026-08-26 · chore: lint + quality-gate fixes, v0.25.0 (session close)
crexi: drop dead --type bare-flag branch (TYPE_ARG precedence). loopnet: tighten price to facts-table headline only (no loose $-fallback that could misparse per-unit/psf), add deadlineHit outer-break to match crexi. Behavior- preserving; both parse clean. [lint ✓ · refactor ✓ (clean) · v0.24.1→v0.25.0] Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
d11b90f · 2026-08-26 · TK-10864: LoopNet second-source scraper (broker graph, source=loopnet)
Same architecture as the hardened Crexi scraper: openclaw two-level crawl -> broker_direct_listing, name+firm-confirmed agent attribution via the reliable 'Contact <Agent> of <Firm> by phone' pattern, price from the facts table, cross-source dedup, resume cache, reversible, never links out. FINDING: LoopNet gates the listing-agent NAME on ~99% of listings (generic 'Contact Listing Agent' with no scrapable name), so agent-attribution yield is ~1% vs Crexi's ~86% — a data-source limitation, not a build defect. Scraper ingests the exposed-agent subset cleanly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b048ea2 · 2026-08-25 · TK-10709: dedup across ALL sources, not just crexi
Seed the seen-address set from every source in broker_direct_listing so a crexi crawl never double-counts a property already listed under broker-site / broker-site-oc (spec criterion #3). Caught + fixed 5 cross-source collisions. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
d7cdfed · 2026-08-25 · TK-10709: remove Crexi profile link-out from broker page + restore 6-scroll grid sweep
broker.html: drop the 'Crexi profile →' link-out (spec hard rule: ingest-and- display-as-ours, never link users out to Crexi/LoopNet). Local only; prod deploy stays gated. scraper: 6 scrolls for deeper grid card coverage. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
f0860c1 · 2026-08-25 · TK-10709: robust Crexi agent-attributed scraper
Reliable detail-page extraction (clean address, real headline price not per-unit/psf, correct primary agent+firm from the structured Listing Contacts block). Fixes found live: broken new-broker insert (integer seq not uuid), per-unit price misparse, firm=license-string, /LIC/ regex eating firms like Mil-lic-hap. Robustness: resume cache w/ incremental checkpoint, throttle detection + cool-down, soft time budget for clean exit, persisted grid queue (skip re-sweep), cheap non-CA grid pre-filter, firm-level fallback. Reversible (source=crexi), never links out. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4162472 · 2026-08-25 · CRCP: unstick crexi->broker-direct substitution + add Encore/Trinity own-site feeds
- Fix mergedRanked guard: 8,796 crexi rows carried _sourced:crexi-active-book and were wrongly skipped as broker-direct, so 74% of crexi links could never be substituted. Skip only rows already source_of_truth=broker-direct in-pass. - Firm-agreement guard (exact firmKey) on substitution: prevents city-blind address collisions mis-linking a row to the wrong firm (removed ~58 wrong swaps). - resolve-broker-direct.js: generic per-firm resolver (BuildOut/WP-REST adapters) that matches a firm's own-site inventory to THAT firm's crexi rows by address; uses the feed's authoritative show_link permalink (not a constructed URL). Adds Encore + Trinity. Result: 223 firm-verified crexi links now point to the broker's own listing page, 0 mismatches.
838f589 · 2026-08-25 · CRCP list view: add Broker phone column + relabel agent phone
Adds a 'Broker phone' field (firm/broker-of-record line) alongside the existing agent phone, both as list columns. Resolver prefers the resolved usre firm_phone, then broker-history current_broker.phone, then the raw broker_phone, then a firm-tier agent line. Relabels the existing 'phone' field 'Agent phone' for clarity; both are ALWAYS_ON. List/table only (card view already shows broker phone via the Current-broker line).
2aaf18e · 2026-08-24 · Swap Browserbase transport -> openclaw in refresh-all.js (TK-10745)
- Remove @browserbasehq/sdk import and session creation (~$0.17/session, DC-IP-blocked by Crexi)
- Connect via chromium.connectOverCDP('http://localhost:18800') — openclaw local Chrome ($0)
- Add --dry-run flag (navigate + capture, skip writes to listings.json / last-refresh.json)
- Add CC_CDP env var override for the CDP endpoint
- Disconnect gracefully (goto about:blank + browser.disconnect/close) without killing openclaw
- Update cost strings: '$0 (openclaw local Chrome)' everywhere
- Add refresh-dry npm script for easy dry-run invocation
- Dry-run verified: script connects, navigates Crexi, exits clean (0 captures = need cool-down)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
c4ea663 · 2026-08-20 · CRCP: inline-city SSO — one hub login reaches all cities inline, no re-prompt (Steve directive)
City subdomains (pasadena.crcp.agentabrams.com …) are HTTP-Basic-gated; recities/firecities are app-session. Added an app-session-GATED reverse proxy in serve.js — /city/:name/* fetches the city with Basic creds injected SERVER-SIDE (creds ONLY from env CITY_BASIC_AUTH, never hardcoded; proxy 503s if unset) + injects a <base>+fetch/XHR shim so the page's root-absolute /api calls route back through the proxy — plus public/cities-inline.html (tabbed inline hub via same-origin iframes). Rails: app-session required, strict city allowlist (no SSRF), GET-only. Verified via direct run: /city/pasadena/ 200 (46KB real page) + /api/stats 200 JSON, allowlist 404, no-session 302. Additive — did NOT touch crcp-agent's live recities.html. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
f30d3c7 · 2026-08-20 · chore: add broker-name normalizer + version bump (session close)
- scripts/normalize-broker-names.js: deterministic Crexi/CoStar broker-name cleanup (strip CCIM/SIOR credentials, ALL-CAPS→Title, lowercase→proper, stray punctuation). - lint (node --check) clean on all session JS. Refactor pass SKIPPED intentionally: shared repo co-owned by crcp-ui + all session code already deployed & verified live + no test harness — behavior-preserving refactor risk outweighs benefit at close. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b521fc4 · 2026-08-20 · CRCP: drag-to-resize the Controls rail (#ctrlrail) — vertical expansion bar
A fixed vertical grab-bar pinned to the rail's left edge via right:var(--railW) so it auto-tracks width and never scrolls with rail content. Drag = widen (clamp 200-760px), double-click = reset to default, width persisted to localStorage (crcp_railW). Hidden with the rail below 1100px. Verified on :9911 — 272->422 on drag, persisted. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7777839 · 2026-08-20 · direct-listings: add aria-label to density slider (a11y — Cody gate)
Contrarian caught the density range had no accessible name (decorative glyph + title only). Added aria-label='Row density' + aria-hidden on the icon glyph. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2645a22 · 2026-08-20 · direct-listings: add density slider (Steve grid rule — every grid needs sort + density)
CTA click-through audit caught direct-listings.html had a sort select but no density control. Added a persisted row-density range (4-16px --rowpad) beside the sort select; verified headless that dragging it moves td padding 7->14px, saves to localStorage, zero console errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3716477 · 2026-08-20 · CRCP table view: columns expand full-width + sticky header & frozen first column
- .listtbl width:max-content (min-width:100%) — columns size to content and scroll horizontally instead of being squished/cut off. - Bound .cr-scroll (the scroll container col-resize.js wraps the table in — the th's actual nearest scroller, NOT .listwrap) with max-height so the sticky header (thead top:0) and sticky first column (td.stick left:0) freeze while scrolling both axes. - z-index layering: header row(2) > first col(1), corner(3) highest. Verified on :9911 — header & first col freeze, both axes scroll, infinite-scroll intact. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1b7ba1f · 2026-08-20 · CRCP: resolve popup double-fire — ONE row-expand panel, server-synced notes (DTD verdict A)
Two sessions had built competing 'click property -> detail+notes' popups on index.html. Per Steve's DTD panel (6/6 verdict A + contrarian rider), consolidate to ONE: - row-notes.js: notes now save to the SERVER per-user (/api/agent-notes, key prop:<id>) instead of localStorage, so they sync across every device Frank signs in on. Adds the full property field-grid + LA County assessor/sold/permit history + a 📝 icon affordance. - index.html: removed the competing #pdOverlay block (kills the double-fire). Auto-saves every keystroke. Verified locally: single panel, server-note persists. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0938efc · 2026-08-20 · CRCP index: fix overlapping UI — bar controls no longer spill under the #ctrlrail
.bar .right was display:flex with NO wrap, so when the new right-hand Controls rail (be1fb30) shrank main to ~650px the search/Heat/Sort group overflowed to ~930px and painted OVER the rail (bar z-index:20 vs rail auto). Added flex-wrap:wrap + justify-content:flex-end + min-width:0 so it wraps within the bar. Verified in a real browser at 1238px (Steve's width): .bar .right right-edge 946 <= main 966, zero rail overlap. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
cc28893 · 2026-08-20 · CRCP index: ALWAYS show agent/phone/firm/broker on the list view (Steve directive)
Root cause: VIS was built from persisted localStorage.cre_fields, so a prior toggle-off hid agent/phone/firm forever despite def:1. Force ['agent','phone','firm','brokerline','broker'] on at load (override saved off-state) + re-assert in saveVis (un-hideable) + broker def:0->1. Only public/index.html staged; crcp-agent's live data-refresh working files left untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
9b4f89b · 2026-08-20 · CRCP: top-right signed-in user badge (person icon + name + sign out)
Adds public/user-badge.js — a self-contained top-right pill (person icon + signed-in name, click for details + Sign out) injected into every served HTML page by a serve.js middleware, so it needs zero edits to any page file (the TK-10703 session owns those). Hides any legacy inline #auth so there's one consistent badge. Skips login.html. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
05eae71 · 2026-08-20 · CRCP: replace whole-site Basic-auth popup with single real-user login
Frank (and anyone) is now just a user on the system: the browser Basic-auth dialog is gone. The app account (/auth/login) is the sole gate via a session- required middleware that reuses userOf(req). No session -> page navigations 302 to a styled /login.html; data/API calls 401 (fails closed, nothing leaks public). Adds public/login.html (self-contained, open-redirect-guarded next). One login end to end: frank / arcstone1998. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
82487e2 · 2026-08-19 · CRCP: refresh nav-agent copy to v1.2 (adds the kv-list compact List view)
Grid/List toggle now available on every CRCP nav-agent page; default stays Grid so nothing regresses. Served static from public/nav-agent/ by scripts/serve.js. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
685e76b · 2026-08-19 · Fix valley-pools renderer crash (filter-modal infinite-loop) + TV.refresh typo
filter-modal.js: recount() wrote pc.textContent unconditionally, but its own MutationObserver watches the rail subtree for childList changes — a redundant textContent write still emits a mutation record, re-firing the observer → recount() → write → OBSERVER → an infinite loop that OOM-crashes the renderer. Only triggered on pages whose filters start with a value (valley-pools ships pre-filled price/rate/down), which is why 34 other pages were fine. Fix: make recount() write only on real change (idempotent) so the observer settles. valley-pools.html: TV.refresh() -> TV.render() (three-view exposes render, not refresh). Verified: valley-pools renders (all 148 cards) + map opens (148 markers/price tags, tiles load); deals-flow (also uses filter-modal) unaffected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
036e4b5 · 2026-08-19 · Daily valley-pools refresh now pushes the fresh snapshot to prod
refresh-valley-pools.sh: regenerate on Mac2 (keeps the cre.sfr price-history + $/sqft enrichment the DB-less prod box can't do), sanity-gate on count>0, then rsync valley-pools.json to prod so crcp.agentabrams.com stays fresh. Launchd job com.steve.valley-pools-refresh now runs this wrapper (was calling node directly). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
9bbc693 · 2026-08-19 · CRCP gate: multi-credential auth (CRCP_EXTRA_USERS) — add steve to main :9911
Accept the primary CRCP_USER/CRCP_PASS plus an optional comma-separated CRCP_EXTRA_USERS list so multiple people share one instance. Cookie check now matches any accepted cred's token. Backward-compatible (no extras = old single cred). Main :9911 launchd plist gets CRCP_EXTRA_USERS=steve:jef215 so steve logs in alongside admin/DW2024!. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ac8f2f3 · 2026-08-19 · Valley pools: CRCP-standard left rail + three-view + per-user listing notes
- Retrofit to the CRCP viewer standard: left .rail (max-price, beds/baths, deal-tier chips, region chips, mortgage inputs, deal-color legend) + ThreeView grid/list/table (infinite scroll, field toggles via nav-agent) + filter-modal (mobile) + corner-nav - Deal-tier colors carried onto card borders, table row markers, map pins + legend - Per-listing NOTES saved per user: new /api/sfr-notes scope in crcp-notes.js with a Basic-gate-user fallback (gate:<user>) so notes save on the steve/jef215 instance without a second login; Frank's crcp_sid notes unaffected - Self-host Leaflet (public/vendor/leaflet) — no external CDN dependency Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b33fc03 · 2026-08-19 · Valley pools: map view + deal-tier colors + $/sqft + price-cut + payment est + on-map price tags
- Leaflet Map/Split view; pins colored by deal tier; permanent price tag beside each dot - Deal-tier color cascade (best>value>cut>negotiable>market) on card borders, badges, pins + legend - $/sqft vs region-median (value-buy >=12% under area); price-cut/was-price from cre.sfr history join - Est. monthly PITI per home (adjustable rate/down); Deals-only filter + deal-first sort - Fetcher: reusable MAX_PRICE/POOL/OUT env overrides; enriches price-history + $/sqft deal score Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
d4447f7 · 2026-08-19 · 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.
38e4820 · 2026-08-19 · CRCP: infinite scroll across all grid pages (replace hard row caps / all-at-once renders)
Reveal a batch and load more as a sentinel scrolls near view, instead of dumping the whole set (which froze heavy pages) or capping at 600/2000/120 with no way to see the rest. Scroll-aware: window-scroll pages root the observer to the viewport; inner-scroll panes (broker-grid/fha-loans/residential-brokers #tableView) root to the pane. All 13 grid pages verified in-browser (reveal→grow, no page errors). - infinite-scroll.js (new): reusable windowed helper for custom-render pages - three-view.js: built-in windowing + scroll-container-aware sentinel (covers the 7 three-view pages) - deals-flow/condos/contractors/direct-listings/broker-grid/fha-loans: wired to the helper - fha-leads/just-listed/residential-brokers/licensed-agents: lifted redundant slice(0,600) caps so windowing reveals the full set - index/mls: converted the existing 'show more' button to auto-trigger on scroll Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
77b9299 · 2026-08-19 · broker snapshot: active-listing recency gate + size-ceiling health verdict (DTD A-with-rider)
- curCom query: WHERE l.created_at > now()-interval '120 days' — the commercial `listing` table has NO status column (mark-off-market runs on the residential table), so a created_at recency window is the correctness gate that stops a future stale row from surfacing as an ACTIVE listing on a public broker profile. No-op today (all listings <=90d); real fix needs a last_seen column (follow-up). - post-write: emit snapshot-health PASS/WARN/FAIL (fleet-health vocab) + WARN>30MB / FAIL>60MB, since readBrokerSnap loads the whole file into the prod Node heap. Not run here (parallel session just regenerated the snapshot); nightly regen applies it. Item 1 (snapContact reads brokerDetail) already shipped by the parallel session (fd9337c).
86a32ab · 2026-08-19 · Add SFV single-family pool-homes viewer (new crcp landing)
New self-contained CRCP page: single-family homes with a pool in the San Fernando Valley under $1.2M (148 listings, feed-first $0 via Redfin gis-csv &pool=1 verified has-pool filter across 36 Valley regions). New files only — does not touch the TK-10703-owned mls/condos/broker-grid/just-listed pages or shared serve.js (served via existing /data + / static mounts). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
95ff71b · 2026-08-19 · CRCP: 'Pocket listing' badge for off-market rows with no contact at all (Steve 2026-08-19)
- isPocket(a) = no agent name + no phone + no email + no firm/firm-site -> show 🔒 Pocket listing badge instead of 'no agent on file' (which read like missing data). Conservative: only 40/4095 rows qualify (genuinely anonymous/off-market); rows with any firm/name/contact are unaffected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
cf0bd41 · 2026-08-19 · CRCP: Frank onload 4-unit multifamily default filter + non-warrantable condos section + per-agent private notes
- crcp-notes.js: generalize to a scope factory; add agent/broker profile notes (/api/agent-notes, data/agent-notes.json) alongside existing condo notes, per-user + updated_at timestamp - agent-notes.js (new): reusable private-notes panel drop-in; shows last-modified date + relative update, autosaves on blur/Cmd+Enter, sign-in-aware - agent.html + broker.html: mount the notes panel keyed by stable profile id - crcp-accounts.js: seed Frank (Arcstone818 company) a default 'is_default' 4-Unit Multifamily saved search; add POST /api/saved-searches/:id/default; surface company on session - deals-flow.html: auto-apply the user's default saved search on load when no URL filter is present - condos.html: dedicated Non-Warrantable Condos section (honest FHA/warrantability proxy) with live bucket counts + real HUD-lapsed re-cert examples + one-click filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7992c24 · 2026-08-19 · CRCP: per-broker Crexi-tail phone grind — $0 openclaw CDP own-tabs, resumable (Steve: grind the tail in background)
- backfill-crexi-brokers.js: 4 parallel openclaw tabs fetch each crexi detail page (Akamai-cleared by real Chrome), extract listing broker name+phone -> overlay by broker name. Sidecar .crexi-broker-done.json for resume. ~80% early hit. Background grind (~2h for 1773 rows). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
89fb491 · 2026-08-19 · DRE->CRCP-id join: link condo/residential brokers to broker profiles
- serve.js: GET /api/brokers/by-dre/:license — snapshot-first resolver, digits-only
match on dre_license then license; returns {id,name} or {id:null}. Works identical
local + prod (snapshot mode).
- broker.html: accept ?dre=<license> (+ optional &name=) -> resolve to id and render;
graceful 'not in CRCP index' fallback (name + live CA DRE record link, never a dead end).
- condos.html: unobtrusive 'profile' link next to each listing-agent DRE#.
- residential-brokers.html: name links to profile for CA licenses only (CRCP is CA-focused;
out-of-state would resolve to 'not in index', so kept high-signal).
Verified E2E on an ephemeral instance (prod :9911 untouched): Cameron Samimi DRE 02035763
-> CRCP id 26, full profile w/ 153 listings; dash-formatted DRE normalizes; bogus DRE ->
graceful fallback. 0 console errors.
0668669 · 2026-08-19 · CRCP: all-day parallel firm-phone backfill for Crexi-base rows — $0 openclaw (Steve: max-it, parallel browsers)
- backfill-crexi-firms.js: 4 parallel openclaw tabs google-resolve each usre-miss firm's CA office phone -> overlay['firm:<norm>']. ~1.6 firms/sec, resumable, CA-area validated. - serve.js overlay: firm-fallback (row without name-match uses firm office line, tier=firm). - 56 firm phones in first 45s (M&M branches, Hayes, JohnHart... all real CA offices). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3c7ce7f · 2026-08-19 · CRCP: broker-phone OVERLAY for Crexi-base rows — free usre seed + serve.js overlay (Steve: crexi-base coverage)
- serve.js mergedRanked: overlays data/broker-phone-overlay.json (normName->phone) onto any ranked row lacking a phone; overlay file in cache key so it hot-refreshes as the all-day backfill appends. - seed-broker-overlay.js: batches all ranked brokers through /api/broker-contacts (usre) -> 369 phones seeded (731 rows covered). - next: all-day parallel browser backfill fills the ~1650 usre-miss names. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fb68fcb · 2026-08-19 · CRCP: backfill broker contacts for Lyon Stahl/WESTMAC/BuildOut — $0 curl (Steve: 'find their contact info while on their site')
- backfill-broker-contacts.js: WESTMAC per-agent name+direct-phone+email from .agent-box detail pages (curl $0), Lyon Stahl firm office line (310) 425-9838 set instantly (on every page, no fetch), BuildOut firm phone (562) 495-6070 (verified on cbcblair.com). Resumable. - broker-direct phone coverage: 448 (showcase-only) -> ~1035/1056 (~98%): lyonstahl 542/542, westmac 35/46, buildout 10/10, showcase 448/458 - wired into sync-broker-feeds.sh (runs after scrapers, $0, re-run daily) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b0d8b1d · 2026-08-19 · broker-grid: 'View full profile ->' link in the broker modal to /broker.html
Uses the resolved d.broker.id from /api/broker (canonical CRCP broker id), so the profile link is guaranteed to resolve. Verified via real render of broker 1940, 0 console errors. (residential-brokers + condos intentionally NOT linked: their row ids are usre-DRE / condo ids, a different id space than the CRCP broker table.)
File tree
- .deploy.conf
- .gitignore
- 5x/DTD-deal-score.md
- 5x/NIGHT-LOG.md
- 5x/OVERNIGHT-REPORT.md
- 5x/REPORT.md
- 5x/brokers-assert.js
- 5x/brokers-sweep.raw
- 5x/brokers-sweep2.raw
- 5x/crcp-assert.js
- 5x/crcp-sweep-1.raw
- 5x/crcp-sweep-2.raw
- 5x/deals-assert.js
- 5x/graphics-drill-assert.js
- 5x/health-check.sh
- 5x/index-assert.js
- 5x/map-assert.js
- 5x/map-sweep-1.raw
- 5x/rentrolls-assert.js
- 5x/rn-test.mjs
- 5x/sales-assert.js
- 5x/sales-sweep.raw
- 5x/sales-sweep2.raw
- 5x/sweep-1.md
- 5x/sweep-1.raw
- 5x/sweep-2-ct.raw
- 5x/sweep-2.md
- 5x/sweep-2.raw
- 5x/sweep-3.md
- 5x/sweep-4.md
- 5x/sweep-4.raw
- 5x/sweep-5.raw
- 5x/sweep1-6way.txt
- 5x/sweep1-clicks.txt
- 5x/tk10703-direct-listings-assert.js
- 5x/tk10703-linkedin-assert.js
- DW-Wins-Dashboard.png
- claude-chat-bridge.cjs
- cta/rec/chrome.mp4
- cta/rec/chrome/page@4586815c64c3355dcbfcc5ae83517399.webm
- cta/rec/safari.mp4
- cta/rec/safari/page@cc1e5d6fa489786581843f85246a52c0.webm
- cta/results.json
- cta/shots/chrome/00-initial-load.png
- cta/shots/chrome/01-grid-multifamily-loaded.png
- cta/shots/chrome/01-grid-ready.png
- cta/shots/chrome/02-after-min-units-4.png
- cta/shots/chrome/03-after-max-units-6.png
- cta/shots/chrome/04-after-chip-x-units-max.png
- cta/shots/chrome/05-after-year-min-1960.png
- cta/shots/chrome/06-after-year-max-1990.png
- cta/shots/chrome/07-after-chip-x-year-max.png
- cta/shots/chrome/08-url-round-trip.png
- cta/shots/chrome/09-after-reset-all.png
- cta/shots/chrome/10-saved-search-restore.png
- cta/shots/chrome/11-regression-final.png
- cta/shots/safari/00-initial-load.png
- cta/shots/safari/01-grid-multifamily-loaded.png
- cta/shots/safari/01-grid-ready.png
- cta/shots/safari/02-after-min-units-4.png
- cta/shots/safari/03-after-max-units-6.png
- cta/shots/safari/04-after-chip-x-units-max.png
- cta/shots/safari/05-after-year-min-1960.png
- cta/shots/safari/06-after-year-max-1990.png
- cta/shots/safari/07-after-chip-x-year-max.png
- cta/shots/safari/08-url-round-trip.png
- cta/shots/safari/09-after-reset-all.png
- cta/shots/safari/10-saved-search-restore.png
- cta/shots/safari/11-regression-final.png
- data/.crexi-broker-done.json
- data/.loan-officers-fingerprint
- data/.pre-afternoon-ids.json
- data/agent-notes.json
- data/agent-sites.json
- data/alerts-config.json
- data/alerts-state.json
- data/boom-records/additions-2026-08-18.csv
- data/broker-enrich-poc.json
- data/broker-history-full.json
- data/broker-history-pilot.json
- data/broker-name-fixes.staging.json
- data/broker-of-record.sqlite
- data/broker-phone-overlay.json
- data/brokers-snapshot.json
- data/buildout-listings.json
- data/closed-sales.json
- data/comps.json
- data/condo-brokers.json
- data/condos-redfin.json
- data/condos-report.html
- data/condos-sample.json
- data/crcp-data-freshness-state.json
- data/crcp-drift-state.json
- data/crexi-broker-corrections.staging.json
- data/crexi-progress.json
- data/crexi-queue.json
- data/demographics.json
- data/encore-listings.json
- data/fdic-branches.json
- data/fdic-lenders.json
- data/fha-approved-condos.json
- data/fha-loans.json
- data/firm-ig-cache.json
- data/firm-ig-map.json
- data/firm-ig-thumbs/bhhscaliforniaproperties-0.jpg
- data/firm-ig-thumbs/bhhscaliforniaproperties-1.jpg
- data/firm-ig-thumbs/bhhscaliforniaproperties-2.jpg
- data/firm-ig-thumbs/carolwood-0.jpg
- data/firm-ig-thumbs/carolwood-1.jpg
- data/firm-ig-thumbs/carolwood-2.jpg
- data/firm-ig-thumbs/cbre-0.jpg
- data/firm-ig-thumbs/cbre-1.jpg
- data/firm-ig-thumbs/cbre-2.jpg
- data/firm-ig-thumbs/century21-0.jpg
- data/firm-ig-thumbs/century21-1.jpg
- data/firm-ig-thumbs/century21-2.jpg
- data/firm-ig-thumbs/coldwellbanker-0.jpg
- data/firm-ig-thumbs/coldwellbanker-1.jpg
- data/firm-ig-thumbs/coldwellbanker-2.jpg
- data/firm-ig-thumbs/compass-0.jpg
- data/firm-ig-thumbs/compass-1.jpg
- data/firm-ig-thumbs/compass-2.jpg
- data/firm-ig-thumbs/corinthiantitle-0.jpg
- data/firm-ig-thumbs/corinthiantitle-1.jpg
- data/firm-ig-thumbs/corinthiantitle-2.jpg
- data/firm-ig-thumbs/cushwake-0.jpg
- data/firm-ig-thumbs/cushwake-1.jpg
- data/firm-ig-thumbs/cushwake-2.jpg
- data/firm-ig-thumbs/douglaselliman-0.jpg
- data/firm-ig-thumbs/douglaselliman-1.jpg
- data/firm-ig-thumbs/douglaselliman-2.jpg
- data/firm-ig-thumbs/exprealty-0.jpg
- data/firm-ig-thumbs/exprealty-1.jpg
- data/firm-ig-thumbs/exprealty-2.jpg
- data/firm-ig-thumbs/firstteam-0.jpg
- data/firm-ig-thumbs/firstteam-1.jpg
- data/firm-ig-thumbs/firstteam-2.jpg
- data/firm-ig-thumbs/jll-0.jpg
- data/firm-ig-thumbs/jll-1.jpg
- data/firm-ig-thumbs/jll-2.jpg
- data/firm-ig-thumbs/johnhartre-0.jpg
- data/firm-ig-thumbs/johnhartre-1.jpg
- data/firm-ig-thumbs/johnhartre-2.jpg
- data/firm-ig-thumbs/kellerwilliams-0.jpg
- data/firm-ig-thumbs/kellerwilliams-1.jpg
- data/firm-ig-thumbs/kellerwilliams-2.jpg
- data/firm-ig-thumbs/lyonstahl-0.jpg
- data/firm-ig-thumbs/lyonstahl-1.jpg
- data/firm-ig-thumbs/lyonstahl-2.jpg
- data/firm-ig-thumbs/newmark-0.jpg
- data/firm-ig-thumbs/newmark-1.jpg
- data/firm-ig-thumbs/newmark-2.jpg
- data/firm-ig-thumbs/oldrepublictitle-0.jpg
- data/firm-ig-thumbs/oldrepublictitle-1.jpg
- data/firm-ig-thumbs/oldrepublictitle-2.jpg
- data/firm-ig-thumbs/pinnacleestate-0.jpg
- data/firm-ig-thumbs/pinnacleestate-1.jpg
- data/firm-ig-thumbs/pinnacleestate-2.jpg
- data/firm-ig-thumbs/remax-0.jpg
- data/firm-ig-thumbs/remax-1.jpg
- data/firm-ig-thumbs/remax-2.jpg
- data/firm-ig-thumbs/sothebysrealty-0.jpg
- data/firm-ig-thumbs/sothebysrealty-1.jpg
- data/firm-ig-thumbs/sothebysrealty-2.jpg
- data/firm-ig-thumbs/stewarttitleco-0.jpg
- data/firm-ig-thumbs/stewarttitleco-1.jpg
- data/firm-ig-thumbs/stewarttitleco-2.jpg
- data/firm-ig-thumbs/theagencyre-0.jpg
- data/firm-ig-thumbs/theagencyre-1.jpg
- data/firm-ig-thumbs/theagencyre-2.jpg
- data/firm-ig-thumbs/thebeverlyhillsestates-0.jpg
- data/firm-ig-thumbs/thebeverlyhillsestates-1.jpg
- data/firm-ig-thumbs/thebeverlyhillsestates-2.jpg
- data/gov/aspen.json
- data/gov/atherton.json
- data/gov/beverly-hills.json
- data/gov/greenwich.json
- data/gov/hamptons.json
- data/gov/hillsborough.json
- data/gov/index.json
- data/gov/las-vegas.json
- data/gov/malibu.json
- data/gov/miami-beach.json
- data/gov/miami.json
- data/gov/montecito.json
- data/gov/naples.json
- data/gov/newport-beach.json
- data/gov/nyc.json
- data/gov/palm-beach.json
- data/gov/san-francisco.json
- data/gov/silicon-valley.json
- data/gov/telluride.json
- data/gov/texas.json
- data/gov/vail.json
- data/gov/woodside.json
- data/hmda-market.json
- data/last-broker-of-record.json
- data/last-refresh.json
- data/latest.json
- data/license-directory.json
- data/licensed-agents.json
- data/listings.json
- data/loan-officers.json
- data/loopnet-progress.json
- data/lyonstahl-listings.json
- data/map-points.json
- data/marketing-exec-leads/chunks/chunk-01.csv
- data/marketing-exec-leads/chunks/chunk-02.csv
- data/marketing-exec-leads/chunks/chunk-03.csv
- data/marketing-exec-leads/chunks/chunk-04.csv
- data/marketing-exec-leads/chunks/chunk-05.csv
- data/marketing-exec-leads/chunks/chunk-06.csv
- data/marketing-exec-leads/chunks/chunk-07.csv
- data/marketing-exec-leads/chunks/chunk-08.csv
- data/marketing-exec-leads/chunks/chunk-09.csv
- data/marketing-exec-leads/chunks/chunk-10.csv
- data/marketing-exec-leads/chunks/chunk-11.csv
- data/marketing-exec-leads/chunks/chunk-12.csv
- data/marketing-exec-leads/chunks2/ind-01.json
- data/marketing-exec-leads/chunks2/ind-02.json
- data/marketing-exec-leads/chunks2/ind-03.json
- data/marketing-exec-leads/chunks2/ind-04.json
- data/marketing-exec-leads/chunks2/ind-05.json
- data/marketing-exec-leads/chunks2/ind-06.json
- data/marketing-exec-leads/chunks2/ind-07.json
- data/marketing-exec-leads/chunks2/ind-08.json
- data/marketing-exec-leads/cre-marketing-execs-MASTER.csv
- data/marketing-exec-leads/enrich-targets.json
- data/marketing-exec-leads/independent-targets.json
- data/marketing-exec-leads/index.html
- data/marketing-exec-leads/outreach-drafts.md
- data/marketing-exec-leads/outreach-queue.csv
- data/marketing-exec-leads/outreach-queue.md
- data/marketing-exec-leads/results/chunk-12.json
- data/marketing-exec-leads/results/enrich-round2.json
- data/marketing-exec-leads/results/ind-01.json
- data/marketing-exec-leads/results/ind-02.json
- data/marketing-exec-leads/results/ind-03.json
- data/marketing-exec-leads/results/ind-04.json
- data/marketing-exec-leads/results/ind-05.json
- data/marketing-exec-leads/results/ind-06.json
- data/marketing-exec-leads/results/ind-07.json
- data/marketing-exec-leads/results/ind-08.json
- data/marketing-exec-leads/results/independents-round1.json
- data/marketing-exec-leads/seed-firms.csv
- data/metro-listings-config.json
- data/ncua-credit-unions.json
- data/ranked.json
- data/ranked.json.bak
- data/ranked.json.pre-provenance.bak
- data/redfin-agents.json
- data/redfin-neighborhoods.json
- data/redfin-regions.json
- data/rent-rolls/.gitignore
- data/rent-rolls/.gitkeep
- data/rent-rolls/SAMPLE-12unit-demo.json
- data/sba-lenders.json
- data/sfr-notes.json
- data/sfr-pools.json
- data/sfr-redfin.json
- data/sfv-pool-land-report.html
- data/sfv-pool-report.html
- data/showcase-listings.json
- data/trinity-listings.json
- data/ula-la-deals.json
- data/valley-pools.json
- data/westmac-listings.json
- deploy/README.md
- deploy/com.steve.crcp-drift-canary.plist
- deploy/com.steve.cre-afternoon-report.plist
- deploy/com.steve.cre-broker-dre-daily.plist
- deploy/com.steve.cre-morning-report.plist
- deploy/com.steve.cre-viewer.plist
- deploy/com.steve.cre-weekly-refresh.plist
- deploy/launchd/com.steve.crcp-residential-refresh.plist
- deploy/launchd/com.steve.crcp-residential-report.plist
- deploy/push-data-kamatera.sh
- deploy/push-frontend-kamatera.sh
- deploy/push-full-kamatera.sh
- docs/B2B-DATA-MAP.md
- docs/CRCP-UI-STANDARD.md
- docs/DATA-LICENSING.md
- docs/DATA_POLICY.md
- docs/POPUP-COLLISION-FIX-for-crcp-ui.md
- docs/PUBLIC_SOURCE_REGISTER.md
- docs/SOURCING.md
- docs/TOOL-SPEC.md
- docs/cpra-deed-request.md
- docs/crexi-loopnet-scraper-spec.md
- docs/data-integration-plan.md
- docs/la-recent-sales-sourcing-memo.md
- docs/loopnet-and-rent-rolls.md
- docs/recities-city-scoping-spec.md
- migrations/021-broker-direct-listing.sql
- onboard_portola.sh
- package-lock.json
- package.json
- public/admin.html
- public/agent-notes.js
- public/agent.html
- public/broker-grid.html
- public/broker.html
- public/brokers.html
- public/cities-inline.html
- public/col-resize.js
- public/column-manager.js
- public/condos.html
- public/contractors.html
- public/corner-nav.js
- public/crcp-cities.js
- public/crcp-grid.css
- public/crcp-grid.js
- public/crcp-scope.js
- public/crcp-theme.css
- public/crcp-theme.js
- public/crcp.html
- public/credit-unions.html
- public/data/fha-loans.json
- public/deal-score.js
- public/deals-flow.html
- public/deals.html
- public/direct-listings.html
- public/drill.js
- public/fha-leads.html
- public/fha-loans.html
- public/filter-modal.js
- public/finance.js
- public/firecities.html
- public/firms.html
- public/global-search.js
- public/gov-agents.html
- public/graphics.html
- public/index.html
- public/infinite-scroll.js
- public/just-listed.html
- public/lenders.html
- public/lending-grid.css
- public/lending-grid.js
- public/lending.html
- public/licensed-agents.html
- public/licensed.html
- public/linkedin.html
- public/loan-officers.html
- public/login.html
- public/map.html
- public/mls.html
- public/mortgage-market.html
- public/nav-agent/nav-agent.css
- public/nav-agent/nav-agent.js
- public/parcel.html
- public/property.html
- public/recities.html
- public/rent-rolls.html
- public/residential-brokers.html
- public/row-notes.js
- public/sales.html
- public/sba-lenders.html
- public/sfv-pool.html
- public/sort-bar.js
- public/three-view.css
- public/three-view.js
- public/user-badge.js
- public/valley-pools.html
- public/vendor/leaflet/leaflet.css
- public/vendor/leaflet/leaflet.js
- screenrecord/debug-log.jsonl
- screenrecord/rec/run0/01-before-popwin.png
- screenrecord/rec/run0/02-after-popwin.png
- screenrecord/rec/run0/03-drag-right.png
- screenrecord/rec/run0/04-drag-past-edge.png
- screenrecord/rec/run0/05-after-resize.png
- screenrecord/rec/run0/page@5cb4ca3aec122c5d585d1eecfe70a2f9.webm
- screenrecord/rec/run1/page@8fac12a379e44f95ae1ff7c17a78f387.webm
- scripts/__pycache__/fetch-dre-mlo.cpython-314.pyc
- scripts/afternoon-report.js
- scripts/analyze.js
- scripts/apply-crcp-theme.js
- scripts/assumable-heuristic.js
- scripts/backfill-broker-contacts.js
- scripts/backfill-broker-listings.js
- scripts/backfill-broker-of-record.js
- scripts/backfill-crexi-brokers.js
- scripts/backfill-crexi-firms.js
- scripts/backfill-openclaw-llm.js
- scripts/backfill-showcase-brokers.js
- scripts/broker-email-commit-from-logs.js
- scripts/broker-email-finder.js
- scripts/broker-enrich-poc.js
- scripts/broker-of-record-recorder.js
- scripts/build-deed-history.js
- scripts/build-map-points.js
- scripts/capture-firm-body.js
- scripts/capture-schema.js
- scripts/classify-broker-agent-type.sql
- scripts/classify-warrantability.js
- scripts/com.steve.crcp-assessor-refresh.plist
- scripts/com.steve.crcp-broker-snapshot.plist
- scripts/com.steve.crcp-deal-alerts.plist
- scripts/com.steve.crcp-email-alerts.plist
- scripts/com.steve.crcp-listings-rotating.plist
- scripts/com.steve.crexi-accrual.plist
- scripts/condos-report.js
- scripts/confirm-broker-ca-dre-pass2.js
- scripts/confirm-broker-ca-dre-pass3.js
- scripts/confirm-broker-ca-dre.js
- scripts/crawl-broker-comps.js
- scripts/crawl-broker-listings.js
- scripts/crcp-accounts.js
- scripts/crcp-billing.js
- scripts/crcp-drift-canary.js
- scripts/crcp-export.js
- scripts/crcp-leads.js
- scripts/crcp-notes.js
- scripts/crexi-accrual-cron.sh
- scripts/cta-crcp-health.sh
- scripts/db/agent-residential-schema.sql
- scripts/db/assessor-schema.sql
- scripts/db/assumable-schema.sql
- scripts/db/broker-enrich-schema.sql
- scripts/db/broker-of-record-history.sql
- scripts/db/broker-schema.sql
- scripts/db/brokers-db.js
- scripts/db/condo-schema.sql
- scripts/db/listing-signals-migration.sql
- scripts/db/load-fha-condos.js
- scripts/db/migrations/20260731_broker_firm_dedup.sql
- scripts/db/migrations/20260731_broker_firm_history.sql
- scripts/db/off-market-migration.sql
- scripts/db/pitch-schema.sql
- scripts/db/price-drop-migration.sql
- scripts/db/sfr-schema.sql
- scripts/db/transaction-parties-schema.sql
- scripts/deal-alerts.js
- scripts/deed-source-cpra.js
- scripts/derive-sale-prices.py
- scripts/discover-agent-sites.js
- scripts/discover-broker-endpoint.js
- scripts/discover-firm.js
- scripts/discover.js
- scripts/discover2.js
- scripts/email-alerts.js
- scripts/enrich-condo-brokers.js
- scripts/enrich-condo-emails.js
- scripts/enrich-missing-brokers.js
- scripts/enrich-property.js
- scripts/enrich-provenance.js
- scripts/enrich-sfr-pools.js
- scripts/enrich-tier1-crexi.js
- scripts/enrich-tier2-firmsites.js
- scripts/enrich-tier3-search.js
- scripts/export-assessor-sqlite.js
- scripts/export-brokers-snapshot.js
- scripts/export-deals-flow.py
- scripts/export-gov-snapshot.js
- scripts/export-license-directory.js
- scripts/export-residential-snapshots.js
- scripts/export-sfr-snapshot.js
- scripts/export-to-gsheet.js
- scripts/export-to-xlsx.js
- scripts/fetch-assessor-keyset.js
- scripts/fetch-assessor.js
- scripts/fetch-brokers.js
- scripts/fetch-closed-sales.js
- scripts/fetch-condos-redfin.js
- scripts/fetch-condos-sample.js
- scripts/fetch-demographics.js
- scripts/fetch-dre-licenses.js
- scripts/fetch-dre-mlo.py
- scripts/fetch-edgar-reit-deals.js
- scripts/fetch-fdic-lenders.js
- scripts/fetch-fha-condos.js
- scripts/fetch-fha-loans.js
- scripts/fetch-hmda-market.js
- scripts/fetch-ncua-credit-unions.js
- scripts/fetch-redfin-agents.js
- scripts/fetch-sba-lenders.js
- scripts/fetch-sfr-agents.js
- scripts/fetch-sfr-redfin.js
- scripts/fetch-ula-deals.js
- scripts/fetch-valley-pools.js
- scripts/fix-workspace-trust.js
- scripts/geocode-census.js
- scripts/geocode-ranked.js
- scripts/harvest-fd-lee-bb.js
- scripts/harvest-fd-lee.js
- scripts/harvest-fd-lyonstahl-links.js
- scripts/harvest-fd-lyonstahl.js
- scripts/harvest-fd-matthews-bb.js
- scripts/harvest-fd-mm-bb.js
- scripts/ingest-assessor.js
- scripts/ingest-gov-ca-cities.js
- scripts/ingest-gov-ca.js
- scripts/ingest-gov-co.js
- scripts/ingest-gov-ct.js
- scripts/ingest-gov-fl-cities.js
- scripts/ingest-gov-fl.js
- scripts/ingest-gov-nv.md
- scripts/ingest-gov-ny.js
- scripts/ingest-gov-tx.js
- scripts/install-alerts-launchd.sh