Commercialrealestate

repo: ~/Projects/commercialrealestate · 1856 commits · 18 in last 24h, 114 in last 7d · ▅▆▅█▅▆▆

Search the build

1856 commits indexed

  1. c645c3e 2026-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
  2. 930c861 2026-09-26 afternoon CRE update 2026-09-26
  3. ad5b266 2026-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
  4. 2eb7bd0 2026-09-26 auto-data-snapshot: 2026-09-26T12:14:18 (1 data files) — data/condos-redfin.json
  5. 1aad8c7 2026-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
  6. 6abfd33 2026-09-26 TK-11856 rc-propagation (EMAIL): CRE residential/morning/afternoon/condos reports propagate build/send rc
  7. 0d1c4f8 2026-09-26 TK-11856 rc-propagation (RSYNC): crcp-loan-officers exits nonzero on failed prod backup/rsync
  8. 6e70efd 2026-09-26 auto-data-snapshot: 2026-09-26T07:18:02 (1 data files) — data/alerts-state.json
  9. 4781432 2026-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
  10. b7adbaa 2026-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
  11. 6d28749 2026-09-26 loan-officers: daily DRE refresh (5253 officers)
  12. dd47496 2026-09-26 auto-data-snapshot: 2026-09-26T05:45:52 (1 data files) — data/listings.json
  13. 66bda91 2026-09-26 auto-data-snapshot: 2026-09-26T04:44:27 (2 data files) — data/brokers-snapshot.json data/ranked.json
  14. 121867d 2026-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
  15. 37117fc 2026-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
  16. 43cb96c 2026-09-26 auto-data-snapshot: 2026-09-26T00:10:15 (1 data files) — data/condos-redfin.json
  17. 247e4b1 2026-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
  18. 86346f8 2026-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
  19. ff661ed 2026-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
  20. ec94fb2 2026-09-25 afternoon CRE update 2026-09-25
  21. 31ee171 2026-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
  22. 712f844 2026-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
  23. f99756c 2026-09-25 auto-data-snapshot: 2026-09-25T11:35:27 (2 data files) — data/crcp-data-freshness-state.json data/latest.json
  24. 7f28016 2026-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
  25. 4aa7264 2026-09-25 auto-data-snapshot: 2026-09-25T07:12:13 (1 data files) — data/alerts-state.json
  26. 3877625 2026-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
  27. 18423fb 2026-09-25 loan-officers: daily DRE refresh (5202 officers)
  28. 15a19cb 2026-09-25 auto-data-snapshot: 2026-09-25T06:10:16 (2 data files) — data/condos-redfin.json data/ranked.json
  29. a60c5ed 2026-09-25 auto-data-snapshot: 2026-09-25T05:39:47 (1 data files) — data/listings.json
  30. 7e989ec 2026-09-25 auto-data-snapshot: 2026-09-25T04:38:13 (2 data files) — data/brokers-snapshot.json data/ranked.json
  31. 1a9c32d 2026-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
  32. ab3367e 2026-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
  33. 6b75f28 2026-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
  34. e2c37c9 2026-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
  35. 7e3f000 2026-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
  36. dd68a8c 2026-09-24 afternoon CRE update 2026-09-24
  37. d536980 2026-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
  38. 8511811 2026-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
  39. 0e8c66b 2026-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
  40. b749727 2026-09-24 auto-data-snapshot: 2026-09-24T07:06:26 (1 data files) — data/alerts-state.json
  41. 5cc179f 2026-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
  42. 050716f 2026-09-24 loan-officers: daily DRE refresh (5171 officers)
  43. 309989e 2026-09-24 auto-data-snapshot: 2026-09-24T06:02:25 (2 data files) — data/listings.json data/ranked.json
  44. 7652854 2026-09-24 auto-data-snapshot: 2026-09-24T05:30:55 (1 data files) — data/listings.json
  45. 9662419 2026-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
  46. 99ee462 2026-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
  47. 1d1d09a 2026-09-24 auto-data-snapshot: 2026-09-24T00:15:56 (1 data files) — data/condos-redfin.json
  48. 7bc47d5 2026-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
  49. fd771c1 2026-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
  50. 36d4d0c 2026-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
  51. 0cc031f 2026-09-23 afternoon CRE update 2026-09-23
  52. 5ddda1e 2026-09-23 chore: lint, refactor (shared normalizeCrexiId), v0.26.1 (session close TK-12033)
  53. 0aa4c7e 2026-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
  54. 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)
  55. 46f7721 2026-09-23 CRCP crexi DB scraper: count brokers actually INSERTED on --apply (summary said 0 while 4 landed) (TK-12033)
  56. e778fe0 2026-09-23 CRCP crexi DB scraper: also strip a leading 'NNN SqFt' marketing prefix from detail addresses (TK-12033)
  57. de85550 2026-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
  58. 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)
  59. 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)
  60. 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)
  61. 94a236d 2026-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
  62. 3735dc5 2026-09-23 auto-data-snapshot: 2026-09-23T08:59:35 (1 data files) — data/ranked.json
  63. 4dfd4cc 2026-09-23 auto-data-snapshot: 2026-09-23T07:25:20 (1 data files) — data/alerts-state.json
  64. 41358bf 2026-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
  65. 91d9577 2026-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
  66. 8b33af5 2026-09-23 loan-officers: daily DRE refresh (5094 officers)
  67. 848edc3 2026-09-23 auto-data-snapshot: 2026-09-23T05:50:13 (1 data files) — data/listings.json
  68. 65ef8e1 2026-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
  69. 8eb74f6 2026-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
  70. 92fe339 2026-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
  71. 0ccc19a 2026-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
  72. 6e62cee 2026-09-22 auto-data-snapshot: 2026-09-22T17:15:32 (1 data files) — data/ranked.json
  73. a9a5a98 2026-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
  74. 766c232 2026-09-22 TK-12033: add data-freshness half to crcp-drift-canary + a gated one-command data sync script
  75. 85a7cad 2026-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
  76. 52b68ab 2026-09-22 auto-data-snapshot: 2026-09-22T15:36:13 (3 data files) — data/last-refresh.json data/listings.json data/ranked.json
  77. b2acc84 2026-09-22 Fix Crexi extractor for universal-search/v2 API (json.items + new schema + CA-state gate); unblocks stale feed
  78. 9a4acb8 2026-09-22 afternoon CRE update 2026-09-22
  79. 6a15d6a 2026-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
  80. e4ae159 2026-09-22 auto-data-snapshot: 2026-09-22T10:04:06 (2 data files) — data/crcp-drift-state.json data/latest.json
  81. 1e6d8dc 2026-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
  82. b72c356 2026-09-22 auto-data-snapshot: 2026-09-22T06:51:20 (2 data files) — data/crcp-drift-state.json data/latest.json
  83. 64c4a93 2026-09-22 auto-data-snapshot: 2026-09-22T06:44:53 (2 data files) — data/crcp-drift-state.json data/latest.json
  84. 5fb0fae 2026-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
  85. cb93b1c 2026-09-21 auto-data-snapshot: 2026-09-21T16:51:55 (2 data files) — data/crcp-drift-state.json data/latest.json
  86. 45fb4a7 2026-09-21 auto-data-snapshot: 2026-09-21T16:01:25 (2 data files) — data/crcp-drift-state.json data/latest.json
  87. 9992d73 2026-09-21 auto-data-snapshot: 2026-09-21T15:19:42 (2 data files) — data/crcp-drift-state.json data/latest.json
  88. fa226ab 2026-09-21 afternoon CRE update 2026-09-21
  89. d9ec8c4 2026-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
  90. 99b8f05 2026-09-21 auto-data-snapshot: 2026-09-21T09:21:33 (2 data files) — data/crcp-drift-state.json data/latest.json
  91. c2df95c 2026-09-21 weekly Crexi refresh 2026-09-21
  92. 1c2a1aa 2026-09-21 auto-data-snapshot: 2026-09-21T07:12:32 (1 data files) — data/alerts-state.json
  93. 2f7d411 2026-09-21 weekly unwarrantable-condos report 2026-09-21
  94. e752abb 2026-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
  95. a5181fc 2026-09-21 auto-data-snapshot: 2026-09-21T06:06:14 (1 data files) — data/ranked.json
  96. 1cf9a21 2026-09-21 auto-data-snapshot: 2026-09-21T05:33:35 (1 data files) — data/listings.json
  97. c1612f3 2026-09-21 auto-data-snapshot: 2026-09-21T04:28:28 (2 data files) — data/brokers-snapshot.json data/ranked.json
  98. 4bc9473 2026-09-21 auto-data-snapshot: 2026-09-21T03:22:12 (2 data files) — data/crcp-drift-state.json data/latest.json
  99. f5e0252 2026-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
  100. 94b888d 2026-09-20 auto-data-snapshot: 2026-09-20T21:47:38 (2 data files) — data/crcp-drift-state.json data/latest.json
  101. ac92101 2026-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
  102. e9eed58 2026-09-20 auto-data-snapshot: 2026-09-20T15:36:19 (2 data files) — data/crcp-drift-state.json data/latest.json
  103. 20ef79e 2026-09-20 afternoon CRE update 2026-09-20
  104. 1eb740f 2026-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
  105. 6af4820 2026-09-20 auto-data-snapshot: 2026-09-20T09:27:07 (2 data files) — data/crcp-drift-state.json data/latest.json
  106. 3f7f736 2026-09-20 auto-data-snapshot: 2026-09-20T07:15:24 (1 data files) — data/alerts-state.json
  107. db16be3 2026-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
  108. 2541842 2026-09-20 auto-data-snapshot: 2026-09-20T06:08:12 (2 data files) — data/condos-redfin.json data/ranked.json
  109. 37ede35 2026-09-20 auto-data-snapshot: 2026-09-20T05:34:32 (1 data files) — data/listings.json
  110. 284eb3a 2026-09-20 auto-data-snapshot: 2026-09-20T04:26:57 (2 data files) — data/brokers-snapshot.json data/ranked.json
  111. 3fed5f7 2026-09-20 auto-data-snapshot: 2026-09-20T03:19:32 (2 data files) — data/crcp-drift-state.json data/latest.json
  112. 1780af2 2026-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
  113. 210331c 2026-09-19 auto-data-snapshot: 2026-09-19T21:44:50 (2 data files) — data/crcp-drift-state.json data/latest.json
  114. 144a194 2026-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
  115. 3795c74 2026-09-19 auto-data-snapshot: 2026-09-19T15:48:40 (2 data files) — data/crcp-drift-state.json data/latest.json
  116. 6b8663c 2026-09-19 afternoon CRE update 2026-09-19
  117. e97697a 2026-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
  118. c1f8462 2026-09-19 auto-data-snapshot: 2026-09-19T09:27:32 (2 data files) — data/crcp-drift-state.json data/latest.json
  119. b7493fe 2026-09-19 auto-data-snapshot: 2026-09-19T07:20:19 (1 data files) — data/alerts-state.json
  120. 7751448 2026-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
  121. 2b84f58 2026-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
  122. 9b2be2a 2026-09-19 loan-officers: daily DRE refresh (5042 officers)
  123. 2b3766d 2026-09-19 auto-data-snapshot: 2026-09-19T05:44:32 (1 data files) — data/listings.json
  124. f3ec22c 2026-09-19 auto-data-snapshot: 2026-09-19T04:40:20 (2 data files) — data/brokers-snapshot.json data/ranked.json
  125. e158d54 2026-09-19 auto-data-snapshot: 2026-09-19T03:36:55 (2 data files) — data/crcp-drift-state.json data/latest.json
  126. 46b43b7 2026-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
  127. d156f30 2026-09-18 auto-data-snapshot: 2026-09-18T21:47:54 (2 data files) — data/crcp-drift-state.json data/latest.json
  128. d0b8cab 2026-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
  129. e021548 2026-09-18 auto-data-snapshot: 2026-09-18T15:26:25 (2 data files) — data/crcp-drift-state.json data/latest.json
  130. be0c49d 2026-09-18 fix(sfr): upsert arbiter must be source (URL), not id — kills ~4,900 sfr_source_key dupe-key errors
  131. aa6fd57 2026-09-18 afternoon CRE update 2026-09-18
  132. a7ed04a 2026-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
  133. da2b558 2026-09-18 auto-data-snapshot: 2026-09-18T09:26:51 (2 data files) — data/crcp-drift-state.json data/latest.json
  134. fcbda79 2026-09-18 auto-data-snapshot: 2026-09-18T07:17:32 (1 data files) — data/alerts-state.json
  135. bece6ac 2026-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
  136. 9dd09fc 2026-09-18 loan-officers: daily DRE refresh (5006 officers)
  137. 4e546ef 2026-09-18 auto-data-snapshot: 2026-09-18T05:41:24 (1 data files) — data/listings.json
  138. ee3952d 2026-09-18 auto-data-snapshot: 2026-09-18T04:37:40 (2 data files) — data/brokers-snapshot.json data/ranked.json
  139. 61f4e5b 2026-09-18 auto-data-snapshot: 2026-09-18T03:33:53 (2 data files) — data/crcp-drift-state.json data/latest.json
  140. de9a42b 2026-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
  141. a59913d 2026-09-17 auto-data-snapshot: 2026-09-17T21:42:36 (2 data files) — data/crcp-drift-state.json data/latest.json
  142. 61fa2e8 2026-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
  143. 0a1ed4c 2026-09-17 auto-data-snapshot: 2026-09-17T15:48:34 (2 data files) — data/crcp-drift-state.json data/latest.json
  144. 5239b97 2026-09-17 afternoon CRE update 2026-09-17
  145. eed0b75 2026-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
  146. a6d6417 2026-09-17 auto-data-snapshot: 2026-09-17T09:20:48 (2 data files) — data/crcp-drift-state.json data/latest.json
  147. fcb5592 2026-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
  148. 70de3d6 2026-09-17 auto-data-snapshot: 2026-09-17T07:12:37 (1 data files) — data/alerts-state.json
  149. cf9902f 2026-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
  150. 2df82ba 2026-09-17 auto-data-snapshot: 2026-09-17T06:08:13 (2 data files) — data/condos-redfin.json data/ranked.json
  151. 5886f79 2026-09-17 auto-data-snapshot: 2026-09-17T05:36:32 (1 data files) — data/listings.json
  152. 1d5eebb 2026-09-17 auto-data-snapshot: 2026-09-17T04:30:36 (2 data files) — data/brokers-snapshot.json data/ranked.json
  153. 476b4fc 2026-09-17 auto-data-snapshot: 2026-09-17T03:26:49 (2 data files) — data/crcp-drift-state.json data/latest.json
  154. c9c469a 2026-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
  155. 15a0708 2026-09-16 auto-data-snapshot: 2026-09-16T21:37:03 (2 data files) — data/crcp-drift-state.json data/latest.json
  156. 69ff393 2026-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
  157. f5c57c2 2026-09-16 auto-data-snapshot: 2026-09-16T15:43:40 (2 data files) — data/crcp-drift-state.json data/latest.json
  158. 30f2e0b 2026-09-16 afternoon CRE update 2026-09-16
  159. cc9538b 2026-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
  160. 025c902 2026-09-16 auto-data-snapshot: 2026-09-16T09:33:20 (2 data files) — data/crcp-drift-state.json data/latest.json
  161. 60208c2 2026-09-16 auto-data-snapshot: 2026-09-16T07:20:09 (1 data files) — data/alerts-state.json
  162. a298378 2026-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
  163. 896cbd9 2026-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
  164. 8326c4a 2026-09-16 loan-officers: daily DRE refresh (4955 officers)
  165. d28e0db 2026-09-16 auto-data-snapshot: 2026-09-16T05:44:01 (1 data files) — data/listings.json
  166. 9da5d01 2026-09-16 auto-data-snapshot: 2026-09-16T04:39:34 (2 data files) — data/brokers-snapshot.json data/ranked.json
  167. 50e1256 2026-09-16 auto-data-snapshot: 2026-09-16T03:35:57 (2 data files) — data/crcp-drift-state.json data/latest.json
  168. 2456126 2026-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
  169. 7143809 2026-09-15 auto-data-snapshot: 2026-09-15T21:46:01 (2 data files) — data/crcp-drift-state.json data/latest.json
  170. 8fad641 2026-09-15 security: remove served source-leak backups (.css/.js .pre-3view.bak) — yoloforever cycle 4
  171. f030819 2026-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
  172. 26b26e3 2026-09-15 auto-data-snapshot: 2026-09-15T15:48:53 (2 data files) — data/crcp-drift-state.json data/latest.json
  173. 729106a 2026-09-15 chore: commit code deployed in 2026-09-15 fleet push
  174. 9fe372b 2026-09-15 afternoon CRE update 2026-09-15
  175. 081f960 2026-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
  176. c7c81f2 2026-09-15 auto-data-snapshot: 2026-09-15T09:48:56 (2 data files) — data/crcp-drift-state.json data/latest.json
  177. fbbf852 2026-09-15 auto-data-snapshot: 2026-09-15T07:09:15 (1 data files) — data/alerts-state.json
  178. fd6621d 2026-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
  179. aa02927 2026-09-15 loan-officers: daily DRE refresh (4928 officers)
  180. 21db0c2 2026-09-15 auto-data-snapshot: 2026-09-15T06:04:48 (1 data files) — data/ranked.json
  181. 98b99ff 2026-09-15 auto-data-snapshot: 2026-09-15T05:32:03 (1 data files) — data/listings.json
  182. 9e87755 2026-09-15 auto-data-snapshot: 2026-09-15T04:27:49 (2 data files) — data/brokers-snapshot.json data/ranked.json
  183. 99cec03 2026-09-15 auto-data-snapshot: 2026-09-15T03:24:10 (2 data files) — data/crcp-drift-state.json data/latest.json
  184. 819ebee 2026-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
  185. fc79438 2026-09-15 auto-data-snapshot: 2026-09-15T00:13:09 (1 data files) — data/condos-redfin.json
  186. 9feb7e8 2026-09-14 auto-data-snapshot: 2026-09-14T21:33:50 (2 data files) — data/crcp-drift-state.json data/latest.json
  187. d53e2e7 2026-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
  188. 8719ba5 2026-09-14 auto-data-snapshot: 2026-09-14T15:41:36 (2 data files) — data/crcp-drift-state.json data/latest.json
  189. ba72691 2026-09-14 afternoon CRE update 2026-09-14
  190. 2c126ba 2026-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
  191. 83e22d5 2026-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
  192. 96b11f3 2026-09-14 weekly Crexi refresh 2026-09-14
  193. c8a0e19 2026-09-14 auto-data-snapshot: 2026-09-14T07:18:26 (1 data files) — data/alerts-state.json
  194. a29de9a 2026-09-14 weekly unwarrantable-condos report 2026-09-14
  195. 9ad4cc4 2026-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
  196. 39876fe 2026-09-14 auto-data-snapshot: 2026-09-14T06:13:15 (2 data files) — data/condos-redfin.json data/ranked.json
  197. 0bb9d8f 2026-09-14 auto-data-snapshot: 2026-09-14T05:41:34 (1 data files) — data/listings.json
  198. 53d616d 2026-09-14 auto-data-snapshot: 2026-09-14T05:09:49 (2 data files) — data/crcp-drift-state.json data/latest.json
  199. 47c83b2 2026-09-14 auto-data-snapshot: 2026-09-14T04:37:30 (2 data files) — data/brokers-snapshot.json data/ranked.json
  200. 7aa3f47 2026-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
  201. 50e2b41 2026-09-13 auto-data-snapshot: 2026-09-13T22:45:28 (2 data files) — data/crcp-drift-state.json data/latest.json
  202. 9a263a5 2026-09-13 auto-data-snapshot: 2026-09-13T22:30:29 (2 data files) — data/crcp-drift-state.json data/latest.json
  203. 0848ada 2026-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
  204. af32068 2026-09-13 auto-data-snapshot: 2026-09-13T18:14:20 (1 data files) — data/condos-redfin.json
  205. 287af71 2026-09-13 auto-data-snapshot: 2026-09-13T16:30:12 (2 data files) — data/crcp-drift-state.json data/latest.json
  206. 09148f8 2026-09-13 afternoon CRE update 2026-09-13
  207. 0c519c9 2026-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
  208. 2b55fb1 2026-09-13 auto-data-snapshot: 2026-09-13T12:11:10 (1 data files) — data/condos-redfin.json
  209. addce3a 2026-09-13 auto-data-snapshot: 2026-09-13T10:00:49 (2 data files) — data/crcp-drift-state.json data/latest.json
  210. 7b693ec 2026-09-13 auto-data-snapshot: 2026-09-13T09:49:22 (2 data files) — data/crcp-drift-state.json data/latest.json
  211. db83346 2026-09-13 auto-data-snapshot: 2026-09-13T07:02:23 (2 data files) — data/.crexi-broker-done.json data/alerts-state.json
  212. 2f2e6ee 2026-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
  213. 2d7fc6e 2026-09-13 auto-data-snapshot: 2026-09-13T05:55:37 (1 data files) — data/listings.json
  214. 277b9c2 2026-09-13 auto-data-snapshot: 2026-09-13T04:15:01 (2 data files) — data/brokers-snapshot.json data/ranked.json
  215. e46a6e6 2026-09-13 auto-data-snapshot: 2026-09-13T03:42:21 (2 data files) — data/crcp-drift-state.json data/latest.json
  216. 0bae552 2026-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
  217. 232148e 2026-09-12 auto-data-snapshot: 2026-09-12T21:34:07 (2 data files) — data/crcp-drift-state.json data/latest.json
  218. e1c25ee 2026-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
  219. 197f006 2026-09-12 auto-data-snapshot: 2026-09-12T15:35:41 (2 data files) — data/crcp-drift-state.json data/latest.json
  220. 7773c4f 2026-09-12 afternoon CRE update 2026-09-12
  221. 7e19d76 2026-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
  222. 65c2ffd 2026-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
  223. 8dcd39e 2026-09-12 auto-data-snapshot: 2026-09-12T09:28:54 (2 data files) — data/crcp-drift-state.json data/latest.json
  224. ba42777 2026-09-12 auto-data-snapshot: 2026-09-12T07:18:58 (1 data files) — data/alerts-state.json
  225. 306c8ef 2026-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
  226. 44152fe 2026-09-12 loan-officers: daily DRE refresh (4842 officers)
  227. cd9fe08 2026-09-12 auto-data-snapshot: 2026-09-12T05:38:11 (1 data files) — data/listings.json
  228. 68326d5 2026-09-12 auto-data-snapshot: 2026-09-12T04:26:59 (2 data files) — data/brokers-snapshot.json data/ranked.json
  229. d2803d8 2026-09-12 auto-data-snapshot: 2026-09-12T03:53:49 (2 data files) — data/crcp-drift-state.json data/latest.json
  230. 7669ef7 2026-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
  231. 1a8e859 2026-09-11 auto-data-snapshot: 2026-09-11T21:52:42 (2 data files) — data/crcp-drift-state.json data/latest.json
  232. f8d2b6f 2026-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
  233. 0bbdc3f 2026-09-11 auto-data-snapshot: 2026-09-11T15:49:18 (2 data files) — data/crcp-drift-state.json data/latest.json
  234. 59d3d67 2026-09-11 afternoon CRE update 2026-09-11
  235. 2c8626d 2026-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
  236. 0656f3d 2026-09-11 auto-data-snapshot: 2026-09-11T12:03:30 (1 data files) — data/condos-redfin.json
  237. c432b70 2026-09-11 auto-data-snapshot: 2026-09-11T09:31:49 (2 data files) — data/crcp-drift-state.json data/latest.json
  238. cbbb29b 2026-09-11 auto-data-snapshot: 2026-09-11T07:11:09 (1 data files) — data/alerts-state.json
  239. d968995 2026-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
  240. 182ac77 2026-09-11 loan-officers: daily DRE refresh (4789 officers)
  241. c41a878 2026-09-11 auto-data-snapshot: 2026-09-11T06:04:43 (1 data files) — data/ranked.json
  242. d798546 2026-09-11 auto-data-snapshot: 2026-09-11T05:32:16 (1 data files) — data/listings.json
  243. dd515c4 2026-09-11 auto-data-snapshot: 2026-09-11T04:24:06 (2 data files) — data/brokers-snapshot.json data/ranked.json
  244. 73fef30 2026-09-11 auto-data-snapshot: 2026-09-11T03:51:39 (2 data files) — data/crcp-drift-state.json data/latest.json
  245. 871bd27 2026-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
  246. bd7a6dc 2026-09-10 auto-data-snapshot: 2026-09-10T21:50:55 (2 data files) — data/crcp-drift-state.json data/latest.json
  247. 88ed443 2026-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
  248. 9966f82 2026-09-10 auto-data-snapshot: 2026-09-10T15:54:39 (2 data files) — data/crcp-drift-state.json data/latest.json
  249. eb04e8b 2026-09-10 afternoon CRE update 2026-09-10
  250. bc4b39f 2026-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
  251. 6a5ee8e 2026-09-10 auto-data-snapshot: 2026-09-10T09:22:46 (2 data files) — data/crcp-drift-state.json data/latest.json
  252. 862ae25 2026-09-10 auto-data-snapshot: 2026-09-10T07:00:36 (2 data files) — data/alerts-state.json data/showcase-listings.json
  253. 0bfd15e 2026-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
  254. 83b574d 2026-09-10 loan-officers: daily DRE refresh (4647 officers)
  255. 3f82a6e 2026-09-10 auto-data-snapshot: 2026-09-10T05:55:20 (1 data files) — data/listings.json
  256. e6dcc4d 2026-09-10 auto-data-snapshot: 2026-09-10T04:15:51 (2 data files) — data/brokers-snapshot.json data/ranked.json
  257. f5b1e49 2026-09-10 auto-data-snapshot: 2026-09-10T03:43:17 (2 data files) — data/crcp-drift-state.json data/latest.json
  258. f56fb2c 2026-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
  259. 2a5eea1 2026-09-09 auto-data-snapshot: 2026-09-09T21:46:00 (2 data files) — data/crcp-drift-state.json data/latest.json
  260. b316da2 2026-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
  261. e0213b7 2026-09-09 auto-data-snapshot: 2026-09-09T15:36:04 (2 data files) — data/crcp-drift-state.json data/latest.json
  262. f73cf28 2026-09-09 afternoon CRE update 2026-09-09
  263. 673d3da 2026-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
  264. c1a06c1 2026-09-09 auto-data-snapshot: 2026-09-09T12:16:55 (1 data files) — data/condos-redfin.json
  265. e9df7d6 2026-09-09 auto-data-snapshot: 2026-09-09T09:32:15 (2 data files) — data/crcp-drift-state.json data/latest.json
  266. 411c2db 2026-09-09 auto-data-snapshot: 2026-09-09T07:22:07 (1 data files) — data/alerts-state.json
  267. 58769a3 2026-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
  268. c1f0450 2026-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
  269. e5d83d6 2026-09-09 loan-officers: daily DRE refresh (4609 officers)
  270. 9ff0810 2026-09-09 auto-data-snapshot: 2026-09-09T05:45:52 (1 data files) — data/listings.json
  271. 54f0a41 2026-09-09 auto-data-snapshot: 2026-09-09T04:40:57 (2 data files) — data/brokers-snapshot.json data/ranked.json
  272. 7c1532b 2026-09-09 auto-data-snapshot: 2026-09-09T03:37:19 (2 data files) — data/crcp-drift-state.json data/latest.json
  273. c7accb8 2026-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
  274. 009a523 2026-09-08 auto-data-snapshot: 2026-09-08T21:46:57 (2 data files) — data/crcp-drift-state.json data/latest.json
  275. 5d148a4 2026-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
  276. d5c0966 2026-09-08 auto-data-snapshot: 2026-09-08T15:35:04 (2 data files) — data/crcp-drift-state.json data/latest.json
  277. 3070431 2026-09-08 afternoon CRE update 2026-09-08
  278. 61dc5ef 2026-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
  279. ad555b7 2026-09-08 auto-data-snapshot: 2026-09-08T09:40:47 (2 data files) — data/crcp-drift-state.json data/latest.json
  280. 2242aeb 2026-09-08 auto-data-snapshot: 2026-09-08T07:07:04 (1 data files) — data/alerts-state.json
  281. 911a1f9 2026-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
  282. a0e08e8 2026-09-08 auto-data-snapshot: 2026-09-08T05:50:05 (1 data files) — data/listings.json
  283. bb2c102 2026-09-08 auto-data-snapshot: 2026-09-08T04:33:12 (2 data files) — data/brokers-snapshot.json data/ranked.json
  284. b328e3d 2026-09-08 auto-data-snapshot: 2026-09-08T03:55:22 (2 data files) — data/crcp-drift-state.json data/latest.json
  285. f093194 2026-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
  286. e435f61 2026-09-08 auto-data-snapshot: 2026-09-08T00:07:00 (1 data files) — data/condos-redfin.json
  287. 6e47252 2026-09-07 auto-data-snapshot: 2026-09-07T21:35:10 (2 data files) — data/crcp-drift-state.json data/latest.json
  288. 96f9e70 2026-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
  289. a033cc8 2026-09-07 auto-data-snapshot: 2026-09-07T15:53:48 (2 data files) — data/crcp-drift-state.json data/latest.json
  290. 80db688 2026-09-07 afternoon CRE update 2026-09-07
  291. 283bd62 2026-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
  292. 4a7f4e5 2026-09-07 auto-data-snapshot: 2026-09-07T09:25:49 (2 data files) — data/crcp-drift-state.json data/latest.json
  293. 8d2c3e9 2026-09-07 weekly Crexi refresh 2026-09-07
  294. 6a33d38 2026-09-07 auto-data-snapshot: 2026-09-07T06:51:38 (1 data files) — data/alerts-state.json
  295. a8945e0 2026-09-07 weekly unwarrantable-condos report 2026-09-07
  296. 559d555 2026-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
  297. 83a1694 2026-09-07 auto-data-snapshot: 2026-09-07T05:33:36 (1 data files) — data/listings.json
  298. 3718dfe 2026-09-07 auto-data-snapshot: 2026-09-07T04:15:57 (2 data files) — data/brokers-snapshot.json data/ranked.json
  299. fd674b9 2026-09-07 auto-data-snapshot: 2026-09-07T03:37:33 (2 data files) — data/crcp-drift-state.json data/latest.json
  300. 26d97ec 2026-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
  301. 71b3ea6 2026-09-06 auto-data-snapshot: 2026-09-06T21:51:55 (2 data files) — data/crcp-drift-state.json data/latest.json
  302. 3c1e4e3 2026-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
  303. 3836e87 2026-09-06 auto-data-snapshot: 2026-09-06T18:01:40 (1 data files) — data/condos-redfin.json
  304. 555051e 2026-09-06 auto-data-snapshot: 2026-09-06T15:27:58 (2 data files) — data/crcp-drift-state.json data/latest.json
  305. b095f20 2026-09-06 afternoon CRE update 2026-09-06
  306. 3ffa964 2026-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
  307. bf21827 2026-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
  308. 32312a8 2026-09-06 auto-data-snapshot: 2026-09-06T09:42:39 (2 data files) — data/crcp-drift-state.json data/latest.json
  309. 5b4565e 2026-09-06 auto-data-snapshot: 2026-09-06T07:09:19 (1 data files) — data/alerts-state.json
  310. b9be90c 2026-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
  311. a9e54f8 2026-09-06 auto-data-snapshot: 2026-09-06T05:51:58 (1 data files) — data/listings.json
  312. 6b6b51e 2026-09-06 auto-data-snapshot: 2026-09-06T04:34:41 (2 data files) — data/brokers-snapshot.json data/ranked.json
  313. 2753d71 2026-09-06 auto-data-snapshot: 2026-09-06T03:18:08 (2 data files) — data/crcp-drift-state.json data/latest.json
  314. e385d85 2026-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
  315. f71e66a 2026-09-06 auto-data-snapshot: 2026-09-06T00:06:24 (1 data files) — data/condos-redfin.json
  316. 4859c9b 2026-09-05 auto-data-snapshot: 2026-09-05T21:33:11 (2 data files) — data/crcp-drift-state.json data/latest.json
  317. 23274d1 2026-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
  318. d52d8ea 2026-09-05 auto-data-snapshot: 2026-09-05T15:48:21 (2 data files) — data/crcp-drift-state.json data/latest.json
  319. 1123708 2026-09-05 afternoon CRE update 2026-09-05
  320. 1ad48de 2026-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
  321. b36e4b7 2026-09-05 auto-data-snapshot: 2026-09-05T09:24:41 (2 data files) — data/crcp-drift-state.json data/latest.json
  322. 8e0e395 2026-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
  323. b8af63d 2026-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
  324. ff09174 2026-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
  325. 0c1738e 2026-09-05 loan-officers: daily DRE refresh (4534 officers)
  326. 885d89a 2026-09-05 auto-data-snapshot: 2026-09-05T05:34:51 (1 data files) — data/listings.json
  327. 8d6e7ee 2026-09-05 auto-data-snapshot: 2026-09-05T04:17:39 (2 data files) — data/brokers-snapshot.json data/ranked.json
  328. 813b4ff 2026-09-05 auto-data-snapshot: 2026-09-05T03:39:28 (2 data files) — data/crcp-drift-state.json data/latest.json
  329. 923c62b 2026-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
  330. 2c634db 2026-09-04 auto-data-snapshot: 2026-09-04T21:53:46 (2 data files) — data/crcp-drift-state.json data/latest.json
  331. 7863333 2026-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
  332. f861edd 2026-09-04 auto-data-snapshot: 2026-09-04T18:04:25 (1 data files) — data/condos-redfin.json
  333. 41c23a1 2026-09-04 auto-data-snapshot: 2026-09-04T15:31:50 (2 data files) — data/crcp-drift-state.json data/latest.json
  334. 6f4a3f5 2026-09-04 afternoon CRE update 2026-09-04
  335. d277d28 2026-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
  336. f3edcdf 2026-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
  337. aff04ef 2026-09-04 auto-data-snapshot: 2026-09-04T09:31:20 (2 data files) — data/crcp-drift-state.json data/latest.json
  338. 62e5d42 2026-09-04 auto-data-snapshot: 2026-09-04T07:10:31 (1 data files) — data/alerts-state.json
  339. f79c5e6 2026-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
  340. c667d6b 2026-09-04 loan-officers: daily DRE refresh (4503 officers)
  341. 50d90f2 2026-09-04 auto-data-snapshot: 2026-09-04T05:53:32 (2 data files) — data/listings.json data/ranked.json
  342. f18db64 2026-09-04 auto-data-snapshot: 2026-09-04T04:33:28 (2 data files) — data/brokers-snapshot.json data/ranked.json
  343. 5aed3b7 2026-09-04 auto-data-snapshot: 2026-09-04T03:52:16 (2 data files) — data/crcp-drift-state.json data/latest.json
  344. 8a03ba9 2026-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
  345. 2f09f83 2026-09-03 auto-data-snapshot: 2026-09-03T21:26:08 (2 data files) — data/crcp-drift-state.json data/latest.json
  346. 87c95f8 2026-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
  347. 1c67fcc 2026-09-03 auto-data-snapshot: 2026-09-03T15:45:08 (2 data files) — data/crcp-drift-state.json data/latest.json
  348. 1f99af7 2026-09-03 afternoon CRE update 2026-09-03
  349. 8ee7b84 2026-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
  350. b59116b 2026-09-03 auto-data-snapshot: 2026-09-03T09:53:05 (2 data files) — data/crcp-drift-state.json data/latest.json
  351. 1d84a99 2026-09-03 auto-data-snapshot: 2026-09-03T07:17:12 (1 data files) — data/alerts-state.json
  352. 51288d5 2026-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
  353. c83fe4d 2026-09-03 auto-data-snapshot: 2026-09-03T06:01:09 (2 data files) — data/listings.json data/ranked.json
  354. bd6c5af 2026-09-03 auto-data-snapshot: 2026-09-03T05:23:20 (1 data files) — data/listings.json
  355. bb9397d 2026-09-03 auto-data-snapshot: 2026-09-03T04:44:57 (2 data files) — data/brokers-snapshot.json data/ranked.json
  356. 8bece07 2026-09-03 auto-data-snapshot: 2026-09-03T03:29:44 (2 data files) — data/crcp-drift-state.json data/latest.json
  357. 4f6539d 2026-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
  358. 405cbf5 2026-09-02 auto-data-snapshot: 2026-09-02T21:48:54 (2 data files) — data/crcp-drift-state.json data/latest.json
  359. 85840e0 2026-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
  360. 9e16e66 2026-09-02 auto-data-snapshot: 2026-09-02T18:02:03 (1 data files) — data/condos-redfin.json
  361. ef712c5 2026-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
  362. 15317c3 2026-09-02 auto-data-snapshot: 2026-09-02T15:21:07 (2 data files) — data/crcp-drift-state.json data/latest.json
  363. 98303ef 2026-09-02 afternoon CRE update 2026-09-02
  364. bb5337f 2026-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
  365. cfe6057 2026-09-02 auto-data-snapshot: 2026-09-02T12:07:47 (1 data files) — data/condos-redfin.json
  366. f24b650 2026-09-02 crcp: add firecities.agentabrams.com short-alias to HUB_PAGES (TK-11104)
  367. dafa213 2026-09-02 auto-data-snapshot: 2026-09-02T09:35:20 (2 data files) — data/crcp-drift-state.json data/latest.json
  368. d62a618 2026-09-02 auto-data-snapshot: 2026-09-02T07:10:19 (1 data files) — data/alerts-state.json
  369. d624a83 2026-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
  370. 449b055 2026-09-02 auto-data-snapshot: 2026-09-02T05:54:41 (2 data files) — data/listings.json data/ranked.json
  371. 01a7125 2026-09-02 auto-data-snapshot: 2026-09-02T04:39:22 (2 data files) — data/brokers-snapshot.json data/ranked.json
  372. b3b82e2 2026-09-02 auto-data-snapshot: 2026-09-02T03:24:05 (2 data files) — data/crcp-drift-state.json data/latest.json
  373. 9ef1716 2026-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
  374. 191871d 2026-09-02 auto-data-snapshot: 2026-09-02T00:14:50 (1 data files) — data/condos-redfin.json
  375. d164c2b 2026-09-01 auto-data-snapshot: 2026-09-01T21:44:50 (2 data files) — data/crcp-drift-state.json data/latest.json
  376. d69e850 2026-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
  377. 3184956 2026-09-01 auto-data-snapshot: 2026-09-01T15:29:45 (2 data files) — data/crcp-drift-state.json data/latest.json
  378. 80d724f 2026-09-01 afternoon CRE update 2026-09-01
  379. 3100293 2026-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
  380. c7950f5 2026-09-01 auto-data-snapshot: 2026-09-01T09:42:16 (2 data files) — data/crcp-drift-state.json data/latest.json
  381. bdcce64 2026-09-01 auto-data-snapshot: 2026-09-01T07:13:20 (1 data files) — data/alerts-state.json
  382. 4ecaee3 2026-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
  383. ca6c9c2 2026-09-01 loan-officers: daily DRE refresh (4502 officers)
  384. 9a6ff50 2026-09-01 auto-data-snapshot: 2026-09-01T05:58:40 (2 data files) — data/listings.json data/ranked.json
  385. 1316fc1 2026-09-01 auto-data-snapshot: 2026-09-01T04:43:03 (2 data files) — data/brokers-snapshot.json data/ranked.json
  386. b9b104a 2026-09-01 auto-data-snapshot: 2026-09-01T03:29:10 (2 data files) — data/crcp-drift-state.json data/latest.json
  387. dcac96e 2026-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
  388. 214f7e2 2026-08-31 auto-data-snapshot: 2026-08-31T21:20:03 (2 data files) — data/crcp-drift-state.json data/latest.json
  389. fa82b55 2026-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
  390. 9c6b774 2026-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
  391. 15fcfc3 2026-08-31 auto-data-snapshot: 2026-08-31T15:44:48 (2 data files) — data/crcp-drift-state.json data/latest.json
  392. 1e9cfd7 2026-08-31 afternoon CRE update 2026-08-31
  393. 31115ec 2026-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
  394. cb8aa03 2026-08-31 auto-data-snapshot: 2026-08-31T09:29:05 (2 data files) — data/crcp-drift-state.json data/latest.json
  395. 6908cc7 2026-08-31 weekly Crexi refresh 2026-08-31
  396. befac52 2026-08-31 auto-data-snapshot: 2026-08-31T07:01:20 (1 data files) — data/alerts-state.json
  397. 859a346 2026-08-31 weekly unwarrantable-condos report 2026-08-31
  398. 5704576 2026-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
  399. 6f460dd 2026-08-31 auto-data-snapshot: 2026-08-31T05:45:56 (1 data files) — data/listings.json
  400. f72697b 2026-08-31 auto-data-snapshot: 2026-08-31T04:30:23 (2 data files) — data/brokers-snapshot.json data/ranked.json
  401. c3b631f 2026-08-31 auto-data-snapshot: 2026-08-31T03:53:27 (2 data files) — data/crcp-drift-state.json data/latest.json
  402. 321a8e4 2026-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
  403. 5e0f9d0 2026-08-31 auto-data-snapshot: 2026-08-31T00:07:16 (1 data files) — data/condos-redfin.json
  404. e6862c6 2026-08-30 auto-data-snapshot: 2026-08-30T21:32:01 (2 data files) — data/crcp-drift-state.json data/latest.json
  405. 789a19c 2026-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
  406. 66f5ef8 2026-08-30 auto-data-snapshot: 2026-08-30T15:20:13 (2 data files) — data/crcp-drift-state.json data/latest.json
  407. dffa481 2026-08-30 prove authenticated CRCP header runtime
  408. 091a86c 2026-08-30 afternoon CRE update 2026-08-30
  409. b9a44e0 2026-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
  410. 47fc46c 2026-08-30 auto-data-snapshot: 2026-08-30T09:43:11 (2 data files) — data/crcp-drift-state.json data/latest.json
  411. ec80acf 2026-08-30 auto-data-snapshot: 2026-08-30T07:15:22 (1 data files) — data/alerts-state.json
  412. 1572363 2026-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
  413. 7ed8267 2026-08-30 auto-data-snapshot: 2026-08-30T06:00:18 (2 data files) — data/listings.json data/ranked.json
  414. 54f7efa 2026-08-30 auto-data-snapshot: 2026-08-30T04:08:11 (2 data files) — data/brokers-snapshot.json data/ranked.json
  415. 8eb07b0 2026-08-30 auto-data-snapshot: 2026-08-30T03:31:23 (2 data files) — data/crcp-drift-state.json data/latest.json
  416. 54674ac 2026-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
  417. 55bed41 2026-08-29 auto-data-snapshot: 2026-08-29T21:23:03 (2 data files) — data/crcp-drift-state.json data/latest.json
  418. 9d03fe5 2026-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
  419. 9bd0aa4 2026-08-29 auto-data-snapshot: 2026-08-29T15:52:29 (2 data files) — data/crcp-drift-state.json data/latest.json
  420. 813ed7e 2026-08-29 afternoon CRE update 2026-08-29
  421. 738f65b 2026-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
  422. f6a3392 2026-08-29 auto-data-snapshot: 2026-08-29T12:10:50 (1 data files) — data/condos-redfin.json
  423. 884ad8a 2026-08-29 auto-data-snapshot: 2026-08-29T09:43:04 (2 data files) — data/crcp-drift-state.json data/latest.json
  424. 31b12e8 2026-08-29 auto-data-snapshot: 2026-08-29T07:15:37 (1 data files) — data/alerts-state.json
  425. a714d23 2026-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
  426. 333f30a 2026-08-29 auto-data-snapshot: 2026-08-29T06:00:28 (2 data files) — data/listings.json data/ranked.json
  427. f1a1d24 2026-08-29 auto-data-snapshot: 2026-08-29T04:08:23 (2 data files) — data/brokers-snapshot.json data/ranked.json
  428. 07c2d60 2026-08-29 auto-data-snapshot: 2026-08-29T03:31:35 (2 data files) — data/crcp-drift-state.json data/latest.json
  429. 40fcacb 2026-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
  430. 28f72d0 2026-08-28 auto-data-snapshot: 2026-08-28T21:21:29 (2 data files) — data/crcp-drift-state.json data/latest.json
  431. 0521154 2026-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
  432. ecfc610 2026-08-28 auto-data-snapshot: 2026-08-28T15:48:59 (2 data files) — data/crcp-drift-state.json data/latest.json
  433. 51897df 2026-08-28 afternoon CRE update 2026-08-28
  434. 0d4e9e7 2026-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
  435. 57ed9dc 2026-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
  436. e65ee7c 2026-08-28 auto-data-snapshot: 2026-08-28T09:39:28 (2 data files) — data/crcp-drift-state.json data/latest.json
  437. d7d2797 2026-08-28 auto-data-snapshot: 2026-08-28T07:08:13 (1 data files) — data/alerts-state.json
  438. d53702d 2026-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
  439. 9ba9a3d 2026-08-28 loan-officers: daily DRE refresh (4500 officers)
  440. 545ba14 2026-08-28 auto-data-snapshot: 2026-08-28T05:53:21 (1 data files) — data/listings.json
  441. f8f684d 2026-08-28 auto-data-snapshot: 2026-08-28T04:38:35 (2 data files) — data/brokers-snapshot.json data/ranked.json
  442. ff26cab 2026-08-28 auto-data-snapshot: 2026-08-28T03:24:48 (2 data files) — data/crcp-drift-state.json data/latest.json
  443. 0f9fd27 2026-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
  444. ae5b5ad 2026-08-27 auto-data-snapshot: 2026-08-27T21:52:04 (2 data files) — data/crcp-drift-state.json data/latest.json
  445. dc67c1a 2026-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
  446. e0e78cd 2026-08-27 auto-data-snapshot: 2026-08-27T18:10:50 (1 data files) — data/condos-redfin.json
  447. 823790c 2026-08-27 auto-data-snapshot: 2026-08-27T15:43:16 (2 data files) — data/crcp-drift-state.json data/latest.json
  448. 6b29506 2026-08-27 afternoon CRE update 2026-08-27
  449. 99ad8b4 2026-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
  450. 185c393 2026-08-27 auto-data-snapshot: 2026-08-27T09:33:34 (2 data files) — data/crcp-drift-state.json data/latest.json
  451. f1f2e46 2026-08-27 auto-data-snapshot: 2026-08-27T07:06:07 (1 data files) — data/alerts-state.json
  452. 64f3c63 2026-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
  453. 706cb3d 2026-08-27 loan-officers: daily DRE refresh (4499 officers)
  454. cd9a30c 2026-08-27 auto-data-snapshot: 2026-08-27T05:52:15 (1 data files) — data/listings.json
  455. 005c9dd 2026-08-27 auto-data-snapshot: 2026-08-27T04:38:11 (2 data files) — data/brokers-snapshot.json data/ranked.json
  456. e38871f 2026-08-27 TK-10905: fix admin pill overlap at 375px — reposition below header on <=640px screens
  457. f5bbff1 2026-08-27 auto-data-snapshot: 2026-08-27T03:25:19 (2 data files) — data/crcp-drift-state.json data/latest.json
  458. ef88c4b 2026-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
  459. 1ec4a81 2026-08-26 auto-data-snapshot: 2026-08-26T21:20:57 (2 data files) — data/crcp-drift-state.json data/latest.json
  460. 6263da5 2026-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
  461. 3b5b0b9 2026-08-26 auto-data-snapshot: 2026-08-26T15:52:28 (2 data files) — data/crcp-drift-state.json data/latest.json
  462. f9f9387 2026-08-26 afternoon CRE update 2026-08-26
  463. e81be14 2026-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
  464. 5688317 2026-08-26 auto-data-snapshot: 2026-08-26T12:08:58 (1 data files) — data/condos-redfin.json
  465. 3f9c93d 2026-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
  466. 12e1254 2026-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)
  467. cb833c4 2026-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)
  468. 06ef276 2026-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
  469. d13e16d 2026-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
  470. 3c0d974 2026-08-26 corner-nav: reserve header corner space in CSS (timing-independent) so the ☰ Menu burger never overlaps the page title
  471. 68140d8 2026-08-26 chore: broker-extract helper + two-section pool/land report, v0.25.1 (session close)
  472. 28b3bb2 2026-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
  473. bb5a372 2026-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
  474. c87ea0c 2026-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
  475. 8d76471 2026-08-26 sfv-pool: add Cards/Map view toggle — Leaflet map w/ clustered markers colored by pool, photo popups, respects filters
  476. 84c2a7c 2026-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
  477. 5f4acf6 2026-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
  478. 5ed3148 2026-08-26 auto-data-snapshot: 2026-08-26T09:01:00 (1 data files) — data/sfr-pools.json
  479. 49751ea 2026-08-26 SFV pool page: click any card -> detail modal with photo, sqft, $/sqft, lot, pool, beds/baths, year, DOM
  480. c6eda17 2026-08-26 SFV pool list: add lot size, price/sqft, photo to enrichment + endpoint + email + page
  481. edff366 2026-08-26 auto-data-snapshot: 2026-08-26T08:21:31 (3 data files) — data/loopnet-progress.json data/sfr-pools.json package-lock.json
  482. 548c019 2026-08-26 SFV $700k-$1.2M pool split: enrichment + /api/sfv-pool + details page + email report
  483. 9198a6e 2026-08-26 chore: lint + quality-gate fixes, v0.25.0 (session close)
  484. d11b90f 2026-08-26 TK-10864: LoopNet second-source scraper (broker graph, source=loopnet)
  485. 777bca5 2026-08-26 auto-data-snapshot: 2026-08-26T07:08:04 (1 data files) — data/alerts-state.json
  486. e85e452 2026-08-26 TK-10709: add paced Crexi accrual wrapper script (install of the launchd schedule stays a Steve-run paste)
  487. 5fb3d88 2026-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
  488. 9dc4ab4 2026-08-26 auto-data-snapshot: 2026-08-26T05:53:46 (1 data files) — data/listings.json
  489. f4751ec 2026-08-26 auto-data-snapshot: 2026-08-26T04:39:06 (2 data files) — data/brokers-snapshot.json data/ranked.json
  490. 0e2ec42 2026-08-26 auto-data-snapshot: 2026-08-26T03:25:32 (2 data files) — data/crcp-drift-state.json data/latest.json
  491. 5e00fbf 2026-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
  492. d7c9b37 2026-08-25 auto-data-snapshot: 2026-08-25T21:19:24 (2 data files) — data/crcp-drift-state.json data/latest.json
  493. e13bc6b 2026-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
  494. 66e131f 2026-08-25 auto-data-snapshot: 2026-08-25T17:03:18 (1 data files) — data/crexi-progress.json
  495. b048ea2 2026-08-25 TK-10709: dedup across ALL sources, not just crexi
  496. d7cdfed 2026-08-25 TK-10709: remove Crexi profile link-out from broker page + restore 6-scroll grid sweep
  497. e126de6 2026-08-25 auto-data-snapshot: 2026-08-25T16:26:17 (2 data files) — data/crexi-progress.json data/crexi-queue.json
  498. 346aff9 2026-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
  499. b362871 2026-08-25 auto-data-snapshot: 2026-08-25T15:12:26 (2 data files) — data/crexi-progress.json data/crexi-queue.json
  500. 963bc1d 2026-08-25 TK-10709: strip Crexi marketing-header prefix from detail addresses
  501. f0860c1 2026-08-25 TK-10709: robust Crexi agent-attributed scraper
  502. 7361526 2026-08-25 afternoon CRE update 2026-08-25
  503. 54ce1e6 2026-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
  504. 44be61b 2026-08-25 auto-data-snapshot: 2026-08-25T12:06:42 (1 data files) — data/condos-redfin.json
  505. a4a793f 2026-08-25 chore: v0.24.1 (session close) — crexi->broker-direct resolver + guard fix; firmKey parity verified, code twice-reviewed+deployed
  506. 151a81f 2026-08-25 CRCP: run resolve-broker-direct.js in the nightly broker-feed sync (Encore/Trinity refresh like other feeds) [TK-10848]
  507. e6592c6 2026-08-25 auto-data-snapshot: 2026-08-25T11:28:19 (1 data files) — data/crexi-progress.json
  508. 4162472 2026-08-25 CRCP: unstick crexi->broker-direct substitution + add Encore/Trinity own-site feeds
  509. 71519a5 2026-08-25 chore: v0.24.0 (session close) — broker-phone list column [lint ✓ refactor ✓]
  510. 838f589 2026-08-25 CRCP list view: add Broker phone column + relabel agent phone
  511. f700567 2026-08-25 auto-data-snapshot: 2026-08-25T09:32:22 (2 data files) — data/crcp-drift-state.json data/latest.json
  512. c210665 2026-08-25 auto-data-snapshot: 2026-08-25T07:02:59 (1 data files) — data/alerts-state.json
  513. 4f1e21d 2026-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
  514. 4de5b5f 2026-08-25 auto-data-snapshot: 2026-08-25T05:49:00 (1 data files) — data/listings.json
  515. 698945a 2026-08-25 auto-data-snapshot: 2026-08-25T04:35:37 (2 data files) — data/brokers-snapshot.json data/ranked.json
  516. 2f3d4c8 2026-08-25 auto-data-snapshot: 2026-08-25T03:23:00 (2 data files) — data/crcp-drift-state.json data/latest.json
  517. 785be69 2026-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
  518. 000df46 2026-08-24 auto-data-snapshot: 2026-08-24T21:21:09 (2 data files) — data/crcp-drift-state.json data/latest.json
  519. cdde868 2026-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
  520. b9c3291 2026-08-24 auto-data-snapshot: 2026-08-24T15:30:55 (2 data files) — data/crcp-drift-state.json data/latest.json
  521. 7e5c7b7 2026-08-24 auto-data-snapshot: 2026-08-24T13:25:50 (2 data files) — data/.crexi-broker-done.json data/broker-phone-overlay.json
  522. dd8a788 2026-08-24 afternoon CRE update 2026-08-24
  523. 08d03ea 2026-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
  524. 4682a8d 2026-08-24 auto-data-snapshot: 2026-08-24T12:20:25 (1 data files) — data/condos-redfin.json
  525. 8622ddf 2026-08-24 auto-data-snapshot: 2026-08-24T09:36:43 (2 data files) — data/crcp-drift-state.json data/latest.json
  526. be55ce5 2026-08-24 weekly Crexi refresh 2026-08-24
  527. 71d657f 2026-08-24 weekly unwarrantable-condos report 2026-08-24
  528. 670b2be 2026-08-24 auto-data-snapshot: 2026-08-24T06:55:00 (2 data files) — data/condo-brokers.json data/condos-redfin.json
  529. 98c66d3 2026-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
  530. 6299b22 2026-08-24 loan-officers: daily DRE refresh (4495 officers)
  531. 095a982 2026-08-24 auto-data-snapshot: 2026-08-24T05:49:45 (1 data files) — data/listings.json
  532. c7d01cf 2026-08-24 auto-data-snapshot: 2026-08-24T04:45:01 (2 data files) — data/brokers-snapshot.json data/ranked.json
  533. 2aaf18e 2026-08-24 Swap Browserbase transport -> openclaw in refresh-all.js (TK-10745)
  534. afde0f3 2026-08-24 auto-data-snapshot: 2026-08-24T03:41:17 (2 data files) — data/crcp-drift-state.json data/latest.json
  535. 73ea77e 2026-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
  536. 547dec4 2026-08-23 auto-data-snapshot: 2026-08-23T21:50:21 (2 data files) — data/crcp-drift-state.json data/latest.json
  537. 3ae976f 2026-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
  538. bee8fda 2026-08-23 auto-data-snapshot: 2026-08-23T18:07:55 (1 data files) — data/condos-redfin.json
  539. 0a9cda6 2026-08-23 auto-data-snapshot: 2026-08-23T15:28:58 (2 data files) — data/crcp-drift-state.json data/latest.json
  540. f46b9d1 2026-08-23 afternoon CRE update 2026-08-23
  541. 60ba1c6 2026-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
  542. aae2ad9 2026-08-23 auto-data-snapshot: 2026-08-23T09:39:07 (2 data files) — data/crcp-drift-state.json data/latest.json
  543. bffddf3 2026-08-23 auto-data-snapshot: 2026-08-23T07:00:05 (1 data files) — data/alerts-state.json
  544. 7cf7dc3 2026-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
  545. e1e3fff 2026-08-23 auto-data-snapshot: 2026-08-23T05:55:15 (1 data files) — data/listings.json
  546. ebcba4a 2026-08-23 auto-data-snapshot: 2026-08-23T04:19:03 (2 data files) — data/brokers-snapshot.json data/ranked.json
  547. 68a0cbe 2026-08-23 auto-data-snapshot: 2026-08-23T03:47:15 (2 data files) — data/crcp-drift-state.json data/latest.json
  548. 336e58d 2026-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
  549. d102fef 2026-08-22 auto-data-snapshot: 2026-08-22T21:25:09 (2 data files) — data/crcp-drift-state.json data/latest.json
  550. 5e2bea9 2026-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
  551. a7a43ff 2026-08-22 auto-data-snapshot: 2026-08-22T18:14:40 (1 data files) — data/condos-redfin.json
  552. ae8ca50 2026-08-22 auto-data-snapshot: 2026-08-22T15:34:47 (2 data files) — data/crcp-drift-state.json data/latest.json
  553. 68f081b 2026-08-22 afternoon CRE update 2026-08-22
  554. c45ea49 2026-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
  555. e8797da 2026-08-22 chore: portola.crcp onboard script (server_name + cert --expand, lookbehind-guarded) — session close
  556. 1b8bf17 2026-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)
  557. fff6d01 2026-08-22 auto-data-snapshot: 2026-08-22T09:43:39 (2 data files) — data/crcp-drift-state.json data/latest.json
  558. 81a56e3 2026-08-22 auto-data-snapshot: 2026-08-22T07:04:52 (1 data files) — data/alerts-state.json
  559. 9b17cca 2026-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
  560. 21cd5e9 2026-08-22 auto-data-snapshot: 2026-08-22T05:59:25 (2 data files) — data/listings.json data/ranked.json
  561. fe5d1a4 2026-08-22 auto-data-snapshot: 2026-08-22T04:22:57 (2 data files) — data/brokers-snapshot.json data/ranked.json
  562. 7b72c2d 2026-08-22 auto-data-snapshot: 2026-08-22T03:51:11 (2 data files) — data/crcp-drift-state.json data/latest.json
  563. 8b47c48 2026-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
  564. 55571df 2026-08-22 auto-data-snapshot: 2026-08-22T00:08:20 (1 data files) — data/condos-redfin.json
  565. 69295fe 2026-08-21 auto-data-snapshot: 2026-08-21T21:29:42 (2 data files) — data/crcp-drift-state.json data/latest.json
  566. aa6fc34 2026-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
  567. 56878db 2026-08-21 auto-data-snapshot: 2026-08-21T15:40:21 (2 data files) — data/crcp-drift-state.json data/latest.json
  568. 3e3f610 2026-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
  569. 067e763 2026-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
  570. 6312ed5 2026-08-21 auto-data-snapshot: 2026-08-21T09:49:18 (2 data files) — data/crcp-drift-state.json data/latest.json
  571. 8bef3f6 2026-08-21 auto-data-snapshot: 2026-08-21T07:10:15 (1 data files) — data/alerts-state.json
  572. 0cff5ac 2026-08-21 TK-10703 cycle7: commit the direct-listings + linkedin verification harnesses (consistent with existing 5x/*-assert.js)
  573. 1d2233c 2026-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 >
  574. 05883e8 2026-08-21 TK-10703 cycle7: linkedin → CRCP standard (List/Grid view toggle + always-on firm-confirmed phone/email via brokers/all id-join)
  575. cc4510a 2026-08-21 TK-10703 cycle7: direct-listings → CRCP standard (grid-controls + always-on phone/email via listing-brokers address-join)
  576. 1390e7a 2026-08-21 TK-10703 cycle7: property → always-on listing-agent contact strip (address-join, non-fabricated)
  577. 184e5b1 2026-08-21 TK-10703 cycle7: recities → corner-nav + day/night theme (accent preserved)
  578. 1f95711 2026-08-21 TK-10703 cycle7: firecities → corner-nav + day/night theme (accent preserved)
  579. b977341 2026-08-21 TK-10703 cycle7: document canonical CRCP UI standard + data-reality + non-fabrication contact rule
  580. c93485f 2026-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
  581. 0cdfd2f 2026-08-21 auto-data-snapshot: 2026-08-21T06:05:08 (1 data files) — data/ranked.json
  582. 4bb9aa9 2026-08-21 auto-data-snapshot: 2026-08-21T05:33:27 (1 data files) — data/listings.json
  583. 79086e2 2026-08-21 auto-data-snapshot: 2026-08-21T04:29:08 (2 data files) — data/brokers-snapshot.json data/ranked.json
  584. 033272c 2026-08-21 auto-data-snapshot: 2026-08-21T03:25:40 (2 data files) — data/crcp-drift-state.json data/latest.json
  585. a8259b8 2026-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
  586. e4b903e 2026-08-21 auto-data-snapshot: 2026-08-21T00:14:48 (1 data files) — data/condos-redfin.json
  587. 42c7bfc 2026-08-20 auto-data-snapshot: 2026-08-20T21:36:19 (2 data files) — data/crcp-drift-state.json data/latest.json
  588. 721586b 2026-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
  589. e258eee 2026-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
  590. 02e8a05 2026-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
  591. 804a788 2026-08-20 auto-data-snapshot: 2026-08-20T17:19:08 (2 data files) — data/broker-of-record.sqlite data/last-broker-of-record.json
  592. adbdad4 2026-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
  593. ed37f76 2026-08-20 CRCP: stop tracking generated data reports (afternoon/residential) — gitignore + untrack so they stop dirtying the tree
  594. 78cb8e7 2026-08-20 CRCP: add self-provisioning CTA health runner (TK-10753) — mints fresh session each run, fail-loud, schedule-safe but deferred
  595. 84870a4 2026-08-20 CRCP refresh-all: Browserbase 30-min TTL + proxies — fixes multi-city sweep timing out at 5m and killing later gotos
  596. 111d4f3 2026-08-20 auto-data-snapshot: 2026-08-20T15:43:22 (2 data files) — data/crcp-drift-state.json data/latest.json
  597. a9088ee 2026-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
  598. c4ea663 2026-08-20 CRCP: inline-city SSO — one hub login reaches all cities inline, no re-prompt (Steve directive)
  599. c56a993 2026-08-20 CRCP scope: sameCity strips trailing state suffix ('City, CA') before norm so standard City,ST data still scopes (was silent under-scope)
  600. 22ec0ea 2026-08-20 auto-data-snapshot: 2026-08-20T14:07:04 (2 data files) — package-lock.json scripts/__pycache__/fetch-dre-mlo.cpython-314.pyc
  601. dff786b 2026-08-20 CRCP per-city scope: filter property grids (sales/direct-listings/just-listed/fha/valley-pools) on city subdomains; directories stay statewide
  602. d1d3af2 2026-08-20 chore: v0.23.0 — recities+firecities hubs, per-city scoping, ranked.json geocode (session close)
  603. 81c9122 2026-08-20 chore: lint fetch-dre-mlo.py (sort imports, drop unused re) — session close
  604. 4654443 2026-08-20 loan-officers: refresher auto-deploys to prod (no approval to add data)
  605. f30d3c7 2026-08-20 chore: add broker-name normalizer + version bump (session close)
  606. 9cfd192 2026-08-20 CRCP: firecities.crcp hub — 2025 burn-zone cities (Eaton+Palisades) grouped by incident
  607. 8376503 2026-08-20 auto-data-snapshot: 2026-08-20T13:34:43 (1 data files) — scripts/__pycache__/fetch-dre-mlo.cpython-314.pyc
  608. b521fc4 2026-08-20 CRCP: drag-to-resize the Controls rail (#ctrlrail) — vertical expansion bar
  609. b2f3312 2026-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
  610. 9f0d5e1 2026-08-20 chore: untrack data/qwen-cache.json (key-shaped strings) + gitignore it
  611. e43a05a 2026-08-20 loan-officers: daily DRE refresh (4494 officers)
  612. 6c05d36 2026-08-20 loan-officers: add LA-County 'Officer'-type MLOs (+107 unique after NMLS dedup) → 4,494 officers
  613. 7777839 2026-08-20 direct-listings: add aria-label to density slider (a11y — Cody gate)
  614. 2645a22 2026-08-20 direct-listings: add density slider (Steve grid rule — every grid needs sort + density)
  615. 3716477 2026-08-20 CRCP table view: columns expand full-width + sticky header & frozen first column
  616. 5544021 2026-08-20 CRCP: geocode ranked.json (free Census, +zip/latlng on 9286 rows) + pipeline hook; spec proves ZIP scoping is net-zero
  617. beeafe7 2026-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
  618. 5cef9ae 2026-08-20 CRCP: Phase-1 per-city scoping — host-keyed fetch filter + hide-empty hub (index.html untouched)
  619. 34a021c 2026-08-20 5x: verify crcp list view — six-way green, 29 clickthrough fails classified as harness artifacts (collapsed panels + session-auth), 0 real defects
  620. 8156540 2026-08-20 CRCP: spec for per-city scoping of the *.crcp fleet (front-end filter + coverage reality)
  621. a337f9a 2026-08-20 loan-officers: seed 29 CA officers from firm public rosters (first-party public web, NMLS re-verified on page)
  622. 7f18f17 2026-08-20 CRCP: recities.crcp hub — city launcher dropdown of all 50 markets, host-routed
  623. 1b7ba1f 2026-08-20 CRCP: resolve popup double-fire — ONE row-expand panel, server-synced notes (DTD verdict A)
  624. 0938efc 2026-08-20 CRCP index: fix overlapping UI — bar controls no longer spill under the #ctrlrail
  625. cc28893 2026-08-20 CRCP index: ALWAYS show agent/phone/firm/broker on the list view (Steve directive)
  626. 9ed857d 2026-08-20 CRCP list: click row open-space to expand consolidated detail + PRIVATE per-user notes (localStorage, not shared)
  627. 39a36a4 2026-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)
  628. be1fb30 2026-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)
  629. 9b4f89b 2026-08-20 CRCP: top-right signed-in user badge (person icon + name + sign out)
  630. 05eae71 2026-08-20 CRCP: replace whole-site Basic-auth popup with single real-user login
  631. 3fb3f6a 2026-08-20 nav-agent: sync v1.3 (host left-sidebar collapse on load)
  632. 74fc2a6 2026-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
  633. 3658ed7 2026-08-19 auto-data-snapshot: 2026-08-19T21:39:47 (2 data files) — data/crcp-drift-state.json data/latest.json
  634. 422b55d 2026-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
  635. 2cc53a3 2026-08-19 auto-data-snapshot: 2026-08-19T15:40:38 (2 data files) — data/crcp-drift-state.json data/latest.json
  636. 3271453 2026-08-19 nav-agent: List data full-width tight columns (grid) — layout fix
  637. 82487e2 2026-08-19 CRCP: refresh nav-agent copy to v1.2 (adds the kv-list compact List view)
  638. e3cfcc5 2026-08-19 chore: v0.22.0 (session close — infinite scroll + notes + non-warrant + Frank filter; lint ✓; refactor skipped — code already deployed+verified live)
  639. 88b48c0 2026-08-19 chore: v0.21.0 (session close) — valley-pools feature + multi-cred gate + daily prod push
  640. f750029 2026-08-19 auto-data-snapshot: 2026-08-19T13:27:48 (2 data files) — data/.pre-afternoon-ids.json data/last-refresh.json
  641. 685e76b 2026-08-19 Fix valley-pools renderer crash (filter-modal infinite-loop) + TV.refresh typo
  642. cf9fb57 2026-08-19 auto-data-snapshot: 2026-08-19T12:54:53 (1 data files) — data/valley-pools.json
  643. 036e4b5 2026-08-19 Daily valley-pools refresh now pushes the fresh snapshot to prod
  644. 9bbc693 2026-08-19 CRCP gate: multi-credential auth (CRCP_EXTRA_USERS) — add steve to main :9911
  645. c6ab3e8 2026-08-19 gitignore data/sfr-notes.json (per-user runtime notes)
  646. ac8f2f3 2026-08-19 Valley pools: CRCP-standard left rail + three-view + per-user listing notes
  647. 71b1dce 2026-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
  648. d25f2e6 2026-08-19 CRCP nav: link Valley Pools from the landing hub topnav
  649. b33fc03 2026-08-19 Valley pools: map view + deal-tier colors + $/sqft + price-cut + payment est + on-map price tags
  650. d4447f7 2026-08-19 broker profile item 3: honest 'listings as of <date>' snapshot-vintage caveat
  651. 38e4820 2026-08-19 CRCP: infinite scroll across all grid pages (replace hard row caps / all-at-once renders)
  652. 77b9299 2026-08-19 broker snapshot: active-listing recency gate + size-ceiling health verdict (DTD A-with-rider)
  653. 86a32ab 2026-08-19 Add SFV single-family pool-homes viewer (new crcp landing)
  654. fd9337c 2026-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)
  655. 3fdbc0b 2026-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
  656. 95ff71b 2026-08-19 CRCP: 'Pocket listing' badge for off-market rows with no contact at all (Steve 2026-08-19)
  657. cf0bd41 2026-08-19 CRCP: Frank onload 4-unit multifamily default filter + non-warrantable condos section + per-agent private notes
  658. 258bd68 2026-08-19 firm-site scraper: add missing sleep() helper (pageText crashed the improved re-sweep)
  659. 88f093b 2026-08-19 corner-nav: add 'Direct Listings' to Properties menu (the dedicated-store viewer)
  660. 8f9ce55 2026-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
  661. eab941c 2026-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
  662. c189e73 2026-08-19 CRCP: harden per-broker grind — auto-dismiss JS dialogs + allSettled (one bad Crexi page no longer crashes the run)
  663. 1768107 2026-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
  664. cff722f 2026-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)
  665. d523da0 2026-08-19 auto-data-snapshot: 2026-08-19T10:40:44 (2 data files) — data/.crexi-broker-done.json data/broker-phone-overlay.json
  666. 5cba5cb 2026-08-19 brokers.html: drop last 'on Crexi' text -> 'total listings on record'
  667. b9d6c4c 2026-08-19 brokers.html: node 'View full profile' -> /agent.html (our page) instead of /broker.html; drop 'on Crexi' text
  668. 5205cc5 2026-08-19 backfill firm-site: add --offset to sweep beyond the top 40 firms
  669. e4bc315 2026-08-19 CRCP: sync rsync now includes broker-phone-overlay.json to prod
  670. edd6422 2026-08-19 CRCP: wire per-broker crexi grind into daily sync (capped 400/run, resumable)
  671. 7992c24 2026-08-19 CRCP: per-broker Crexi-tail phone grind — $0 openclaw CDP own-tabs, resumable (Steve: grind the tail in background)
  672. a04fb2b 2026-08-19 Fold 8,796 new active broker-book listings into catalog (national expansion, Steve-approved); $0 no-auth /assets/search crawl
  673. 89fb491 2026-08-19 DRE->CRCP-id join: link condo/residential brokers to broker profiles
  674. 435a304 2026-08-19 chore: lint (node --check clean, no linter configured) + refactor (agent-profile helpers, done in-session) + v0.20.0 (session close)
  675. 8ee869d 2026-08-19 CRCP: wire overlay seed + crexi firm-backfill into daily sync (keeps aggregator-row phones current, $0)
  676. 0668669 2026-08-19 CRCP: all-day parallel firm-phone backfill for Crexi-base rows — $0 openclaw (Steve: max-it, parallel browsers)
  677. 3c7ce7f 2026-08-19 CRCP: broker-phone OVERLAY for Crexi-base rows — free usre seed + serve.js overlay (Steve: crexi-base coverage)
  678. d81c510 2026-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)
  679. fb68fcb 2026-08-19 CRCP: backfill broker contacts for Lyon Stahl/WESTMAC/BuildOut — $0 curl (Steve: 'find their contact info while on their site')
  680. 0b75629 2026-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
  681. 58c2ad4 2026-08-19 auto-data-snapshot: 2026-08-19T10:08:05 (1 data files) — data/showcase-listings.json
  682. af11701 2026-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
  683. dddefaf 2026-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
  684. 7adb0f7 2026-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
  685. 3698131 2026-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).
  686. 73008d6 2026-08-19 broker.html: linter formatting pass (no behavior change)
  687. b0d8b1d 2026-08-19 broker-grid: 'View full profile ->' link in the broker modal to /broker.html
  688. c45525e 2026-08-19 agent.html: render labeled 'Firm listings' section (firm-site inventory, honestly not claimed as the agent's own book)
  689. c395270 2026-08-19 agent-profile: add firm_listings (direct-from-firm-site inventory via firm_name match, labeled — not claimed as the agent's own)
  690. 6939e72 2026-08-19 auto-data-snapshot: 2026-08-19T09:34:55 (1 data files) — data/showcase-listings.json
  691. e77b85d 2026-08-19 CRCP: Showcase daily refresh now openclaw-first ($0), browserbase fallback + carry-over broker phones + backfill in sync
  692. 86b8219 2026-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
  693. 200087f 2026-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)
  694. 7361844 2026-08-19 CRCP: backfill real broker phones for Showcase listings — FREE via openclaw (yoloforever)
  695. 48a8e85 2026-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)
  696. b422f11 2026-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')
  697. 83593fe 2026-08-19 broker-grid: agent name -> /agent.html?name= (our profile page, never crexi); card body keeps contact modal
  698. 84a87bc 2026-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
  699. 7e3bea3 2026-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
  700. 31c55f5 2026-08-19 Add crawl-broker-comps.js: $0 no-auth Crexi broker book-expansion (fills broker_closed_listing, backfills global_id); +discover-broker-endpoint
  701. 36bec4d 2026-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)
  702. 23372d3 2026-08-19 Add Crexi-style individual broker profile page (broker.html)
  703. 2f6ff29 2026-08-19 CRCP: paginate Showcase (16 -> 440 LA for-sale listings, ~27x) via /for-sale/N/ URL walk
  704. 6e1d7c5 2026-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
  705. 3a8c168 2026-08-19 crawl-broker-listings: read sale[]/lease[] payloads + honor totalCount (no 12-page truncation) + accurate other-listing count (codex review)
  706. ce630d7 2026-08-19 Add crawl-broker-listings.js: Crexi broker→full-book expansion crawler (fills broker_other_listing)
  707. 3222d2e 2026-08-19 CRCP: Showcase (BuildOut marketplace) via browserbase — cron-safe Akamai bypass (yoloforever)
  708. 04e9c8c 2026-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
  709. 94d8ebe 2026-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
  710. 635ffad 2026-08-19 just-listed: ticker bg -> var (reference page now 100% light-mode clean)
  711. d9d46a9 2026-08-19 admin: convert bare dark-surface literals to themed vars (day-mode flip); map left dark by design (chips over satellite imagery)
  712. a206405 2026-08-19 rent-rolls: convert bare dark-surface literals to themed vars (day-mode specks -> flip in light)
  713. 50e13d6 2026-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
  714. 92d0cec 2026-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)
  715. 4a85e2d 2026-08-19 chore: bump v0.19.0 (session close) — CRCP UI standardization: just-listed rebuild, fleet day/night, 3-view, broker contact
  716. ea071d6 2026-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
  717. 83763a9 2026-08-19 auto-data-snapshot: 2026-08-19T07:27:42 (1 data files) — data/alerts-state.json
  718. 12ea4e1 2026-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
  719. 1c25b89 2026-08-19 auto-data-snapshot: 2026-08-19T05:52:44 (1 data files) — data/listings.json
  720. 44c1fb8 2026-08-19 auto-data-snapshot: 2026-08-19T04:17:42 (2 data files) — data/brokers-snapshot.json data/ranked.json
  721. f236dcc 2026-08-19 auto-data-snapshot: 2026-08-19T03:46:07 (2 data files) — data/crcp-drift-state.json data/latest.json
  722. ee9b4e4 2026-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
  723. c95e260 2026-08-18 auto-data-snapshot: 2026-08-18T21:26:29 (2 data files) — data/crcp-drift-state.json data/latest.json
  724. 0e9fa7b 2026-08-18 CRCP contractors.html: add Grid/List/Table to browse mode + sortable table headers (match mode unchanged)
  725. 9e31cc7 2026-08-18 CRCP deals-flow.html: add Grid/List/Table views + sortable table headers (card grid + compact list + dense table)
  726. 284092d 2026-08-18 CRCP: generic BuildOut scraper (class-cracker) + auto-discover broker feeds (yoloforever cycle 6)
  727. ca33199 2026-08-18 CRCP rent-rolls.html: add compact List view (Table/List/Cards)
  728. d5a0b83 2026-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)
  729. 6074d06 2026-08-18 CRCP: broker-direct SUBSTITUTES the aggregator row (sub out Crexi when the firm's own listing is found) — Steve 2026-08-18
  730. 4eac4b6 2026-08-18 CRCP gov-agents.html: add grid/list/table view system (was table-only) + all-sortable + mobile ⚙ Filters modal
  731. f634570 2026-08-18 CRCP sales.html: add compact List view (grid/list/table) + mobile ⚙ Filters modal
  732. 324dab8 2026-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)
  733. 2bf64b6 2026-08-18 CRCP: morning broker-feed sync — scrape all firms + rsync data to prod + reload (Steve-authorized daily prod freshness)
  734. e349211 2026-08-18 licensed: add 3-view + all-field sort per tab (TK-10703)
  735. b439ff0 2026-08-18 licensed-agents: add 3-view + all-field sort (TK-10703)
  736. 3971e26 2026-08-18 residential-brokers: add 3-view (grid/list/table) + all-field sort + collapsed rails (TK-10703)
  737. 132b8b7 2026-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
  738. 5d50017 2026-08-18 CRCP filters: fan responsive filter-modal to deals-flow + contractors; sparse (<=2 section) pages start expanded
  739. 2681078 2026-08-18 contractors: always show email alongside phone (TK-10703)
  740. a7b1904 2026-08-18 loan-officers: always show phone+email (TK-10703)
  741. 352846c 2026-08-18 licensed-agents: always show agent phone+email (TK-10703)
  742. 853e086 2026-08-18 licensed: always show professional phone+email (TK-10703)
  743. f97fd3d 2026-08-18 CRCP filters: responsive hybrid (collapsed rail desktop / ⚙ Filters modal mobile) + grid/list/table + all-sortable on fha-leads.html
  744. 90f3954 2026-08-18 residential-brokers: always show broker phone+email (TK-10703)
  745. ebdd253 2026-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
  746. 8949491 2026-08-18 CRCP: add WESTMAC broker-direct listings feed + cron (yoloforever cycle 3)
  747. fcfd72b 2026-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)
  748. dbe3051 2026-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
  749. 8cdf838 2026-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
  750. 30278bc 2026-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)
  751. 0914826 2026-08-18 snapshot before CRCP UI standardization
  752. b648ef9 2026-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)
  753. 8215dbe 2026-08-18 CRCP: real phone reveal — resolve broker/firm phone+email+website from usre, inline in agent cell + Has phone/email filters (TK-10687)
  754. 884b8b7 2026-08-18 CRCP root: center the top chat bar (constrained width, centered chips)
  755. 376087d 2026-08-18 CRCP root: add working client-side NL chat bar at top + remove Top-brokers people panel on load (show properties)
  756. e53f98e 2026-08-18 CRCP: move financing scenario control (25%/30%/All cash) from top nav into left filter drawer
  757. fbbc9ea 2026-08-18 auto-data-snapshot: 2026-08-18T15:36:46 (2 data files) — data/crcp-drift-state.json data/latest.json
  758. 5a58384 2026-08-18 boom-records: refresh (+3 verified leads: Aventura, NAI Vegas, Whitestone)
  759. cb3bbcc 2026-08-18 boom-records: clean junk placeholder phones (777/666/999-xxxx) from record + sheet
  760. 568a6e1 2026-08-18 boom-records: durable record of 699 contact additions to Boom Spreadsheet 2.0 (2026-08-18)
  761. 5d89be8 2026-08-18 CRCP mls chat: example chips + unwarrantable/non-QM/condo terms (TK-10698)
  762. 938bfff 2026-08-18 CRCP mls: natural-language chat bar across the top (TK-10698)
  763. d1b8c3d 2026-08-18 CRCP mls: admin default 4-unit multifamily + persist-filters-on-every-change + contact columns (TK-10687)
  764. 4c32dfd 2026-08-18 afternoon CRE update 2026-08-18
  765. 0709a68 2026-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
  766. 687eef0 2026-08-18 auto-data-snapshot: 2026-08-18T12:24:13 (1 data files) — data/condos-redfin.json
  767. 7412b45 2026-08-18 mls.html: split load-vs-render catch so errors stop mislabeling (DTD 5/5+contrarian)
  768. d6f3dbf 2026-08-18 Apply credential-safe fetch wrapper fleet-wide (22 CRCP pages)
  769. 9885970 2026-08-18 CRE: reroute fetch-sfr-redfin off Browserbase to local Chrome ($0)
  770. 9ac1e11 2026-08-18 Fix mls.html empty grid: relative fetch() threw on credentialed baseURI
  771. 74d6c6e 2026-08-18 auto-data-snapshot: 2026-08-18T11:49:58 (2 data files) — data/condo-brokers.json data/condos-redfin.json
  772. 6c792a9 2026-08-18 CRE: reroute condo scrapers off Browserbase to local real Chrome ($0)
  773. fd084c5 2026-08-18 auto-data-snapshot: 2026-08-18T09:42:51 (2 data files) — data/crcp-drift-state.json data/latest.json
  774. c7e71e1 2026-08-18 chore: v0.18.6 — mls.html flash-then-blank fix + search perf (session close)
  775. 9c57dd2 2026-08-18 auto-data-snapshot: 2026-08-18T07:09:42 (1 data files) — data/alerts-state.json
  776. d2d609a 2026-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
  777. 94afeb7 2026-08-18 auto-data-snapshot: 2026-08-18T06:08:57 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  778. d0a6a7b 2026-08-18 auto-data-snapshot: 2026-08-18T05:38:34 (1 data files) — data/listings.json
  779. 296d573 2026-08-18 auto-data-snapshot: 2026-08-18T04:37:55 (2 data files) — data/brokers-snapshot.json data/ranked.json
  780. e7b8a26 2026-08-18 auto-data-snapshot: 2026-08-18T03:37:22 (2 data files) — data/crcp-drift-state.json data/latest.json
  781. edc2f15 2026-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
  782. a2fb610 2026-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)
  783. 8e72c30 2026-08-17 auto-data-snapshot: 2026-08-17T21:33:20 (2 data files) — data/crcp-drift-state.json data/latest.json
  784. 9106ef2 2026-08-17 CRCP: gitignore CTA/screenrecord debug artifacts + scratch pngs (repo hygiene, yoloforever cycle 2)
  785. d3395bc 2026-08-17 mls.html: agent-discover writes back to the row (searchable), not just the DOM
  786. c630a2d 2026-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
  787. 80e7660 2026-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
  788. 58d7a29 2026-08-17 mls.html: fix "data flashes then blank body" — kill boot() location.reload()
  789. 926630a 2026-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)
  790. 7e0658e 2026-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
  791. 890dbe1 2026-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
  792. 5a913c4 2026-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)
  793. 2bae93c 2026-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'
  794. 6b78658 2026-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)
  795. 6d85d99 2026-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)
  796. df04724 2026-08-17 CRCP listings: add Full-width toggle (hide rail, span page) + prominent Download CSV button in a results toolbar
  797. c3832ac 2026-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
  798. d542e17 2026-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)
  799. 6a61f29 2026-08-17 CRCP listings: stage price/units/year filters behind a Go button (apply on click or Enter, not per-keystroke)
  800. b36a4de 2026-08-17 CRCP listings + just-listed: add Max units (and Units/size min+max + built after/before on mls) to match the main grid
  801. 706f95a 2026-08-17 CRCP properties: add Max units + Built-before to the units/size filter (min AND max bounds)
  802. 7c44543 2026-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
  803. 6c979c5 2026-08-17 auto-data-snapshot: 2026-08-17T15:29:38 (2 data files) — data/crcp-drift-state.json data/latest.json
  804. 7aa62a3 2026-08-17 afternoon CRE update 2026-08-17
  805. 683a8d9 2026-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
  806. b7f06c8 2026-08-17 auto-data-snapshot: 2026-08-17T09:25:02 (2 data files) — data/crcp-drift-state.json data/latest.json
  807. 6a0f8f1 2026-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
  808. 25a10d2 2026-08-17 auto-data-snapshot: 2026-08-17T07:02:20 (1 data files) — data/alerts-state.json
  809. ea56bc7 2026-08-17 snapshot before restart: preserve in-flight work (auto-saved by /restart pre-reboot)
  810. 3b33a19 2026-08-17 weekly unwarrantable-condos report 2026-08-17
  811. 39bc1c2 2026-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
  812. 9f385ac 2026-08-17 auto-data-snapshot: 2026-08-17T06:00:57 (3 data files) — data/listings.json data/qwen-cache.json data/ranked.json
  813. 6e27a47 2026-08-17 auto-data-snapshot: 2026-08-17T05:30:33 (1 data files) — data/listings.json
  814. 3906747 2026-08-17 weekly Crexi refresh 2026-08-17
  815. 1e4482c 2026-08-17 auto-data-snapshot: 2026-08-17T04:29:37 (2 data files) — data/brokers-snapshot.json data/ranked.json
  816. b05f2aa 2026-08-17 auto-data-snapshot: 2026-08-17T00:56:32 (2 data files) — data/crcp-drift-state.json data/latest.json
  817. f529b1b 2026-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
  818. e199868 2026-08-16 auto-data-snapshot: 2026-08-16T18:51:05 (2 data files) — data/crcp-drift-state.json data/latest.json
  819. 81d50e5 2026-08-16 auto-data-snapshot: 2026-08-16T13:27:22 (2 data files) — data/crcp-drift-state.json data/latest.json
  820. 5166170 2026-08-16 afternoon CRE update 2026-08-16
  821. b90719b 2026-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
  822. e9c97ba 2026-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
  823. bd2c990 2026-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
  824. 549c6dd 2026-08-16 auto-data-snapshot: 2026-08-16T05:51:39 (1 data files) — data/listings.json
  825. 1fb0b52 2026-08-16 auto-data-snapshot: 2026-08-16T04:20:17 (2 data files) — data/brokers-snapshot.json data/ranked.json
  826. a02cb8f 2026-08-16 auto-data-snapshot: 2026-08-16T01:17:41 (2 data files) — data/crcp-drift-state.json data/latest.json
  827. 4dcd231 2026-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
  828. 5130c89 2026-08-16 auto-data-snapshot: 2026-08-16T00:16:53 (1 data files) — data/condos-redfin.json
  829. d673ce6 2026-08-15 auto-data-snapshot: 2026-08-15T19:12:38 (2 data files) — data/crcp-drift-state.json data/latest.json
  830. eb7356f 2026-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
  831. 923cb8a 2026-08-15 auto-data-snapshot: 2026-08-15T18:22:11 (1 data files) — data/condos-redfin.json
  832. 49b7f02 2026-08-15 auto-data-snapshot: 2026-08-15T15:50:00 (1 data files) — package-lock.json
  833. dea1668 2026-08-15 chore: v0.18.5 (session close — name-method broker classifier)
  834. 7b0095a 2026-08-15 auto-data-snapshot: 2026-08-15T15:19:36 (2 data files) — data/crcp-drift-state.json data/latest.json
  835. e936a26 2026-08-15 afternoon CRE update 2026-08-15
  836. e0a2ed3 2026-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
  837. 2fded81 2026-08-15 auto-data-snapshot: 2026-08-15T12:16:23 (1 data files) — data/condos-redfin.json
  838. 14d6a67 2026-08-15 auto-data-snapshot: 2026-08-15T09:13:26 (2 data files) — data/crcp-drift-state.json data/latest.json
  839. 697537a 2026-08-15 auto-data-snapshot: 2026-08-15T07:11:28 (1 data files) — data/alerts-state.json
  840. bb829b9 2026-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
  841. b303af1 2026-08-15 auto-data-snapshot: 2026-08-15T06:10:16 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  842. 54f3e8d 2026-08-15 auto-data-snapshot: 2026-08-15T05:39:53 (1 data files) — data/listings.json
  843. 6c018ce 2026-08-15 auto-data-snapshot: 2026-08-15T04:38:51 (2 data files) — data/brokers-snapshot.json data/ranked.json
  844. 8faa776 2026-08-15 auto-data-snapshot: 2026-08-15T03:07:36 (2 data files) — data/crcp-drift-state.json data/latest.json
  845. 5e2578e 2026-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
  846. 12c4bed 2026-08-14 auto-data-snapshot: 2026-08-14T21:32:21 (2 data files) — data/crcp-drift-state.json data/latest.json
  847. 3693213 2026-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
  848. f28dbf2 2026-08-14 auto-data-snapshot: 2026-08-14T15:27:10 (2 data files) — data/crcp-drift-state.json data/latest.json
  849. 6cac131 2026-08-14 afternoon CRE update 2026-08-14
  850. b01c0e8 2026-08-14 auto-data-snapshot: 2026-08-14T12:54:45 (1 data files) — data/brokers-snapshot.json
  851. 780b470 2026-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
  852. d79654c 2026-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
  853. 69b35cf 2026-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
  854. acf2903 2026-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)
  855. a4fac77 2026-08-14 auto-data-snapshot: 2026-08-14T09:20:46 (2 data files) — data/crcp-drift-state.json data/latest.json
  856. ce0e522 2026-08-14 auto-data-snapshot: 2026-08-14T07:18:58 (1 data files) — data/alerts-state.json
  857. 646f4e4 2026-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
  858. 11e31f1 2026-08-14 auto-data-snapshot: 2026-08-14T05:47:36 (1 data files) — data/listings.json
  859. 070d042 2026-08-14 auto-data-snapshot: 2026-08-14T04:16:15 (2 data files) — data/brokers-snapshot.json data/ranked.json
  860. 24e8059 2026-08-14 auto-data-snapshot: 2026-08-14T03:15:23 (2 data files) — data/crcp-drift-state.json data/latest.json
  861. 8767b5c 2026-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
  862. fc4ff3e 2026-08-14 auto-data-snapshot: 2026-08-14T00:12:33 (1 data files) — data/condos-redfin.json
  863. 2c46726 2026-08-13 auto-data-snapshot: 2026-08-13T21:10:05 (2 data files) — data/crcp-drift-state.json data/latest.json
  864. 4248256 2026-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
  865. 2ea2f85 2026-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
  866. 30b1785 2026-08-13 auto-data-snapshot: 2026-08-13T15:35:02 (2 data files) — data/crcp-drift-state.json data/latest.json
  867. 3c50a81 2026-08-13 afternoon CRE update 2026-08-13
  868. b83f4e8 2026-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
  869. fb2a46f 2026-08-13 CRCP: residential broker/firm directory proxied from usre (asset_class=residential) as Frank's lending-lead source (Node C, TK-10535)
  870. 8437e2e 2026-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
  871. ded628b 2026-08-13 chore: untrack crcp-grid .pre-3view.bak backups (TK-10526; kept on disk, *.bak gitignored)
  872. 6c1c45b 2026-08-13 auto-data-snapshot: 2026-08-13T09:23:12 (2 data files) — data/crcp-drift-state.json data/latest.json
  873. c799485 2026-08-13 chore: v0.18.4 (session close — TK-10526 three-view.js fix)
  874. f86719c 2026-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
  875. ff880e5 2026-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
  876. 242d569 2026-08-13 nav-agent: v1.1 merge-mode asset refresh
  877. b36efec 2026-08-13 mls.html: add compact-list view (3rd mode) — grid/list/table + all-col sort; property-history modal + shortlist + facets/search/pagination preserved
  878. ca654ac 2026-08-13 broker-grid.html: add compact-list view (3rd mode) — grid/list/table + all-col sort; contact modal + find-email + facets/search preserved
  879. badc059 2026-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
  880. 680d442 2026-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
  881. 3fd8465 2026-08-13 auto-data-snapshot: 2026-08-13T07:20:35 (1 data files) — data/alerts-state.json
  882. ab5e01b 2026-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
  883. c435a36 2026-08-13 auto-data-snapshot: 2026-08-13T05:48:41 (1 data files) — data/listings.json
  884. d303214 2026-08-13 auto-data-snapshot: 2026-08-13T04:16:27 (2 data files) — data/brokers-snapshot.json data/ranked.json
  885. f524c7a 2026-08-13 auto-data-snapshot: 2026-08-13T03:15:18 (2 data files) — data/crcp-drift-state.json data/latest.json
  886. 0d936b3 2026-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
  887. bb9acf6 2026-08-13 auto-data-snapshot: 2026-08-13T00:12:07 (1 data files) — data/condos-redfin.json
  888. 41b75c8 2026-08-12 auto-data-snapshot: 2026-08-12T21:09:16 (2 data files) — data/crcp-drift-state.json data/latest.json
  889. a52098f 2026-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
  890. 050e87c 2026-08-12 auto-data-snapshot: 2026-08-12T15:31:57 (2 data files) — data/crcp-drift-state.json data/latest.json
  891. 8f91e90 2026-08-12 afternoon CRE update 2026-08-12
  892. 7725813 2026-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
  893. 9bc8bba 2026-08-12 crcp: send scoped Basic auth to usre contractor API (TK-10488)
  894. 7deca8f 2026-08-12 Add "Contractors for this deal" surface (TK-10488)
  895. c98c3fe 2026-08-12 auto-data-snapshot: 2026-08-12T09:25:42 (2 data files) — data/crcp-drift-state.json data/latest.json
  896. 2baa93b 2026-08-12 auto-data-snapshot: 2026-08-12T08:54:38 (1 data files) — package-lock.json
  897. 59e0054 2026-08-12 chore: bump v0.18.2 → v0.18.3 (session close)
  898. 6926884 2026-08-12 just-listed: harden esc() against attribute-breakout XSS + fix CSV var shadow + Escape-to-close picker (session-close review)
  899. 60799a1 2026-08-12 crcp parcel detail: safeHref protocol whitelist (XSS fix) + drop dead deal_city drill → plain text (TK-10482 contrarian blockers)
  900. 9cde5e2 2026-08-12 crcp: full property→parcel/deal DETAIL drill-down (TK-10482)
  901. de54b6d 2026-08-12 just-listed: add CSV export of current filtered/sorted view (visible columns)
  902. 6d53e85 2026-08-12 auto-data-snapshot: 2026-08-12T07:20:53 (1 data files) — data/alerts-state.json
  903. 373b3d1 2026-08-12 just-listed: add drag-to-reorder columns + persisted column order
  904. ae59100 2026-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
  905. 79eab8f 2026-08-12 auto-data-snapshot: 2026-08-12T05:48:07 (1 data files) — data/listings.json
  906. 9caf9c2 2026-08-12 auto-data-snapshot: 2026-08-12T04:15:31 (2 data files) — data/brokers-snapshot.json data/ranked.json
  907. 3853ced 2026-08-12 auto-data-snapshot: 2026-08-12T03:13:39 (2 data files) — data/crcp-drift-state.json data/latest.json
  908. e03462f 2026-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
  909. e9ffcec 2026-08-11 auto-data-snapshot: 2026-08-11T21:34:15 (2 data files) — data/crcp-drift-state.json data/latest.json
  910. c726ac9 2026-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
  911. 0b7153f 2026-08-11 auto-data-snapshot: 2026-08-11T15:24:21 (2 data files) — data/crcp-drift-state.json data/latest.json
  912. 2ff6971 2026-08-11 just-listed: card grid → sortable, removable-column list view
  913. 9250ac0 2026-08-11 afternoon CRE update 2026-08-11
  914. 87a6b5b 2026-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
  915. 5d02d36 2026-08-11 auto-data-snapshot: 2026-08-11T12:16:13 (1 data files) — data/condos-redfin.json
  916. 5348243 2026-08-11 auto-data-snapshot: 2026-08-11T09:10:52 (2 data files) — data/crcp-drift-state.json data/latest.json
  917. 1cb6f56 2026-08-11 auto-data-snapshot: 2026-08-11T07:04:50 (1 data files) — data/alerts-state.json
  918. 3f2a21d 2026-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
  919. 3f3db94 2026-08-11 auto-data-snapshot: 2026-08-11T06:02:59 (2 data files) — data/qwen-cache.json data/ranked.json
  920. ffe0bfd 2026-08-11 auto-data-snapshot: 2026-08-11T05:32:12 (1 data files) — data/listings.json
  921. 6217eca 2026-08-11 auto-data-snapshot: 2026-08-11T04:29:53 (2 data files) — data/brokers-snapshot.json data/ranked.json
  922. ee026af 2026-08-11 auto-data-snapshot: 2026-08-11T03:28:16 (2 data files) — data/crcp-drift-state.json data/latest.json
  923. d987b35 2026-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
  924. f230ff3 2026-08-10 auto-data-snapshot: 2026-08-10T21:18:09 (2 data files) — data/crcp-drift-state.json data/latest.json
  925. 6acbf44 2026-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
  926. 8ebb51a 2026-08-10 auto-data-snapshot: 2026-08-10T18:13:07 (1 data files) — data/condos-redfin.json
  927. cf6d579 2026-08-10 auto-data-snapshot: 2026-08-10T15:07:00 (2 data files) — data/crcp-drift-state.json data/latest.json
  928. 528cc61 2026-08-10 afternoon CRE update 2026-08-10
  929. fd9e895 2026-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
  930. 2b6ebe4 2026-08-10 auto-data-snapshot: 2026-08-10T09:25:36 (2 data files) — data/crcp-drift-state.json data/latest.json
  931. 517d774 2026-08-10 auto-data-snapshot: 2026-08-10T07:21:36 (1 data files) — data/alerts-state.json
  932. 73aeb31 2026-08-10 weekly unwarrantable-condos report 2026-08-10
  933. af4cc46 2026-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
  934. c875bb1 2026-08-10 auto-data-snapshot: 2026-08-10T05:48:56 (1 data files) — data/listings.json
  935. fc2aed0 2026-08-10 weekly Crexi refresh 2026-08-10
  936. b191690 2026-08-10 auto-data-snapshot: 2026-08-10T04:16:24 (2 data files) — data/brokers-snapshot.json data/ranked.json
  937. 570abb6 2026-08-10 auto-data-snapshot: 2026-08-10T03:14:37 (2 data files) — data/crcp-drift-state.json data/latest.json
  938. fdfd047 2026-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
  939. bdb0ed8 2026-08-09 auto-data-snapshot: 2026-08-09T21:04:23 (2 data files) — data/crcp-drift-state.json data/latest.json
  940. 2c35765 2026-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
  941. 96edc69 2026-08-09 auto-data-snapshot: 2026-08-09T15:25:36 (2 data files) — data/crcp-drift-state.json data/latest.json
  942. f5e95c6 2026-08-09 afternoon CRE update 2026-08-09
  943. c991bf8 2026-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
  944. 648aa79 2026-08-09 auto-data-snapshot: 2026-08-09T09:15:44 (2 data files) — data/crcp-drift-state.json data/latest.json
  945. 29c95e5 2026-08-09 auto-data-snapshot: 2026-08-09T07:12:34 (1 data files) — data/alerts-state.json
  946. 322c625 2026-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
  947. 578a94d 2026-08-09 auto-data-snapshot: 2026-08-09T06:09:59 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  948. f44ca21 2026-08-09 auto-data-snapshot: 2026-08-09T05:39:14 (1 data files) — data/listings.json
  949. 1affbbd 2026-08-09 auto-data-snapshot: 2026-08-09T04:37:25 (2 data files) — data/brokers-snapshot.json data/ranked.json
  950. e913866 2026-08-09 auto-data-snapshot: 2026-08-09T03:04:53 (2 data files) — data/crcp-drift-state.json data/latest.json
  951. 1959c3b 2026-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
  952. ea1fbe4 2026-08-08 auto-data-snapshot: 2026-08-08T21:25:10 (2 data files) — data/crcp-drift-state.json data/latest.json
  953. a68b857 2026-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
  954. 3f6478f 2026-08-08 auto-data-snapshot: 2026-08-08T18:20:18 (1 data files) — data/condos-redfin.json
  955. af00f81 2026-08-08 auto-data-snapshot: 2026-08-08T15:15:29 (2 data files) — data/crcp-drift-state.json data/latest.json
  956. 40a6aa4 2026-08-08 afternoon CRE update 2026-08-08
  957. 472a919 2026-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
  958. a334a01 2026-08-08 auto-data-snapshot: 2026-08-08T12:10:19 (1 data files) — data/condos-redfin.json
  959. c6f5cc2 2026-08-08 auto-data-snapshot: 2026-08-08T09:04:57 (2 data files) — data/crcp-drift-state.json data/latest.json
  960. eb909b2 2026-08-08 chore: gitignore crcp-live-*.png review artifacts
  961. 61d504f 2026-08-08 TK-10330 chore: drop review screenshots/.playwright-mcp from tree + gitignore them (auto-snapshot cron had picked them up)
  962. 97ff1c7 2026-08-08 crcp: give FHA-approved tile a data-href fallback (keeps modal on left-click)
  963. 6c1cc89 2026-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
  964. 86a0499 2026-08-08 TK-10330 CRCP flagship layout redesign — industry-grade (Four Horsemen/graphic-agent panel)
  965. af6cf04 2026-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
  966. 49756ee 2026-08-08 TK-10358 yoloforever c2: free/$0 profile enrichment of 8 needs_enrichment contacts (SURMOUNT x5, Zubia, Kurinets, Pomer) — reachability 41->48/50
  967. a035ec1 2026-08-08 auto-data-snapshot: 2026-08-08T07:24:16 (1 data files) — data/alerts-state.json
  968. f8cd5cc 2026-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
  969. 7f08882 2026-08-08 TK-10358 yoloforever c1: add 3 CONFIRMED-email tail contacts to outreach drafts (sends gated)
  970. a25d5aa 2026-08-08 TK-10358: finish CRE marketing-exec lead tail (ind-06+ind-08 research) + reconcile MASTER to 54 named contacts
  971. b0eba5b 2026-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
  972. 6be0098 2026-08-08 auto-data-snapshot: 2026-08-08T06:23:20 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  973. 06d6774 2026-08-08 auto-data-snapshot: 2026-08-08T05:52:59 (1 data files) — data/listings.json
  974. 2cb678e 2026-08-08 auto-data-snapshot: 2026-08-08T05:21:14 (2 data files) — data/crcp-drift-state.json data/latest.json
  975. c0b6943 2026-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
  976. 6ce6fa6 2026-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
  977. 7fa1abc 2026-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
  978. ad59feb 2026-08-07 CRE leads: wide sweep chunks 1-4 (72 firms) - +8 marketing contacts (Zacuto, Sperry, Ingenious, Pinnacle, Ed Koenig, Equity Union, IREA)
  979. 39844e4 2026-08-07 auto-data-snapshot: 2026-08-07T17:58:34 (2 data files) — data/crcp-drift-state.json data/latest.json
  980. 7a5e829 2026-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
  981. 1229a73 2026-08-07 mls + properties grid: Day theme default (fresh key), Fields panel to top+expanded, panel drag-to-reorder columns
  982. 7c4d9f3 2026-08-07 CRE leads: Lead Desk viewer (sortable grid + density + filters + drill-down, auth)
  983. abab627 2026-08-07 CRE leads: personalized outreach queue (drafts only, sends gated) - 30 contacts tiered by channel
  984. 03c9c5a 2026-08-07 condos: Day theme default via fresh key, persist only on explicit toggle
  985. e3e5a8f 2026-08-07 crcp deploy: exclude runtime solicitation-drafts.jsonl from rsync --delete
  986. 7553ed1 2026-08-07 CRE leads: full email enrichment (free web patterns + local qwen3 inference), Mogharebi resolved; $0
  987. 4ea459d 2026-08-07 graphics: point warrantability 'expiring' tiles at the new pre-filtered deep-links
  988. f19da0e 2026-08-07 condos: renewal-outreach tooling — wider expiring buckets, CSV export, draft outreach
  989. e288be3 2026-08-07 CRE leads: enrich master with 9 direct-dial/email contacts + resolve 4 flagged names + outreach drafts
  990. 56e5e81 2026-08-07 CRE marketing-exec leads: seed + master contact list (name+phone) for 20 majors + regionals
  991. e8f05ab 2026-08-07 condos: add Contact-ready outreach chip + 'FHA expires soonest' sort preset
  992. c25ae4d 2026-08-07 condos: add date-based quick-filter chips (Expiring ≤90d / Lapsed ≤180d)
  993. 0f76d8b 2026-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
  994. 41ae00f 2026-08-07 condos: add color-coded 'Days to expiry' field (live calc from FHA expiration)
  995. 4edfac9 2026-08-07 condos: surface FHA expiration date as a toggleable grid column
  996. c992532 2026-08-07 CRCP: fleet-wide day/night toggle + legibility pass across all pages
  997. 1cb56be 2026-08-07 condos: rework colors for legibility + add day/night toggle
  998. 4a7febc 2026-08-07 afternoon CRE update 2026-08-07
  999. 9059b96 2026-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
  1000. 2a90b16 2026-08-07 auto-data-snapshot: 2026-08-07T11:47:33 (2 data files) — data/crcp-drift-state.json data/latest.json
  1001. 2bb224e 2026-08-07 security: swap xlsx 0.18.5 → SheetJS CDN 0.20.3 (clears HIGH GHSA-4r6h/5pgg; audit=0 vulns, XLSX.read verified)
  1002. d844cd6 2026-08-07 auto-data-snapshot: 2026-08-07T08:00:20 (1 data files) — package-lock.json
  1003. 7b78472 2026-08-07 CPRA deed-source scaffold + draft request (dormant) + deals-flow→/property nav link; v0.18.2
  1004. a6093d9 2026-08-07 auto-data-snapshot: 2026-08-07T07:29:27 (2 data files) — data/alerts-state.json package-lock.json
  1005. 0f9ec8b 2026-08-07 add standalone /property public-record lookup page (reuses cached assessor+ULA endpoints); v0.18.1
  1006. e82c03c 2026-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
  1007. b5312a7 2026-08-07 auto-data-snapshot: 2026-08-07T06:27:13 (3 data files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  1008. 5d5af11 2026-08-07 auto-data-snapshot: 2026-08-07T05:56:28 (3 data files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1009. 2a9f7af 2026-08-07 auto-data-snapshot: 2026-08-07T04:23:46 (2 data files) — data/brokers-snapshot.json data/ranked.json
  1010. aab6e2d 2026-08-07 a11y(corner-nav): focus trap, arrow-key nav, dialog ARIA roles, keyboard accordion (TK-10324)
  1011. 9fe920b 2026-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
  1012. d1f4669 2026-08-07 auto-data-snapshot: 2026-08-07T00:16:37 (1 data files) — data/condos-redfin.json
  1013. e47889b 2026-08-06 auto-data-snapshot: 2026-08-06T23:45:50 (2 data files) — data/crcp-drift-state.json data/latest.json
  1014. 4465962 2026-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
  1015. 4180a97 2026-08-06 property lookup: disambiguate from grid-filter search (Cody Cycle-4 UX fix)
  1016. 899eba8 2026-08-06 auto-data-snapshot: 2026-08-06T18:06:44 (2 data files) — data/crcp-drift-state.json data/latest.json
  1017. 1d92fcb 2026-08-06 deals-flow: 'look up any LA property' address box -> dossier (TK-10313 Cycle 4)
  1018. f6db22c 2026-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')
  1019. 59bdb78 2026-08-06 property-detail drill: Cody Cycle-3 fixes (Escape-close + stale-render guard)
  1020. e087624 2026-08-06 deals-flow: property-detail drill — click a county deal -> inline public-record dossier (TK-10313 Cycle 3)
  1021. 2d61ca7 2026-08-06 enrich endpoints: Cody Cycle-2 hardening (timeout + address gate + LRU cache)
  1022. 8e33148 2026-08-06 DSCR Qualifier: add vacancy % + interest-only underwriting levers (R1 completed)
  1023. 03cae43 2026-08-06 CRCP: /api/property/:ain + /api/property/by-address enrichment endpoints (TK-10313 Cycle 2)
  1024. bc720b1 2026-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)
  1025. 8ebbc43 2026-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
  1026. cea4265 2026-08-06 security: npm audit fix — patch body-parser DoS (GHSA-v422-hmwv-36x6), non-breaking
  1027. fccb4e7 2026-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)
  1028. fe2521c 2026-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
  1029. d30373f 2026-08-06 enrich-property: fix Cody-verified field bugs + honest labeling (Cycle 1 revise)
  1030. e515bc5 2026-08-06 CRCP: surface listing.created_at as '🕓 captured <date+time>' chip on broker card rows (admin-card recency rule)
  1031. 4d95c1e 2026-08-06 CRCP: per-property public-record enrichment module (free assessor dossier + ULA + deed-gap decl)
  1032. f05ff59 2026-08-06 CRCP: retry ranked.json fetch-only so success body (12 event listeners) runs once — fixes double-wire regression (Cody HOLE-1)
  1033. 00b8192 2026-08-06 CRCP: soften dev-facing load errors + one-shot auto-retry on ranked.json & broker leads
  1034. bd5c023 2026-08-06 Polish corner nav: type-to-filter search, focus-on-open, current-link scroll, focus restore
  1035. 3814ddc 2026-08-06 Refine corner nav: thoughtful 6-group IA, all sections collapsed, you-are-here marker + counts
  1036. 82c7270 2026-08-06 Fold top tab-bars into the hamburgers; strip horizontal nav from every page header
  1037. 4588a78 2026-08-06 CRCP: add LA City Measure ULA feed — current 2025/2026 LA CRE deals (public record)
  1038. 955b371 2026-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)
  1039. 619dd53 2026-08-06 Add shared two-hamburger corner navigation to every CRCP page
  1040. e8c77da 2026-08-06 docs: LA current-sales sourcing memo (ULA/deeds, public-record only)
  1041. 3d60c86 2026-08-06 Keep DSCR Qualifier on crcp.html only; revert index.html addition
  1042. 750c9b8 2026-08-06 Add DSCR Qualifier to the initial page (index.html) + Frank's lending desk
  1043. 143952a 2026-08-06 deals-flow: map SEC EDGAR filing date to year so 2025/2026 REIT deals surface
  1044. 63a53ca 2026-08-06 afternoon CRE update 2026-08-06
  1045. 3950736 2026-08-06 auto-data-snapshot: 2026-08-06T12:57:07 (1 data files) — data/agent-sites.json
  1046. 3e01427 2026-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
  1047. c95386d 2026-08-06 CRCP auth hardening from security review (TK-10301)
  1048. 1934c92 2026-08-06 CRCP full login: admin+standard roles, per-user private notes, admin console (TK-10301)
  1049. 53717bd 2026-08-06 auto-data-snapshot: 2026-08-06T11:54:28 (2 data files) — data/crcp-drift-state.json data/latest.json
  1050. 9ddd258 2026-08-06 auto-data-snapshot: 2026-08-06T11:23:39 (1 data files) — data/agent-sites.json
  1051. 193f7b3 2026-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
  1052. b0d2cf6 2026-08-06 auto-save: 2026-08-06T07:19:35 (1 files) — data/alerts-state.json
  1053. 8dab231 2026-08-06 auto-save: 2026-08-06T06:49:23 (1 files) — data/residential-report.html
  1054. 1833241 2026-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
  1055. 653a88c 2026-08-06 auto-save: 2026-08-06T05:48:58 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1056. 4fb023b 2026-08-06 auto-save: 2026-08-06T04:18:20 (2 files) — data/brokers-snapshot.json data/ranked.json
  1057. a59e7e1 2026-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
  1058. dbb101e 2026-08-06 auto-save: 2026-08-06T00:16:57 (1 files) — data/condos-redfin.json
  1059. 80a3aab 2026-08-05 auto-save: 2026-08-05T23:46:47 (2 files) — data/crcp-drift-state.json data/latest.json
  1060. 4ebdb2d 2026-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
  1061. 4e142e1 2026-08-05 auto-save: 2026-08-05T18:14:36 (1 files) — data/condos-redfin.json
  1062. ceb365b 2026-08-05 auto-save: 2026-08-05T17:44:25 (2 files) — data/crcp-drift-state.json data/latest.json
  1063. 10c6b65 2026-08-05 afternoon CRE update 2026-08-05
  1064. 34ca7da 2026-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
  1065. 3bd01d5 2026-08-05 docstring: correct enrich-condo-emails to note brand-map-only (no domain guessing) — TK-10243
  1066. f1d23c6 2026-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
  1067. 2bee932 2026-08-05 condos both-sides: buyer-side scraper (Redfin buyingAgents) + /api/condos overlay plumbing — TK-10243
  1068. 115cbb9 2026-08-05 condos.html: add broker/agent contact field toggles (listing agent, phone, office, email, DRE#, responsible broker+address, buyer's side) — TK-10243
  1069. 74c643a 2026-08-05 auto-save: 2026-08-05T07:09:54 (1 files) — data/alerts-state.json
  1070. 24bc7b1 2026-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
  1071. d894a27 2026-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
  1072. 4cbc8d5 2026-08-05 auto-save: 2026-08-05T05:39:25 (1 files) — data/listings.json
  1073. 7272818 2026-08-05 auto-save: 2026-08-05T04:39:04 (2 files) — data/brokers-snapshot.json data/ranked.json
  1074. e873540 2026-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
  1075. 32b9021 2026-08-05 auto-save: 2026-08-05T00:07:36 (2 files) — data/crcp-drift-state.json data/latest.json
  1076. 95bfcd3 2026-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)
  1077. 4e86a95 2026-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
  1078. f846427 2026-08-04 auto-save: 2026-08-04T18:05:34 (2 files) — data/crcp-drift-state.json data/latest.json
  1079. 83ec09b 2026-08-04 afternoon CRE update 2026-08-04
  1080. 8246c7d 2026-08-04 auto-save: 2026-08-04T13:03:31 (2 files) — data/.pre-afternoon-ids.json data/last-refresh.json
  1081. 6437395 2026-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
  1082. 1e8a48d 2026-08-04 auto-save: 2026-08-04T12:03:05 (2 files) — data/crcp-drift-state.json data/latest.json
  1083. b1c6ee8 2026-08-04 auto-save: 2026-08-04T07:00:57 (1 files) — data/alerts-state.json
  1084. f939ee8 2026-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
  1085. 409dd26 2026-08-04 auto-save: 2026-08-04T06:00:27 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1086. 2587ae0 2026-08-04 auto-save: 2026-08-04T04:29:46 (2 files) — data/brokers-snapshot.json data/ranked.json
  1087. f1f9131 2026-08-04 auto-save: 2026-08-04T00:58:37 (1 files) — data/residential-report.html
  1088. 7fca39a 2026-08-04 auto-save: 2026-08-04T00:28:28 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1089. 532e5ba 2026-08-03 auto-save: 2026-08-03T23:58:19 (2 files) — data/crcp-drift-state.json data/latest.json
  1090. 10fa863 2026-08-03 auto-save: 2026-08-03T18:56:31 (1 files) — data/residential-report.html
  1091. f7870dd 2026-08-03 auto-save: 2026-08-03T18:26:20 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1092. 598ded7 2026-08-03 auto-save: 2026-08-03T17:56:09 (2 files) — data/crcp-drift-state.json data/latest.json
  1093. 096bff8 2026-08-03 chore: v0.18.0 (session close) — sort-option chip bar on left panel (Cody-gated), shipped live to crcp
  1094. 1958684 2026-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
  1095. 75aff2f 2026-08-03 afternoon CRE update 2026-08-03
  1096. 3bd9201 2026-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
  1097. 044dfa4 2026-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
  1098. d0c5f86 2026-08-03 chore: lint (global-search clear-on-error), refactor (SEARCH_LIMIT, BB_RATE_PER_MIN consts), v0.17.0 (session close)
  1099. fc0a362 2026-08-03 auto-save: 2026-08-03T12:54:16 (2 files) — data/residential-report.html scripts/serve.js
  1100. ca8094e 2026-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
  1101. 4e78f99 2026-08-03 auto-save: 2026-08-03T12:23:59 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1102. 02f9715 2026-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)
  1103. 7f384b2 2026-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
  1104. ddf3ff7 2026-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
  1105. 1c0e4e4 2026-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
  1106. 92e42fc 2026-08-03 auto-save: 2026-08-03T11:53:46 (3 files) — data/condo-brokers.json data/crcp-drift-state.json data/latest.json
  1107. 1e8ea8f 2026-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
  1108. 5bb6bfb 2026-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
  1109. a5ff4d2 2026-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
  1110. ea6498d 2026-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)
  1111. 8e1bfaa 2026-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
  1112. d3c49a3 2026-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
  1113. 67623f3 2026-08-03 condos: rebuild + send date-ordered all-licenses report (msg 19fc8ce54698cddb)
  1114. 158df08 2026-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
  1115. c0235f6 2026-08-03 index broker-line: tighten DRE link guard /^d{7,8}/ -> /^d{8}/ (Cody: CA DRE licenses are exactly 8 digits)
  1116. 3a9480d 2026-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
  1117. fcd24a8 2026-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)
  1118. a06fde2 2026-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)
  1119. 5d14bae 2026-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
  1120. 0d5ac4f 2026-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)
  1121. c5e6497 2026-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
  1122. 685b210 2026-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
  1123. 864b07c 2026-08-03 broker-grid: esc() now escapes > too (defensive, Cody follow-up) — the reference esc is copied fleet-wide
  1124. 8b81a61 2026-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())
  1125. 64d69b9 2026-08-03 condos viewer: make list-view sticky-column city drillable too (Cody gate — was dead text); clarify drill-handler comment
  1126. aa830f9 2026-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
  1127. e0227f6 2026-08-03 condos viewer: DRY date rendering into fmtDateTime/dateTimeSpan — fix modal date-only regression (Cody gate), guard Invalid Date, ISO in title everywhere
  1128. f7b6b05 2026-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
  1129. 685110b 2026-08-03 chore: lint, refactor (path.join, delete stale note keys), v-minor (per-listing broker + notes + cost-logging) — session close
  1130. 640b812 2026-08-03 fetch-condos-redfin: log Browserbase spend to cost-ledger for AbramsEgo budget tracking
  1131. de3b477 2026-08-03 condos: weekly auto-scrape of NEW-listing brokers (--only-missing) + log Browserbase spend to cost-ledger for AbramsEgo budget tracking
  1132. 3a288f6 2026-08-03 auto-save: 2026-08-03T08:52:19 (1 files) — data/condos-report.html
  1133. 16720d9 2026-08-03 condos-report: overlay persistent broker cache so weekly refresh can't wipe per-listing broker data
  1134. 7faca57 2026-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)
  1135. 7292986 2026-08-03 auto-save: 2026-08-03T08:22:05 (1 files) — data/condos-report.html
  1136. 34b1368 2026-08-03 condos-report: add Frank Thomas (Arcstone Financial) broker/lender contact block to email + viewer
  1137. e8aab68 2026-08-03 auto-save: 2026-08-03T07:21:35 (1 files) — data/alerts-state.json
  1138. 60af93f 2026-08-03 weekly unwarrantable-condos report 2026-08-03
  1139. 9566eab 2026-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
  1140. 1204c18 2026-08-03 auto-save: 2026-08-03T05:50:52 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1141. cca24bd 2026-08-03 weekly Crexi refresh 2026-08-03
  1142. 9a37b09 2026-08-03 auto-save: 2026-08-03T04:20:12 (2 files) — data/brokers-snapshot.json data/ranked.json
  1143. 2e427c5 2026-08-03 auto-save: 2026-08-03T00:49:10 (1 files) — data/residential-report.html
  1144. d1f45d8 2026-08-03 auto-save: 2026-08-03T00:19:00 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1145. 7d1d29d 2026-08-02 auto-save: 2026-08-02T23:48:52 (2 files) — data/crcp-drift-state.json data/latest.json
  1146. 8c17144 2026-08-02 crcp: explicit column list in broker-of-record recorder (satisfy deploy PII-leak lint gate) (TK-10139)
  1147. 9ac5408 2026-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
  1148. 82ed07f 2026-08-02 auto-save: 2026-08-02T18:17:08 (1 files) — data/condos-redfin.json
  1149. 4f04dd8 2026-08-02 auto-save: 2026-08-02T17:46:59 (2 files) — data/crcp-drift-state.json data/latest.json
  1150. cadf9b7 2026-08-02 afternoon CRE update 2026-08-02
  1151. ce5a08d 2026-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
  1152. 8f5b8bf 2026-08-02 auto-save: 2026-08-02T12:15:06 (1 files) — data/condos-redfin.json
  1153. 48b12b7 2026-08-02 auto-save: 2026-08-02T11:44:56 (2 files) — data/crcp-drift-state.json data/latest.json
  1154. b4364f0 2026-08-02 auto-save: 2026-08-02T08:13:37 (1 files) — data/ranked.json
  1155. 089c368 2026-08-02 crcp: drive broker-of-record recorder nightly (TK-10139)
  1156. a4cd3fa 2026-08-02 crcp: checkpoint broker-of-record.sqlite after recorder verification (TK-10139)
  1157. 32d6df5 2026-08-02 crcp: /api/broker-of-record endpoint + Last Broker/Firm of Record columns in mls (TK-10139)
  1158. 2c29246 2026-08-02 chore: v0.15.1 — deals-flow.html blank-grid fix (loadTicker try/catch), session close. Author: steve@designerwallcoverings.com
  1159. 7bd6639 2026-08-02 crcp: append-only broker-of-record history store + recorder + backfill (TK-10139)
  1160. be379e1 2026-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
  1161. 3398919 2026-08-02 auto-save: 2026-08-02T07:43:26 (1 files) — public/deals-flow.html
  1162. 7cb0f03 2026-08-02 auto-save: 2026-08-02T07:13:15 (1 files) — data/alerts-state.json
  1163. c5f3d49 2026-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
  1164. dff33ae 2026-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
  1165. 083e1a8 2026-08-02 auto-save: 2026-08-02T05:42:34 (1 files) — data/listings.json
  1166. 5925db3 2026-08-02 auto-save: 2026-08-02T04:42:12 (1 files) — data/brokers-snapshot.json
  1167. 67153cb 2026-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
  1168. 276701e 2026-08-02 auto-save: 2026-08-02T00:10:36 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json
  1169. 91cb19f 2026-08-01 Adopt column-manager.js into lending-grid.js engine — 5 pages in one edit (TK-10128)
  1170. 4ba8f30 2026-08-01 auto-save: 2026-08-01T22:40:01 (1 files) — public/lending-grid.js
  1171. a01bf5e 2026-08-01 Adopt column-manager.js in gov-agents + sales (TK-10120 sweep)
  1172. 3b9663c 2026-08-01 column-manager: add external-state + footer/hint opts; adopt in mls.html (TK-10120)
  1173. 6710021 2026-08-01 Add reusable column-manager.js drop-in (DTD verdict A — docked rail, TK-10120)
  1174. ab38858 2026-08-01 auto-save: 2026-08-01T21:09:29 (1 files) — package-lock.json
  1175. 03f0159 2026-08-01 chore: lint (node --check ✓) + v0.15.0 (firm-direct deep-links + crexi scrub, session close)
  1176. a04788c 2026-08-01 crcp: Matthews firm-direct recon — no listings JSON XHR (SSR/Next.js, data in __NEXT_DATA__); no cheap crack, deferred (TK-10081)
  1177. a241df1 2026-08-01 condos: normalize junk broker/firm placeholders (N/A etc) to null (yoloforever c8)
  1178. 9cea404 2026-08-01 commercialrealestate: adopt href-to-deeper-data primitives (TK-10093)
  1179. 5413425 2026-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)
  1180. f97798f 2026-08-01 residential: rental-leak floor — drop sub-$25k 'sale' prices from the for-sale SFR feed (yoloforever c7)
  1181. 9951d44 2026-08-01 auto-save: 2026-08-01T20:09:07 (1 files) — public/deals-flow.html
  1182. 57b49b8 2026-08-01 crcp: apply 25 Lyon Stahl firm-direct deep-links (Steve-approved, $0 sitemap) TK-10081
  1183. 68f40f9 2026-08-01 crcp: $0 Lyon Stahl sitemap deep-link harvester — 25/74 clean matches, staged for approval (TK-10081)
  1184. 5f8c270 2026-08-01 crcp: apply 31 Lee firm-direct deep-links to ranked.json (Steve-approved; Browserbase-harvested, agent-corroborated) TK-10081
  1185. 8591e84 2026-08-01 auto-save: 2026-08-01T19:38:57 (1 files) — public/deals-flow.html
  1186. 9101210 2026-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)
  1187. 0914b66 2026-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
  1188. 0add5e5 2026-08-01 auto-save: 2026-08-01T18:08:28 (2 files) — data/crcp-drift-state.json data/latest.json
  1189. 5d5e3ba 2026-08-01 afternoon CRE update 2026-08-01
  1190. 0464fb7 2026-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
  1191. 4b346d1 2026-08-01 auto-save: 2026-08-01T12:06:38 (2 files) — data/crcp-drift-state.json data/latest.json
  1192. 93cb909 2026-08-01 auto-save: 2026-08-01T07:04:40 (1 files) — data/alerts-state.json
  1193. 899f249 2026-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
  1194. fd9c49d 2026-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
  1195. 794843c 2026-08-01 auto-save: 2026-08-01T05:33:46 (1 files) — data/listings.json
  1196. cf50fa9 2026-08-01 auto-save: 2026-08-01T04:33:25 (1 files) — data/brokers-snapshot.json
  1197. 4227281 2026-08-01 crcp: guard property-history popup URLs (expired/comps) against aggregator leaks — closes loose end from graph audit (TK-10081)
  1198. d0a1599 2026-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
  1199. 0dd3b1c 2026-08-01 auto-save: 2026-08-01T00:01:56 (2 files) — data/crcp-drift-state.json data/latest.json
  1200. 0b4a875 2026-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
  1201. 6baa491 2026-07-31 auto-save: 2026-07-31T17:59:58 (2 files) — data/crcp-drift-state.json data/latest.json
  1202. 0d5f471 2026-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)
  1203. ff6c52b 2026-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)
  1204. 3275554 2026-07-31 condos/stats + crcp/stats: re-aggregate warrantability with listingEffectiveWarrant (Cody FIX-FIRST)
  1205. 8607626 2026-07-31 condos: re-derive listing-level warrantability from embedded cert date (yoloforever c5)
  1206. ba2514a 2026-07-31 deals-flow ticker: add reversible dismiss (deselect) control w/ session-scoped restore (DTD verdict C + contrarian constraint)
  1207. 771efe6 2026-07-31 deals-flow ticker: halve default speed, constant read-pace, add stop/resume control
  1208. daf3999 2026-07-31 afternoon CRE update 2026-07-31
  1209. 9e3fedc 2026-07-31 auto-save: 2026-07-31T12:57:59 (1 files) — data/residential-report.html
  1210. 1635fcc 2026-07-31 auto-save: 2026-07-31T12:27:46 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1211. a6365d0 2026-07-31 index.html: fix list-view column resize not persisting (CSS-class sort arrows)
  1212. ebb3d7b 2026-07-31 warrantability: extract fhaEffectiveSignal helper, wire all 3 FHA consumers (Cody FIX-FIRST)
  1213. 8ba940e 2026-07-31 warrantability: reclassify lapsed FHA certs as expired at request time (yoloforever c4)
  1214. ac74530 2026-07-31 auto-save: 2026-07-31T11:57:35 (2 files) — data/crcp-drift-state.json data/latest.json
  1215. b7adfa4 2026-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)
  1216. 889a29c 2026-07-31 deals.html: scored-deal address drills to city-scoped explorer (yoloforever c3)
  1217. 4717288 2026-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
  1218. 2d6cee1 2026-07-31 chore: v0.14.0 (session close) — user sign-in + personalization + news ticker + Just Listed page
  1219. 3c6f198 2026-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
  1220. b80ef48 2026-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
  1221. ed3c633 2026-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
  1222. 1c3f373 2026-07-31 crcp list pages: resize handles survive sort/search re-render (5 pages)
  1223. 9865336 2026-07-31 col-resize: don't enhance/pin HIDDEN tables (fleet regression fix)
  1224. b8c63bc 2026-07-31 crcp: make all stat tiles + enrichment bars drill to their filtered-list views
  1225. df8a26f 2026-07-31 harden esc(): escape > as well as & < " (condos + crcp)
  1226. 653c5c9 2026-07-31 condos detail modal: broker/firm fields drill to crcp (TK-10091 cycle 2)
  1227. 6aeef28 2026-07-31 CRCP: harden auth surface (yolo iter 1) — login rate-limit + form semantics + ticker a11y
  1228. ba57a25 2026-07-31 crcp Panel 7: add 6/12/24-month window toggle (persisted, re-queries /api/fha-expiring; h3 + count update live)
  1229. 97887fa 2026-07-31 CRCP lending layer: wire Lending into CRCP nav, mark NCUA/HMDA/SBA live in source register, tidy hub
  1230. 792f070 2026-07-31 CRCP lending layer: SBA lenders dataset (TK-10090)
  1231. 8c86e80 2026-07-31 CRCP lending layer: NCUA credit unions dataset (TK-10090)
  1232. c95a76a 2026-07-31 CRCP lending layer: HMDA mortgage-market dataset (TK-10090)
  1233. 75dfa64 2026-07-31 auto-save: 2026-07-31T10:57:10 (1 files) — public/crcp.html
  1234. ef3c162 2026-07-31 graphics-drill-assert: env-overridable BASE (crcp app port moves)
  1235. c998e22 2026-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
  1236. 384b541 2026-07-31 CRCP: Just Listed active-inventory page (just-listed.html) + nav link
  1237. 84529ce 2026-07-31 CRCP lending layer: hub page + compliance-gated loan-officers surface + data policy/source register
  1238. e25aad3 2026-07-31 crcp: drilldown on Warrantability (FHA proxy) — bars + tile open filtered condo list
  1239. f5e7a1a 2026-07-31 crcp graphics.html: make every datum drillable (TK-10091)
  1240. ed0652f 2026-07-31 Fix broker-grid column resize (adjust column not working)
  1241. 22eb700 2026-07-31 CRCP lending layer: FDIC lenders slice — 95 banks w/ LA-County branches + 1414 branches, generic config-driven grid engine, /api/lending route
  1242. 459008e 2026-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
  1243. 25ec39f 2026-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.
  1244. 52f46ca 2026-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.
  1245. 76508c9 2026-07-31 crcp /api/firm: dedupe current/closed/expired by address+city (DB-path parity with snapshot)
  1246. ee6f9c4 2026-07-31 CRCP modals: graceful no-coverage state + modal-open telemetry (DTD-C rider)
  1247. ddf2b47 2026-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
  1248. 94b5bba 2026-07-31 nav: add 💰 Deal Flow link (home + mls) — board now discoverable; DTD-verdict finisher, redeployed + live-verified
  1249. eceeb41 2026-07-31 chore: v0.13.0 — broker mind-map feature + firm/broker cleanup (session close)
  1250. 4b53908 2026-07-31 deal-flow: broaden county source to commercial+industrial+institutional (not just multifamily) — 15k->22k deals, $34.9B->$64.2B; redeployed + live-verified
  1251. 610cbf0 2026-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)
  1252. 0b38180 2026-07-31 auto-save: 2026-07-31T09:56:41 (1 files) — .deploy.conf
  1253. 8bc12cc 2026-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)
  1254. e4f907d 2026-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
  1255. 94bdca5 2026-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)
  1256. d6175f2 2026-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
  1257. 342556f 2026-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
  1258. c0a2efa 2026-07-31 crcp: draft gated cleanup script — firm case-merge + null-firm broker dedup (conflict-safe, backup-first; not executed)
  1259. 4c2ac2a 2026-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
  1260. fe58f9e 2026-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
  1261. 7c67770 2026-07-31 broker mind-map: add firm-relationship graph (/api/graph?history=1)
  1262. add9ada 2026-07-31 CRCP list sweep (round 2): deferred pages + Explorer flagship
  1263. 4efa70a 2026-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/
  1264. 439898b 2026-07-31 CRCP list sweep: apply 7-control list-UX standard to sibling pages
  1265. 5c7d62c 2026-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
  1266. cfbe503 2026-07-31 broker-grid: nulls-last sort so sparse columns (Company/Firm) don't front-load a wall of —; add Mindmap nav entry
  1267. ea76efd 2026-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)
  1268. 982582e 2026-07-31 broker-grid: tight-default columns, drag-to-reorder, search all fields
  1269. 73d873b 2026-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
  1270. a70ff5b 2026-07-31 research: MLS/listing data licensing — cost + B2B-use verdict (IDX display-only; B2B needs commercial license; public records are the usable core)
  1271. 4de252a 2026-07-31 doctrine refined: CREXi/Redfin = discover broker+firm ONLY; all listing DATA from the firm's own site (Steve 2026-07-31)
  1272. ccaba2e 2026-07-31 doctrine HARD RULE: an aggregator is never a data source — kill the Redfin residential-broker scrape (Steve 2026-07-31)
  1273. 40ef73d 2026-07-31 docs: residential (Redfin) sourcing section — writeback path + cost + baseline
  1274. 3f752e8 2026-07-31 viewer: Brokerage left-rail facet — filter deals by listing broker-of-record (Amazon-style)
  1275. 3d69f5c 2026-07-31 auto-save: 2026-07-31T07:25:03 (1 files) — data/alerts-state.json
  1276. 4a78abf 2026-07-31 auto-save: 2026-07-31T06:54:53 (1 files) — data/residential-report.html
  1277. bcfaba1 2026-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
  1278. 5382031 2026-07-31 Phase 2-lite: resolve broker-of-record for 1696 aggregator-only deals + broker's-own-site deep-links
  1279. b578692 2026-07-31 auto-save: 2026-07-31T05:54:17 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1280. 6007ead 2026-07-31 auto-save: 2026-07-31T04:23:41 (1 files) — data/brokers-snapshot.json
  1281. 65aa231 2026-07-31 auto-save: 2026-07-31T00:52:31 (1 files) — data/residential-report.html
  1282. fff1c01 2026-07-31 auto-save: 2026-07-31T00:22:20 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1283. 7f9391a 2026-07-30 auto-save: 2026-07-30T23:52:10 (2 files) — data/crcp-drift-state.json data/latest.json
  1284. a5884dc 2026-07-30 auto-save: 2026-07-30T22:51:51 (1 files) — .gitignore
  1285. 95b03a3 2026-07-30 Phase 2 findings: national firm-direct APIs are nationwide/price-sparse, wrong for LA — keep CREXi as discovery layer; docs + capture tooling
  1286. 8030c9b 2026-07-30 auto-save: 2026-07-30T22:21:42 (1 files) — data/ranked.json.pre-provenance.bak
  1287. e3626ca 2026-07-30 Phase 2: firm-direct discovery runner + M&M discovery (geo-bbox POST, needs custom extractor)
  1288. a819e4a 2026-07-30 CRE sourcing doctrine: broker-of-record as source of truth
  1289. 0305864 2026-07-30 chore: lint ✓ + refactor ✓ (no changes) + v0.12.0 (session close)
  1290. 7eaf438 2026-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
  1291. 70f8f1f 2026-07-30 mls viewer: default landing sorts newest-first (days-on-market asc); missing values sink to bottom in all sorts
  1292. 47bee70 2026-07-30 mls viewer: land populated (all 22,948 listings) instead of empty 'pick a filter' state — Amazon-style default view
  1293. e5539e2 2026-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
  1294. 2a64974 2026-07-30 auto-save: 2026-07-30T18:20:08 (1 files) — data/condos-redfin.json
  1295. 76359ab 2026-07-30 auto-save: 2026-07-30T17:49:57 (2 files) — data/crcp-drift-state.json data/latest.json
  1296. a6d9626 2026-07-30 afternoon CRE update 2026-07-30
  1297. 0b84090 2026-07-30 auto-save: 2026-07-30T12:48:10 (1 files) — data/residential-report.html
  1298. ce12f66 2026-07-30 auto-save: 2026-07-30T12:17:59 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1299. 1dd2272 2026-07-30 auto-save: 2026-07-30T11:47:45 (2 files) — data/crcp-drift-state.json data/latest.json
  1300. 743be5e 2026-07-30 auto-save: 2026-07-30T07:15:28 (1 files) — data/alerts-state.json
  1301. 1ffb6f6 2026-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
  1302. a4d513b 2026-07-30 auto-save: 2026-07-30T06:15:10 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  1303. 4268787 2026-07-30 auto-save: 2026-07-30T05:45:00 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1304. 310f7b3 2026-07-30 auto-save: 2026-07-30T04:44:39 (1 files) — data/brokers-snapshot.json
  1305. 20765a7 2026-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
  1306. f32ecb9 2026-07-30 auto-save: 2026-07-30T00:13:16 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json
  1307. d9e75fd 2026-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
  1308. d46c44f 2026-07-29 auto-save: 2026-07-29T18:11:10 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json
  1309. 2fb087f 2026-07-29 afternoon CRE update 2026-07-29
  1310. e4bfcef 2026-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
  1311. 143af8c 2026-07-29 auto-save: 2026-07-29T12:08:45 (2 files) — data/crcp-drift-state.json data/latest.json
  1312. c5c2e0f 2026-07-29 auto-save: 2026-07-29T07:06:42 (1 files) — data/alerts-state.json
  1313. 1d8dfd5 2026-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
  1314. 2205068 2026-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
  1315. 1b87028 2026-07-29 auto-save: 2026-07-29T05:36:12 (1 files) — data/listings.json
  1316. 51e8723 2026-07-29 auto-save: 2026-07-29T04:35:46 (1 files) — data/brokers-snapshot.json
  1317. f91a01f 2026-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
  1318. 5665069 2026-07-29 auto-save: 2026-07-29T00:04:14 (2 files) — data/crcp-drift-state.json data/latest.json
  1319. 0226dfa 2026-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
  1320. 2354eef 2026-07-28 auto-save: 2026-07-28T18:02:15 (2 files) — data/crcp-drift-state.json data/latest.json
  1321. b22d6b1 2026-07-28 afternoon CRE update 2026-07-28
  1322. 133d016 2026-07-28 auto-save: 2026-07-28T07:28:16 (1 files) — data/alerts-state.json
  1323. c6d781a 2026-07-28 auto-save: 2026-07-28T06:58:06 (1 files) — data/residential-report.html
  1324. 824f263 2026-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
  1325. 05120b1 2026-07-28 auto-save: 2026-07-28T05:57:47 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1326. 4de4dbc 2026-07-28 auto-save: 2026-07-28T04:27:17 (1 files) — data/brokers-snapshot.json
  1327. e2a4ff3 2026-07-28 auto-save: 2026-07-28T00:56:07 (1 files) — data/residential-report.html
  1328. b176287 2026-07-28 auto-save: 2026-07-28T00:25:56 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1329. c091e8e 2026-07-27 auto-save: 2026-07-27T23:55:46 (2 files) — data/crcp-drift-state.json data/latest.json
  1330. d1fae03 2026-07-27 auto-save: 2026-07-27T18:53:10 (1 files) — data/residential-report.html
  1331. 0fb1844 2026-07-27 auto-save: 2026-07-27T18:22:43 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1332. 1410e3f 2026-07-27 auto-save: 2026-07-27T17:52:34 (2 files) — data/crcp-drift-state.json data/latest.json
  1333. 2845c45 2026-07-27 afternoon CRE update 2026-07-27
  1334. e360947 2026-07-27 auto-save: 2026-07-27T12:50:40 (1 files) — data/residential-report.html
  1335. cb49ede 2026-07-27 auto-save: 2026-07-27T12:20:30 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1336. d9221ee 2026-07-27 auto-save: 2026-07-27T11:50:21 (2 files) — data/crcp-drift-state.json data/latest.json
  1337. c4e95ba 2026-07-27 auto-save: 2026-07-27T07:18:47 (1 files) — data/alerts-state.json
  1338. 16a192f 2026-07-27 weekly unwarrantable-condos report 2026-07-27
  1339. d9400f1 2026-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
  1340. bf29804 2026-07-27 auto-save: 2026-07-27T05:48:20 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1341. c793907 2026-07-27 weekly Crexi refresh 2026-07-27
  1342. 1b76b6d 2026-07-27 auto-save: 2026-07-27T04:17:53 (1 files) — data/brokers-snapshot.json
  1343. 11e408e 2026-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
  1344. 11abb76 2026-07-27 auto-save: 2026-07-27T00:16:47 (1 files) — data/condos-redfin.json
  1345. 61969cf 2026-07-26 auto-save: 2026-07-26T23:46:40 (2 files) — data/crcp-drift-state.json data/latest.json
  1346. 2d4c80b 2026-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
  1347. 3a4b400 2026-07-26 auto-save: 2026-07-26T18:15:03 (1 files) — data/condos-redfin.json
  1348. 8a68ec4 2026-07-26 auto-save: 2026-07-26T17:44:55 (2 files) — data/crcp-drift-state.json data/latest.json
  1349. c547420 2026-07-26 afternoon CRE update 2026-07-26
  1350. 6bd7f50 2026-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
  1351. 110ac64 2026-07-26 auto-save: 2026-07-26T12:13:19 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json
  1352. b74cbab 2026-07-26 auto-save: 2026-07-26T07:11:20 (1 files) — data/alerts-state.json
  1353. 12bb971 2026-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
  1354. 03edf25 2026-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
  1355. 59eaec2 2026-07-26 auto-save: 2026-07-26T05:40:54 (1 files) — data/listings.json
  1356. 6fe0d5f 2026-07-26 auto-save: 2026-07-26T04:40:35 (1 files) — data/brokers-snapshot.json
  1357. e17a200 2026-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
  1358. 56eda3b 2026-07-26 auto-save: 2026-07-26T00:09:22 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json
  1359. e78904b 2026-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
  1360. 47170fd 2026-07-25 auto-save: 2026-07-25T18:07:45 (2 files) — data/crcp-drift-state.json data/latest.json
  1361. 4440d47 2026-07-25 afternoon CRE update 2026-07-25
  1362. 4fabfad 2026-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
  1363. 27e17b2 2026-07-25 auto-save: 2026-07-25T12:06:06 (2 files) — data/crcp-drift-state.json data/latest.json
  1364. 379ab20 2026-07-25 CRCP: harden serve.js — atomic brokers-snapshot write (H3) + clip /api/comps inputs before child-process env (H2)
  1365. aeb0028 2026-07-25 CRCP: graceful-degrade /api/brokers/linkedin + /api/segments to 200+unavailable on DB error (match /api/leads/top; clean prod console)
  1366. 44f86d6 2026-07-25 CRCP: scrub persona flag_reason twin in broker-history-pilot.json (agent-caught residual)
  1367. 1c035bb 2026-07-25 CRCP: remove verified Frank residuals — served flag_reason string + linkedin localStorage key (contrarian-caught)
  1368. 14f019d 2026-07-25 CRCP: drop Frank signature from agentDraft signoff (parity with live)
  1369. 1ba902c 2026-07-25 auto-save: 2026-07-25T07:04:29 (1 files) — data/alerts-state.json
  1370. 5d4b7cf 2026-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
  1371. f96d44b 2026-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
  1372. e8eef16 2026-07-25 auto-save: 2026-07-25T05:33:58 (1 files) — data/listings.json
  1373. 0673a1d 2026-07-25 auto-save: 2026-07-25T04:33:37 (1 files) — data/brokers-snapshot.json
  1374. 0a1a3b8 2026-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
  1375. a6b4cb3 2026-07-25 auto-save: 2026-07-25T00:01:48 (2 files) — data/crcp-drift-state.json data/latest.json
  1376. aa4300a 2026-07-24 auto-save: 2026-07-24T18:59:11 (1 files) — data/residential-report.html
  1377. 8df63a0 2026-07-24 auto-save: 2026-07-24T18:29:03 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1378. c617b9e 2026-07-24 auto-save: 2026-07-24T17:58:56 (2 files) — data/crcp-drift-state.json data/latest.json
  1379. 9989efc 2026-07-24 auto-save: 2026-07-24T13:58:01 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1380. 817e696 2026-07-24 auto-save: 2026-07-24T13:27:55 (1 files) — data/condos-redfin.json
  1381. 692b573 2026-07-24 afternoon CRE update 2026-07-24
  1382. 12891e3 2026-07-24 auto-save: 2026-07-24T12:57:48 (1 files) — data/residential-report.html
  1383. faa7715 2026-07-24 auto-save: 2026-07-24T11:57:36 (1 files) — data/latest.json
  1384. 0a55b7c 2026-07-24 serve.js: handle EADDRINUSE gracefully to stop launchd crash-restart storm
  1385. 5cfe1b7 2026-07-24 auto-save: 2026-07-24T07:26:03 (1 files) — data/alerts-state.json
  1386. 848c833 2026-07-24 auto-save: 2026-07-24T06:55:55 (1 files) — data/residential-report.html
  1387. 35f50c4 2026-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
  1388. 9e485a8 2026-07-24 auto-save: 2026-07-24T05:55:40 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1389. 562c550 2026-07-24 auto-save: 2026-07-24T04:25:19 (1 files) — data/brokers-snapshot.json
  1390. 549bd00 2026-07-24 auto-save: 2026-07-24T00:54:30 (1 files) — data/residential-report.html
  1391. b719f7f 2026-07-24 auto-save: 2026-07-24T00:24:22 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1392. 89a78b8 2026-07-23 auto-save: 2026-07-23T23:54:14 (2 files) — data/crcp-drift-state.json data/latest.json
  1393. 72b1f15 2026-07-23 auto-save: 2026-07-23T18:53:06 (1 files) — data/residential-report.html
  1394. 3ca9941 2026-07-23 auto-save: 2026-07-23T18:22:59 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1395. cc32513 2026-07-23 auto-save: 2026-07-23T17:52:50 (2 files) — data/crcp-drift-state.json data/latest.json
  1396. 9ce5a12 2026-07-23 Remove Frank + Arcstone from CRCP entirely
  1397. 6ad26c3 2026-07-23 auto-save: 2026-07-23T14:52:02 (1 files) — scripts/serve.js
  1398. 2dd4383 2026-07-23 afternoon CRE update 2026-07-23
  1399. f5983b7 2026-07-23 auto-save: 2026-07-23T12:51:13 (1 files) — data/residential-report.html
  1400. 79a87bf 2026-07-23 auto-save: 2026-07-23T12:20:57 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1401. 1e1b5d4 2026-07-23 auto-save: 2026-07-23T11:50:46 (2 files) — data/crcp-drift-state.json data/latest.json
  1402. ef98b50 2026-07-23 auto-save: 2026-07-23T07:19:17 (1 files) — data/alerts-state.json
  1403. 47d0402 2026-07-23 auto-save: 2026-07-23T06:49:07 (1 files) — data/residential-report.html
  1404. 8989a9a 2026-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
  1405. 626986c 2026-07-23 auto-save: 2026-07-23T05:48:54 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1406. ad5f786 2026-07-23 auto-save: 2026-07-23T04:18:33 (1 files) — data/brokers-snapshot.json
  1407. 00fe392 2026-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
  1408. 1a365cb 2026-07-23 auto-save: 2026-07-23T00:17:34 (1 files) — data/condos-redfin.json
  1409. 1ff3327 2026-07-22 auto-save: 2026-07-22T23:47:26 (2 files) — data/crcp-drift-state.json data/latest.json
  1410. 4fc1648 2026-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
  1411. ef7ac33 2026-07-22 auto-save: 2026-07-22T18:15:55 (1 files) — data/condos-redfin.json
  1412. 94e297a 2026-07-22 auto-save: 2026-07-22T17:45:47 (2 files) — data/crcp-drift-state.json data/latest.json
  1413. b26c96e 2026-07-22 afternoon CRE update 2026-07-22
  1414. d6344aa 2026-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
  1415. ff42194 2026-07-22 auto-save: 2026-07-22T12:13:58 (1 files) — data/condos-redfin.json
  1416. a48bdc9 2026-07-22 auto-save: 2026-07-22T11:43:42 (2 files) — data/crcp-drift-state.json data/latest.json
  1417. 96016d6 2026-07-22 auto-save: 2026-07-22T07:12:00 (1 files) — data/alerts-state.json
  1418. bd69f71 2026-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
  1419. 70f8f73 2026-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
  1420. c07f881 2026-07-22 auto-save: 2026-07-22T05:41:36 (1 files) — data/listings.json
  1421. 020a326 2026-07-22 auto-save: 2026-07-22T04:41:22 (1 files) — data/brokers-snapshot.json
  1422. 5c012e5 2026-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
  1423. 1efb63e 2026-07-22 auto-save: 2026-07-22T00:10:24 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json
  1424. 40f7d2c 2026-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
  1425. 09719d7 2026-07-21 auto-save: 2026-07-21T18:09:04 (3 files) — data/condos-redfin.json data/crcp-drift-state.json data/latest.json
  1426. 5031cac 2026-07-21 afternoon CRE update 2026-07-21
  1427. b79b5cc 2026-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
  1428. 5e32693 2026-07-21 auto-save: 2026-07-21T12:07:22 (2 files) — data/crcp-drift-state.json data/latest.json
  1429. e2798c8 2026-07-21 auto-save: 2026-07-21T07:06:14 (1 files) — data/alerts-state.json
  1430. 9c375cc 2026-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
  1431. 427fad1 2026-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
  1432. e29def0 2026-07-21 auto-save: 2026-07-21T05:35:54 (1 files) — data/listings.json
  1433. adc59c0 2026-07-21 auto-save: 2026-07-21T04:35:41 (1 files) — data/brokers-snapshot.json
  1434. 22589dc 2026-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
  1435. 610e16d 2026-07-21 auto-save: 2026-07-21T00:04:47 (2 files) — data/crcp-drift-state.json data/latest.json
  1436. 139682b 2026-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
  1437. cabc6de 2026-07-20 auto-save: 2026-07-20T18:03:31 (2 files) — data/crcp-drift-state.json data/latest.json
  1438. 3c101f7 2026-07-20 afternoon CRE update 2026-07-20
  1439. 426f721 2026-07-20 auto-save: 2026-07-20T13:02:15 (1 files) — data/.pre-afternoon-ids.json
  1440. 5afbd03 2026-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
  1441. 6ab6fe8 2026-07-20 auto-save: 2026-07-20T12:02:00 (2 files) — data/crcp-drift-state.json data/latest.json
  1442. f679987 2026-07-20 weekly unwarrantable-condos report 2026-07-20
  1443. 7fa0b2d 2026-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
  1444. fa00934 2026-07-20 auto-save: 2026-07-20T06:00:16 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1445. e5bde07 2026-07-20 weekly Crexi refresh 2026-07-20
  1446. a8e1e5d 2026-07-20 auto-save: 2026-07-20T04:29:52 (1 files) — data/brokers-snapshot.json
  1447. 6d0e97d 2026-07-20 auto-save: 2026-07-20T00:59:05 (1 files) — data/residential-report.html
  1448. 42378f4 2026-07-20 auto-save: 2026-07-20T00:28:58 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1449. b8be3a9 2026-07-19 auto-save: 2026-07-19T23:58:51 (2 files) — data/crcp-drift-state.json data/latest.json
  1450. 6f5842c 2026-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
  1451. 1c26b57 2026-07-19 auto-save: 2026-07-19T18:27:32 (1 files) — data/condos-redfin.json
  1452. 9e13347 2026-07-19 auto-save: 2026-07-19T17:57:26 (2 files) — data/crcp-drift-state.json data/latest.json
  1453. a011bd5 2026-07-19 afternoon CRE update 2026-07-19
  1454. deb74cc 2026-07-19 auto-save: 2026-07-19T12:56:25 (1 files) — data/residential-report.html
  1455. 8e30689 2026-07-19 auto-save: 2026-07-19T12:26:19 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1456. f8f067d 2026-07-19 auto-save: 2026-07-19T11:56:13 (2 files) — data/crcp-drift-state.json data/latest.json
  1457. 8689c73 2026-07-19 auto-save: 2026-07-19T07:25:16 (1 files) — data/alerts-state.json
  1458. 9fcbcf2 2026-07-19 auto-save: 2026-07-19T06:55:10 (1 files) — data/residential-report.html
  1459. a167174 2026-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
  1460. c7c4d5f 2026-07-19 auto-save: 2026-07-19T05:54:59 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1461. 8a2a3cb 2026-07-19 auto-save: 2026-07-19T04:24:38 (1 files) — data/brokers-snapshot.json
  1462. 19f69e7 2026-07-19 auto-save: 2026-07-19T00:53:53 (1 files) — data/residential-report.html
  1463. 29b4556 2026-07-19 auto-save: 2026-07-19T00:23:46 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1464. 1e6f278 2026-07-18 auto-save: 2026-07-18T23:53:39 (2 files) — data/crcp-drift-state.json data/latest.json
  1465. 0884164 2026-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
  1466. 3741ee3 2026-07-18 auto-save: 2026-07-18T18:22:25 (1 files) — data/condos-redfin.json
  1467. 6577927 2026-07-18 auto-save: 2026-07-18T17:52:20 (2 files) — data/crcp-drift-state.json data/latest.json
  1468. 619a1c4 2026-07-18 afternoon CRE update 2026-07-18
  1469. aa05013 2026-07-18 auto-save: 2026-07-18T12:51:21 (1 files) — data/residential-report.html
  1470. 999a61b 2026-07-18 auto-save: 2026-07-18T12:21:15 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1471. 8af7429 2026-07-18 auto-save: 2026-07-18T11:51:10 (2 files) — data/crcp-drift-state.json data/latest.json
  1472. 6dd4f8c 2026-07-18 auto-save: 2026-07-18T07:20:11 (1 files) — data/alerts-state.json
  1473. b1a6612 2026-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
  1474. 08fa5ae 2026-07-18 auto-save: 2026-07-18T06:19:57 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  1475. 95c2d5a 2026-07-18 auto-save: 2026-07-18T05:49:50 (3 files) — data/crcp-drift-state.json data/latest.json data/listings.json
  1476. 037a998 2026-07-18 auto-save: 2026-07-18T04:19:30 (1 files) — data/brokers-snapshot.json
  1477. 253c0ef 2026-07-18 auto-save: 2026-07-18T00:48:43 (1 files) — data/residential-report.html
  1478. 580d911 2026-07-18 auto-save: 2026-07-18T00:18:37 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1479. 406b25d 2026-07-17 auto-save: 2026-07-17T23:48:30 (2 files) — data/crcp-drift-state.json data/latest.json
  1480. 6965193 2026-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
  1481. 99ea9db 2026-07-17 afternoon CRE update 2026-07-17
  1482. f8421a4 2026-07-17 chore: lint (fix shadowed var), v0.11.0 (session close)
  1483. d438cb4 2026-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
  1484. 50009ed 2026-07-17 CRCP firm-IG: render inline & LINK-FREE under agent-contact cards (honor no-outside-links); unify leads strip to same global renderer
  1485. 3db44ca 2026-07-17 chore: refactor (drop dead toggleExpand), lint pass, v0.10.0 (session close)
  1486. 4211af8 2026-07-17 CRCP firm-IG: cache thumbnails locally (fix IG hotlink block), +7 firms (CBRE/JLL/Cushman/Newmark/Elliman/BHHS-CA), short-alias matching
  1487. 79bc0cf 2026-07-17 Consolidate everything into ONE tabbed Agent window (links OK again)
  1488. 4d0bb9f 2026-07-17 Agent CRM: all-inline (no outside links) + inline Notes field
  1489. ed5770b 2026-07-17 Harden agent-contact CRM (contrarian gate): serialize writes, stable letter ids, XSS guards
  1490. 5a19595 2026-07-17 serve.js: load project .env via native process.loadEnvFile (enables GEORGE_AUTH/GMAIL_BASIC_AUTH_B64 + fixes CENSUS_API_KEY loading)
  1491. c164c3f 2026-07-17 Add gated Send-via-George button — creates a Gmail DRAFT (never sends)
  1492. f503eb1 2026-07-17 Agent-contact CRM now on EVERY listing + card view (one modal everywhere)
  1493. 123b0e3 2026-07-17 CRCP list view: sortable + fully hrefd rows, inline row expansion, and an Agent·contact column with save-date + saved-letter CRM
  1494. cb778e7 2026-07-16 graceful-degrade /api/leads/frank + /api/broker (502 -> 200 when cre DB absent)
  1495. b4b3c10 2026-07-16 add CRCP origin-vs-live drift canary (DTD verdict D)
  1496. a8e4386 2026-07-16 add on-demand CRCP front-end deploy script (mac3->Kamatera)
  1497. 0f635d9 2026-07-16 iPad fix sweep: crcp.html nav breakpoint 760->1024, licensed-agents badge width cap
  1498. b59aea1 2026-07-16 afternoon CRE update 2026-07-16
  1499. 1cdd91f 2026-07-16 iPad fix: header nav becomes swipeable strip + grid minmax, no horizontal overflow on tablet
  1500. 30822fa 2026-07-16 auto-save: 2026-07-16T07:11:48 (1 files) — data/alerts-state.json
  1501. 8f11f32 2026-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
  1502. d1ce836 2026-07-16 auto-save: 2026-07-16T06:11:35 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  1503. e2e2609 2026-07-16 auto-save: 2026-07-16T05:41:28 (1 files) — data/listings.json
  1504. e4a922a 2026-07-16 auto-save: 2026-07-16T04:41:14 (1 files) — data/brokers-snapshot.json
  1505. 3aa29ff 2026-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
  1506. 2679e35 2026-07-16 auto-save: 2026-07-16T00:10:17 (1 files) — data/condos-redfin.json
  1507. d8dc685 2026-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
  1508. c79df34 2026-07-15 afternoon CRE update 2026-07-15
  1509. 259e52d 2026-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
  1510. 0c5c19e 2026-07-15 auto-save: 2026-07-15T07:05:05 (1 files) — data/alerts-state.json
  1511. 8b87f81 2026-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
  1512. acc2464 2026-07-15 auto-save: 2026-07-15T05:34:45 (1 files) — data/listings.json
  1513. 5a9fe71 2026-07-15 auto-save: 2026-07-15T04:34:32 (1 files) — data/brokers-snapshot.json
  1514. b7d2707 2026-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
  1515. 0ca3244 2026-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
  1516. d3c8b8e 2026-07-14 afternoon CRE update 2026-07-14
  1517. 136ce9d 2026-07-14 auto-save: 2026-07-14T13:01:14 (1 files) — data/.pre-afternoon-ids.json
  1518. 8fcd14e 2026-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
  1519. 5bdd0af 2026-07-14 auto-save: 2026-07-14T07:29:44 (1 files) — data/alerts-state.json
  1520. 8ef3358 2026-07-14 auto-save: 2026-07-14T06:59:38 (1 files) — data/residential-report.html
  1521. a374bb9 2026-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
  1522. e4a82c5 2026-07-14 auto-save: 2026-07-14T05:59:19 (1 files) — data/listings.json
  1523. 384bd60 2026-07-14 auto-save: 2026-07-14T04:28:59 (1 files) — data/brokers-snapshot.json
  1524. d5296c2 2026-07-14 auto-save: 2026-07-14T00:58:14 (1 files) — data/residential-report.html
  1525. c0b3062 2026-07-14 auto-save: 2026-07-14T00:28:06 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1526. 92c3968 2026-07-13 auto-save: 2026-07-13T18:56:46 (1 files) — data/residential-report.html
  1527. e87e3da 2026-07-13 auto-save: 2026-07-13T18:26:38 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1528. 34ace81 2026-07-13 afternoon CRE update 2026-07-13
  1529. eee3d97 2026-07-13 auto-save: 2026-07-13T12:55:05 (1 files) — data/residential-report.html
  1530. 779f41b 2026-07-13 auto-save: 2026-07-13T12:24:56 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1531. 2f57420 2026-07-13 auto-save: 2026-07-13T11:24:39 (1 files) — package-lock.json
  1532. 471ec09 2026-07-13 chore: v0.9.1 — launchd bare-node PATH fix (session close)
  1533. d16f1a4 2026-07-13 auto-save: 2026-07-13T10:54:28 (1 files) — data/brokers-snapshot.json
  1534. 71b7a18 2026-07-13 fix: pin Homebrew PATH in refresh-broker-snapshot.sh (launchd bare-node bug)
  1535. 8a22cdc 2026-07-13 auto-save: 2026-07-13T10:24:15 (1 files) — package-lock.json
  1536. 701f6cd 2026-07-13 data: CRCP listings sweep +2 (palm-beach) from launchd kickstart verify
  1537. 87cbbde 2026-07-13 chore: lint, refactor, v0.9.0 (session close)
  1538. 96492dc 2026-07-13 auto-save: 2026-07-13T09:54:06 (1 files) — data/alerts-state.json
  1539. d6c8616 2026-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
  1540. 00b7b5b 2026-07-13 5x re-verify: homepage core 6/6 green, 0 JS errors; Jul-10 fixes held; 6 clickthrough fails = same triaged harness artifact
  1541. 9ea52c8 2026-07-13 weekly unwarrantable-condos report 2026-07-13
  1542. 448406f 2026-07-13 auto-save: 2026-07-13T06:23:11 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1543. 398ad29 2026-07-13 weekly Crexi refresh 2026-07-13
  1544. 51399ad 2026-07-13 prod CRCP: snapshot fallback for stats top-brokers + id/website in snapshot top rows
  1545. 47b4662 2026-07-13 find-email button: on-demand broker email hunt from their website (CRCP + broker grid)
  1546. eec551f 2026-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
  1547. dee1dce 2026-07-13 auto-save: 2026-07-13T00:21:34 (1 files) — data/condos-redfin.json
  1548. cad0dba 2026-07-12 auto-save: 2026-07-12T22:51:02 (1 files) — scripts/install-alerts-launchd.sh
  1549. 7bb0440 2026-07-12 auto-save: 2026-07-12T18:49:42 (1 files) — data/residential-report.html
  1550. b699cec 2026-07-12 auto-save: 2026-07-12T18:19:36 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1551. 8d3a401 2026-07-12 afternoon CRE update 2026-07-12
  1552. d5ea8e2 2026-07-12 auto-save: 2026-07-12T13:18:21 (2 files) — data/.pre-afternoon-ids.json data/last-refresh.json
  1553. 5e73b20 2026-07-12 auto-save: 2026-07-12T12:48:16 (1 files) — data/residential-report.html
  1554. f83266a 2026-07-12 auto-save: 2026-07-12T12:18:09 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1555. 24bc8a1 2026-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
  1556. 06ae110 2026-07-12 CRCP listings: all-metro Crexi sweep complete — 2,791 listings, 1,177 metro-tagged across 17 markets (+1,177 from baseline)
  1557. cd428e0 2026-07-12 CRCP listings: daily rotating refresh (DTD verdict C) — ~3 metros/day, timeout-safe; launchd+recurring-spend gated
  1558. 0a6e0fc 2026-07-12 CRCP email-alerts: opt-in gov-agent segment (DTD verdict C) — per-metro new-licensee diff, default stays low-noise
  1559. 9500317 2026-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
  1560. 310925d 2026-07-12 auto-save: 2026-07-12T11:48:02 (2 files) — data/listings.json scripts/sweep-remaining-metros.sh
  1561. beb4036 2026-07-12 broker-email: poison-guard sole-email on corporate megasite/office pages (mis-assigns stranger emails) + log-parse committer with rollback
  1562. f93ac06 2026-07-12 broker-email-finder: hard per-broker timeout so a single hung site can't wedge the batch
  1563. db7a5da 2026-07-12 Serve col-resize.js via dedicated no-cache route (revalidate-every-load) ahead of static mount
  1564. c102c07 2026-07-12 auto-save: 2026-07-12T11:17:54 (2 files) — data/alerts-state.json data/listings.json
  1565. 7d99a28 2026-07-12 CRCP email-alerts: George Basic Auth header + don't advance state on send failure (news-loss guard)
  1566. 035640a 2026-07-12 CRCP email-alerts: fix George send (/api/send + body field) + wire token from george-gmail/.env
  1567. d433ef8 2026-07-12 col-resize: add click-to-sort headers (asc/desc/reset, numeric-aware, blanks last)
  1568. dd4abf6 2026-07-12 Add spreadsheet-style draggable column resizing (col-resize.js) to all table pages
  1569. 367513f 2026-07-12 CRCP multi-metro listings sweep: generalize SFV Crexi scrape to all 21 metros + per-metro config; paid run gated
  1570. 91621f0 2026-07-12 CRCP email-alerts: snapshot-diff engine + George send wiring (DTD verdict A), dry-run proven, launchd+send gated
  1571. 52b71e1 2026-07-12 broker-email-finder: --browser tier (real system Chrome) recovers 403/anti-bot + JS-rendered sites; name-match disambiguates multi-agent firm pages
  1572. 8861282 2026-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
  1573. 561fd54 2026-07-12 CRCP gov data: CT Greenwich (648, DCP eLicense API). Top-expensive-cities expansion: 19/20 loaded; WY Jackson walled (portal, no bulk)
  1574. 86793a4 2026-07-12 CRCP gov data: CO Aspen/Telluride/Vail (777, DORA API) + FL luxury cities Palm Beach/Naples/Miami Beach (DBPR)
  1575. 988e989 2026-07-12 CRCP gov data: CA luxury cities (Atherton/Beverly Hills/Malibu/Newport Beach/Montecito/Hillsborough/Woodside) city-level from DRE CurrList
  1576. 32e449e 2026-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)
  1577. a3f111a 2026-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
  1578. 715d28a 2026-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
  1579. 3141270 2026-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
  1580. c1d6709 2026-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/
  1581. 7b4fce3 2026-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
  1582. 235cba4 2026-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)
  1583. 3d61200 2026-07-12 CRCP: FL DBPR CSV adapter — Miami (Dade county) 67,776 licensees loaded (brokers+salespersons, active); streaming quoted-CSV parser + batched upsert
  1584. 7fe7597 2026-07-12 CRCP: NY metros loaded from gov data — NYC 47,019 + Hamptons 2,261 licensees (brokers+salespersons); batched upsert + office/branch filter
  1585. cdf2871 2026-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)
  1586. 068be0a 2026-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
  1587. 9939cbd 2026-07-12 CRCP: default broker view lists ALL brokers again (Steve: ok if not CA); ?scope=ca keeps the California-only cut
  1588. bce9ae6 2026-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
  1589. 4145664 2026-07-12 auto-save: 2026-07-12T06:16:42 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  1590. 7cc109c 2026-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
  1591. fce8c2b 2026-07-12 auto-save: 2026-07-12T00:15:33 (1 files) — data/condos-redfin.json
  1592. 7d08d22 2026-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
  1593. b1e900b 2026-07-11 CRCP: pass-2 fuzzy broker CA-DRE recovery (nickname+prefix, surname-search, single-person guard); fix norm-strips-comma parse bug
  1594. f9af543 2026-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
  1595. 801a86a 2026-07-11 auto-save: 2026-07-11T18:14:27 (1 files) — data/condos-redfin.json
  1596. 894dfe0 2026-07-11 afternoon CRE update 2026-07-11
  1597. 51162a1 2026-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
  1598. f898564 2026-07-11 auto-save: 2026-07-11T12:13:17 (1 files) — data/condos-redfin.json
  1599. de954cf 2026-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
  1600. 482a169 2026-07-11 CRCP: confirm unknown-geography brokers as CA via CA-DRE cross-ref (bridges cre.broker ↔ licensed-agents; $0 local, resumable)
  1601. abbed74 2026-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
  1602. 5ad18e1 2026-07-11 auto-save: 2026-07-11T06:12:00 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  1603. 7de1a84 2026-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
  1604. 2bb63e5 2026-07-11 auto-save: 2026-07-11T00:10:56 (1 files) — data/condos-redfin.json
  1605. 71cc617 2026-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
  1606. 93c2642 2026-07-10 CRCP: broker-level rollup view — /api/brokers/licensed + Agents⇄Brokers toggle (131 brokers from DRE responsible-broker field, $0)
  1607. aa5fee6 2026-07-10 CRCP: full 556-agent DRE license snapshot (162 verified / 262 probable / 132 unmatched, 0 errors)
  1608. b6bd885 2026-07-10 chore: v0.5.0 — DRE-licensed agents feature (session close)
  1609. 1e4b467 2026-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
  1610. 4c1be11 2026-07-10 auto-save: 2026-07-10T18:09:50 (1 files) — data/condos-redfin.json
  1611. 6abac2e 2026-07-10 CRCP DRE: contrarian fixes — verified only on exact match, drop dead DB branch
  1612. e914e06 2026-07-10 CRCP: DRE-licensed agents/brokers DB from CA public govt data
  1613. a3bff78 2026-07-10 afternoon CRE update 2026-07-10
  1614. 06a035c 2026-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
  1615. 65dbb60 2026-07-10 5x: correct report scope note — verified deals/fha/rent-rolls are dashboards not catalogs
  1616. a19ee81 2026-07-10 5x sweep 4 (contrarian follow-up): sort+density on broker-grid + condos grids; fix pre-existing favicon 404 on condos+graphics
  1617. 9e62037 2026-07-10 5x: sweeps 2-3 clean + REPORT (clean twice, done)
  1618. bb93e9c 2026-07-10 5x sweep 1: add sort select + density slider to mls.html grid (Steve grid rule); persisted, 0 JS errors
  1619. 69e2760 2026-07-10 5x sweep 1: triage — clickthrough FAILs are phantom (wrong-app vocabulary), not defects
  1620. 5aaf9b2 2026-07-10 auto-save: 2026-07-10T08:44:50 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1621. c71fc8d 2026-07-10 map: popup shows residential lifecycle — status (Active/In Escrow/Sold/Withdrawn) + days-on-market tags
  1622. a8e7f8a 2026-07-10 auto-save: 2026-07-10T08:14:41 (1 files) — data/condos-redfin.json
  1623. 92df973 2026-07-10 scrapers: capture LATITUDE/LONGITUDE from gis-csv -> lat/lng (was discarded)
  1624. b11c287 2026-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
  1625. a568ac4 2026-07-10 auto-save: 2026-07-10T06:14:15 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  1626. 4a6713e 2026-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
  1627. df74842 2026-07-10 auto-save: 2026-07-10T00:12:54 (1 files) — data/condos-redfin.json
  1628. 44256f4 2026-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
  1629. 8cadaa2 2026-07-09 auto-save: 2026-07-09T18:11:36 (1 files) — data/condos-redfin.json
  1630. f8b28f8 2026-07-09 afternoon CRE update 2026-07-09
  1631. 6cc6166 2026-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
  1632. e52657d 2026-07-09 auto-save: 2026-07-09T12:10:23 (1 files) — data/condos-redfin.json
  1633. b2bccff 2026-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
  1634. a64f26b 2026-07-09 auto-save: 2026-07-09T06:09:13 (3 files) — data/condos-redfin.json data/qwen-cache.json data/ranked.json
  1635. f3ed4b0 2026-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
  1636. 1b9dcd3 2026-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
  1637. 14d68e4 2026-07-08 afternoon CRE update 2026-07-08
  1638. 1258f68 2026-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
  1639. 4fa17ee 2026-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
  1640. bea08ab 2026-07-08 chore: version bump v0.4.1 (session close — auth gate)
  1641. 6676926 2026-07-08 Gate crcp.agentabrams.com behind Basic Auth (admin/DW2024!); open /healthz for smoke test
  1642. 08981d0 2026-07-08 auto-save: 2026-07-08T06:04:21 (2 files) — data/qwen-cache.json data/ranked.json
  1643. eb10431 2026-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
  1644. 5778fde 2026-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
  1645. b7ae291 2026-07-07 chore: lint (syntax-check ✓), v0.3.1 → v0.4.0 (session close)
  1646. 0ab08f2 2026-07-07 add fix-workspace-trust.js — restores hasTrustDialogAccepted after mac3 migration
  1647. f81d920 2026-07-07 afternoon CRE update 2026-07-07
  1648. 18f673e 2026-07-07 auto-save: 2026-07-07T13:30:45 (1 files) — data/last-refresh.json
  1649. 7ffa8da 2026-07-07 crcp: auto-rebuild assessor SQLite on ingest + refresh/push wrapper
  1650. df42174 2026-07-07 chore: v0.3.1 (session close)
  1651. 13a73ac 2026-07-07 crcp: bridge 2.43M assessor roll to DB-less prod via read-only SQLite + honest miss copy
  1652. f572b74 2026-07-07 auto-save: 2026-07-07T13:00:27 (1 files) — data/.pre-afternoon-ids.json
  1653. 945fe2b 2026-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
  1654. 7abb102 2026-07-07 auto-save: 2026-07-07T09:59:53 (3 files) — data/condos-redfin.json data/map-points.json data/sfr-redfin.json
  1655. 0ddd365 2026-07-07 explorer: Fields section starts expanded (toggle cards visible on load); other left-panel sections stay collapsed
  1656. bb11697 2026-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)
  1657. 79fb395 2026-07-07 auto-save: 2026-07-07T09:29:44 (1 files) — data/condos-redfin.json
  1658. c37e141 2026-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
  1659. 67dff5f 2026-07-07 map: residential on the map colored by status (Active/In Escrow/Sold/Withdrawn)
  1660. d8dc3ea 2026-07-07 residential: price-drop tracking — 💸 Price Cut chip + report section
  1661. 809771f 2026-07-07 auto-save: 2026-07-07T08:59:49 (2 files) — scripts/export-residential-snapshots.js scripts/serve.js
  1662. 18bf3fc 2026-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
  1663. bf516b7 2026-07-07 reports: refresh generated HTML (morning/afternoon/condos/residential pulse)
  1664. eb0c10c 2026-07-07 residential report: LA Residential Pulse (SFR+condo) email — just listed / in escrow / just sold / fell out
  1665. 8488362 2026-07-07 fix: raise /api/residential cap 12k->25k — SFR active grew past 12k, truncating off-market/sold rows off prod
  1666. 27c5ece 2026-07-07 snapshots: escrow + DOM coverage (sfr 3860 escrow/13079 dom, condo 380 escrow/1578 dom)
  1667. eb3ad19 2026-07-07 fix: condo fetchStatus referenced loop-scoped reg from outer closure -> captured 0; pass reg as param (matches SFR fetchRegion pattern)
  1668. a31904e 2026-07-07 listings: real DAYS ON MARKET (gap-immune Just Listed) + In Escrow / Fell Out tabs
  1669. fae3225 2026-07-07 mls: Just Listed + Just Sold quick-filter chips with adjustable day window (persisted)
  1670. 018ff11 2026-07-07 off-market: re-check withdrawn rows for later-recorded sales (escrow lag) + fresh snapshots w/ 1,647 pulled listings
  1671. 6061349 2026-07-07 CRE: migrate condos-report from mac2 (node path + Max-plan claude strip); harden morning/condos claude calls to Max plan
  1672. 2d64c25 2026-07-07 residential: off-market tracking — see pulled listings, labeled SOLD vs WITHDRAWN
  1673. ce1d6f2 2026-07-07 refresh: email steve-office (George) on sanity-gate abort or rsync failure
  1674. 843d559 2026-07-06 mls: rename browser title -> 'LA County MLS — Residential + CRE'
  1675. dcf9b4d 2026-07-06 refresh: set CC_FRESH=1 so SFR re-sweeps every run (ledger was skipping all regions -> no-op)
  1676. 4a6fac7 2026-07-06 residential refresh: CC_LOCAL=1 mode ($0 local Chrome, no Browserbase) + 4x/day launchd
  1677. 9a70d22 2026-07-06 residential: fresh Redfin scrape snapshots (10.6k SFR + 1.29k condos) + lift condo cap 1000->5000
  1678. 0dae177 2026-07-06 mls: add residential inventory (9.6k SFR + condos) alongside CRE + Census rent averages
  1679. 6e2d2bf 2026-07-04 closed-sales: snapshot fallback so sales.html has data on prod (no cre DB on Kamatera)
  1680. d7077f3 2026-07-04 fix: guard brokers.map in graphics.html against non-array payload
  1681. adc85c1 2026-07-04 sales: Amazon rail + field toggles + grid/list via crcp-grid engine; add ?limit to closed-sales; engine link+cap support
  1682. 1117168 2026-07-04 fha-loans: Amazon left-rail + field toggles + grid/list via shared crcp-grid engine
  1683. 10edd44 2026-07-04 condos api: explicit column projection (drop SELECT *, satisfies pre-deploy PII lint)
  1684. a665e5c 2026-07-04 condos: Amazon-rail UI live + /api/condos snapshot fallback for prod (no cre DB on Kamatera)
  1685. 883f96e 2026-07-03 chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)
  1686. 253a437 2026-07-02 auto-save: 2026-07-02T17:51:29 (1 files) — public/broker-grid.html
  1687. 8ceee47 2026-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.
  1688. 9b10d00 2026-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.
  1689. a8fedb1 2026-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.
  1690. 45fe54b 2026-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.
  1691. 6c08b42 2026-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.
  1692. 6d8e182 2026-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.
  1693. 589fdb5 2026-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.
  1694. ac724c3 2026-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.
  1695. 793d08b 2026-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.
  1696. bf0b600 2026-07-02 afternoon CRE update 2026-07-02
  1697. 7e7b8f4 2026-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.
  1698. 681a9b8 2026-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.
  1699. b5a7c9f 2026-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.
  1700. 14963d5 2026-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.
  1701. d9c099f 2026-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.
  1702. 8b66d89 2026-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.
  1703. c919ae1 2026-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.
  1704. acf3768 2026-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.
  1705. 12bcd30 2026-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).
  1706. d036a01 2026-07-02 auto-save: 2026-07-02T10:47:21 (1 files) — public/index.html
  1707. 2414c9b 2026-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.
  1708. 9dc699f 2026-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.
  1709. e9d13a8 2026-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)
  1710. 44c3be8 2026-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
  1711. ad43c25 2026-07-02 auto-save: 2026-07-02T10:17:10 (1 files) — public/index.html
  1712. 58cbced 2026-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
  1713. a33bd46 2026-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
  1714. a2c781e 2026-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
  1715. f571111 2026-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
  1716. d74ce02 2026-07-02 auto-save: 2026-07-02T09:46:55 (1 files) — public/mls.html
  1717. 5a3ee55 2026-07-02 feat(condos): List/Grid toggle (both DB-listing & FHA-directory schemas) + density max to 20
  1718. c02f5b2 2026-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)
  1719. 177e1b0 2026-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
  1720. c5796c2 2026-07-01 afternoon CRE update 2026-07-01
  1721. 8edbdfd 2026-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)
  1722. 6be26bf 2026-07-01 chore: lint ✓ (clean, no linter) · refactor ✓ (no change) · v0.3.0 (session close)
  1723. 7f658fc 2026-07-01 feat: clean extension-less URLs (/mls, /brokers, /map, etc.) alongside .html links
  1724. b40a08b 2026-07-01 ops: launchd LaunchAgent for cre-viewer reboot persistence (KeepAlive, no pm2)
  1725. 07e0977 2026-07-01 feat: deeds FREE-PASS part (a) — extend broker-history to all 1,407 listings
  1726. 6ee845c 2026-07-01 chore: v0.2.0 (session close — broker contacts/MLS+broker grids/property-history/CSV/assessor 2.43M/tailscale)
  1727. 192e889 2026-06-30 feat: broker-history pilot — transaction history + listing-agent enrichment on property cards
  1728. 584c409 2026-06-30 auto-save: 2026-06-30T19:42:55 (3 files) — public/index.html scripts/serve.js data/broker-history-pilot.json
  1729. d96d283 2026-06-30 auto-save: 2026-06-30T18:12:29 (1 files) — package-lock.json
  1730. ddb1e4d 2026-06-30 chore: lint ✓, v0.1.1 (session close — condos render fix)
  1731. ac6be59 2026-06-30 Map markers → 100-yr property-history popup (📜 History link in every marker popup)
  1732. 1760f5c 2026-06-30 assessor keyset: stream line-count (1.3GB file exceeds V8 max string; readFileSync failed)
  1733. 1634e83 2026-06-30 assessor: key-set pagination completion (AIN>cursor) to finish the roll past the resultOffset false-stop at 1.884M
  1734. ad0fbf9 2026-06-30 Arcstone prior-relationship flag (chip on grid card + list + firm roster + modal) + always show email/phone/website on broker modals
  1735. 8d4f2eb 2026-06-30 Add .deploy.conf for Kamatera prod deploy (CRCP + FHA loans feature)
  1736. c469c56 2026-06-30 Add CSV export to MLS + broker grids (exports current filtered/sorted rows)
  1737. 5a26b03 2026-06-30 Make the grids actionable: MLS row → 100-yr property history popup; broker-grid row → full contact/listings/pitch modal
  1738. ddcd86b 2026-06-30 Broker grid+list view — all 2,537 brokers, every field sortable & searchable
  1739. 4191307 2026-06-30 FHA loans: add /fha-loans route + /api/fha-loans JSON endpoint to serve.js
  1740. 06ad891 2026-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
  1741. 03d9129 2026-06-30 Broker card: current+expired+sales with dates/MLS#/url across both modals
  1742. 9c3c4e8 2026-06-30 Add MLS spreadsheet + grid view (sortable & searchable, all property data)
  1743. 22644c3 2026-06-30 fix(condos): render listings — warrant_signals is an object, .map threw and stuck grid on loading
  1744. bfc32f8 2026-06-30 fix(assessor): stop on exceededTransferLimit, not short page (was truncating at 294k/2.43M) + CC_START_OFFSET resume
  1745. 531f7e7 2026-06-30 Add DW-Wins-Dashboard.png — CRE build wins dashboard (emailed to steve-office)
  1746. 69ac4d3 2026-06-30 CRE :9911 — 'Best leads for Frank' ranked list: expandable MLS-style current listings + Sold button + 100-yr address-only property history
  1747. 6d18e70 2026-06-30 auto-save: 2026-06-30T13:40:46 (1 files) — scripts/seed-frank-arcstone.js
  1748. ee71adf 2026-06-30 CRE :9911 — front-page broker contacts (name/company/phone/email) + ready-pitch popup, Frank Arcstone demo, LinkedIn follow-tab
  1749. aafcd09 2026-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)
  1750. a45ddb9 2026-06-30 afternoon CRE update 2026-06-30
  1751. e2e6fb4 2026-06-29 afternoon CRE update 2026-06-29
  1752. 311558a 2026-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
  1753. d10cdb4 2026-06-29 officer-yolo: DTD verdict A (Unified Deal Score) 3-0 for next build
  1754. a8e2d74 2026-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
  1755. 22f626a 2026-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
  1756. 157d835 2026-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
  1757. ec34869 2026-06-29 weekly Crexi refresh 2026-06-29
  1758. 119516b 2026-06-29 5x: OVERNIGHT-REPORT.md (final) — all 6 pages gated + PASS; loop substantive work complete; items 4+7 deferred for Steve
  1759. 9c2a5fc 2026-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
  1760. 9455571 2026-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)
  1761. bae2d75 2026-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)
  1762. ec4d78b 2026-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
  1763. 7f52ab6 2026-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)
  1764. e121e47 2026-06-28 auto-save: 2026-06-28T23:47:35 (1 files) — data/map-points.json
  1765. 28c0b79 2026-06-28 5x night-log: items 2+5 done; item 4 deferred (do with Steve); next = price-band chart + map clustering
  1766. ad89b92 2026-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
  1767. 928c43f 2026-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
  1768. cdaa2b4 2026-06-28 5x night-log: items 1+3 done; queue + method note for next wake
  1769. b6a5bdd 2026-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
  1770. f98b8af 2026-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
  1771. 14b36ac 2026-06-28 5x: overnight refinement night-log + queue
  1772. 2f5592e 2026-06-28 5x: final REPORT — clean twice (sweeps 4-5) with strengthened gate after contrarian caught 3 real defects in sweep 3
  1773. 292b7fb 2026-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)
  1774. 022582f 2026-06-28 5x: sweep logs + REPORT (deals.html clean twice; clickthrough false-negatives escalated)
  1775. 7a4f457 2026-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
  1776. d5d29c9 2026-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
  1777. f4cd532 2026-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
  1778. 9e99f28 2026-06-28 LoopNet for all listings (free deep-links on every card + gated CoStar adapter) + local rent-roll PDF ingester + feasibility doc
  1779. 3054e11 2026-06-28 CRCP: collapse-all-until-activated panels + chip density slider + building prices; dedupe caret CSS, inline favicon
  1780. 495d8d6 2026-06-28 auto-save: 2026-06-28T17:15:46 (1 files) — public/crcp.html
  1781. b0cabb2 2026-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)
  1782. 80c2838 2026-06-28 additive: Assumable FHA/VA call segment + read-only /api/assumable endpoint
  1783. 5f05fc1 2026-06-28 assumable-loan heuristic + estimate model + credentialed source adapters + integration plan
  1784. 50e36fe 2026-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
  1785. 5aaf087 2026-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
  1786. 9f0bd7e 2026-06-28 Wire sfr-bankstmt segment to cre.sfr + add fetch-sfr-agents.js (broker_sfr edge)
  1787. 9a5c260 2026-06-28 Add fetch-sfr-redfin.js — feed-first uipt=1 SFR sweep w/ price-banding + swept_region_sfr ledger
  1788. e39860e 2026-06-28 CRCP: SFR/non-QM segments open the lead-source playbook even at 0 listings (compliant social/referral channels)
  1789. dfbb2c5 2026-06-28 CRCP: compliant lead-source playbook on SFR/non-QM segments (referral partners + Special-Ad-Category social marketing, NOT scraped consumers)
  1790. 44fe3fb 2026-06-28 Add cre.sfr table + broker_sfr edge (mirror condo/broker_condo for SFR for-sale)
  1791. f51be7b 2026-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
  1792. 99ec9a7 2026-06-28 CRE: local XLSX exporter (no Drive API) — 5-tab workbook of all brokers/agents/firms/condos/sales for Drive upload
  1793. 2b99293 2026-06-28 CRE: comprehensive 5-tab Google Sheet exporter (commercial brokers + residential agents + firms + warrantable condos + 17k closed sales), shares to steve@ as writer
  1794. a880a29 2026-06-28 afternoon CRE update 2026-06-28
  1795. 4d1c2a9 2026-06-28 CRE: sortable columns on /sales.html comps table (address/city/price/date, click to rank ▲▼)
  1796. cc6c1a9 2026-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)
  1797. 5287876 2026-06-28 CRCP: sortable columns on broker + firm tables (click any header to rank asc/desc, ▲▼ indicator)
  1798. 56c1898 2026-06-28 auto-save: 2026-06-28T10:14:06 (2 files) — scripts/serve.js public/sales.html
  1799. ed38493 2026-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)
  1800. 43075b0 2026-06-28 auto-save: 2026-06-28T08:43:43 (2 files) — public/crcp.html scripts/serve.js
  1801. 8e18085 2026-06-28 auto-save: 2026-06-28T08:13:35 (2 files) — scripts/fetch-closed-sales.js data/redfin-agents.json
  1802. 3fb9caa 2026-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
  1803. a686d47 2026-06-28 CRE: closed-sales scraper (Redfin gis-csv sold feed, 10yr) → closed_sale market-comps table; per-agent attribution follows agent resolution
  1804. 2d837a2 2026-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)
  1805. 44b6973 2026-06-28 auto-save: 2026-06-28T07:43:27 (2 files) — public/brokers.html scripts/db/brokers-db.js
  1806. d7ca649 2026-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)
  1807. c5507a7 2026-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
  1808. 63ed0e2 2026-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
  1809. 22629f0 2026-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
  1810. 88d26a3 2026-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
  1811. 8378bf7 2026-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)
  1812. fc5b4d4 2026-06-28 auto-save: 2026-06-28T07:13:19 (1 files) — scripts/db/broker-enrich-schema.sql
  1813. 8bfec9f 2026-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
  1814. e64aea1 2026-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)
  1815. d9dfc39 2026-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
  1816. 09e1ede 2026-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
  1817. 37b95ec 2026-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
  1818. b27a82b 2026-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
  1819. 848cc19 2026-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
  1820. f67266d 2026-06-28 CRE: ingest HUD FHA-approved condo list for LA County (2,661 records: 358 approved / 2,303 expired) — warrantability proxy source
  1821. a9547bc 2026-06-28 auto-save: 2026-06-28T06:13:03 (2 files) — data/fha-approved-condos.json scripts/fetch-fha-condos.js
  1822. 298a0a4 2026-06-27 CRE: AI narratives backfilled for all 1407 properties
  1823. 45d44d0 2026-06-27 CRE: extend Crexi sweep to 30 more LA County cities (1028→1407 properties); fetch-brokers incremental skip of already-captured listings
  1824. 08e290a 2026-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)
  1825. 216da73 2026-06-27 afternoon CRE update 2026-06-27
  1826. c70d4a6 2026-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
  1827. e133dd4 2026-06-27 auto-save: 2026-06-27T05:37:39 (1 files) — scripts/sources/firms.js
  1828. 6594d54 2026-06-27 CRE: qwen narratives backfilled for all 1028 properties (thesis + recommendation)
  1829. b6964fd 2026-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
  1830. baf6f58 2026-06-27 CRE: add Census ACS demographics fetcher (70 LA submarkets) + per-card 📊 demographics line; npm run demographics
  1831. 46ede35 2026-06-27 CRE data: Crexi LA County sweep — 104→1028 properties (all asset types, wide band), re-ranked for viewer
  1832. 741304a 2026-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
  1833. ddd052e 2026-06-27 CRE: add chunked full-firm LA County sweep runner (run-sweep.sh)
  1834. 690567b 2026-06-27 CRE: wire read-only WhoLivedThere/pastdoor archive (assessor parcel + permits + film history) into viewer via /api/history
  1835. 2674ef8 2026-06-26 CRE: expand geographic scope to all of LA County (88 cities + neighborhoods + unincorporated)
  1836. 9c2ab88 2026-06-26 auto-save: 2026-06-26T23:36:14 (2 files) — scripts/refresh-all.js scripts/sources/firms.js
  1837. 9c8ad7b 2026-06-26 CRE: multi-firm listing-source framework + firm badges in viewer
  1838. aa88a98 2026-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)
  1839. 8101926 2026-06-26 afternoon CRE update 2026-06-26
  1840. b6dbc62 2026-06-26 afternoon CRE update 2026-06-26
  1841. 133b583 2026-06-26 morning CRE report: add steve-personal as second recipient
  1842. 99d728a 2026-06-26 add 1pm afternoon CRE report: new-listings diff + red-hot deals, launchd 13:00 PT
  1843. 42bff37 2026-06-22 weekly Crexi refresh 2026-06-22
  1844. a3711a1 2026-06-22 weekly Crexi refresh 2026-06-22
  1845. 39b655c 2026-06-21 Add rent-yield (rent÷price) metric + broader SFV sweep (81 listings)
  1846. f205d2c 2026-06-21 Verify Granada Hills #1 (pro-forma 6.66%, lease-up risk) + detailed per-property recap in daily email
  1847. fc9d273 2026-06-21 Weekly Crexi refresh job + 38 new SFV listings (62 total)
  1848. c09a426 2026-06-21 Daily 6am top-10 report -> steve-office via George (launchd)
  1849. de42fa5 2026-06-21 Add daily morning-report generator (top 10 SFV CRE opportunities -> HTML email body)
  1850. 5b97a77 2026-06-21 Tighten live-comps units parse
  1851. 89f1ab2 2026-06-21 Live comps -> Browserbase/Crexi (drop Exa dependency)
  1852. 1351a12 2026-06-21 Expand listing set (+5) + gated live-comps route
  1853. a22e0f0 2026-06-21 Chat: add per-unit rent rolls + real SFV sale comps to grounding context
  1854. 0feadae 2026-06-21 Ranking integrity: verify top picks vs MLS + unverified-NOI penalty
  1855. e27dd0a 2026-06-21 SFV CRE viewer + grounded control-chat
  1856. 33e1972 2026-06-21 initial scaffold: SFV CRE investment ranker

Authors

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

Commits with substantial prose (≥120 chars) — the rationale behind each move.

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

565 files tracked. Click any to browse the source at HEAD.

Other build journals

← Commercialdesignreps  ·  all 4 projects  ·  Compliance Agent →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 62ms