Re Flyer Aggregator
Search the build
-
47687982026-09-26 auto-data-snapshot: 2026-09-26T16:49:35 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-26.json public/flyers/flyers.json -
f31dd1c2026-09-26 auto-data-snapshot: 2026-09-26T12:44:57 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-26.json public/flyers/flyers.json -
8e714b12026-09-26 TK-11856 rc-propagation (RSYNC): dtt-import + property-flyers propagate step/crawl/rsync rc -
085c34d2026-09-26 auto-data-snapshot: 2026-09-26T06:47:29 (1 data files) — public/flyers-found/property-flyers.json -
4310a3b2026-09-26 auto-data-snapshot: 2026-09-26T05:45:52 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-26.json public/flyers/flyers.json -
f2babf42026-09-26 auto-data-snapshot: 2026-09-26T00:10:15 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-26.json public/flyers/flyers.json -
63b12612026-09-25 auto-data-snapshot: 2026-09-25T16:33:34 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-25.json public/flyers/flyers.json -
936f0512026-09-25 Add creds-in-URL fetch guard to flyers/index.html (TK-12282) -
4444e012026-09-25 auto-data-snapshot: 2026-09-25T12:54:38 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-25.json public/flyers/flyers.json -
14d16e62026-09-25 auto-data-snapshot: 2026-09-25T06:41:36 (1 data files) — public/flyers-found/property-flyers.json -
c2335302026-09-25 auto-data-snapshot: 2026-09-25T06:10:16 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-25.json public/flyers/flyers.json -
4d49be82026-09-25 auto-data-snapshot: 2026-09-25T00:03:17 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-25.json public/flyers/flyers.json -
1e815062026-09-24 auto-data-snapshot: 2026-09-24T16:55:40 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-24.json public/flyers/flyers.json -
9b4f2912026-09-24 auto-data-snapshot: 2026-09-24T12:49:23 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-24.json -
95ea1be2026-09-24 auto-data-snapshot: 2026-09-24T06:34:34 (1 data files) — public/flyers-found/property-flyers.json -
3e20f9f2026-09-24 auto-data-snapshot: 2026-09-24T06:02:25 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-24.json public/flyers/flyers.json -
4773b812026-09-24 auto-data-snapshot: 2026-09-24T00:15:56 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-24.json public/flyers/flyers.json -
f73d0672026-09-23 auto-data-snapshot: 2026-09-23T16:56:06 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-23.json -
dabba622026-09-23 auto-data-snapshot: 2026-09-23T13:13:50 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-23.json public/flyers/flyers.json -
338aa0b2026-09-23 auto-data-snapshot: 2026-09-23T06:53:48 (1 data files) — public/flyers-found/property-flyers.json -
fe013b52026-09-23 auto-data-snapshot: 2026-09-23T05:50:13 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-23.json public/flyers/flyers.json -
69897e02026-09-23 auto-data-snapshot: 2026-09-23T00:04:06 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-23.json public/flyers/flyers.json -
799888f2026-09-22 auto-data-snapshot: 2026-09-22T16:42:26 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-22.json public/flyers/flyers.json -
f96952f2026-09-22 auto-data-snapshot: 2026-09-22T12:49:04 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-22.json -
dc327652026-09-21 auto-data-snapshot: 2026-09-21T16:51:55 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-21.json -
872ab832026-09-21 auto-data-snapshot: 2026-09-21T13:09:50 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-21.json public/flyers/flyers.json -
99e103c2026-09-21 auto-data-snapshot: 2026-09-21T06:39:23 (1 data files) — public/flyers-found/property-flyers.json -
20d77272026-09-21 auto-data-snapshot: 2026-09-21T06:06:14 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-21.json public/flyers/flyers.json -
ad464a22026-09-21 auto-data-snapshot: 2026-09-21T00:00:46 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-21.json public/flyers/flyers.json -
d2954122026-09-20 auto-data-snapshot: 2026-09-20T16:43:39 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-20.json public/flyers/flyers.json -
5e035cf2026-09-20 auto-data-snapshot: 2026-09-20T12:49:08 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-20.json public/flyers/flyers.json -
223fc692026-09-20 auto-data-snapshot: 2026-09-20T06:42:09 (1 data files) — public/flyers-found/property-flyers.json -
c5c29d12026-09-20 auto-data-snapshot: 2026-09-20T06:08:12 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-20.json public/flyers/flyers.json -
7def2762026-09-20 auto-data-snapshot: 2026-09-20T00:31:26 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-20.json public/flyers/flyers.json -
3574a2f2026-09-19 auto-data-snapshot: 2026-09-19T16:52:18 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-19.json public/flyers/flyers.json -
4ffbe002026-09-19 auto-data-snapshot: 2026-09-19T13:09:57 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-19.json public/flyers/flyers.json -
64de8392026-09-19 auto-data-snapshot: 2026-09-19T06:48:50 (1 data files) — public/flyers-found/property-flyers.json -
3f4e27f2026-09-19 auto-data-snapshot: 2026-09-19T05:44:32 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-19.json public/flyers/flyers.json -
b2636852026-09-19 auto-data-snapshot: 2026-09-19T00:26:16 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-19.json public/flyers/flyers.json -
b6f512d2026-09-18 auto-data-snapshot: 2026-09-18T16:30:11 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-18.json public/flyers/flyers.json -
83517a72026-09-18 flyers: restore load-failure .catch() in build template + rebuild -
6933ee22026-09-18 auto-data-snapshot: 2026-09-18T13:12:29 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-18.json public/flyers/flyers.json -
3874f942026-09-18 auto-data-snapshot: 2026-09-18T06:45:31 (1 data files) — public/flyers-found/property-flyers.json -
bf460bf2026-09-18 auto-data-snapshot: 2026-09-18T06:13:19 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-18.json public/flyers/flyers.json -
19707402026-09-18 auto-data-snapshot: 2026-09-18T00:21:36 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-18.json public/flyers/flyers.json -
163579b2026-09-17 auto-data-snapshot: 2026-09-17T16:53:13 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-17.json -
1bd8a642026-09-17 auto-data-snapshot: 2026-09-17T13:09:20 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-17.json public/flyers/flyers.json -
76a90b22026-09-17 auto-data-snapshot: 2026-09-17T06:40:35 (1 data files) — public/flyers-found/property-flyers.json -
55e71ab2026-09-17 auto-data-snapshot: 2026-09-17T06:08:13 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-17.json public/flyers/flyers.json -
703e2db2026-09-17 auto-data-snapshot: 2026-09-17T00:15:59 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-17.json public/flyers/flyers.json -
18ab7b12026-09-16 auto-data-snapshot: 2026-09-16T16:47:48 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-16.json -
30e3ab92026-09-16 auto-data-snapshot: 2026-09-16T12:52:52 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-16.json public/flyers/flyers.json -
47c5e7e2026-09-16 auto-data-snapshot: 2026-09-16T06:48:17 (1 data files) — public/flyers-found/property-flyers.json -
204b6fb2026-09-16 auto-data-snapshot: 2026-09-16T06:15:51 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-16.json -
f1eac692026-09-16 auto-data-snapshot: 2026-09-16T00:24:38 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-16.json public/flyers/flyers.json -
4dd6fea2026-09-15 security: add rel=noopener noreferrer to target=_blank links (yoloforever cycle 3) -
c51dbfb2026-09-15 flyers: add visible .catch() error state on flyers.json load (TK-11773) -
3484f652026-09-15 restore creds-in-URL fetch guard on flyers page (regression from 1ac8ff5 prod-snapshot; TK-11773 / TK-10984) -
357413c2026-09-15 auto-data-snapshot: 2026-09-15T16:53:16 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-15.json -
1ac8ff52026-09-15 chore: commit code deployed in 2026-09-15 fleet push -
599df822026-09-15 auto-data-snapshot: 2026-09-15T13:06:09 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-15.json public/flyers/flyers.json -
0ec31ad2026-09-15 auto-data-snapshot: 2026-09-15T06:37:28 (1 data files) — public/flyers-found/property-flyers.json -
9dfea142026-09-15 auto-data-snapshot: 2026-09-15T06:04:48 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-15.json public/flyers/flyers.json -
ab032972026-09-15 auto-data-snapshot: 2026-09-15T00:13:09 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-15.json public/flyers/flyers.json -
dadd0f82026-09-14 auto-data-snapshot: 2026-09-14T16:46:18 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-14.json public/flyers/flyers.json -
bf572db2026-09-14 auto-data-snapshot: 2026-09-14T12:55:07 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-14.json public/flyers/flyers.json -
0839af42026-09-14 auto-data-snapshot: 2026-09-14T06:45:42 (1 data files) — public/flyers-found/property-flyers.json -
c57a50b2026-09-14 auto-data-snapshot: 2026-09-14T06:13:15 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-14.json -
8a6270d2026-09-14 auto-data-snapshot: 2026-09-14T00:22:42 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-14.json public/flyers/flyers.json -
ab7b7422026-09-13 auto-data-snapshot: 2026-09-13T16:30:12 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-13.json public/flyers/flyers.json -
49673362026-09-13 auto-data-snapshot: 2026-09-13T13:15:54 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-13.json public/flyers/flyers.json -
9e181a62026-09-13 auto-data-snapshot: 2026-09-13T07:02:23 (1 data files) — public/flyers-found/property-flyers.json -
3fbd35d2026-09-13 auto-data-snapshot: 2026-09-13T05:55:37 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-13.json public/flyers/flyers.json -
1344d6f2026-09-13 auto-data-snapshot: 2026-09-13T00:21:19 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-13.json public/flyers/flyers.json -
0d3525d2026-09-12 auto-data-snapshot: 2026-09-12T16:40:13 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-12.json public/flyers/flyers.json -
a83b1e02026-09-12 auto-data-snapshot: 2026-09-12T12:53:51 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-12.json public/flyers/flyers.json -
ac045782026-09-12 auto-data-snapshot: 2026-09-12T06:45:13 (1 data files) — public/flyers-found/property-flyers.json -
337e2bc2026-09-12 auto-data-snapshot: 2026-09-12T06:11:57 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-12.json public/flyers/flyers.json -
255b4922026-09-12 auto-data-snapshot: 2026-09-12T00:03:41 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-12.json public/flyers/flyers.json -
66101d62026-09-11 auto-data-snapshot: 2026-09-11T16:55:51 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-11.json public/flyers/flyers.json -
bb005de2026-09-11 auto-data-snapshot: 2026-09-11T12:47:38 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-11.json public/flyers/flyers.json -
49a82af2026-09-11 auto-data-snapshot: 2026-09-11T06:38:19 (1 data files) — public/flyers-found/property-flyers.json -
8a2a5fa2026-09-11 auto-data-snapshot: 2026-09-11T06:04:43 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-11.json public/flyers/flyers.json -
ca1755b2026-09-11 auto-data-snapshot: 2026-09-11T00:01:31 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-11.json -
fae53dd2026-09-10 auto-data-snapshot: 2026-09-10T17:00:45 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-10.json public/flyers/flyers.json -
dcc92032026-09-10 auto-data-snapshot: 2026-09-10T13:02:09 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-10.json public/flyers/flyers.json -
782836f2026-09-10 auto-data-snapshot: 2026-09-10T07:00:36 (1 data files) — public/flyers-found/property-flyers.json -
439f0782026-09-10 auto-data-snapshot: 2026-09-10T05:55:20 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-10.json public/flyers/flyers.json -
6d24f462026-09-10 auto-data-snapshot: 2026-09-10T00:28:57 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-10.json public/flyers/flyers.json -
802101d2026-09-09 auto-data-snapshot: 2026-09-09T16:44:54 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-09.json public/flyers/flyers.json -
cd2f48e2026-09-09 auto-data-snapshot: 2026-09-09T12:49:50 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-09.json -
636ffde2026-09-09 auto-data-snapshot: 2026-09-09T06:50:05 (1 data files) — public/flyers-found/property-flyers.json -
89279bb2026-09-09 auto-data-snapshot: 2026-09-09T05:45:52 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-09.json public/flyers/flyers.json -
7717a4e2026-09-09 auto-data-snapshot: 2026-09-09T00:25:51 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-09.json public/flyers/flyers.json -
66d87072026-09-08 auto-data-snapshot: 2026-09-08T16:52:29 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-08.json -
817ddef2026-09-08 auto-data-snapshot: 2026-09-08T12:55:25 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-08.json public/flyers/flyers.json -
3fc571f2026-09-08 auto-data-snapshot: 2026-09-08T07:07:04 (1 data files) — public/flyers-found/property-flyers.json -
f09d2122026-09-08 auto-data-snapshot: 2026-09-08T05:50:05 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-08.json public/flyers/flyers.json -
45e85472026-09-08 auto-data-snapshot: 2026-09-08T00:07:00 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-08.json public/flyers/flyers.json -
306dee72026-09-07 auto-data-snapshot: 2026-09-07T16:31:47 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-07.json public/flyers/flyers.json -
1f14bb12026-09-07 auto-data-snapshot: 2026-09-07T13:22:13 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-07.json public/flyers/flyers.json -
55aaad52026-09-07 auto-data-snapshot: 2026-09-07T06:51:38 (1 data files) — public/flyers-found/property-flyers.json -
bc57da82026-09-07 auto-data-snapshot: 2026-09-07T06:12:13 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-07.json public/flyers/flyers.json -
0eb52fa2026-09-07 auto-data-snapshot: 2026-09-07T00:25:13 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-07.json public/flyers/flyers.json -
ef126242026-09-06 auto-data-snapshot: 2026-09-06T16:44:44 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-06.json public/flyers/flyers.json -
087760a2026-09-06 auto-data-snapshot: 2026-09-06T12:54:02 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-06.json public/flyers/flyers.json -
ee06c8c2026-09-06 auto-data-snapshot: 2026-09-06T06:30:35 (1 data files) — public/flyers-found/property-flyers.json -
09759572026-09-06 auto-data-snapshot: 2026-09-06T05:51:58 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-06.json public/flyers/flyers.json -
02575a92026-09-06 auto-data-snapshot: 2026-09-06T00:06:24 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-06.json public/flyers/flyers.json -
ba615ee2026-09-05 auto-data-snapshot: 2026-09-05T17:04:46 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-05.json public/flyers/flyers.json -
fba23ee2026-09-05 auto-data-snapshot: 2026-09-05T13:15:00 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-05.json public/flyers/flyers.json -
e0e44c82026-09-05 auto-data-snapshot: 2026-09-05T06:52:09 (1 data files) — public/flyers-found/property-flyers.json -
76512b62026-09-05 auto-data-snapshot: 2026-09-05T06:13:03 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-05.json public/flyers/flyers.json -
e4270b52026-09-05 auto-data-snapshot: 2026-09-05T00:27:41 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-05.json public/flyers/flyers.json -
c1a90a22026-09-04 auto-data-snapshot: 2026-09-04T16:48:05 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-04.json public/flyers/flyers.json -
9eaf6c92026-09-04 auto-data-snapshot: 2026-09-04T12:55:58 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-04.json public/flyers/flyers.json -
32b8d6d2026-09-04 auto-data-snapshot: 2026-09-04T06:32:13 (1 data files) — public/flyers-found/property-flyers.json -
d0d4cd82026-09-04 auto-data-snapshot: 2026-09-04T05:53:32 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-04.json public/flyers/flyers.json -
24b916e2026-09-04 auto-data-snapshot: 2026-09-04T00:35:53 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-04.json public/flyers/flyers.json -
d4dac6e2026-09-03 auto-data-snapshot: 2026-09-03T17:01:36 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-03.json public/flyers/flyers.json -
6ddbd0d2026-09-03 auto-data-snapshot: 2026-09-03T13:07:42 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-03.json -
e6fc34d2026-09-03 auto-data-snapshot: 2026-09-03T06:39:23 (1 data files) — public/flyers-found/property-flyers.json -
d9ad2f62026-09-03 auto-data-snapshot: 2026-09-03T06:01:09 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-03.json public/flyers/flyers.json -
d7898622026-09-03 auto-data-snapshot: 2026-09-03T00:20:09 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-03.json public/flyers/flyers.json -
3b38f052026-09-02 auto-data-snapshot: 2026-09-02T16:45:26 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-02.json public/flyers/flyers.json -
18fdd862026-09-02 auto-data-snapshot: 2026-09-02T12:46:36 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-02.json -
b4590f12026-09-02 auto-data-snapshot: 2026-09-02T06:32:31 (1 data files) — public/flyers-found/property-flyers.json -
43638aa2026-09-02 auto-data-snapshot: 2026-09-02T05:54:41 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-02.json public/flyers/flyers.json -
9fdac2c2026-09-02 auto-data-snapshot: 2026-09-02T00:14:50 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-02.json public/flyers/flyers.json -
ce91f322026-09-01 auto-data-snapshot: 2026-09-01T16:44:49 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-01.json -
09e68af2026-09-01 auto-data-snapshot: 2026-09-01T12:55:30 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-09-01.json -
52aef102026-09-01 auto-data-snapshot: 2026-09-01T06:36:17 (1 data files) — public/flyers-found/property-flyers.json -
af2ce822026-09-01 auto-data-snapshot: 2026-09-01T05:58:40 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-01.json public/flyers/flyers.json -
3c2b50e2026-09-01 auto-data-snapshot: 2026-09-01T00:24:29 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-09-01.json public/flyers/flyers.json -
58cb1002026-08-31 auto-data-snapshot: 2026-08-31T16:59:21 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-08-31.json -
9338a522026-08-31 auto-data-snapshot: 2026-08-31T13:13:14 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-08-31.json -
5304fa32026-08-31 auto-data-snapshot: 2026-08-31T07:01:20 (1 data files) — public/flyers-found/property-flyers.json -
d0274ec2026-08-31 auto-data-snapshot: 2026-08-31T05:45:56 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-31.json public/flyers/flyers.json -
3d51e5e2026-08-31 add creds-in-URL fetch guard to gated flyers pages (TK-10984) -
ddc571b2026-08-31 auto-data-snapshot: 2026-08-31T00:07:16 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-31.json public/flyers/flyers.json -
0c3b4132026-08-30 auto-data-snapshot: 2026-08-30T16:35:05 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-30.json public/flyers/flyers.json -
dac14952026-08-30 auto-data-snapshot: 2026-08-30T12:50:08 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-30.json public/flyers/flyers.json -
e6586b92026-08-30 auto-data-snapshot: 2026-08-30T06:38:24 (1 data files) — public/flyers-found/property-flyers.json -
e5bfbc02026-08-30 auto-data-snapshot: 2026-08-30T06:00:18 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-30.json public/flyers/flyers.json -
46d84692026-08-30 auto-data-snapshot: 2026-08-30T00:26:44 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-30.json public/flyers/flyers.json -
4445e7b2026-08-29 auto-data-snapshot: 2026-08-29T16:29:06 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-29.json public/flyers/flyers.json -
b401e272026-08-29 auto-data-snapshot: 2026-08-29T12:47:37 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-29.json public/flyers/flyers.json -
aeab5902026-08-29 auto-data-snapshot: 2026-08-29T06:38:47 (1 data files) — public/flyers-found/property-flyers.json -
747b0062026-08-29 auto-data-snapshot: 2026-08-29T06:00:28 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-29.json public/flyers/flyers.json -
a5aa44b2026-08-29 auto-data-snapshot: 2026-08-29T00:25:44 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-29.json public/flyers/flyers.json -
28819552026-08-28 auto-data-snapshot: 2026-08-28T17:02:53 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-28.json public/flyers/flyers.json -
014008f2026-08-28 auto-data-snapshot: 2026-08-28T12:44:16 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-08-28.json -
e33dec22026-08-28 auto-data-snapshot: 2026-08-28T06:30:22 (1 data files) — public/flyers-found/property-flyers.json -
0a728f72026-08-28 auto-data-snapshot: 2026-08-28T05:53:21 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-28.json public/flyers/flyers.json -
6387d7a2026-08-28 auto-data-snapshot: 2026-08-28T00:19:23 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-28.json public/flyers/flyers.json -
31360452026-08-27 auto-data-snapshot: 2026-08-27T16:56:59 (7 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-08-27.json -
cca55932026-08-27 auto-data-snapshot: 2026-08-27T13:15:02 (7 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-08-27.json -
ed266522026-08-27 auto-data-snapshot: 2026-08-27T07:06:07 (1 data files) — public/flyers-found/property-flyers.json -
f6bd2a42026-08-27 auto-data-snapshot: 2026-08-27T05:52:15 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-27.json public/flyers/flyers.json -
96c06fd2026-08-27 href-drill: add drill primitives to re-flyer-aggregator (TK-10903) -
384325f2026-08-27 auto-data-snapshot: 2026-08-27T00:22:48 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-27.json public/flyers/flyers.json -
27d53932026-08-26 auto-data-snapshot: 2026-08-26T16:29:03 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-08-26.json -
ac7d8aa2026-08-26 auto-data-snapshot: 2026-08-26T12:47:56 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-08-26.json -
35182db2026-08-26 auto-data-snapshot: 2026-08-26T06:30:25 (1 data files) — public/flyers-found/property-flyers.json -
c119c8d2026-08-26 auto-data-snapshot: 2026-08-26T05:53:46 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-26.json public/flyers/flyers.json -
9b6d4cc2026-08-26 auto-data-snapshot: 2026-08-26T00:21:52 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-26.json public/flyers/flyers.json -
e22dc342026-08-25 auto-data-snapshot: 2026-08-25T17:03:18 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-25.json public/flyers/flyers.json -
35bca3a2026-08-25 auto-data-snapshot: 2026-08-25T12:44:18 (7 data files) — .deploy.conf data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-25.json -
9084c4a2026-08-25 creds-safe fetch guard: inject into 7 served viewer pages (serve-viewers.mjs multi-page entry, apply.mjs only got public/index.html) -
f9f37c02026-08-25 creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap) -
54761502026-08-25 auto-data-snapshot: 2026-08-25T07:02:59 (1 data files) — public/flyers-found/property-flyers.json -
df721502026-08-25 auto-data-snapshot: 2026-08-25T05:49:00 (7 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-08-25.json -
f109f232026-08-25 auto-data-snapshot: 2026-08-25T00:22:08 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-25.json public/flyers/flyers.json -
ff6543b2026-08-24 TK-10708 (decision B): consolidate re-flyers normalizer into aggregator as scripts/build-normalized-flyers.mjs (224 rows byte-identical: broker 202/spotlight 7/usre 15); gitignore generated feed; retire standalone -
4c87c252026-08-24 auto-data-snapshot: 2026-08-24T16:31:44 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-24.json public/flyers/flyers.json -
50e3f572026-08-24 properties viewer: add 'Assessed value' sort + County filter — makes the 127k assessed-only parcels navigable (surfaces trophy properties like 4000 Warner Blvd $737M / 525 S Flower $909M that were buried at mentions=0); reversible viewer-only -
46ea05e2026-08-24 ingest: skip parenthetical placeholder addresses ('(PYLON SIGN SITE)') — guards the no-sale-parcel inclusion; drops exactly 2 junk rows, keeps all 3,791 real-address no-data parcels (cycle 6 verify-before-acting: seed's '5,317 junk' was a phantom) -
acf296e2026-08-24 auto-data-snapshot: 2026-08-24T13:25:50 (1 data files) — public/properties/property-index.json -
749d9162026-08-24 properties viewer: show 'assessed $X' for no-sale public-record parcels + graceful 'no recorded sale' sub-line (renders the 122k assessed-only LA rows meaningfully) -
b767d0f2026-08-24 re-flyer /properties: include no-sale parcels in the 4 index counties (Steve 2026-08-24) — fills the LA hole 2,605->126,324; assessed-only rows sink to bottom (mentions:0), deals preserved -
b0f6ccf2026-08-24 auto-data-snapshot: 2026-08-24T12:55:01 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-24.json public/flyers/flyers.json -
116f35a2026-08-24 auto-data-snapshot: 2026-08-24T06:55:00 (1 data files) — public/flyers-found/property-flyers.json -
48231bf2026-08-24 auto-data-snapshot: 2026-08-24T05:49:45 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-24.json public/flyers/flyers.json -
c47a33b2026-08-24 auto-data-snapshot: 2026-08-24T00:29:53 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-24.json public/flyers/flyers.json -
dad27d12026-08-23 auto-data-snapshot: 2026-08-23T16:32:34 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-23.json public/flyers/flyers.json -
7fdde272026-08-23 auto-data-snapshot: 2026-08-23T12:49:52 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-23.json public/flyers/flyers.json -
317e1b62026-08-23 auto-data-snapshot: 2026-08-23T07:00:05 (1 data files) — public/flyers-found/property-flyers.json -
74ab4792026-08-23 auto-data-snapshot: 2026-08-23T05:55:15 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-23.json public/flyers/flyers.json -
38ea5312026-08-23 auto-data-snapshot: 2026-08-23T00:04:14 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-23.json public/flyers/flyers.json -
15af6cb2026-08-22 auto-data-snapshot: 2026-08-22T16:38:17 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-22.json public/flyers/flyers.json -
865f40a2026-08-22 auto-data-snapshot: 2026-08-22T12:55:46 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-22.json public/flyers/flyers.json -
191fd2d2026-08-22 auto-data-snapshot: 2026-08-22T06:32:10 (1 data files) — public/flyers-found/property-flyers.json -
6ff72e72026-08-22 auto-data-snapshot: 2026-08-22T05:59:25 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-22.json public/flyers/flyers.json -
450c07b2026-08-22 auto-data-snapshot: 2026-08-22T00:08:20 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-22.json public/flyers/flyers.json -
72561262026-08-21 auto-data-snapshot: 2026-08-21T16:43:55 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-21.json public/flyers/flyers.json -
4c519fc2026-08-21 auto-data-snapshot: 2026-08-21T13:00:36 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-21.json public/flyers/flyers.json -
1772dbc2026-08-21 auto-data-snapshot: 2026-08-21T06:38:13 (1 data files) — public/flyers-found/property-flyers.json -
286db512026-08-21 auto-data-snapshot: 2026-08-21T06:05:08 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-21.json public/flyers/flyers.json -
47cb3732026-08-21 auto-data-snapshot: 2026-08-21T00:14:48 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-21.json public/flyers/flyers.json -
14579582026-08-20 auto-data-snapshot: 2026-08-20T16:47:08 (8 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json data/edgar-seen.json out/crenews-new-deals-2026-08-20.json -
0e8c1f12026-08-20 auto-data-snapshot: 2026-08-20T14:07:04 (5 data files) — .playwright-mcp/page-2026-08-20T20-49-23-353Z.yml .playwright-mcp/page-2026-08-20T20-49-52-968Z.yml .playwright-mcp/page-2026-08-20T20-50-49-049Z.yml .playwright-mcp/page-2026-08-20T20-51-06-826Z.yml recities.png -
38ea6842026-08-20 auto-data-snapshot: 2026-08-20T13:00:52 (7 data files) — .playwright-mcp/page-2026-08-20T19-47-05-098Z.yml data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-20.json -
92190792026-08-20 auto-data-snapshot: 2026-08-20T12:27:13 (4 data files) — .playwright-mcp/page-2026-08-20T19-09-02-773Z.yml .playwright-mcp/page-2026-08-20T19-09-55-689Z.yml .playwright-mcp/page-2026-08-20T19-10-24-132Z.yml .playwright-mcp/page-2026-08-20T19-10-52-940Z.yml -
92191682026-08-20 refine-loop: wire ingest-usre-parcels as a step after build-property-index (re-usre, TK-10708) -
b9812f92026-08-20 chore: sync nav-agent v1.3 header (session close) -
2b4363f2026-08-20 auto-data-snapshot: 2026-08-20T09:38:44 (3 data files) — out/crenews-new-deals-2026-08-20.json public/properties/property-index.json public/sources.json -
6e761c72026-08-20 reflyers: deploy deal-assets viewer (server.js) + auto-refresh usre snapshot 4x/day (item 2) -
3bbdac82026-08-20 reflyers: auto-sync fresh viewer data to Kamatera prod after each dtt-cron run (item 1 freshness) -
b12f6f02026-08-20 chore: lint + light refactor of news/property scripts (session close) -
62868fe2026-08-20 ingest-usre-parcels: deterministic byte-identical output (re-usre, TK-10708) -
7d710422026-08-20 refine-loop cycle 7: +articles/deals 08-20 09:13 -
1b6357c2026-08-20 property index: enrich with size — carry RENTV size_label/units/sqft/occupancy through ingest; extract units/sqft from titles (358-unit, 102,000 sf); show size + occupancy chips on /properties cards. Plumbing ready for usre parcel sqft to populate at scale (TK-10708) -
8d7215d2026-08-20 scale-up per-property index to FULL universe: ingest-usre-parcels.mjs merges usre commercial_parcel + sale events into property-index.json (re-usre, TK-10708) -
389c0822026-08-20 auto-data-snapshot: 2026-08-20T09:06:02 (1 data files) — public/properties/property-index.json -
ca7ef7d2026-08-20 serve-viewers: honor PORT env (default 9862) for Kamatera deploy -
9ea2e7d2026-08-20 add PER-PROPERTY index (Steve: data on every property) — build-property-index.mjs extracts address+city+type+price+parties from every deal/article w/ an address, aggregates all mentions into one property record w/ full transaction history; /properties viewer (search, expand history, sort by most-tracked/newest/biggest); 2340 unique properties; wired into refine loop (TK-10708) -
2c83a5f2026-08-20 auto-data-snapshot: 2026-08-20T08:33:21 (1 data files) — public/flyers/flyers.json -
b6056a12026-08-20 add RENTV as a DIRECT source (Steve) — ingest-rentv.mjs pulls rentv.agentabrams.com /api/deals + /api/news (structured txn/property/city/amount/size) into store+archive, far richer than the gnews proxy; RENTV 9->35 archive / 37 store; wired into the refine loop (TK-10708) -
d9128702026-08-20 archive: record only CRE-RELEVANT articles (RE_SIGNAL + not NOT_DEAL/roundup) not literally every pulled item — fixes non-CRE leaks like 'restaurant chain; Lockheed $35B missile deal'; pruned existing 3983->2828 (TK-10708) -
a8517422026-08-20 add /deals — price-ranked 'unique deals' view (sort by biggest $ / newest / most-reported); cross-source clustering by price-bucket+entity merges exact dupes (Rexford/Blackstone/Goldman show '2 sources'); conservative by design — full cross-outlet dedup needs entity resolution. Additive, no collision (TK-10708) -
e531cc62026-08-20 repo hygiene: gitignore regenerable build artifacts (flyers.json/sources.json/index.html) + logs so the overnight refine loop doesn't bloat the repo ~6.8MB/cycle; keep the DATA ASSETS (article-archive, deal-store) versioned (TK-10708) -
c4de3262026-08-20 search+sources: nav-agent v1.3 (sidebar collapse on load) + add nav-agent to / sources dashboard -
9193ea12026-08-20 archive: extract buyer/seller from headlines (same patterns as flyers build) so the global search buyer/seller filter works on archive items too; backfilled existing 3983 (Steve keep-going enrichment) (TK-10708) -
9abec8f2026-08-20 dashboard: incorporate ALL data — load article-archive.json, show total 'articles archived' in the flow + per-source 'Archived (all)' column (click -> modal of every article from that source, all 56 sources' accumulated totals); the dashboard now reflects the full growing archive, not just this-run's pull (Steve) (TK-10708) -
e7619ad2026-08-20 auto-data-snapshot: 2026-08-20T08:00:08 (2 data files) — out/crenews-new-deals-2026-08-20.json search-live.png -
49d078a2026-08-20 search: add full Nav Agent (grid/list-KV views, field toggles, sort, group, movable/resizable panel) -
826a41c2026-08-20 refine-loop cycle 6: +articles/deals 08-20 07:43 -
ed02f742026-08-20 auto-data-snapshot: 2026-08-20T06:55:11 (3 data files) — data/property-flyers-launchd.err data/property-flyers-launchd.out public/flyers-found/property-flyers.json -
0e76b402026-08-20 auto-data-snapshot: 2026-08-20T06:22:25 (1 data files) — out/crenews-new-deals-2026-08-20.json -
2cd69f82026-08-20 refine-loop cycle 5: +articles/deals 08-20 06:13 -
aa948492026-08-20 auto-data-snapshot: 2026-08-20T05:49:45 (6 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-20.json public/flyers/flyers.json -
842c96c2026-08-20 auto-data-snapshot: 2026-08-20T04:44:35 (1 data files) — out/crenews-new-deals-2026-08-20.json -
7dd7af42026-08-20 refine-loop cycle 4: +articles/deals 08-20 04:42 -
5e3619b2026-08-20 auto-data-snapshot: 2026-08-20T04:12:00 (5 data files) — data/article-archive.json data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-20.json public/sources.json -
f770eb02026-08-20 auto-data-snapshot: 2026-08-20T03:38:46 (1 data files) — out/crenews-new-deals-2026-08-20.json -
d9d20ae2026-08-20 refine-loop cycle 3: +articles/deals 08-20 03:12 -
b2c46d42026-08-20 auto-data-snapshot: 2026-08-20T02:01:17 (1 data files) — out/crenews-new-deals-2026-08-20.json -
fa53c122026-08-20 refine-loop cycle 2: +articles/deals 08-20 01:42 -
af7d3092026-08-20 auto-data-snapshot: 2026-08-20T00:23:34 (1 data files) — out/crenews-new-deals-2026-08-20.json -
1f8efdb2026-08-20 refine-loop cycle 1: +articles/deals 08-20 00:12 -
2cda3b32026-08-20 add global fast-search page (/search) — chat-style instant search across all 3870+ deals & articles (title/source/market/buyer/seller/price/date), match highlighting; LEFT nav with '📋 All Listings' + type filters (Sales/Listings/Leases/Loans/Dev/News) + top-source filters; merges deal-store + article-archive (grows over time); Search link on dashboard (Steve) (TK-10708) -
37212762026-08-20 add refine-loop.sh — overnight loop that records every article into the archive + rebuilds, 90-min spacing, local-only (Steve: refine all night) (TK-10708) -
6c18e622026-08-20 news: record EVERY article to a growing article-archive.json each run (Steve: historical backfill is Google-capped, so build our own history forward instead) — deduped, no cap, compounds daily into our own CRE-news database (TK-10708) -
e28d0092026-08-20 news: remove pulled_list/samples storage cap (was 250) -> Infinity — store EVERY pulled item + every deal per feed, no cap (Steve); env PULL_CAP/SAMP_CAP still override (TK-10708) -
fe4e6462026-08-20 sources dashboard: expanded article list now renders UNDER the Recent column (right side), stacked directly below the preview articles, text justified + wrapping (Steve) (TK-10708) -
f819c872026-08-19 news: add --deep 90-day backfill mode (Codex-validated) — gnews-mirror every source across 6 date-windows (after:/before:), serial + jitter(3-5s) + adaptive backoff (thin response=soft-throttle) + dedup, low concurrency to dodge Google 429s; opt-in flag, daily cron unchanged. Cracks the ~100-item/query cap (TK-10708) -
f6dff9a2026-08-19 sources dashboard: (1) recent-cell + card samples now sort newest-first (sortSamp helper — was stored order); (2) full-width layout (removed 1180px cap) so one-line articles fit without cutoff; (3) raise pulled_list/samples storage caps 60/40 -> 250 so 'Items pulled'/'Deals kept' modals show ALL fetched items (gnews maxes 100/feed), not a truncated subset (Steve) (TK-10708) -
07ed1ce2026-08-19 sources dashboard (table mode): each article on ONE LINE (white-space:nowrap) in the Recent column + expanded detail; table expands to the right with horizontal scroll (.tblwrap overflow-x); recent col min 340px (Steve) (TK-10708) -
84398482026-08-19 sources dashboard: (1) fix article sort — detail rows + modal now sort by parsed date newest-first (was string-comparing RFC dates -> day-of-week order); (2) resizable columns — drag a header's right edge to widen, width persists, table expands right w/ horizontal scroll (Steve) (TK-10708) -
471e0d72026-08-19 capture: loosen 'deals kept' to RENTV-breadth (any recent CRE-service/coverage article, price+deal-verb no longer required) + expand RE_SIGNAL to CRE services (brokerage/leasing/financing/mgmt/etc) + News type; default to rolling 90-day window (GNEWS_WHEN=90d, MAX_AGE_DAYS=95) so the front end stays consistent; store cap 3k->12k to keep all articles. Deals-kept 376->1264, 90-day window 44->1239 (TK-10708) -
68ac0d42026-08-19 property flyers: commit the daily cron wrapper (crawl + rsync to flyers.crcp) driven by the now-armed launchd job (TK-10708) -
e87dd432026-08-19 sources dashboard: add view-mode switch (Table/Grid/List/KV) + density slider — full-width grid that condenses+stacks (Steve: sliders/grid/list/kv + expand L-R + condense/stack); numbers clickable in every mode; view+density persisted; verified all modes in Chrome (TK-10708) -
56f09c52026-08-19 sources dashboard: FULL NAV AGENT (Steve ASAP) — draggable/movable columns + column show-hide toggles + expandable rows + click Items-pulled/Deals-kept to view items in modal; sort every field incl Latest; verified all in real Chrome (TK-10708) -
c74be9d2026-08-19 capture: add Listing type (new-to-market) + price-optional lease renewals/subleases/listings (Steve: 'any new listing' + 'lease renewals, subleases etc'); store pulled_list+deals per feed for view-in-modal; Listing chip color in both viewers (TK-10708) -
c8df1d12026-08-19 auto-data-snapshot: 2026-08-19T22:44:23 (1 data files) — out/crenews-new-deals-2026-08-20.json -
68c03762026-08-19 property flyers: cleaner titles (double-decode %20, strip Wix hash prefixes, drop hash-garbage entries) (TK-10708) -
b81a80f2026-08-19 property flyers: deep crawl found 200 real property one-sheets across CA brokers (was 9 from homepages) (TK-10708) -
af78c322026-08-19 sources dashboard: add sortable 'Latest' date column (per-source most-recent item date) so sources can be sorted by date (Steve) (TK-10708) -
930736f2026-08-19 property flyers: deep-crawl broker listing pages for real property marketing PDFs (address/OM/for-sale classifier, drops apps/proxies/decks); gallery viewer at /property-flyers, sortable+searchable+density; seeded 9 from homepage crawl, deep crawl running (TK-10708) -
dcc7ff82026-08-19 news: +33 feeds (18 major-broker press scrapes + metro biz-journals + CoStar/YieldPRO/MultifamilyExec/Crexi); Bisnow→direct RSS (full desc w/ price); broker deal-flow price-optional; concurrency pool vs 429; 58→57 feeds, 867→3200 items scanned (TK-10708) -
cca01202026-08-19 flyers: one-time localStorage migration so existing 90d-default viewers auto-reset to All-time on reload (TK-10708) -
f2b08f42026-08-19 flyers viewer: default to All-time (was 90d) so full ~2650 inventory shows newest-first, not just the ~47 fresh news deals; 90d filter still one click (Steve: only 47 deals) (TK-10708) -
8d6d8a72026-08-19 flyers viewer: add recency filter (7/30/90d / all-time), default Past-90-days + Newest sort (Steve: deals in past 90 days, sort new order); stat shows window (TK-10708) -
33843612026-08-19 deploy: Kamatera SSL+nginx finish script — flyers.crcp (public) + advertising.crcp (basic-auth); ADV_PW passed via env, no secret in git; both DNS-only 2-level subdomains w/ origin LE certs (TK-10708) -
79dfa042026-08-19 auto-data-snapshot: 2026-08-19T18:57:31 (5 data files) — data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-20.json public/flyers/flyers.json public/sources.json -
c1274462026-08-19 ingest-public-deals: fix LIMIT NaN crash when run without --n (indexOf(-1)+1 → argv[0] node-path → NaN); default N=8000 safely. Affected manual/loop runs, not the dtt-cron (uses ingest-la-sales) (TK-10708) -
f042cb62026-08-19 ad-intel: catch GTM-injected pixels (fetch+scan gtm.js containers, tag via_gtm) so paid-advertiser count isn't undercounted by static HTML; viewer stat now discloses unreachable + via-GTM counts (Cody gate) (TK-10708) -
24ceb012026-08-19 auto-data-snapshot: 2026-08-19T17:51:58 (1 data files) — public/sources.json -
9b103fe2026-08-19 broker-ad-signals: fix stale console log that misreported CSV path (wrote public/advertising, logged public/flyers) — print real CSVF+JSONF (TK-10708) -
02c0a112026-08-19 advertising viewer: add sortable Scanned date+time column (Steve: dates on every entry); widen gitignore to keep all scraped broker-ad-signals data (3rd-party tokens) out of git (TK-10708) -
c5436592026-08-19 sources dashboard: click-to-drill on every graph → modal of underlying records (deals + brokers), verified all 6 charts in Chrome -
a6904f32026-08-19 add RENTV posts (Steve's outlet) as a source — its recent RE posts kept even without a price (typed Sale/Post), dates shown; live-list search now covers EVERY field incl dates/price/type/parties; all columns sortable + Nav Agent sort-any-field (TK-10708) -
47efecd2026-08-19 live list at /live.html (Steve: list each import record as it comes in): streams 2651 records in, Nav Agent panel (dock L/R, click-a-value-to-filter, sort any field), dates on every row + sources dashboard, ROW SELECTION (scroll a source, select what you need -> Copy/CSV); + CA public-record pull (2606 LA deeds/DTT) + rolling deal store feeding all views (TK-10708) -
e5d73862026-08-19 auto-data-snapshot: 2026-08-19T17:18:59 (4 data files) — data/crenews-seen.json data/deal-store.json out/crenews-new-deals-2026-08-20.json public/sources.json -
ae2397c2026-08-19 full graphs on the dashboard (Chart.js 2D canvas — robust, no WebGL): items-pulled + deals by source, deals by method + market, broker ad-platforms, crawl breakdown; destroy-before-recreate so refresh never leaks; 6 charts verified rendering (TK-10708) -
a4e32372026-08-19 retire the 3D WebGL viz (Steve: bad UI, freezes, scroll-locks): /live.html now serves the good sources dashboard (scrolls, Nav Agent, no WebGL) (TK-10708) -
c9ace0f2026-08-19 pivot to 'where the data comes from' dashboard (Steve: show actual RSS feeds/DB crawl, not abstract viz): per-source provenance (method/pull-count/deals/samples) + DB-crawl status card + Nav Agent dockable panel (left OR right, collapse, click-a-value-to-filter per FIELD) + no-WebGL so it scrolls & never freezes; default view -> sources dashboard (TK-10708) -
c9430152026-08-19 harden live.html vs freeze: 35fps cap + pause-render-when-tab-hidden + pixelRatio 1.5 + removed expensive backdrop-filter + try/catch surfaces render errors (no more silent freeze) + WebGL-context-lost auto-recover; persistent pm2 viewer server (serve-viewers.mjs, re-flyers-viewers :9862) so /live.html + /advertising stay up (TK-10708) -
2af68002026-08-19 auto-data-snapshot: 2026-08-19T16:46:39 (6 data files) — data/broker-ad-signals.json data/crenews-seen.json data/dtt-cron.err data/dtt-cron.out out/crenews-new-deals-2026-08-19.json -
3c044a62026-08-19 FIX live.html crash: GPU memory leak (undisposed geometries/materials/label-textures + unbounded cubes on every mode-switch/poll) -> shared geo+materials, proper disposal, CAP 140 cubes, instant rebuild. Rigorously tested via Playwright: 24 rapid mode-switches = geos/texs/cubes STABLE, 0 errors, drill works (click bar -> 23 Sale records/$4.6B) (TK-10708) -
3aabab22026-08-19 interactive live viz (click color bar -> enter its records) + advertising.crcp viewer (sortable ad-intel table + CSV) + crawler = ALL CRE firms nationally, comprehensive ad detection (Bing/DoubleClick/Criteo/Taboola/etc) + flyer/PDF link extraction; gitignore generated crawl data (TK-10708) -
d5a10e22026-08-19 live viz (reverted odd map -> clean XY bar chart w/ Z-depth): deals DROP from front into category columns (Type/Market/Source), bars build live, 'from where' ticker; verified render 0 console errors. + ad-crawl found 10 advertisers of top-100 CA brokers (TK-10708) -
fb372dc2026-08-19 auto-data-snapshot: 2026-08-19T16:13:26 (1 data files) — data/broker-ad-signals.json -
57d51c32026-08-19 ad scanner: biggest firms first (agent_count) + Google Analytics & StatCounter detection + list advertisers found (TK-10708) -
7d35a292026-08-19 ad-social-tracker on CA CRE brokers: slow rate-limited front-page crawl + paid-ad pixel fingerprinting (Google Ads/Meta/TikTok/LinkedIn/etc) from usre.firm registry; results -> data/broker-ad-signals.json (TK-10708) -
83ef4932026-08-19 California RE feeds + alt pull method: facebookexternalhit UA cracks MediaNews Cloudflare -> Mercury News + SD Union-Tribune DIRECT; + SFYimby direct + LA/SF Business Journals via gnews; per-feed UA support; data/ca-feeds-registry.json records all CA feeds + method (24 feeds) (TK-10708) -
a2b0fa92026-08-19 flyers.agentabrams.com: static gallery of every aggregated CRE deal as an ownable flyer (type/price/market/parties/date/source + sort/density/type/market filters); party extraction from headlines; wired into 4x/day cron (TK-10708) -
e0ea7562026-08-19 more free direct RSS (lean off proxy): REJournals + Multifamily Dive + LA Times real-estate feed (19 feeds) (TK-10708) -
e18b2c32026-08-19 one-stop CRE news = ALL deal types (Steve): classify+include Sale/Loan/Lease/Development (bonds, loan extensions, lease renewals kept + typed, not excluded); type chips in email + real deal count. Cody fixes kept: gnews-URL-rotation dedup via content signature + bounded seen-set + recency fail-closed (TK-10708) -
3d6efbf2026-08-19 red-hot freshness: gnews when:14d + client MAX_AGE_DAYS=4 recency gate (was surfacing 2.8yr-old deals; now max 2d) + cron to 4x/day 5:45a/12:45p/4:30p/12a (TK-10708) -
5ce50202026-08-19 one-stop NATIONAL CRE news: 16 feeds (TRD NY/Miami/Chicago/TriState/Texas/LA/Natl + national trade press + 5 gnews-proxy outlets incl CommercialSearch); national market tagger, dropped West-only gate, added RE-signal requirement + tech/VC + roundup exclusion (0 tech leaks) (TK-10708) -
818fd412026-08-19 expand CRE-news coverage 4->10 feeds: Google News RSS proxy cracks Cloudflare-blocked Bisnow/GlobeSt/Traded/MultiHousingNews (non-RSS fetch) + add TRD-National/REBusinessOnline; cross-outlet dedup + email cap 30 (TK-10708) -
62ec7fb2026-08-19 auto-data-snapshot: 2026-08-19T14:34:38 (1 data files) — data/crenews-seen.json -
56eec3b2026-08-19 digest: dedicated Source column (outlet name + link) + table headers so every deal notes its source (TK-10708) -
01cc8e02026-08-19 morning email digest: build-digest.mjs + email-digest.sh send NEW closed deals (news + SEC) to Steve via George; wired as final daily-cron step, sends only when deals exist (TK-10708) -
854c0542026-08-19 be-first PRIMARY feed: free CRE-news closed-deal monitor (TRD-LA/CommercialObserver/ConnectCRE/Registry-NorCal), sale+price+west filter + non-deal exclusion, dedupe, alert feed; wired into daily cron alongside EDGAR + DTT (TK-10708) -
dda8f012026-08-19 EDGAR monitor: West-footprint sweep + filing enrichment (property/price/sqft), earnings-release filter + Item 2.01 closed-deal flag + $/SF sanity gate (never publish a wrong price). Finding: Item 2.01 RE 8-Ks are sparse -> EDGAR is a thin free signal, not a full feed (TK-10708) -
effdba02026-08-19 be-first, FREE: SEC EDGAR CRE 8-K acquisition monitor (same-week LA deals, $0, no key) wired into daily cron; dedupe by accession + new-deal alert feed (TK-10708) -
38d5d5a2026-08-19 DTT daily cron: launchd com.steve.dtt-import runs ingest-la-sales.mjs daily + new-closed-deal detection (out/new-la-deals-*.json) for 'first to tell' (TK-10708) -
4cf0ddf2026-08-19 LA upstream fix: ingest-la-sales.mjs loads 2662 LA C/I sales (DTT-inferred prices, no names) into usre.parcel_event; root cause was wrong ArcGIS layer, not a data wall (codex-confirmed). Free LA source lags to 2024-06 (TK-10708) -
348247d2026-08-19 auto-data-snapshot: 2026-08-19T11:14:55 (1 data files) — RUNBOOK-kamatera-deploy.md -
24fe2f42026-08-19 consumable surface: read-only deal-assets viewer/API over usre.deal_assets_v (basic-auth, sort+density grid), pm2 re-flyers-viewer :9860; promoted canonical to usre (TK-10708, gate approved) -
7c6e8552026-08-19 aggregation store: local reflyers staging DB + ingest + deal_assets_v read view + consumer index; 15 real assets across 5 Miami deals; null-address filter (TK-10708) -
f0a5cd12026-08-19 probe v2: real firm-domain join + live discovery findings on Miami closed deals; verdict = Tier-2 recaps primary, trade-press links secondary, broker-OMs deferred (TK-10708) -
762f38c2026-08-19 re-flyer-aggregator: plan + tiered source registry + external_marketing_asset schema + Tier-2 recap generator + provenance probe (TK-10708, codex-reviewed)
Authors
- auto-commit-fleet207
- Steve98
Agents used
Skills used
- /flyers250
- /crenews-seen154
- /deal-store152
- /article-archive150
- /property-flyers38
- /flyers-found37
- /edgar-seen25
- /crenews-new-deals-2026-08-2014
- /deals10
- /page-2026-08-9
- /properties8
- /claude7
- /code7
- /sources6
- /index5
- /crenews-new-deals-2026-09-264
- /crenews-new-deals-2026-09-254
- /crenews-new-deals-2026-09-244
- /crenews-new-deals-2026-09-234
- /crenews-new-deals-2026-09-214
- /crenews-new-deals-2026-09-204
- /crenews-new-deals-2026-09-194
- /crenews-new-deals-2026-09-184
- /crenews-new-deals-2026-09-174
- /crenews-new-deals-2026-09-164
- /crenews-new-deals-2026-09-154
- /crenews-new-deals-2026-09-144
- /crenews-new-deals-2026-09-134
- /crenews-new-deals-2026-09-124
- /crenews-new-deals-2026-09-114
Creative ideas + design notes
8e714b1 · 2026-09-26 · TK-11856 rc-propagation (RSYNC): dtt-import + property-flyers propagate step/crawl/rsync 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/re-flyer-aggregator revert <this sha> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YaiWjfgEuKQLTb5cdDreS3
936f051 · 2026-09-25 · Add creds-in-URL fetch guard to flyers/index.html (TK-12282)
Closes the last local baseline hole in creds-guard-canary: this Basic-Auth-gated page did a relative fetch() without the fleet guard, so a saved user:pass@host bookmark would poison document.baseURI and silently render an empty page. Same pattern already applied fleet-wide (portal.html, TK-12268 commits). Note: the LIVE Kamatera copy (/root/public-projects/re-flyer- aggregator/public/flyers/index.html, pm2 re-flyers-viewer :9906) already carries an equivalent guard applied directly to prod outside git (drift) -- this commit brings the tracked source back in sync with what's actually running; deploy queued for consistency, not to fix a live vuln. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7LB6rCwpA7ubJTqYzqXEX
83517a7 · 2026-09-18 · flyers: restore load-failure .catch() in build template + rebuild
Generated flyers page swallowed fetch('flyers.json') failures silently
(unhandled rejection -> blank grid) after a rebuild wiped a hand-patch.
Fix belongs in scripts/build-flyers-site.mjs so every rebuild emits a
visible 'Could not load flyers' error state. Public page, so the
credential-safe fetch guard is intentionally not re-added.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GApjY8mnjD5aYcopgpnS8y
4dd6fea · 2026-09-15 · security: add rel=noopener noreferrer to target=_blank links (yoloforever cycle 3)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
c51dbfb · 2026-09-15 · flyers: add visible .catch() error state on flyers.json load (TK-11773)
Kills the silent-empty-grid failure class entirely — any load failure (creds-in-URL, network, 500, bad JSON) now shows a red message + 'load failed' stat instead of a blank grid. Complements the restored creds-in-URL fetch guard. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GHzse5aKM9vgbEhXxho7B3
3484f65 · 2026-09-15 · restore creds-in-URL fetch guard on flyers page (regression from 1ac8ff5 prod-snapshot; TK-11773 / TK-10984)
The 2026-09-15 'commit code deployed in fleet push' snapshot reverted flyers/index.html
byte-for-byte to its pre-guard state, dropping the window.fetch credential-safe wrapper.
The page does a relative fetch('flyers.json') behind a global Basic-Auth wall with no
.catch(), so a user:pass@host bookmark throws and the grid silently renders empty.
Restores the exact guard block matching the 8 sibling viewer pages.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GHzse5aKM9vgbEhXxho7B3
1ac8ff5 · 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
f9f37c0 · 2026-08-25 · creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap)
Fleet inoculation — opening this basic-auth app with credentials in the URL
poisoned document.baseURI and made relative fetch('/api/…') throw. Guard resolves
non-absolute request URLs against location instead. Ref: creds-in-url-fetch-guard-fleet-pattern.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
9219168 · 2026-08-20 · refine-loop: wire ingest-usre-parcels as a step after build-property-index (re-usre, TK-10708)
Appends one additive line so each 90-min cycle re-enriches /properties to the full 56,492-property universe instead of reverting to news-only. MUST run after build-property-index (which overwrites the file from news each cycle); ingest is idempotent+deterministic so re-runs/order are safe. Does not disturb the running loop process (bash holds the while-loop in memory; takes effect on next loop restart). Reversible: git revert. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b12f6f0 · 2026-08-20 · chore: lint + light refactor of news/property scripts (session close)
- cre-news-monitor: named MS_PER_DAY const (was inline 864e5 twice), SEEN_CAP const (was magic 8000), POOL_CONC const + proper default param on pullPooled; split siteOf() and dateWindows() off their dense one-liners for readability - build-property-index: split 5 consecutive size-coalesce assignments and city/state guards off a single line; no logic change - ingest-rentv, serve-viewers: clean, no change needed node --check + --dry run both green. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
62868fe · 2026-08-20 · ingest-usre-parcels: deterministic byte-identical output (re-usre, TK-10708)
The outer parcel SQL has no ORDER BY (Postgres scan order varies run-to-run), which reshuffled tie-groups and made the 54MB index differ every cycle -> the refine loop would commit 54MB no-op diffs. Added stable tie-breakers: rows sorted county->address->city->AIN (AIN final so condo-unit AINs sharing one canonical address pick the same sqft/assessed each run under fill-null-first-wins), entry sort broken by price then esig, final property sort broken by address|city. Verified byte-identical across fresh-baseline x2 + rerun. Second-model (Kimi) review pass done; its one actionable flag (city .trim()) correctly rejected — trimming would diverge from build-property-index's verbatim key and break the news-attach guarantee. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8d7215d · 2026-08-20 · scale-up per-property index to FULL universe: ingest-usre-parcels.mjs merges usre commercial_parcel + sale events into property-index.json (re-usre, TK-10708)
Non-invasive POST-build enrich layer — reads the news-built property-index.json and layers usre's public-record commercial parcels on top using build-property-index.mjs's VERBATIM canonical-address key (canon(addr)+'|'+city) so a news mention and its public-record twin land on ONE property. 57,251 CRE parcels w/ sale events across LA/Miami-Dade/Wake/Clackamas -> 2,340 news props grow to 56,492 (2,179 DTT news properties merged with their usre parcel, gaining sqft/year_built/units/assessed). Enrich-not-overwrite: news entries always preserved, usre fills nulls + appends its own sale entries + adds parcel enrichment. Idempotent (strips prior usre layer + same-sale dedup), $0 local psql. /properties verified loads+renders. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
File tree
- .deploy.conf
- .gitignore
- .playwright-mcp/page-2026-08-20T19-09-02-773Z.yml
- .playwright-mcp/page-2026-08-20T19-09-55-689Z.yml
- .playwright-mcp/page-2026-08-20T19-10-24-132Z.yml
- .playwright-mcp/page-2026-08-20T19-10-52-940Z.yml
- .playwright-mcp/page-2026-08-20T19-47-05-098Z.yml
- .playwright-mcp/page-2026-08-20T20-49-23-353Z.yml
- .playwright-mcp/page-2026-08-20T20-49-52-968Z.yml
- .playwright-mcp/page-2026-08-20T20-50-49-049Z.yml
- .playwright-mcp/page-2026-08-20T20-51-06-826Z.yml
- README.md
- RUNBOOK-kamatera-deploy.md
- data/article-archive.json
- data/broker-ad-signals.json
- data/ca-feeds-registry.json
- data/crenews-seen.json
- data/deal-store.json
- data/dtt-cron.err
- data/dtt-cron.out
- data/edgar-seen.json
- data/findings-2026-08-19.json
- data/property-flyers-launchd.err
- data/property-flyers-launchd.out
- data/source-registry.json
- db/001_external_marketing_asset.sql
- db/002_deal_assets_view.sql
- deploy/finish_kamatera_ssl.sh
- out/crenews-new-deals-2026-08-19.json
- out/crenews-new-deals-2026-08-20.json
- out/crenews-new-deals-2026-08-21.json
- out/crenews-new-deals-2026-08-22.json
- out/crenews-new-deals-2026-08-23.json
- out/crenews-new-deals-2026-08-24.json
- out/crenews-new-deals-2026-08-25.json
- out/crenews-new-deals-2026-08-26.json
- out/crenews-new-deals-2026-08-27.json
- out/crenews-new-deals-2026-08-28.json
- out/crenews-new-deals-2026-08-29.json
- out/crenews-new-deals-2026-08-30.json
- out/crenews-new-deals-2026-08-31.json
- out/crenews-new-deals-2026-09-01.json
- out/crenews-new-deals-2026-09-02.json
- out/crenews-new-deals-2026-09-03.json
- out/crenews-new-deals-2026-09-04.json
- out/crenews-new-deals-2026-09-05.json
- out/crenews-new-deals-2026-09-06.json
- out/crenews-new-deals-2026-09-07.json
- out/crenews-new-deals-2026-09-08.json
- out/crenews-new-deals-2026-09-09.json
- out/crenews-new-deals-2026-09-10.json
- out/crenews-new-deals-2026-09-11.json
- out/crenews-new-deals-2026-09-12.json
- out/crenews-new-deals-2026-09-13.json
- out/crenews-new-deals-2026-09-14.json
- out/crenews-new-deals-2026-09-15.json
- out/crenews-new-deals-2026-09-16.json
- out/crenews-new-deals-2026-09-17.json
- out/crenews-new-deals-2026-09-18.json
- out/crenews-new-deals-2026-09-19.json
- out/crenews-new-deals-2026-09-20.json
- out/crenews-new-deals-2026-09-21.json
- out/crenews-new-deals-2026-09-22.json
- out/crenews-new-deals-2026-09-23.json
- out/crenews-new-deals-2026-09-24.json
- out/crenews-new-deals-2026-09-25.json
- out/crenews-new-deals-2026-09-26.json
- out/edgar-new-deals-2026-08-19.json
- out/edgar-new-deals-2026-08-20.json
- out/edgar-new-deals-2026-08-26.json
- out/edgar-new-deals-2026-08-28.json
- out/edgar-new-deals-2026-08-31.json
- out/edgar-new-deals-2026-09-01.json
- out/edgar-new-deals-2026-09-02.json
- out/edgar-new-deals-2026-09-03.json
- out/edgar-new-deals-2026-09-08.json
- out/edgar-new-deals-2026-09-09.json
- out/edgar-new-deals-2026-09-11.json
- out/edgar-new-deals-2026-09-14.json
- out/edgar-new-deals-2026-09-15.json
- out/edgar-new-deals-2026-09-16.json
- out/edgar-new-deals-2026-09-17.json
- out/edgar-new-deals-2026-09-21.json
- out/edgar-new-deals-2026-09-22.json
- out/edgar-new-deals-2026-09-23.json
- out/edgar-new-deals-2026-09-24.json
- out/provenance-findings.md
- out/provenance-report.md
- public/advertising/index.html
- public/deals/index.html
- public/drill.js
- public/flyers-found/index.html
- public/flyers-found/property-flyers.json
- public/flyers/flyers.json
- public/flyers/index.html
- public/flyers/live.html
- public/index.html
- public/nav-agent/nav-agent.css
- public/nav-agent/nav-agent.js
- public/properties/index.html
- public/properties/property-index.json
- public/search/index.html
- public/sources.json
- public/sources/index.html
- recities.png
- scripts/broker-ad-signals.mjs
- scripts/build-digest.mjs
- scripts/build-flyers-site.mjs
- scripts/build-normalized-flyers.mjs
- scripts/build-property-index.mjs
- scripts/cre-news-monitor.mjs
- scripts/dtt-cron.sh
- scripts/edgar-cre-monitor.mjs
- scripts/email-digest.sh
- scripts/generate-spotlight.mjs
- scripts/ingest-assets.mjs
- scripts/ingest-la-sales.mjs
- scripts/ingest-public-deals.mjs
- scripts/ingest-rentv.mjs
- scripts/ingest-usre-parcels.mjs
- scripts/property-flyers-cron.sh
- scripts/property-flyers.mjs
- scripts/provenance-probe.mjs
- scripts/record-live.cjs
- scripts/refine-loop.sh
- scripts/render-asset-index.mjs
- scripts/sync-deals-to-kamatera.sh
- scripts/sync-viewer-data-to-kamatera.sh
- search-live.png
- serve-viewers.mjs
- server.js