← gpu-pilot · json · source: CONTINUE_7_6_2026.md

▶ CONTINUE 7/6 (National transit system: 50 metros live · national precompute + Postgres store · national transit-line overlay · keyed-feed set closed — newest handoff)

Newest handoff: took the multimodal system national end-to-end — pre-warmed the isochrone cache for 151,781 national POI dest cells (87,997 hexmaps, mirrored gzipped into commute.iso_precompute so map clicks serve GPU-free), grew engine coverage 31→50 metros (registry 51), shipped a Google-Maps-style national transit-LINE overlay (all 935 golden feeds, viewport-loaded, dynamic legend + State dropdown + Train/Bus toggles + DC cross-border filter), and CLOSED the keyed-feed set (WMATA + AC Transit + 6 SF Bay 511.org ops → every US+CA catalog feed now in golden). LOS AI-1003 restored to qwen2.5-coder:14b on gtfs3. · updated 2026-07-06 23:02

TL;DR

  • NATIONAL PRECOMPUTE → GPU-FREE SERVE: hexmap-api/precompute_national.py pre-warmed the disk cache for 151,781 national POI dest cells (from content/poi/*.parquet h3_res9) → 87,997 hexmaps; mirror_cache_to_pg.py gzips them into commute.iso_precompute on gtfs3 (~88K rows, durable, ~6× smaller; column is `win` NOT `window`=reserved). Cache hit = disk read, zero engine change. Resumable via precompute_progress.txt; free-disk guard MIN_FREE_GB=50. Commit e8a84d2.
  • COVERAGE 31→50 METROS: added 19 metros to scripts/regional_network_build.py (METROS + Geofabrik us_state map) — built + `sudo systemctl restart hexmap-api` → registry 51. 3 came out degenerate (indy/jax/memphis grabbed national feeds by bbox → 1 anchor) → gap-filled local feeds (IndyGo mdb-1237/JTA mdb-346/MATA mdb-2352) + CLEAN rebuild. All 50 serve (Baltimore 4,979 cells / San Diego 6,709).
  • NATIONAL TRANSIT-LINE OVERLAY (Google-Maps style): multimodal/transit-lines/build_lines_national.py → per-feed line/stop GeoJSON for ALL 935 golden feeds + out/manifest.json (feed→bbox/agency/routes/colors). Front-end (geo2 pm2 tlccommute, SEPARATE repo) rewired to load by VIEWPORT-bbox + dynamic legend + State dropdown + Train/Bus toggles + DC cross-border filter (DC→15 agencies across DC+MD+NoVA). 740 MB → geo2 front-end/public/transit/, served /transit/*. LIVE + verified (manifest 887 feeds, WMATA + AC Transit lines serve). Commit f3a2347.
  • KEYED-FEED SET CLOSED: gtfs_golden_etl.py KEYED_FEEDS registry (header OR query-param auth) now pulls the only 9 API-key-gated US/CA feeds — WMATA rail 1847/bus 1846 (~/.wmata_api_key), AC Transit 2455 (~/.actransit_api_key), 6 SF Bay 511.org ops SamTrans/ACE/SMART/Petaluma/Santa Rosa/Tri Delta (~/.511_api_key). Keys live in 600-perm files OUTSIDE the repo — ONLY paths committed. Golden = 935 = every US+CA catalog feed. Commit f3a2347.
  • TOP PENDING: (1) DC region GRID/bbox defect — rebuilt WITH WMATA (22 feeds, 194,064 walk-matrix rows) but a live 90-min iso from central DC still returns n_cells=851 AND transit==walk (851==851, transit adds ZERO reach) vs Chicago 20,179 → the served GRID is ~851 cells, NOT a walk-matrix cap; diagnose the dc H3 grid/bbox build. (2) Drive-resolution decision (user asked res-9/10 for drive; currently res-8-collapse) — recommend hybrid res-9-near/res-8-far, bundle into the engine pass. (3) res-10 _refine_to_res10 + serve-from-store lookup — both parked engine changes (matrix ready: output/walk_matrix_res10_core_v2.parquet).
  • GOTCHAS: regional_network_build.py --force SKIPS if artifacts exist (must rm -rf output/networks/ + rm _feed_bbox_index.parquet); bust hexmap-api/cache/iso_{dest_h3}_* to see a rebuilt region (stale cache HIT returns old iso); engine auto-discovers regions from output/networks/ at startup (plain restart picks up new metros); `pgrep -f build_lines_national` matches a deploy script CONTAINING that string → an until-waiter deadlocks on itself; regional walk matrix uses ENGINE golden platforms (raw ids 510:601) not gtfs-arrow stops.parquet ints. gpu-pilot main=f3a2347.

CONTINUE — 2026-07-06 — National transit system: 50 metros live, national precompute + Postgres store, national transit-line overlay, keyed-feed set closed

Read first: memory national-isochrone-precompute, res10-dense-core-refine, fleet-llm-inference-hosts. Prior handoff: CONTINUE_6_28_2026.md. Repos: gpu-pilot main = f3a2347 (pushed via geo bundle). Front-end (multimodal map) = geo2 /DataDrive/krish/krish/front-end (pm2 tlccommute, SEPARATE repo — deployed, not pushed).

DONE this session (large)

  • National isochrone precompute → serve GPU-free. hexmap-api/precompute_national.py pre-warmed the disk cache for 151,781 national POI dest cells → 87,997 hexmaps (63,783 skip:http422 = metros w/o an engine region, since fixed). hexmap-api/mirror_cache_to_pg.py mirrors gzipped into commute.iso_precompute on gtfs3 (~88K rows, durable, ~6× smaller). Mirror loop runs every 30 min.
  • Coverage 31 → 50 metros LIVE. Added 19 metros to scripts/regional_network_build.py (METROS + Geofabrik us_state map) — built + engine restarted → registry 51. 3 came out degenerate (indy/jax/memphis had national-feed pollution); fixed by gap-filling their local feeds (IndyGo mdb-1237 / JTA mdb-346 / MATA mdb-2352) + clean rebuild. All 50 serve (Baltimore 4,979 cells, San Diego 6,709, etc.).
  • National transit-LINE overlay (Google-Maps style). multimodal/transit-lines/build_lines_national.py → per-feed line/stop GeoJSON for ALL 935 golden feeds + out/manifest.json (feed→bbox/agency/routes/colors). Front-end rewired (Map.js/TransitLines.js/transitManifest.js/stateBboxes.js) to load by VIEWPORT + dynamic legend + State dropdown + Train/Bus toggles + DC-metro cross-border filter (DC→15 agencies across DC+MD+NoVA). 740 MB staged to geo2 front-end/public/transit/, served at /transit/*. LIVE + verified.
  • Keyed-feed set CLOSED. gtfs_golden_etl.py KEYED_FEEDS (header OR param auth) now pulls the only 9 API-key-gated US/CA feeds: WMATA rail 1847/bus 1846 (~/.wmata_api_key), AC Transit 2455 (~/.actransit_api_key), 6 SF Bay 511.org ops (~/.511_api_key). Every US+CA catalog feed is now in golden (935).
  • LOS AI restored — re-pulled qwen2.5-coder:14b on gtfs3 (had been swapped to a 30b that doesn't fit 16GB). los.tlcengine.com/health = 14b, verified.
  • res-10 dense-core prototype — matrix built + namespace-verified (output/walk_matrix_res10_core_v2.parquet), NOT wired into the engine yet.
  • Committed e8a84d2 (precompute/mirror/res-10/19-metros) + f3a2347 (ETL keyed-feeds + line generator) → GitHub.

PENDING (precise)

  1. DC region GRID/bbox DEFECT (pre-existing, real — NOT the walk matrix). DC was rebuilt WITH WMATA this session (22 feeds, 22,555 platforms, 194,064 walk-matrix rows) and restarted, but a live 90-min isochrone from central DC (892aa845a8bffff) still returns n_cells=851, and transit n_cells == walk n_cells (851 == 851) — i.e. transit legs add ZERO reach — vs Chicago 20,179. So the big walk matrix isn't the cap; the served grid itself is ~851 cells → the DC region's H3 grid/bbox is too small (or clipped at build). Diagnose regional_network_build.py grid construction for dc (bbox in METROS + the res-9 grid fill), NOT the OSM/walk extract. output/networks/dc/. Compare a healthy region's grid cell count.
  2. Drive-resolution decision (unanswered). Drive is res-8-collapsed (_collapse_to_res8, engine.py ~2279). res-9 drive = ~107K cells/~52 MB (7× transit, cars reach farther) + times are res-8-granular anyway. Recommend hybrid res-9-near / res-8-far; bundle into the engine pass.
  3. res-10 engine _refine_to_res10 + serve-from-store — both parked engine changes (validate on scratch :8099, one restart). res-10 matrix ready; serve-from-store = a Postgres lookup in app.py /v1/isochrone (try/except → fall through). See res10-dense-core-refine.
  4. 511.org TRAFFIC API (same ~/.511_api_key) — potential input for drive traffic factors (user asked "get both transit and traffic").
  5. Perf follow-up: the 740 MB /transit/* serves through the Next node process; recommend an nginx alias to offload (a live-service edit).

DECISIONS (user chose + why)

  • All-926 feeds, not 50-metro selection for the transit overlay (comprehensive national coverage, viewport-loaded).
  • WMATA + AC Transit + 511 keys provided → keyed-feed ETL support built (keys in 600-perm files OUTSIDE the repo; only paths committed).
  • Frontend agent BUILDS but does not flip — I do the pm2 restart tlccommute after review.
  • Map surfaces are test, not a live demo → sudo restarts OK (sudo pw ~/secert.txt).

GOTCHAS (don't relearn)

  • regional_network_build.py --force SKIPS if artifacts exist (0.5s DONE) — must rm -rf output/networks/<slug> + rm output/networks/_feed_bbox_index.parquet for a real rebuild.
  • Bust the disk cache to see a rebuilt region: rm hexmap-api/cache/iso_{dest_h3}_* — a stale cache HIT (0.002s) returns the OLD isochrone.
  • Engine loads regions by scanning output/networks/ at startup → a plain sudo systemctl restart hexmap-api (no code change) picks up new regions (registry 32→51).
  • pgrep -f build_lines_national matches a deploy script whose command line CONTAINS that string → an until ! pgrep … waiter deadlocks on itself. Use a more specific pattern or a done-marker file.
  • The regional walk matrix uses the ENGINE's golden platforms (raw ids 510:601, members_raw), NOT gtfs-arrow/stops.parquet integer ids — matters for res-10 wiring.
  • Cross-host: geo3 via geo ProxyJump; geo2 direct; gtfs3 = commute DB + LOS Ollama (DKMS driver persists reboots; commute DB + iso_precompute survive).

Comments