2026-03-24 - 2026-09-24
Overview
27 Pull requests merged by 1 user
Merged
#168 Incident date filter matched nothing
Merged
#166 Archive Load more skipped 150 of every 200 calls
Merged
#165 Date range picker on Incidents and Archive; fix Archive Load more
Merged
#164 Incidents search/filter/load-more; Archive viewable by viewers
Merged
#154 correlator: stop the re-correlation sweep racing an in-flight upload (#131)
Merged
#152 correlator/admin: capture per-scene incident_type + severity (#139)
Merged
#135 correlator: remove is_dispatch and the tactical fit path entirely (#134)
Merged
#133 correlator: drop the dispatch/tactical name-guess from the escape hatch (#115)
Merged
#132 correlator+summarizer: per-scene call-doc storage, fixes #96 and #114's real fix
Merged
#128 intelligence: shadow-mode upstream dispatch-vs-chatter classifier (#127)
Merged
#130 ci: prune docker images before AND after deploy, not only on pull failure (#129)
Merged
#126 correlator: shrink the same-talkgroup escape hatch from 2h to a few minutes (#115)
Merged
#125 correlator: gate LLM-orphan against rules-new instead of escalating to tiebreak (#115)
Merged
#124 ci: deploy Firestore rules + indexes on every push to main (#51)
Merged
#123 frontend: #109 punch-list P2 — RulesTab effect, node recent-calls window
Merged
#122 map: remove stray clock, unstack incident rail, OSM tile fallback (#118)
Merged
#121 firestore: declare the alert_events composite index (#51)
Merged
#120 c2-core: fix CORS so the browser can call the REST API (#110)
Merged
#119 ci: bake NEXT_PUBLIC_MAP_TILE_URL into the frontend build (#117)
Merged
#116 correlator: give the LLM tier what it needs to link, stop it defaulting to "new" (#115)
Merged
#112 correlator: LLM tier reads the scene transcript, not the whole call (#102)
Merged
#113 frontend: safe fixes from the #109 punch-list
Merged
#108 frontend: fix map stacking + honest infra error states
Merged
#107 frontend: install command uses the node id from the mint form (node-26#4)
Merged
#106 frontend: mint panel shows the full one-shot install command (node-26#4)
Merged
#105 correlator: judge each scene on its own embedding + severity (#80, #95)
Merged
#1 Infrastructure builds
1 Pull request proposed by 1 user
Proposed
#157 Second SDR: ADS-B/AIS telemetry ingestion + live map overlay (server side)
83 Issues closed from 1 user
Closed
#6 geocode_max_km=40 may be rejecting legitimate MTA locations
Closed
#156 deploy.yml: /opt/drb/.last_good_tag reads empty (not missing), so PREV_TAG is blank and every deploy's Main Deploy step fails — rollback safety net has been dead since at least run #602
Closed
#159 Citywide/large systems (e.g. NYPD Citywide) never get a location anchor, so location_proximity never fires and duplicate incidents get created for the same event at nearby addresses
Closed
#158 fast/thin correlation path never uses srcaddr for disambiguation, even though every call already carries it
Closed
#114 summarizer reads the whole-call transcript per incident — next leg of the #80/#95/#102 scene-context leak
Closed
#131 Same call_id linked into 2 incident records with identical extracted data (~2% of linked calls)
Closed
#139 Per-scene scenes map (#96/#114) doesn't capture incident_type -- can't audit the gate's "type" veto per scene
Closed
#150 Board 2026-09-13 — Autonomous email SOP — CISO draft
Closed
#149 Board 2026-09-13 — Autonomous email SOP — CTO draft
Closed
#148 Board 2026-09-13 — Autonomous email SOP — CIO draft
Closed
#79 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — FINAL MINUTES
Closed
#97 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - FINAL MINUTES
Closed
#62 Board 2026-08-24 - Unattended operating cadence and GOALS tracking - FINAL MINUTES
Closed
#54 Board 2026-08-23 — Owner goals — FINAL MINUTES
Closed
#53 Board 2026-08-23 — Operating cadence — FINAL MINUTES
Closed
#42 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — FINAL MINUTES
Closed
#140 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CFO draft
Closed
#142 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CMO draft
Closed
#145 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CISO draft
Closed
#144 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CIO draft
Closed
#141 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CTO draft
Closed
#143 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — COO draft
Closed
#96 corr_debug is overwritten per scene on the shared call doc, so #35's "LLM tier decides 3.5% of links" is a per-call blend and cannot answer whether the tier works
Closed
#5 Scene over-splitting: one radio conversation becomes two incidents
Closed
#127 Upstream dispatch-vs-chatter classifier — shadow mode
Closed
#129 Deploy failed with VM disk full — git pull could not write objects; prune ran too late to prevent it
Closed
#118 Stray unstyled clock overlay + incident-card/zoom-control collision on the Leaflet map
Closed
#110 /archive (Archive tab) reported failing with a CORS error — needs the console line to root-cause
Closed
#117 Map tiles broken in prod: NEXT_PUBLIC_MAP_TILE_URL build-arg never set in CI
Closed
#102 llm_correlator._call_block reads the whole-call transcript per scene — remaining leg of #80/#95
Closed
#95 Non-primary scenes inherit the primary scene's severity from the call doc, so bdb57ae closed one of three leaks and the other two now carry the weight alone
Closed
#80 Scene correlation is judged on the call-level (primary-scene) embedding and severity, not the scene it is correlating
Closed
#94 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CTO draft
Closed
#93 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CISO draft
Closed
#92 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CMO draft
Closed
#90 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - COO draft
Closed
#81 Any signed-in viewer can trigger OpenAI summary spend: incident summary routes use require_service_or_firebase_token, not require_admin_token
Closed
#87 The primary scene's geocode leaks into every other scene's correlation, fabricating a location match
Closed
#78 HIRING: growth-ops (outreach preparation persona)
Closed
#89 AI-window failsafe arming check self-matches: pgrep -f 'sleep 4200' reports armed when nothing is armed
Closed
#63 Runner must never hold a secret in its context - replace every token read with a WSL wrapper
Closed
#68 Encode the runner authorisation boundary and credential-escalation rule into drb-worksession.md
Closed
#85 Alert webhooks POST a raw unredacted transcript snippet to a third-party Discord channel
Closed
#84 Call dedup is failing on every call in production: missing calls (system_id, started_at) composite index
Closed
#74 _call_fits_incident still uses signed idle, so the sweep path skips both over-merge vetoes on back-dated calls
Closed
#82 Unattended runs died silently on usage limits for 3 cycles - Task Scheduler reported success
Closed
#76 Two AI spend paths escape config/ai_features entirely, so "AI is off" is not true and #45 cannot measure spend
Closed
#75 Per-system correlation_enabled=false is ignored: the call still correlates, with empty tags, down the thin/recency path
Closed
#77 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CISO draft
Closed
#73 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CMO draft
Closed
#72 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CTO draft
Closed
#70 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — COO draft
Closed
#65 deploy.yml runs compose up -d before the health check with no rollback - blocks unattended pushes to the AI pipeline
Closed
#71 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — COO draft
Closed
#31 Admin page redirects away before auth claims resolve, so /admin is unreachable on a cold load
Closed
#30 /dashboard does not exist, so every post-login and guard redirect lands on a 404
Closed
#60 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CTO draft
Closed
#61 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CISO draft
Closed
#59 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CMO draft
Closed
#58 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — COO draft
Closed
#52 Place verification geocodes unit call-signs: "Post 1-2" became a real map pin
Closed
#41 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CMO draft
Closed
#40 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CTO draft
Closed
#39 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CISO draft
Closed
#38 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — COO draft
Closed
#34 84 of 100 incidents are titled "Ems — TGID 9048" because /upload never resolves the talkgroup name
Closed
#32 React error #310 white-screens /systems and /nodes
Closed
#26 Incident title is re-derived from the newest call, so incidents are named after their last event
Closed
#23 Incident map pin and incident label disagree in 5 of 6 incidents
Closed
#24 Correlation debug endpoint hides the LLM fields, so LLM activity cannot be audited
Closed
#16 unit-continuity correlation path never writes corr_matched_units, so the debug view can't show why it matched
Closed
#21 Deploy failed silently on 15 consecutive pushes — production ran 08-18 code until 08-20
Closed
#20 CORS defaults to "*" while allow_credentials is True
Closed
#25 Incident title is re-derived from the newest call, so incidents are named after their last event
Closed
#22 Thin-call auto-attach has no fit check, merging unrelated events into one incident
Closed
#14 No alerting when an AI provider account runs dry or a model is retired
Closed
#12 upload.py compares node API keys with != instead of secrets.compare_digest
Closed
#10 10 pre-existing test failures in test_mqtt_handler and test_node_sweeper
Closed
#8 POST /calls/{id}/reprocess is unmetered spend for any authenticated user
Closed
#11 Unpinned base images: Python major version can change on rebuild
Closed
#18 Incidents never record resolved_at, blocking history scrub
Closed
#17 Incident severity is stamped once at creation and never re-evaluated
Closed
#15 Correlation has no non-AI fallback: a full AI outage produces a 100% orphan rate for its whole duration
140 Issues created by 1 user
Opened
#2 Google sign-in fails: auth handler is cross-site under Chrome storage partitioning
Opened
#3 Billing UI is mock data and shows every org a fabricated trial
Opened
#4 /admin reads are not org-scoped, leaking data across tenants
Opened
#5 Scene over-splitting: one radio conversation becomes two incidents
Opened
#6 geocode_max_km=40 may be rejecting legitimate MTA locations
Opened
#7 Bulk reprocess calls stored without a transcript
Opened
#8 POST /calls/{id}/reprocess is unmetered spend for any authenticated user
Opened
#9 Member and node write endpoints are platform-admin-only, blocking org owners
Opened
#10 10 pre-existing test failures in test_mqtt_handler and test_node_sweeper
Opened
#11 Unpinned base images: Python major version can change on rebuild
Opened
#12 upload.py compares node API keys with != instead of secrets.compare_digest
Opened
#13 Firestore rules and indexes are in source control but never deployed
Opened
#14 No alerting when an AI provider account runs dry or a model is retired
Opened
#15 Correlation has no non-AI fallback: a full AI outage produces a 100% orphan rate for its whole duration
Opened
#16 unit-continuity correlation path never writes corr_matched_units, so the debug view can't show why it matched
Opened
#17 Incident severity is stamped once at creation and never re-evaluated
Opened
#18 Incidents never record resolved_at, blocking history scrub
Opened
#19 Marketing landing and the Live map both claim / — move the app under /app
Opened
#20 CORS defaults to "*" while allow_credentials is True
Opened
#21 Deploy failed silently on 15 consecutive pushes — production ran 08-18 code until 08-20
Opened
#22 Thin-call auto-attach has no fit check, merging unrelated events into one incident
Opened
#23 Incident map pin and incident label disagree in 5 of 6 incidents
Opened
#24 Correlation debug endpoint hides the LLM fields, so LLM activity cannot be audited
Opened
#25 Incident title is re-derived from the newest call, so incidents are named after their last event
Opened
#26 Incident title is re-derived from the newest call, so incidents are named after their last event
Opened
#27 Sweep retry budget can expire before the incident the orphan belongs to exists
Opened
#28 Pre-existing incidents keep an unverifiable map pin until a call links to them
Opened
#29 models.py types incident location as coordinates, so PUT /incidents/{id} cannot set one
Opened
#30 /dashboard does not exist, so every post-login and guard redirect lands on a 404
Opened
#31 Admin page redirects away before auth claims resolve, so /admin is unreachable on a cold load
Opened
#32 React error #310 white-screens /systems and /nodes
Opened
#33 firestore.indexes.json has drifted from the live database and now duplicates two of its indexes
Opened
#34 84 of 100 incidents are titled "Ems — TGID 9048" because /upload never resolves the talkgroup name
Opened
#35 LLM correlation tier decides only 3.5% of links, and the dominant fast/thin path records no fit signal
Opened
#36 Move transcript correction into transcription, with per-talkgroup vocabulary and area context
Opened
#37 Use Maps to verify corrected place names against the talkgroup anchor, and point the induction loop at talkgroups
Opened
#38 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — COO draft
Opened
#39 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CISO draft
Opened
#40 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CTO draft
Opened
#41 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CMO draft
Opened
#42 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — FINAL MINUTES
Opened
#43 Gate B3: EMS/medical talkgroup exclusion default and person-name redaction are not implemented
Opened
#44 Gate B4: lib/billing.ts publicly promises 7/90/365-day retention with no enforcement anywhere
Opened
#45 Gate B5: no per-call/system/org AI cost accounting exists, so no BUSINESS_MODEL.md section 4 figure has ever been checked against a bill
Opened
#46 Gate A: awaiting owner sign-off to close - public price (a1bdccf) and the A2 disclaimer (b722223) are both shipped and live
Opened
#47 Owner-only pre-revenue gates: ToS/Privacy/AUP, business entity + E&O, delay policy, agency takedown contact
Opened
#48 Gate B8: transcript entity-name accuracy has never been measured, yet names are being published
Opened
#49 Board skill: CTO draft #40 was filed with the CISO draft body byte-for-byte, losing the CTO record
Opened
#50 Comped friends-and-family tier is uncapped AI spend: no entitlement flag, no per-org attribution, no cap
Opened
#51 No automated deploy path for Firestore rules — they can regress silently after every fix
Opened
#52 Place verification geocodes unit call-signs: "Post 1-2" became a real map pin
Opened
#53 Board 2026-08-23 — Operating cadence — FINAL MINUTES
Opened
#54 Board 2026-08-23 — Owner goals — FINAL MINUTES
Opened
#55 Platform admin cannot see or change which org a user belongs to — user management is org-blind
Opened
#56 Telegram control plane: owner-to-agent commands — built as drb-telegram-ops (WSL), pending live verification
Opened
#57 P0: standing correlation-quality evaluation procedure (scheduled AI window)
Opened
#58 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — COO draft
Opened
#59 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CMO draft
Opened
#60 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CTO draft
Opened
#61 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CISO draft
Opened
#62 Board 2026-08-24 - Unattended operating cadence and GOALS tracking - FINAL MINUTES
Opened
#63 Runner must never hold a secret in its context - replace every token read with a WSL wrapper
Opened
#64 Close the /admin/features Firestore SSH side-door: require_service_key_or_admin + distinct agent credential
Opened
#65 deploy.yml runs compose up -d before the health check with no rollback - blocks unattended pushes to the AI pipeline
Opened
#66 TRACKER: 12 discovery conversations by 2026-09-22 (GOALS.md kill criterion) - checkpoint 2026-09-05
Opened
#67 Credential rotation docket: 2 outstanding API keys + gcp-key.json (founding agenda item 2)
Opened
#68 Encode the runner authorisation boundary and credential-escalation rule into drb-worksession.md
Opened
#69 OWNER AGENDA: who do we hire to generate interest? The owner is not the growth engine
Opened
#70 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — COO draft
Opened
#71 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — COO draft
Opened
#72 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CTO draft
Opened
#73 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CMO draft
Opened
#74 _call_fits_incident still uses signed idle, so the sweep path skips both over-merge vetoes on back-dated calls
Opened
#75 Per-system correlation_enabled=false is ignored: the call still correlates, with empty tags, down the thin/recency path
Opened
#76 Two AI spend paths escape config/ai_features entirely, so "AI is off" is not true and #45 cannot measure spend
Opened
#77 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CISO draft
Opened
#78 HIRING: growth-ops (outreach preparation persona)
Opened
#79 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — FINAL MINUTES
Opened
#80 Scene correlation is judged on the call-level (primary-scene) embedding and severity, not the scene it is correlating
Opened
#81 Any signed-in viewer can trigger OpenAI summary spend: incident summary routes use require_service_or_firebase_token, not require_admin_token
Opened
#82 Unattended runs died silently on usage limits for 3 cycles - Task Scheduler reported success
Opened
#83 transcript_correction_enabled is not a pure cost lever: turning it off disables the noise gate and pushes over-merging
Opened
#84 Call dedup is failing on every call in production: missing calls (system_id, started_at) composite index
Opened
#85 Alert webhooks POST a raw unredacted transcript snippet to a third-party Discord channel
Opened
#86 Correlation over-merge veto uses a bare 0.82 literal, looser than the 0.93 match bar it sits beside
Opened
#87 The primary scene's geocode leaks into every other scene's correlation, fabricating a location match
Opened
#88 resolved and reassignment are prompt-only invariants with no validator, so a string "false" resolves an incident
Opened
#89 AI-window failsafe arming check self-matches: pgrep -f 'sleep 4200' reports armed when nothing is armed
Opened
#90 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - COO draft
Opened
#91 LLM correlation tier sees the whole-call transcript for every scene, so it cannot separate scenes and pays N times for one prompt
Opened
#92 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CMO draft
Opened
#93 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CISO draft
Opened
#94 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CTO draft
Opened
#95 Non-primary scenes inherit the primary scene's severity from the call doc, so bdb57ae closed one of three leaks and the other two now carry the weight alone
Opened
#96 corr_debug is overwritten per scene on the shared call doc, so #35's "LLM tier decides 3.5% of links" is a per-call blend and cannot answer whether the tier works
Opened
#97 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - FINAL MINUTES
Opened
#98 trip_chat spend gate relies solely on per-caller rate limit, not a role check (found during #81)
Opened
#99 Board process defect: the 2026-08-31 sitting filed four drafts and no final minutes for 24h
Opened
#100 Registry credential expires mid-build, so a deploy fails after some images have already pushed — cost us a night's deploy on 2026-09-01
Opened
#101 The correlation evaluation tooling runs against a stale image, so every dump taken via docker compose run silently measures old code — it broke outright on 2026-09-01
Opened
#102 llm_correlator._call_block reads the whole-call transcript per scene — remaining leg of #80/#95
Opened
#103 content_divergence veto goes dark when the scene embedding is legitimately None (post-#80/#95)
Opened
#104 Reprocess with stale call-doc severity: not-thin call re-extracted to zero scenes attaches with no fit check
Opened
#109 Frontend punch-list (drb.cusano.net live review, 2026-09-07)
Opened
#110 /archive (Archive tab) reported failing with a CORS error — needs the console line to root-cause
Opened
#111 SDR tuning (PPM / preset) is coupled to system assignment and silently wiped on reassign
Opened
#114 summarizer reads the whole-call transcript per incident — next leg of the #80/#95/#102 scene-context leak
Opened
#115 Consensus tiebreaker manufactures incidents — resolves ~all disagreements as "new", overriding the LLM's "link"
Opened
#117 Map tiles broken in prod: NEXT_PUBLIC_MAP_TILE_URL build-arg never set in CI
Opened
#118 Stray unstyled clock overlay + incident-card/zoom-control collision on the Leaflet map
Opened
#127 Upstream dispatch-vs-chatter classifier — shadow mode
Opened
#129 Deploy failed with VM disk full — git pull could not write objects; prune ran too late to prevent it
Opened
#131 Same call_id linked into 2 incident records with identical extracted data (~2% of linked calls)
Opened
#134 incident_correlator fast/thin path has the same dispatch/tactical name-guess as the #115 escape hatch, but it changes link decisions
Opened
#136 Map Incident Tiles are Unreadable
Opened
#137 Map should zoom back to original when closing an incident popup
Opened
#138 LLM-orphan gate's "type" veto fires on visibly content-free chatter (18/22 this window)
Opened
#139 Per-scene scenes map (#96/#114) doesn't capture incident_type -- can't audit the gate's "type" veto per scene
Opened
#140 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CFO draft
Opened
#141 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CTO draft
Opened
#142 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CMO draft
Opened
#143 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — COO draft
Opened
#144 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CIO draft
Opened
#145 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CISO draft
Opened
#146 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — FINAL MINUTES
Opened
#147 CAN-SPAM/TCPA/state-UDAP review for growth-ops cold-email channel (minutes #79 decision 3 gate)
Opened
#148 Board 2026-09-13 — Autonomous email SOP — CIO draft
Opened
#149 Board 2026-09-13 — Autonomous email SOP — CTO draft
Opened
#150 Board 2026-09-13 — Autonomous email SOP — CISO draft
Opened
#151 Board 2026-09-13 — Autonomous email SOP — FINAL MINUTES
Opened
#153 OpenAI/Gemini clients have no request timeout -- sweep hold-back constants are guessed, not derived
Opened
#155 Incidents never actually clear — units_cleared almost never populates, 90-min idle sweep does the resolving instead
Opened
#156 deploy.yml: /opt/drb/.last_good_tag reads empty (not missing), so PREV_TAG is blank and every deploy's Main Deploy step fails — rollback safety net has been dead since at least run #602
Opened
#158 fast/thin correlation path never uses srcaddr for disambiguation, even though every call already carries it
Opened
#159 Citywide/large systems (e.g. NYPD Citywide) never get a location anchor, so location_proximity never fires and duplicate incidents get created for the same event at nearby addresses
Opened
#160 place_verifier.verify() has the same no-anchor gap #159 fixed in intelligence.py's geocoder — never ported over
Opened
#161 New "Deploy Firestore rules & indexes" CI job fails every run — FIREBASE_TOKEN secret not set
Opened
#162 transcript_correction.py accepted the model's rewrite verbatim — a real ten-code got swapped for a different real ten-code
Opened
#163 STT quality initiative: raw transcription accuracy is the ceiling every downstream fix (correction, extraction, correlation) is hostage to — research + candidate angles
Opened
#167 deploy.yml has no concurrency guard — two pushes to main deploy to the VM at once, last-finisher wins