{
  "project": "gpu-pilot",
  "doc": "CONTINUE_7_12_2026.md",
  "title": "\u25b6 CONTINUE 7/12 (Serve-from-Postgres \u00b7 rail-nec 34\u00d7 \u00b7 metro priority-2 up to 122\u00d7 \u00b7 DUAL-GPU sharded producers \u00b7 repo custody \u2192 tlcengine \u00b7 fares seed \u2014 newest handoff)",
  "oneline": "Newest handoff. THE architecture flip: GPU is now an ETL PRODUCER only \u2014 production serves disk(L1) \u2192 Postgres commute.iso_precompute (L2) \u2192 GPU(L3 fallback), rows stamped ENGINE_REV so stale never serves; SERVE_STORE_ONLY=1 removes the GPU from interactive serving entirely. The national backfill went ~18 days \u2192 ~8-9: rail-focused nec (78K\u21925.4K stops, corridor cell 94s\u21922.8s, Edison\u2192Philly still 75min via NJT\u2192Amtrak Keystone \u2014 proven per-leg by trace_trip.py) + priority-2 metros (Baltimore 122\u00d7, SD 74\u00d7, Philly 18\u00d7, DC 11\u00d7, LA 2.7\u00d7) + a SECOND sharded producer on gtfs3's RTX 5060 Ti (PRECOMPUTE_SHARD=k/m, shared PG store). Also: first-visit warming toast on multimodal.certihomes.com, fare-gap audit+seed (20 metros curated, 8 real $0-placeholder rows fixed, 14 majors seeded), and the repo-custody sweep \u2014 every deployed app now on tlcengine GitHub (FE was Bitbucket, adapter/crm-admin had NO git; wildcard TLS key kept out of every pushed tree). gpu-pilot main=5622f9b.",
  "tldr": [
    "SERVE-FROM-POSTGRES (5c9f797): app.py's isochrone handlers now read disk L1 \u2192 PG L2 \u2192 GPU L3. _store_get/_store_put keyed by the exact disk-cache stem; ENGINE_REV stamps rows and reads filter on it (invalidate = bump the rev, no wipe gap); write-through on every GPU compute; PG errors fall through to disk+GPU so the live path can't break. Validated: evict disk \u2192 PG serve in 36ms, byte-identical, zero GPU. refresh_from_golden.sh = the ETL trigger to wire into the monthly golden cron.",
    "RAIL-NEC (0aeae99): the corridor region kept ALL rail (subway/rail/LR/ferry, 219 routes) and dropped ~73K local-bus stops across 5 states \u2192 78,073\u21925,400 stops, corridor-cell isochrone 94s\u21922.8s (34\u00d7). Edison\u2192Philly 75min intact; trace_trip.py (76d780b, a CPU RAPTOR with parent pointers the GPU kernel lacks) proves the itinerary: NJT NEC Edison\u2192New Brunswick 4min, 136s walk to the Amtrak platform, Keystone Service\u2192Philadelphia. build_rail_nec.sh is self-validating with auto-rollback (backup in output/networks-backups/ \u2014 NOT inside output/networks/, where the engine registry would discover it as a region).",
    "METRO PRIORITY-2 (37202fd): la/philly/baltimore/dc/san_diego were served by the prio-1 corridor megas (socal 46K / midatlantic 67K stops) at 29-55s despite having their own regions. At priority 2: Baltimore 0.45s (122\u00d7), San Diego 0.39s (74\u00d7), Philly 3.0s (18\u00d7), DC 5.2s (11\u00d7), LA 10.9s (2.7\u00d7); Times Sq pinned byte-identical. Tradeoff (accepted, reversible per-metro): cross-metro single-click painting (Baltimore\u2194DC MARC shed, Philly\u2192Wilmington, LA\u2194SD) deferred to a corridor overlay. Stale mega-computed cells invalidated across disk+PG+progress.",
    "DUAL-GPU PRODUCERS (5622f9b): PRECOMPUTE_SHARD=k/m deterministically splits the 151K national dests \u2014 geocoder RTX 5080 = shard 0/2, gtfs3 RTX 5060 Ti = shard 1/2 (~72.5K each), both write-through to the SAME Postgres store at the same ENGINE_REV. gtfs3 worker recipe: qwen2.5-coder:14b paused (Krishna-authorized, alpha), ~20GB artifacts rsynced, /home/krish/gpu-pilot symlink so hardcoded paths resolve, pip nvidia-*-cu12 wheels + LD_LIBRARY_PATH (driver-only box, no system CUDA), cache-janitor for the 137GB disk. Validated: Baltimore on the 5060 Ti = identical 4,979 cells. Finish with one UNSHARDED pass, then ollama run qwen2.5-coder:14b.",
    "TWO-CLASS KERNELGATE (9bf05f2) + WARMING TOAST: interactive clicks always outrank batch:true producers (Times Sq was 30s/2-cell under producer starvation \u2192 1.26s/15,203). Multimodal's default click resolves to the outbound-transit key, NOT the legacy key the national sweep warms \u2014 warm_nyc_multimodal.py filled the real key for 6,421 NYC cells. geo2 FE (pm2 tlccommute) now shows 'First look at this area \u2014 computing it now (~30s)' when a click runs >3s; instant cached clicks never see it.",
    "FARE-GAP AUDIT + SEED (5622f9b): 415/935 golden feeds have no GTFS fare rows and the top-20 are MAJORS (CTA/TTC/STM/TransLink/WMATA-bus/RTD/MARTA/Miami/Calgary/PACE/OC Transpo...) \u2014 big agencies omit fare files. Engine curation already covered most; added 20 metros to CURATED_REGION_FARE (baltimore 2.00 \u2026 richmond 0.00 GRTC fare-free \u2026 quebec_city CAD 3.75), fixed 8 real systems' $0.00 placeholder base_fare rows in public.transit_fares (they poisoned the geo3 api), seeded 14 major agencies with mdb-number-keyed rows. Remaining $0 rows are genuinely-free circulators/campus shuttles.",
    "REPO CUSTODY (memory repo-custody-github): every deployed app now on tlcengine GitHub \u2014 multimodal FE was on Bitbucket (vendor history has >100MB blobs \u2192 clean snapshot branch geo2-live set as default), /click adapter had NO remote (full history pushed), onboarding was on a contractor's personal account, crm-admin had NO git. The wildcard *.tlcengine.com private key found in mm-api certs/ was verified absent from every pushed tree and is now gitignored. Convention: geo2-live/geo3-live snapshot branches + gh repo edit --default-branch; never force-push over unseen history.",
    "POSITIONING (Krishna): sell the HEXMAP DATA \u2014 processed per-hex time+cost intelligence \u2014 not the golden GTFS corpus ('the jewelry is worth more than the gold bar'); also sidesteps feed-redistribution licensing entirely. Golden corpus stays the internal moat."
  ],
  "updated": "2026-07-12 04:53",
  "sections": [
    {
      "level": 1,
      "title": "CONTINUE \u2014 2026-07-12 \u2014 Serve-from-Postgres + rail-nec + priority-2 metros + dual-GPU producers + repo custody + fares seed"
    },
    {
      "level": 2,
      "title": "DONE this session (2026-07-09 \u2192 07-12)"
    },
    {
      "level": 2,
      "title": "PENDING (precise)"
    },
    {
      "level": 2,
      "title": "DECISIONS (user chose + why)"
    },
    {
      "level": 2,
      "title": "GOTCHAS (don't relearn \u2014 most also in memory files)"
    }
  ],
  "stats": {
    "lines": 50,
    "words": 1297
  },
  "html": "https://board.certihomes.com/project-docs/gpu-pilot/CONTINUE_7_12_2026.html",
  "out_name": "CONTINUE_7_12_2026.md",
  "comments_api": "https://board.certihomes.com/api/doc-comments?project=gpu-pilot&doc=CONTINUE_7_12_2026.md"
}