2025-11-09 - 2026-11-09

Overview

83 Active Pull Requests
222 Active Issues
Excluding merges, 2 authors have pushed 219 commits to main and 366 commits to all branches. On main, 227 files have changed and there have been 42700 additions and 6895 deletions.

1 Release published by 1 user

Published v1.1.0 2026-11-09 00:34:51 -05:00

83 Pull requests merged by 1 user

Merged #306 Frontend: finish Iris — accent-role blue/sky to indigo 2026-11-08 22:54:06 -05:00

Merged #305 Frontend: Iris palette + map load/legend fixes 2026-11-08 21:50:48 -05:00

Merged #295 Nodes: store and show host disk free, warn when low (node-26#41) 2026-10-26 02:28:11 -04:00

Merged #294 Frontend: fixes from the 10-25 Chrome sweep 2026-10-25 23:13:56 -04:00

Merged #291 Frontend: hide admin-only node/system controls from non-admins (#222, #283) + popup contrast 2026-10-25 22:17:26 -04:00

Merged #290 Frontend: readable API errors, no silent action failures (#284, #286) 2026-10-25 21:39:16 -04:00

Merged #282 Frontend: finish the token migration — raw greys to AA theme tokens 2026-10-25 21:34:39 -04:00

Merged #281 Map: readable incident rail — dark basemap, opaque cards, AA colours (#136) 2026-10-25 21:03:23 -04:00

Merged #280 Live map follow-ups: stable pin icons, resolved IncidentPanel, filtered rail, weather vs camera dock (#279 #275 #268 #278) 2026-10-05 04:02:32 -04:00

Merged #276 Live wall attention cues: NEW lane, pin pulse, opt-in tone and notifications (#238) 2026-10-05 03:53:42 -04:00

Merged #277 Weather map layers: NWS warning polygons, n0q radar with valid time/legend/loop, wind at incident (#237) 2026-10-05 03:53:35 -04:00

Merged #272 Live wall: selected incident loads its own calls, resolved deep links, scrubber marks unloaded time (#239) 2026-10-05 03:33:28 -04:00

Merged #274 Honest pins and paths: geocode precision, type-gated paths, impossible-speed stops (#236) 2026-10-05 03:33:21 -04:00

Merged #271 Discord: main DRB bot optional end to end + owner-flow integration tests (#225 S8) 2026-10-05 03:29:56 -04:00

Merged #270 Power Outages map layer + wires-down cross-match on the live wall (#184) 2026-10-05 03:17:55 -04:00

Merged #267 Live wall: filter bar, discipline presets and text search (#235) 2026-10-05 03:17:48 -04:00

Merged #259 Discord: Connect a Discord server — OAuth UI (#225 S7) — merge after S6 2026-10-05 03:11:23 -04:00

Merged #263 Weather backend: NWS active alerts + nearest-METAR wind, cached (Refs #237) 2026-10-05 03:03:33 -04:00

Merged #265 Live wall: saved views in the URL hash, per-viewer memory, kiosk mode (#234) 2026-10-05 03:03:26 -04:00

Merged #260 Discord: per-bot OAuth "Connect a Discord server" backend (#225 S6) 2026-10-05 03:01:15 -04:00

Merged #262 Discord: channel list and presence without the main bot (#225 S5, fixes #251) 2026-10-05 03:01:08 -04:00

Merged #255 Outage providers: licence-gated registry, ODIN adapter, /outages API, admin tab (Refs #184) 2026-10-05 02:47:16 -04:00

Merged #253 Click-to-listen on the live wall + HTTP Range on /media (#233) 2026-10-05 02:47:09 -04:00

Merged #252 Live wall: truth strip keyed to the pipeline, not node heartbeats (#232) 2026-10-05 02:47:01 -04:00

Merged #250 Discord picker: per-bot permission status + owner's preferred bot (#225 S4) — merge after S3 2026-10-05 02:38:56 -04:00

Merged #249 Discord: check bot permissions before handing a token to a node (#225 S3) 2026-10-05 02:38:49 -04:00

Merged #231 Discord REST client, cache and #225 settings (server-26#225 S2) 2026-10-05 02:03:36 -04:00

Merged #230 Discord: channel permission math for radio bots (#225 S1) 2026-10-05 02:03:28 -04:00

Merged #227 Discord: several radio streams per voice channel; adding never overwrites (#213) 2026-10-05 01:44:36 -04:00

Merged #226 Nodes: Update All Nodes button (fleet-wide update request) 2026-10-05 00:29:58 -04:00

Merged #224 Discord: log node-reported stream state; remove a radio channel or a server (#213, #221) 2026-10-04 22:55:29 -04:00

Merged #220 Node page Discord picker: org's servers + voice channels, not raw IDs (#213 item 3) 2026-10-04 22:05:50 -04:00

Merged #219 Discord admin page + hide admin-only bot pool from operators (#213 items 2, 4) 2026-10-04 22:05:36 -04:00

Merged #218 Discord: self-serve server→org linking with /drb link (#213 item 1) 2026-10-04 22:04:31 -04:00

Merged #217 deploy.yml: a superseded run is a skip, not a failure (#167) 2026-10-04 18:41:32 -04:00

Merged #216 Discord radio channels: transactional token leases + desired-state streams (#203, #204) 2026-10-04 18:34:10 -04:00

Merged #210 deploy.yml: serialise prod deploys and skip superseded runs (#167) 2026-10-04 18:29:32 -04:00

Merged #209 Explicit timeouts on every OpenAI and Gemini request (#153) 2026-10-04 18:29:10 -04:00

Merged #208 Live ops wall + pluggable camera providers with licence gating (server-26#198) 2026-10-04 18:28:50 -04:00

Merged #206 Reject revokes the node's MQTT login and API key (#195) 2026-10-04 18:28:10 -04:00

Merged #205 Systems: P25 trunked / conventional / analog mode + channel editor (node-26#24) 2026-10-04 17:24:30 -04:00

Merged #194 approve_node never rotates an existing key; node update-check endpoint; real Update Node button (node-26#14, #15) 2026-10-04 01:17:32 -04:00

Merged #191 Correlator prompt: incident age/size + new-event rule (#189) 2026-09-27 22:56:18 -04:00

Merged #188 fix(frontend): readability in both themes 2026-09-27 16:20:54 -04:00

Merged #182 correlator: a radio code is not a location 2026-09-27 11:32:12 -04:00

Merged #181 intelligence: a plate read on a patrol channel is a traffic stop 2026-09-27 10:19:28 -04:00

Merged #180 gemini: minimal thinking on correlation, token accounting per call 2026-09-27 01:10:44 -04:00

Merged #179 stops review + provisional LLM closure 2026-09-26 20:52:34 -04:00

Merged #178 intelligence: traffic stops and self-initiated activity open incidents 2026-09-26 20:22:05 -04:00

Merged #177 reopen: act on drb-correlation-review of e972cac 2026-09-26 19:43:39 -04:00

Merged #176 incidents: severity-scaled quiet timer, reopen-on-link, thin calls do not fill the cap 2026-09-26 19:14:38 -04:00

Merged #175 clearance: act on drb-correlation-review of f0a88d4 2026-09-26 17:26:41 -04:00

Merged #174 correlator/intelligence: let 10-8s actually close incidents 2026-09-26 16:49:33 -04:00

Merged #173 correlation: smart tiebreak model gemini-2.5-pro is gone; use gemini-3.8-flash 2026-09-26 16:07:56 -04:00

Merged #172 Replay: fail fast on a dead AI account; extraction reports to ai_health 2026-09-26 15:39:05 -04:00

Merged #171 Admin Replay: re-run the pipeline over past calls in a sandbox 2026-09-26 15:24:38 -04:00

Merged #168 Incident date filter matched nothing 2026-09-24 01:15:32 -04:00

Merged #166 Archive Load more skipped 150 of every 200 calls 2026-09-24 01:05:37 -04:00

Merged #165 Date range picker on Incidents and Archive; fix Archive Load more 2026-09-24 01:04:06 -04:00

Merged #164 Incidents search/filter/load-more; Archive viewable by viewers 2026-09-23 23:54:36 -04:00

Merged #154 correlator: stop the re-correlation sweep racing an in-flight upload (#131) 2026-09-14 00:31:15 -04:00

Merged #152 correlator/admin: capture per-scene incident_type + severity (#139) 2026-09-14 00:14:53 -04:00

Merged #135 correlator: remove is_dispatch and the tactical fit path entirely (#134) 2026-09-13 14:55:04 -04:00

Merged #133 correlator: drop the dispatch/tactical name-guess from the escape hatch (#115) 2026-09-13 14:07:36 -04:00

Merged #132 correlator+summarizer: per-scene call-doc storage, fixes #96 and #114's real fix 2026-09-13 13:34:19 -04:00

Merged #128 intelligence: shadow-mode upstream dispatch-vs-chatter classifier (#127) 2026-09-13 12:43:18 -04:00

Merged #130 ci: prune docker images before AND after deploy, not only on pull failure (#129) 2026-09-13 12:28:08 -04:00

Merged #126 correlator: shrink the same-talkgroup escape hatch from 2h to a few minutes (#115) 2026-09-12 04:47:50 -04:00

Merged #125 correlator: gate LLM-orphan against rules-new instead of escalating to tiebreak (#115) 2026-09-11 23:18:13 -04:00

Merged #124 ci: deploy Firestore rules + indexes on every push to main (#51) 2026-09-07 23:22:38 -04:00

Merged #123 frontend: #109 punch-list P2 — RulesTab effect, node recent-calls window 2026-09-07 19:06:34 -04:00

Merged #122 map: remove stray clock, unstack incident rail, OSM tile fallback (#118) 2026-09-07 19:06:31 -04:00

Merged #121 firestore: declare the alert_events composite index (#51) 2026-09-07 19:06:28 -04:00

Merged #120 c2-core: fix CORS so the browser can call the REST API (#110) 2026-09-07 19:06:25 -04:00

Merged #119 ci: bake NEXT_PUBLIC_MAP_TILE_URL into the frontend build (#117) 2026-09-07 19:06:22 -04:00

Merged #116 correlator: give the LLM tier what it needs to link, stop it defaulting to "new" (#115) 2026-09-07 16:59:46 -04:00

Merged #112 correlator: LLM tier reads the scene transcript, not the whole call (#102) 2026-09-07 04:40:35 -04:00

Merged #113 frontend: safe fixes from the #109 punch-list 2026-09-07 00:13:36 -04:00

Merged #108 frontend: fix map stacking + honest infra error states 2026-09-06 23:49:19 -04:00

Merged #107 frontend: install command uses the node id from the mint form (node-26#4) 2026-09-06 20:15:11 -04:00

Merged #106 frontend: mint panel shows the full one-shot install command (node-26#4) 2026-09-06 19:31:34 -04:00

Merged #105 correlator: judge each scene on its own embedding + severity (#80, #95) 2026-09-06 17:49:24 -04:00

Merged #1 Infrastructure builds 2026-06-22 02:34:59 -04:00

138 Issues closed from 1 user

Closed #302 /upload has no idempotency: a retried upload re-runs Whisper/Gemini/correlation on the same call_id 2026-11-08 21:51:18 -05:00

Closed #301 /upload: a late (spooled) upload is correlated against now, not the call's started_at 2026-11-08 21:51:16 -05:00

Closed #300 Alerts: confidence gate before any push alert (Discord/webhook) — avoid the CrimeRadar false shots-fired failure 2026-11-08 21:51:15 -05:00

Closed #104 Reprocess with stale call-doc severity: not-thin call re-extracted to zero scenes attaches with no fit check 2026-11-08 21:51:14 -05:00

Closed #162 transcript_correction.py accepted the model's rewrite verbatim — a real ten-code got swapped for a different real ten-code 2026-11-08 21:51:12 -05:00

Closed #160 place_verifier.verify() has the same no-anchor gap #159 fixed in intelligence.py's geocoder — never ported over 2026-11-08 21:51:10 -05:00

Closed #297 Transcription: move to an OpenAI-compatible cheaper provider (Groq whisper-large-v3-turbo) with a domain vocabulary prompt 2026-11-08 21:51:09 -05:00

Closed #298 Extraction: one cheap call per transcript, skip chatter before any LLM, config-driven model, cache geocodes 2026-11-08 21:51:06 -05:00

Closed #88 resolved and reassignment are prompt-only invariants with no validator, so a string "false" resolves an incident 2026-11-08 21:51:04 -05:00

Closed #83 transcript_correction_enabled is not a pure cost lever: turning it off disables the noise gate and pushes over-merging 2026-11-08 21:51:03 -05:00

Closed #138 LLM-orphan gate's "type" veto fires on visibly content-free chatter (18/22 this window) 2026-10-27 20:27:33 -04:00

Closed #91 LLM correlation tier sees the whole-call transcript for every scene, so it cannot separate scenes and pays N times for one prompt 2026-10-27 20:27:32 -04:00

Closed #134 incident_correlator fast/thin path has the same dispatch/tactical name-guess as the #115 escape hatch, but it changes link decisions 2026-10-27 20:27:31 -04:00

Closed #151 Board 2026-09-13 — Autonomous email SOP — FINAL MINUTES 2026-10-27 19:27:13 -04:00

Closed #99 Board process defect: the 2026-08-31 sitting filed four drafts and no final minutes for 24h 2026-10-27 19:27:12 -04:00

Closed #146 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — FINAL MINUTES 2026-10-27 19:27:12 -04:00

Closed #49 Board skill: CTO draft #40 was filed with the CISO draft body byte-for-byte, losing the CTO record 2026-10-27 19:27:11 -04:00

Closed #193 Unattended runner is dead since the Linux move — Task Scheduler/run-session.ps1/drb-tg have no Linux equivalent 2026-10-27 19:27:11 -04:00

Closed #56 Telegram control plane: owner-to-agent commands — built as drb-telegram-ops (WSL), pending live verification 2026-10-27 19:27:10 -04:00

Closed #57 P0: standing correlation-quality evaluation procedure (scheduled AI window) 2026-10-27 19:27:10 -04:00

Closed #66 TRACKER: 12 discovery conversations by 2026-09-22 (GOALS.md kill criterion) - checkpoint 2026-09-05 2026-10-27 19:27:09 -04:00

Closed #196 Prod AI dark since 09-29/09-30: Gemini and OpenAI credits exhausted (billing, not a bug) 2026-10-27 19:27:09 -04:00

Closed #222 Node page shows admin-only buttons to non-admins (Restart OP25, override Ack/Force Revert): dead CTAs 2026-10-25 22:17:26 -04:00

Closed #283 Systems page offers create/edit/delete and AI panels to operators; every backend route is admin-only, and Delete fails silently 2026-10-25 22:17:26 -04:00

Closed #286 Raw 'C2 API error 403: {"detail":...}' shown to users across most screens 2026-10-25 21:39:16 -04:00

Closed #136 Map Incident Tiles are Unreadable 2026-10-25 21:03:23 -04:00

Closed #278 Map: open camera tiles cover the weather status chip and radar STALE badge (bottom centre) 2026-10-05 04:08:50 -04:00

Closed #268 Map rail header doesn't say 'filtered' when the wall filter is on (follow-up to #235) 2026-10-05 04:08:49 -04:00

Closed #275 Live wall: IncidentPanel says "active" and a running elapsed clock for a resolved incident opened by link 2026-10-05 04:08:49 -04:00

Closed #279 Map: incident pins rebuilt every second (clock re-render) — pin pulse restarts before it completes 2026-10-05 04:02:33 -04:00

Closed #238 Map: nothing on the wall grabs attention — NEW lane, audible cue and in-tab notifications for new Majors/path growth 2026-10-05 03:53:42 -04:00

Closed #237 Map: weather context — NWS warning polygons, radar with valid time/legend/loop, wind at the incident 2026-10-05 03:53:35 -04:00

Closed #239 Map: 500-call window silently truncates incident paths, call spine and the 7d scrubber; #inc= deep links only resolve active incidents 2026-10-05 03:33:28 -04:00

Closed #236 Map: pins and paths look exact when they aren't — confidence styling, type-gated paths, impossible-speed stops 2026-10-05 03:33:21 -04:00

Closed #225 Discord: customers shouldn't need the main DRB bot in their server — radio bots (via C2) should cover linking, channel directory and permission checks 2026-10-05 03:31:22 -04:00

Closed #184 OSINT layer: utility power outages (Con Ed / NYSEG) on the map 2026-10-05 03:17:55 -04:00

Closed #235 Map: no filtering or search on the map — filter bar, discipline presets, text search 2026-10-05 03:17:49 -04:00

Closed #258 S4 UI copy: wrong Start tooltip for 'Not a voice channel', 'platform admin' jargon, 'ask DRB support' with no way to reach support 2026-10-05 03:11:45 -04:00

Closed #257 Voice-check: a bot whose token Discord rejected is summed up as 'No radio bot in this server' (and offers an invite to a bot that is already there) 2026-10-05 03:11:44 -04:00

Closed #256 Discord picker: 'Needs fix' text says 'then try again' but Start stays disabled until the small footer Re-check is clicked 2026-10-05 03:11:24 -04:00

Closed #137 Map should zoom back to original when closing an incident popup 2026-10-05 03:03:27 -04:00

Closed #234 Map: wall forgets layers and view on every reload — saved views in the URL hash, per-viewer memory, kiosk mode 2026-10-05 03:03:26 -04:00

Closed #251 Discord: after fixing a permission, /join keeps refusing for up to 2 min (cached snapshot, 'then try again' text) 2026-10-05 03:01:08 -04:00

Closed #233 Map: no audio anywhere on the live wall — click-to-listen on spine, path stops and rail (plus media.py Range) 2026-10-05 02:47:09 -04:00

Closed #232 Map: 'Live' pill is driven by node heartbeats, so the wall reads live while transcription/correlation are dead 2026-10-05 02:47:02 -04:00

Closed #204 Bot-token pool leaks and races: preferred_token_id silently dropped, re-join double-assigns, failed MQTT send never releases 2026-10-05 02:08:56 -04:00

Closed #203 Discord bot /leave kills every node's stream fleet-wide; /join hijacks a node already streaming elsewhere (no guild/org scoping) 2026-10-05 02:08:55 -04:00

Closed #167 deploy.yml has no concurrency guard — two pushes to main deploy to the VM at once, last-finisher wins 2026-10-04 18:29:32 -04:00

Closed #153 OpenAI/Gemini clients have no request timeout -- sweep hold-back constants are guessed, not derived 2026-10-04 18:29:10 -04:00

Closed #195 reject_node leaves the node's dynsec login and node_keys in place — a rejected node can still use MQTT and /upload 2026-10-04 18:28:10 -04:00

Closed #183 OSINT layer: 511NY DOT cameras + road closures/construction on the map 2026-09-27 14:35:20 -04:00

Closed #187 Secondary SDR priority: row state shows "Waiting for SDR" instead of an error when the container/checkin is unreachable 2026-09-27 14:14:50 -04:00

Closed #185 Map legend does not explain the aircraft altitude colour ramp 2026-09-27 13:45:31 -04:00

Closed #186 Vessel layer renders AIS aids-to-navigation (MMSI 99xxxxxxx buoys) as vessels 2026-09-27 13:45:31 -04:00

Closed #51 No automated deploy path for Firestore rules — they can regress silently after every fix 2026-09-27 13:07:13 -04:00

Closed #6 geocode_max_km=40 may be rejecting legitimate MTA locations 2026-09-20 21:56:15 -04:00

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 2026-09-20 20:43:07 -04:00

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 2026-09-20 20:31:17 -04:00

Closed #158 fast/thin correlation path never uses srcaddr for disambiguation, even though every call already carries it 2026-09-20 20:31:16 -04:00

Closed #114 summarizer reads the whole-call transcript per incident — next leg of the #80/#95/#102 scene-context leak 2026-09-14 00:34:01 -04:00

Closed #131 Same call_id linked into 2 incident records with identical extracted data (~2% of linked calls) 2026-09-14 00:31:15 -04:00

Closed #139 Per-scene scenes map (#96/#114) doesn't capture incident_type -- can't audit the gate's "type" veto per scene 2026-09-14 00:14:54 -04:00

Closed #149 Board 2026-09-13 — Autonomous email SOP — CTO draft 2026-09-13 23:06:25 -04:00

Closed #150 Board 2026-09-13 — Autonomous email SOP — CISO draft 2026-09-13 23:06:25 -04:00

Closed #148 Board 2026-09-13 — Autonomous email SOP — CIO draft 2026-09-13 23:06:24 -04:00

Closed #79 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — FINAL MINUTES 2026-09-13 18:52:27 -04:00

Closed #97 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - FINAL MINUTES 2026-09-13 18:52:27 -04:00

Closed #62 Board 2026-08-24 - Unattended operating cadence and GOALS tracking - FINAL MINUTES 2026-09-13 18:52:26 -04:00

Closed #54 Board 2026-08-23 — Owner goals — FINAL MINUTES 2026-09-13 18:52:16 -04:00

Closed #53 Board 2026-08-23 — Operating cadence — FINAL MINUTES 2026-09-13 18:52:15 -04:00

Closed #42 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — FINAL MINUTES 2026-09-13 18:52:09 -04:00

Closed #140 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CFO draft 2026-09-13 18:50:19 -04:00

Closed #142 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CMO draft 2026-09-13 18:50:18 -04:00

Closed #145 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CISO draft 2026-09-13 18:50:17 -04:00

Closed #144 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CIO draft 2026-09-13 18:50:16 -04:00

Closed #141 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CTO draft 2026-09-13 18:50:15 -04:00

Closed #143 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — COO draft 2026-09-13 18:50:14 -04:00

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 2026-09-13 13:34:19 -04:00

Closed #5 Scene over-splitting: one radio conversation becomes two incidents 2026-09-13 13:19:50 -04:00

Closed #127 Upstream dispatch-vs-chatter classifier — shadow mode 2026-09-13 12:43:19 -04:00

Closed #129 Deploy failed with VM disk full — git pull could not write objects; prune ran too late to prevent it 2026-09-13 12:28:08 -04:00

Closed #118 Stray unstyled clock overlay + incident-card/zoom-control collision on the Leaflet map 2026-09-07 19:06:31 -04:00

Closed #110 /archive (Archive tab) reported failing with a CORS error — needs the console line to root-cause 2026-09-07 19:06:25 -04:00

Closed #117 Map tiles broken in prod: NEXT_PUBLIC_MAP_TILE_URL build-arg never set in CI 2026-09-07 19:06:22 -04:00

Closed #102 llm_correlator._call_block reads the whole-call transcript per scene — remaining leg of #80/#95 2026-09-07 04:40:35 -04:00

Closed #80 Scene correlation is judged on the call-level (primary-scene) embedding and severity, not the scene it is correlating 2026-09-06 15:11:33 -04:00

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 2026-09-06 15:11:33 -04:00

Closed #94 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CTO draft 2026-09-01 02:46:29 -04:00

Closed #93 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CISO draft 2026-09-01 02:46:28 -04:00

Closed #92 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CMO draft 2026-09-01 02:46:25 -04:00

Closed #90 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - COO draft 2026-09-01 02:46:23 -04:00

Closed #81 Any signed-in viewer can trigger OpenAI summary spend: incident summary routes use require_service_or_firebase_token, not require_admin_token 2026-09-01 02:45:36 -04:00

Closed #87 The primary scene's geocode leaks into every other scene's correlation, fabricating a location match 2026-09-01 02:44:06 -04:00

Closed #78 HIRING: growth-ops (outreach preparation persona) 2026-08-31 22:48:43 -04:00

Closed #89 AI-window failsafe arming check self-matches: pgrep -f 'sleep 4200' reports armed when nothing is armed 2026-08-31 02:46:01 -04:00

Closed #63 Runner must never hold a secret in its context - replace every token read with a WSL wrapper 2026-08-30 23:28:53 -04:00

Closed #68 Encode the runner authorisation boundary and credential-escalation rule into drb-worksession.md 2026-08-30 02:40:44 -04:00

Closed #85 Alert webhooks POST a raw unredacted transcript snippet to a third-party Discord channel 2026-08-29 02:45:09 -04:00

Closed #74 _call_fits_incident still uses signed idle, so the sweep path skips both over-merge vetoes on back-dated calls 2026-08-28 03:10:09 -04:00

Closed #84 Call dedup is failing on every call in production: missing calls (system_id, started_at) composite index 2026-08-28 03:10:09 -04:00

Closed #82 Unattended runs died silently on usage limits for 3 cycles - Task Scheduler reported success 2026-08-27 03:05:14 -04:00

Closed #76 Two AI spend paths escape config/ai_features entirely, so "AI is off" is not true and #45 cannot measure spend 2026-08-27 02:56:26 -04:00

Closed #75 Per-system correlation_enabled=false is ignored: the call still correlates, with empty tags, down the thin/recency path 2026-08-27 02:56:25 -04:00

Closed #77 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CISO draft 2026-08-25 21:47:54 -04:00

Closed #73 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CMO draft 2026-08-25 21:47:53 -04:00

Closed #72 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CTO draft 2026-08-25 21:47:52 -04:00

Closed #70 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — COO draft 2026-08-25 21:47:51 -04:00

Closed #65 deploy.yml runs compose up -d before the health check with no rollback - blocks unattended pushes to the AI pipeline 2026-08-25 21:42:35 -04:00

Closed #71 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — COO draft 2026-08-25 21:29:52 -04:00

Closed #30 /dashboard does not exist, so every post-login and guard redirect lands on a 404 2026-08-25 09:28:41 -04:00

Closed #31 Admin page redirects away before auth claims resolve, so /admin is unreachable on a cold load 2026-08-25 09:28:41 -04:00

Closed #60 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CTO draft 2026-08-24 23:42:53 -04:00

Closed #61 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CISO draft 2026-08-24 23:42:53 -04:00

Closed #58 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — COO draft 2026-08-24 23:42:52 -04:00

Closed #59 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CMO draft 2026-08-24 23:42:52 -04:00

Closed #52 Place verification geocodes unit call-signs: "Post 1-2" became a real map pin 2026-08-23 23:31:34 -04:00

Closed #41 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CMO draft 2026-08-23 17:34:16 -04:00

Closed #39 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CISO draft 2026-08-23 17:34:15 -04:00

Closed #40 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CTO draft 2026-08-23 17:34:15 -04:00

Closed #38 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — COO draft 2026-08-23 17:34:14 -04:00

Closed #34 84 of 100 incidents are titled "Ems — TGID 9048" because /upload never resolves the talkgroup name 2026-08-23 03:24:14 -04:00

Closed #32 React error #310 white-screens /systems and /nodes 2026-08-23 02:21:50 -04:00

Closed #23 Incident map pin and incident label disagree in 5 of 6 incidents 2026-08-23 01:35:12 -04:00

Closed #26 Incident title is re-derived from the newest call, so incidents are named after their last event 2026-08-23 01:35:12 -04:00

Closed #16 unit-continuity correlation path never writes corr_matched_units, so the debug view can't show why it matched 2026-08-23 01:30:09 -04:00

Closed #24 Correlation debug endpoint hides the LLM fields, so LLM activity cannot be audited 2026-08-23 01:30:09 -04:00

Closed #20 CORS defaults to "*" while allow_credentials is True 2026-08-23 01:26:34 -04:00

Closed #21 Deploy failed silently on 15 consecutive pushes — production ran 08-18 code until 08-20 2026-08-23 01:26:34 -04:00

Closed #25 Incident title is re-derived from the newest call, so incidents are named after their last event 2026-08-20 03:42:42 -04:00

Closed #22 Thin-call auto-attach has no fit check, merging unrelated events into one incident 2026-08-20 03:34:56 -04:00

Closed #14 No alerting when an AI provider account runs dry or a model is retired 2026-08-20 03:14:40 -04:00

Closed #12 upload.py compares node API keys with != instead of secrets.compare_digest 2026-08-20 03:08:22 -04:00

Closed #10 10 pre-existing test failures in test_mqtt_handler and test_node_sweeper 2026-08-20 03:06:49 -04:00

Closed #8 POST /calls/{id}/reprocess is unmetered spend for any authenticated user 2026-08-20 03:02:55 -04:00

Closed #11 Unpinned base images: Python major version can change on rebuild 2026-08-20 03:02:55 -04:00

Closed #18 Incidents never record resolved_at, blocking history scrub 2026-08-19 22:58:01 -04:00

Closed #17 Incident severity is stamped once at creation and never re-evaluated 2026-08-19 22:57:24 -04:00

Closed #15 Correlation has no non-AI fallback: a full AI outage produces a 100% orphan rate for its whole duration 2026-08-19 22:36:25 -04:00

222 Issues created by 1 user

Opened #2 Google sign-in fails: auth handler is cross-site under Chrome storage partitioning 2026-08-19 22:06:53 -04:00

Opened #3 Billing UI is mock data and shows every org a fabricated trial 2026-08-19 22:06:53 -04:00

Opened #4 /admin reads are not org-scoped, leaking data across tenants 2026-08-19 22:06:53 -04:00

Opened #5 Scene over-splitting: one radio conversation becomes two incidents 2026-08-19 22:06:53 -04:00

Opened #6 geocode_max_km=40 may be rejecting legitimate MTA locations 2026-08-19 22:06:53 -04:00

Opened #7 Bulk reprocess calls stored without a transcript 2026-08-19 22:06:54 -04:00

Opened #8 POST /calls/{id}/reprocess is unmetered spend for any authenticated user 2026-08-19 22:06:54 -04:00

Opened #9 Member and node write endpoints are platform-admin-only, blocking org owners 2026-08-19 22:06:54 -04:00

Opened #10 10 pre-existing test failures in test_mqtt_handler and test_node_sweeper 2026-08-19 22:06:54 -04:00

Opened #11 Unpinned base images: Python major version can change on rebuild 2026-08-19 22:06:55 -04:00

Opened #12 upload.py compares node API keys with != instead of secrets.compare_digest 2026-08-19 22:06:55 -04:00

Opened #13 Firestore rules and indexes are in source control but never deployed 2026-08-19 22:06:55 -04:00

Opened #14 No alerting when an AI provider account runs dry or a model is retired 2026-08-19 22:06:55 -04:00

Opened #15 Correlation has no non-AI fallback: a full AI outage produces a 100% orphan rate for its whole duration 2026-08-19 22:34:33 -04:00

Opened #16 unit-continuity correlation path never writes corr_matched_units, so the debug view can't show why it matched 2026-08-19 22:34:33 -04:00

Opened #17 Incident severity is stamped once at creation and never re-evaluated 2026-08-19 22:41:30 -04:00

Opened #18 Incidents never record resolved_at, blocking history scrub 2026-08-19 22:41:30 -04:00

Opened #19 Marketing landing and the Live map both claim / — move the app under /app 2026-08-19 23:26:50 -04:00

Opened #20 CORS defaults to "*" while allow_credentials is True 2026-08-20 03:06:27 -04:00

Opened #21 Deploy failed silently on 15 consecutive pushes — production ran 08-18 code until 08-20 2026-08-20 03:17:18 -04:00

Opened #22 Thin-call auto-attach has no fit check, merging unrelated events into one incident 2026-08-20 03:17:18 -04:00

Opened #23 Incident map pin and incident label disagree in 5 of 6 incidents 2026-08-20 03:17:18 -04:00

Opened #24 Correlation debug endpoint hides the LLM fields, so LLM activity cannot be audited 2026-08-20 03:17:18 -04:00

Opened #25 Incident title is re-derived from the newest call, so incidents are named after their last event 2026-08-20 03:35:14 -04:00

Opened #26 Incident title is re-derived from the newest call, so incidents are named after their last event 2026-08-20 03:36:20 -04:00

Opened #27 Sweep retry budget can expire before the incident the orphan belongs to exists 2026-08-20 03:36:20 -04:00

Opened #28 Pre-existing incidents keep an unverifiable map pin until a call links to them 2026-08-23 01:36:06 -04:00

Opened #29 models.py types incident location as coordinates, so PUT /incidents/{id} cannot set one 2026-08-23 01:36:06 -04:00

Opened #30 /dashboard does not exist, so every post-login and guard redirect lands on a 404 2026-08-23 02:14:08 -04:00

Opened #31 Admin page redirects away before auth claims resolve, so /admin is unreachable on a cold load 2026-08-23 02:14:08 -04:00

Opened #32 React error #310 white-screens /systems and /nodes 2026-08-23 02:14:09 -04:00

Opened #33 firestore.indexes.json has drifted from the live database and now duplicates two of its indexes 2026-08-23 02:37:34 -04:00

Opened #34 84 of 100 incidents are titled "Ems — TGID 9048" because /upload never resolves the talkgroup name 2026-08-23 03:20:35 -04:00

Opened #35 LLM correlation tier decides only 3.5% of links, and the dominant fast/thin path records no fit signal 2026-08-23 03:20:35 -04:00

Opened #36 Move transcript correction into transcription, with per-talkgroup vocabulary and area context 2026-08-23 13:53:29 -04:00

Opened #37 Use Maps to verify corrected place names against the talkgroup anchor, and point the induction loop at talkgroups 2026-08-23 16:16:56 -04:00

Opened #38 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — COO draft 2026-08-23 17:19:57 -04:00

Opened #39 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CISO draft 2026-08-23 17:20:59 -04:00

Opened #40 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CTO draft 2026-08-23 17:21:17 -04:00

Opened #41 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — CMO draft 2026-08-23 17:24:59 -04:00

Opened #42 Board 2026-08-23 — Ratify BUSINESS_MODEL.md — FINAL MINUTES 2026-08-23 17:30:49 -04:00

Opened #43 Gate B3: EMS/medical talkgroup exclusion default and person-name redaction are not implemented 2026-08-23 17:33:09 -04:00

Opened #44 Gate B4: lib/billing.ts publicly promises 7/90/365-day retention with no enforcement anywhere 2026-08-23 17:33:09 -04:00

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 2026-08-23 17:33:09 -04:00

Opened #46 Gate A: awaiting owner sign-off to close - public price (a1bdccf) and the A2 disclaimer (b722223) are both shipped and live 2026-08-23 17:33:10 -04:00

Opened #47 Owner-only pre-revenue gates: ToS/Privacy/AUP, business entity + E&O, delay policy, agency takedown contact 2026-08-23 17:33:10 -04:00

Opened #48 Gate B8: transcript entity-name accuracy has never been measured, yet names are being published 2026-08-23 17:33:10 -04:00

Opened #49 Board skill: CTO draft #40 was filed with the CISO draft body byte-for-byte, losing the CTO record 2026-08-23 17:33:10 -04:00

Opened #50 Comped friends-and-family tier is uncapped AI spend: no entitlement flag, no per-org attribution, no cap 2026-08-23 17:58:33 -04:00

Opened #51 No automated deploy path for Firestore rules — they can regress silently after every fix 2026-08-23 18:11:14 -04:00

Opened #52 Place verification geocodes unit call-signs: "Post 1-2" became a real map pin 2026-08-23 22:15:51 -04:00

Opened #53 Board 2026-08-23 — Operating cadence — FINAL MINUTES 2026-08-23 23:21:45 -04:00

Opened #54 Board 2026-08-23 — Owner goals — FINAL MINUTES 2026-08-23 23:44:45 -04:00

Opened #55 Platform admin cannot see or change which org a user belongs to — user management is org-blind 2026-08-23 23:57:23 -04:00

Opened #56 Telegram control plane: owner-to-agent commands — built as drb-telegram-ops (WSL), pending live verification 2026-08-24 00:32:39 -04:00

Opened #57 P0: standing correlation-quality evaluation procedure (scheduled AI window) 2026-08-24 23:03:42 -04:00

Opened #58 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — COO draft 2026-08-24 23:27:53 -04:00

Opened #59 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CMO draft 2026-08-24 23:29:25 -04:00

Opened #60 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CTO draft 2026-08-24 23:29:44 -04:00

Opened #61 Board 2026-08-24 — Unattended operating cadence and GOALS tracking — CISO draft 2026-08-24 23:30:01 -04:00

Opened #62 Board 2026-08-24 - Unattended operating cadence and GOALS tracking - FINAL MINUTES 2026-08-24 23:39:06 -04:00

Opened #63 Runner must never hold a secret in its context - replace every token read with a WSL wrapper 2026-08-24 23:41:26 -04:00

Opened #64 Close the /admin/features Firestore SSH side-door: require_service_key_or_admin + distinct agent credential 2026-08-24 23:41:26 -04:00

Opened #65 deploy.yml runs compose up -d before the health check with no rollback - blocks unattended pushes to the AI pipeline 2026-08-24 23:41:26 -04:00

Opened #66 TRACKER: 12 discovery conversations by 2026-09-22 (GOALS.md kill criterion) - checkpoint 2026-09-05 2026-08-24 23:41:26 -04:00

Opened #67 Credential rotation docket: 2 outstanding API keys + gcp-key.json (founding agenda item 2) 2026-08-24 23:41:26 -04:00

Opened #68 Encode the runner authorisation boundary and credential-escalation rule into drb-worksession.md 2026-08-24 23:41:27 -04:00

Opened #69 OWNER AGENDA: who do we hire to generate interest? The owner is not the growth engine 2026-08-25 00:07:07 -04:00

Opened #70 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — COO draft 2026-08-25 09:28:39 -04:00

Opened #71 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — COO draft 2026-08-25 09:29:06 -04:00

Opened #72 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CTO draft 2026-08-25 21:27:45 -04:00

Opened #73 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CMO draft 2026-08-25 21:30:26 -04:00

Opened #74 _call_fits_incident still uses signed idle, so the sweep path skips both over-merge vetoes on back-dated calls 2026-08-25 21:30:50 -04:00

Opened #75 Per-system correlation_enabled=false is ignored: the call still correlates, with empty tags, down the thin/recency path 2026-08-25 21:30:50 -04:00

Opened #76 Two AI spend paths escape config/ai_features entirely, so "AI is off" is not true and #45 cannot measure spend 2026-08-25 21:30:50 -04:00

Opened #77 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — CISO draft 2026-08-25 21:32:00 -04:00

Opened #78 HIRING: growth-ops (outreach preparation persona) 2026-08-25 21:44:36 -04:00

Opened #79 Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — FINAL MINUTES 2026-08-25 21:47:39 -04:00

Opened #80 Scene correlation is judged on the call-level (primary-scene) embedding and severity, not the scene it is correlating 2026-08-26 09:31:11 -04:00

Opened #81 Any signed-in viewer can trigger OpenAI summary spend: incident summary routes use require_service_or_firebase_token, not require_admin_token 2026-08-26 09:31:22 -04:00

Opened #82 Unattended runs died silently on usage limits for 3 cycles - Task Scheduler reported success 2026-08-26 20:28:34 -04:00

Opened #83 transcript_correction_enabled is not a pure cost lever: turning it off disables the noise gate and pushes over-merging 2026-08-27 02:50:30 -04:00

Opened #84 Call dedup is failing on every call in production: missing calls (system_id, started_at) composite index 2026-08-27 03:04:19 -04:00

Opened #85 Alert webhooks POST a raw unredacted transcript snippet to a third-party Discord channel 2026-08-28 02:52:22 -04:00

Opened #86 Correlation over-merge veto uses a bare 0.82 literal, looser than the 0.93 match bar it sits beside 2026-08-29 02:43:30 -04:00

Opened #87 The primary scene's geocode leaks into every other scene's correlation, fabricating a location match 2026-08-30 02:44:06 -04:00

Opened #88 resolved and reassignment are prompt-only invariants with no validator, so a string "false" resolves an incident 2026-08-30 02:44:06 -04:00

Opened #89 AI-window failsafe arming check self-matches: pgrep -f 'sleep 4200' reports armed when nothing is armed 2026-08-30 02:47:09 -04:00

Opened #90 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - COO draft 2026-08-31 02:45:50 -04:00

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 2026-08-31 02:45:54 -04:00

Opened #92 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CMO draft 2026-08-31 02:46:15 -04:00

Opened #93 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CISO draft 2026-08-31 02:46:29 -04:00

Opened #94 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - CTO draft 2026-08-31 02:46:33 -04:00

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 2026-09-01 02:43:34 -04:00

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 2026-09-01 02:43:34 -04:00

Opened #97 Board 2026-08-31 - Dev progress, the #64 side-door, and the past-due credential docket - FINAL MINUTES 2026-09-01 02:45:00 -04:00

Opened #98 trip_chat spend gate relies solely on per-caller rate limit, not a role check (found during #81) 2026-09-01 02:45:34 -04:00

Opened #99 Board process defect: the 2026-08-31 sitting filed four drafts and no final minutes for 24h 2026-09-01 02:46:34 -04:00

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 2026-09-01 02:58:58 -04:00

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 2026-09-01 02:58:58 -04:00

Opened #102 llm_correlator._call_block reads the whole-call transcript per scene — remaining leg of #80/#95 2026-09-06 15:10:45 -04:00

Opened #103 content_divergence veto goes dark when the scene embedding is legitimately None (post-#80/#95) 2026-09-06 15:11:07 -04:00

Opened #104 Reprocess with stale call-doc severity: not-thin call re-extracted to zero scenes attaches with no fit check 2026-09-06 15:11:07 -04:00

Opened #109 Frontend punch-list (drb.cusano.net live review, 2026-09-07) 2026-09-06 23:44:02 -04:00

Opened #110 /archive (Archive tab) reported failing with a CORS error — needs the console line to root-cause 2026-09-06 23:47:08 -04:00

Opened #111 SDR tuning (PPM / preset) is coupled to system assignment and silently wiped on reassign 2026-09-07 00:01:15 -04:00

Opened #114 summarizer reads the whole-call transcript per incident — next leg of the #80/#95/#102 scene-context leak 2026-09-07 00:12:58 -04:00

Opened #115 Consensus tiebreaker manufactures incidents — resolves ~all disagreements as "new", overriding the LLM's "link" 2026-09-07 04:42:16 -04:00

Opened #117 Map tiles broken in prod: NEXT_PUBLIC_MAP_TILE_URL build-arg never set in CI 2026-09-07 18:39:41 -04:00

Opened #118 Stray unstyled clock overlay + incident-card/zoom-control collision on the Leaflet map 2026-09-07 18:39:42 -04:00

Opened #127 Upstream dispatch-vs-chatter classifier — shadow mode 2026-09-12 23:58:06 -04:00

Opened #129 Deploy failed with VM disk full — git pull could not write objects; prune ran too late to prevent it 2026-09-13 12:27:13 -04:00

Opened #131 Same call_id linked into 2 incident records with identical extracted data (~2% of linked calls) 2026-09-13 13:19:39 -04:00

Opened #134 incident_correlator fast/thin path has the same dispatch/tactical name-guess as the #115 escape hatch, but it changes link decisions 2026-09-13 14:08:03 -04:00

Opened #136 Map Incident Tiles are Unreadable 2026-09-13 15:09:07 -04:00

Opened #137 Map should zoom back to original when closing an incident popup 2026-09-13 15:11:10 -04:00

Opened #138 LLM-orphan gate's "type" veto fires on visibly content-free chatter (18/22 this window) 2026-09-13 17:21:13 -04:00

Opened #139 Per-scene scenes map (#96/#114) doesn't capture incident_type -- can't audit the gate's "type" veto per scene 2026-09-13 17:21:13 -04:00

Opened #140 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CFO draft 2026-09-13 17:32:43 -04:00

Opened #141 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CTO draft 2026-09-13 17:33:31 -04:00

Opened #142 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CMO draft 2026-09-13 17:34:49 -04:00

Opened #143 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — COO draft 2026-09-13 17:36:54 -04:00

Opened #144 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CIO draft 2026-09-13 17:38:39 -04:00

Opened #145 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — CISO draft 2026-09-13 18:43:04 -04:00

Opened #146 Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — FINAL MINUTES 2026-09-13 18:49:36 -04:00

Opened #147 CAN-SPAM/TCPA/state-UDAP review for growth-ops cold-email channel (minutes #79 decision 3 gate) 2026-09-13 21:40:31 -04:00

Opened #148 Board 2026-09-13 — Autonomous email SOP — CIO draft 2026-09-13 22:57:27 -04:00

Opened #149 Board 2026-09-13 — Autonomous email SOP — CTO draft 2026-09-13 22:57:32 -04:00

Opened #150 Board 2026-09-13 — Autonomous email SOP — CISO draft 2026-09-13 22:58:15 -04:00

Opened #151 Board 2026-09-13 — Autonomous email SOP — FINAL MINUTES 2026-09-13 23:05:15 -04:00

Opened #153 OpenAI/Gemini clients have no request timeout -- sweep hold-back constants are guessed, not derived 2026-09-14 00:25:33 -04:00

Opened #155 Incidents never actually clear — units_cleared almost never populates, 90-min idle sweep does the resolving instead 2026-09-20 14:33:01 -04:00

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 2026-09-20 14:38:54 -04:00

Opened #158 fast/thin correlation path never uses srcaddr for disambiguation, even though every call already carries it 2026-09-20 19:11:54 -04:00

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 2026-09-20 19:51:47 -04:00

Opened #160 place_verifier.verify() has the same no-anchor gap #159 fixed in intelligence.py's geocoder — never ported over 2026-09-20 20:08:15 -04:00

Opened #161 New "Deploy Firestore rules & indexes" CI job fails every run — FIREBASE_TOKEN secret not set 2026-09-20 20:30:52 -04:00

Opened #162 transcript_correction.py accepted the model's rewrite verbatim — a real ten-code got swapped for a different real ten-code 2026-09-20 21:51:25 -04:00

Opened #163 STT quality initiative: raw transcription accuracy is the ceiling every downstream fix (correction, extraction, correlation) is hostage to — research + candidate angles 2026-09-20 21:56:50 -04:00

Opened #167 deploy.yml has no concurrency guard — two pushes to main deploy to the VM at once, last-finisher wins 2026-09-24 01:10:46 -04:00

Opened #169 Gemini correlation tier returned nothing for the whole 09-20→09-22 AI run — 377/377 decisions rules-only 2026-09-26 14:48:53 -04:00

Opened #170 Admin Replay: re-run the pipeline over past calls in a sandbox, so correlation changes are measured without live AI windows 2026-09-26 15:15:54 -04:00

Opened #183 OSINT layer: 511NY DOT cameras + road closures/construction on the map 2026-09-27 13:11:05 -04:00

Opened #184 OSINT layer: utility power outages (Con Ed / NYSEG) on the map 2026-09-27 13:11:05 -04:00

Opened #185 Map legend does not explain the aircraft altitude colour ramp 2026-09-27 13:38:13 -04:00

Opened #186 Vessel layer renders AIS aids-to-navigation (MMSI 99xxxxxxx buoys) as vessels 2026-09-27 13:38:13 -04:00

Opened #187 Secondary SDR priority: row state shows "Waiting for SDR" instead of an error when the container/checkin is unreachable 2026-09-27 14:12:44 -04:00

Opened #189 Long-lived Major incident becomes a sink: 'Rollover Entrapment at TSP' absorbed 40 calls / 2h34m / 37 km path on Ch1 2026-09-27 19:26:37 -04:00

Opened #190 Severity never de-escalates on stand-down: 'Flames at the house' stays Major/active after units report a fireplace 2026-09-27 19:26:37 -04:00

Opened #192 Mesh ingest: nodes/+/mesh -> mesh_messages, mesh alert sink, mesh as correlator source 2026-09-27 23:41:36 -04:00

Opened #193 Unattended runner is dead since the Linux move — Task Scheduler/run-session.ps1/drb-tg have no Linux equivalent 2026-10-04 00:48:29 -04:00

Opened #195 reject_node leaves the node's dynsec login and node_keys in place — a rejected node can still use MQTT and /upload 2026-10-04 01:11:47 -04:00

Opened #196 Prod AI dark since 09-29/09-30: Gemini and OpenAI credits exhausted (billing, not a bug) 2026-10-04 01:15:39 -04:00

Opened #197 Correlation measurement can't reach a multi-day live window: debug/correlation caps at 100 incidents, GET /incidents times out 2026-10-04 01:15:39 -04:00

Opened #198 511NY: legacy API dead after 511x cutover, and DRB has no DAA grant for the new feed (+ timestamp/disclaimer gaps) 2026-10-04 05:32:02 -04:00

Opened #199 Ask NYSDOT in writing: does the 511NY DAA cover overlays, detection counts and frame retention on camera imagery? 2026-10-04 15:22:49 -04:00

Opened #200 CISO ruling: frame retention / camera-derived data — archiving frames that show people and plates 2026-10-04 15:22:49 -04:00

Opened #201 NYC DOT cameras (webcams.nyctmc.org): decide whether to request a data-sharing agreement 2026-10-04 15:22:49 -04:00

Opened #202 Westchester County DPW cameras: ask for written permission — and treat the county as a sales prospect 2026-10-04 15:22:50 -04:00

Opened #203 Discord bot /leave kills every node's stream fleet-wide; /join hijacks a node already streaming elsewhere (no guild/org scoping) 2026-10-04 15:34:19 -04:00

Opened #204 Bot-token pool leaks and races: preferred_token_id silently dropped, re-join double-assigns, failed MQTT send never releases 2026-10-04 15:34:20 -04:00

Opened #207 No pre-merge frontend typecheck: no Node on the authoring box, no lockfile, CI only on main 2026-10-04 17:59:22 -04:00

Opened #211 Node revoke follow-ups: /systems node auth ignores approval_status; no UI to reject an approved node 2026-10-04 18:02:35 -04:00

Opened #212 Live wall: minor UI follow-ups from #208 review (nested link in button, unclamped 511 bbox, no-CORS origin latch) 2026-10-04 18:07:43 -04:00

Opened #213 Discord: no self-serve guild->org link and no admin UI for radio channels/bots (follow-up to #203/#204) 2026-10-04 18:10:01 -04:00

Opened #214 Discord ad-hoc radio streams never auto-dismiss when the voice channel empties 2026-10-04 18:10:01 -04:00

Opened #215 Mint panel install command still puts the enrollment token on the command line (node-26#18 server half) 2026-10-04 18:10:26 -04:00

Opened #221 Discord settings: no way to unlink a server, and org owners have no Discord view (all routes platform-admin only) 2026-10-04 20:07:43 -04:00

Opened #222 Node page shows admin-only buttons to non-admins (Restart OP25, override Ack/Force Revert): dead CTAs 2026-10-04 20:08:46 -04:00

Opened #223 Discord stream caps are check-then-write: concurrent starts can exceed the per-server and per-node limits 2026-10-04 21:36:58 -04:00

Opened #225 Discord: customers shouldn't need the main DRB bot in their server — radio bots (via C2) should cover linking, channel directory and permission checks 2026-10-05 00:14:39 -04:00

Opened #228 Discord: no edit path for a running radio stream (label/bot/mode); re-add and node-page move keep the old mode 2026-10-05 00:40:05 -04:00

Opened #229 Discord multi-stream follow-ups: /leave stream: rough edges; find_channel_stream ignores org_id 2026-10-05 00:40:30 -04:00

Opened #232 Map: 'Live' pill is driven by node heartbeats, so the wall reads live while transcription/correlation are dead 2026-10-05 02:08:33 -04:00

Opened #233 Map: no audio anywhere on the live wall — click-to-listen on spine, path stops and rail (plus media.py Range) 2026-10-05 02:08:33 -04:00

Opened #234 Map: wall forgets layers and view on every reload — saved views in the URL hash, per-viewer memory, kiosk mode 2026-10-05 02:08:34 -04:00

Opened #235 Map: no filtering or search on the map — filter bar, discipline presets, text search 2026-10-05 02:08:34 -04:00

Opened #236 Map: pins and paths look exact when they aren't — confidence styling, type-gated paths, impossible-speed stops 2026-10-05 02:08:35 -04:00

Opened #237 Map: weather context — NWS warning polygons, radar with valid time/legend/loop, wind at the incident 2026-10-05 02:08:35 -04:00

Opened #238 Map: nothing on the wall grabs attention — NEW lane, audible cue and in-tab notifications for new Majors/path growth 2026-10-05 02:08:35 -04:00

Opened #239 Map: 500-call window silently truncates incident paths, call spine and the 7d scrubber; #inc= deep links only resolve active incidents 2026-10-05 02:08:36 -04:00

Opened #240 Map: history mode — make the TimeScrubber playhead move (resolved_at already exists; #18 closed) 2026-10-05 02:08:36 -04:00

Opened #241 Map: geofenced watch zones / protected sites — alert rules with geometry, evaluated on incidents 2026-10-05 02:08:37 -04:00

Opened #242 Map: storm/utility hazards land as 'other' (?) — hazard subtype for wires down, manhole fire, flooded road, tree down, road closed 2026-10-05 02:08:37 -04:00

Opened #243 Map: incident notes, disposition and export/handoff (GeoJSON/CSV/CAP, signed webhook, Teams/Slack) 2026-10-05 02:08:38 -04:00

Opened #244 Map: aircraft context — squawk and emitter category, rotorcraft icon, orbit detection, FAA TFRs 2026-10-05 02:08:38 -04:00

Opened #245 Map: transit layer — MTA GTFS lines/stations plus GTFS-rt service alerts, with incident-to-ROW distance 2026-10-05 02:08:38 -04:00

Opened #246 Map: keyboard command layer and mobile field mode 2026-10-05 02:08:39 -04:00

Opened #247 Map roadmap — persona panel 2026-10-05 2026-10-05 02:09:10 -04:00

Opened #248 Plates as an internal correlation key only: HMAC match key from spoken plates, 2h TTL, no search/watchlist/display (CISO ruled) 2026-10-05 02:18:54 -04:00

Opened #251 Discord: after fixing a permission, /join keeps refusing for up to 2 min (cached snapshot, 'then try again' text) 2026-10-05 02:31:57 -04:00

Opened #254 Truth strip (#232) follow-ups: dedup undercount, stale-min build arg, sticky tier, per-system STT 2026-10-05 02:38:40 -04:00

Opened #256 Discord picker: 'Needs fix' text says 'then try again' but Start stays disabled until the small footer Re-check is clicked 2026-10-05 02:43:29 -04:00

Opened #257 Voice-check: a bot whose token Discord rejected is summed up as 'No radio bot in this server' (and offers an invite to a bot that is already there) 2026-10-05 02:43:29 -04:00

Opened #258 S4 UI copy: wrong Start tooltip for 'Not a voice channel', 'platform admin' jargon, 'ask DRB support' with no way to reach support 2026-10-05 02:43:30 -04:00

Opened #261 Discord bot tokens and OAuth client secrets are stored in plaintext Firestore fields (no app-level encryption) 2026-10-05 02:54:08 -04:00

Opened #264 Weather alerts: simplify zone-resolved NWS polygons (payload ~2 MB for 3 states) 2026-10-05 02:55:20 -04:00

Opened #266 Expired Discord link codes and OAuth states are never deleted (discord_link_codes, discord_oauth_states) 2026-10-05 02:59:38 -04:00

Opened #268 Map rail header doesn't say 'filtered' when the wall filter is on (follow-up to #235) 2026-10-05 03:11:52 -04:00

Opened #269 Live wall: persist the Power Outages overlay in the saved-view hash (#184 follow-up) 2026-10-05 03:13:01 -04:00

Opened #273 Discord: org owners can't register their own (BYO) radio bot or its OAuth secret — platform-admin only 2026-10-05 03:25:58 -04:00

Opened #275 Live wall: IncidentPanel says "active" and a running elapsed clock for a resolved incident opened by link 2026-10-05 03:29:48 -04:00

Opened #278 Map: open camera tiles cover the weather status chip and radar STALE badge (bottom centre) 2026-10-05 03:51:53 -04:00

Opened #279 Map: incident pins rebuilt every second (clock re-render) — pin pulse restarts before it completes 2026-10-05 03:52:40 -04:00

Opened #283 Systems page offers create/edit/delete and AI panels to operators; every backend route is admin-only, and Delete fails silently 2026-10-25 21:31:55 -04:00

Opened #284 Admin actions swallow failures (console.error only): Resolve, Summarize, alert rules, Ack, Restart OP25; empty states lie on load failure 2026-10-25 21:31:55 -04:00

Opened #285 Marketing CTAs contradict each other: 'Get started' -> /login, waitlist says signup closed, /signup is live 2026-10-25 21:31:56 -04:00

Opened #286 Raw 'C2 API error 403: {"detail":...}' shown to users across most screens 2026-10-25 21:32:13 -04:00

Opened #287 Settings > API Keys is an in-memory mock shown to customers; empty state claims it authenticates integrations 2026-10-25 21:32:13 -04:00

Opened #288 Node page: missing/denied node spins 'Loading node…' forever; 'No calls recorded' is wrong for quiet nodes 2026-10-25 21:32:14 -04:00

Opened #289 Stale or false copy: bot /link points to a nonexistent Settings tab; FAQ/features claim operator management and tuning persistence 2026-10-25 21:32:14 -04:00

Opened #292 Live map: stale-state dim greys out popups and legend; node pins nearly invisible on the dark basemap 2026-10-25 23:12:29 -04:00

Opened #293 Expired session renders pages signed-out instead of redirecting to login 2026-10-25 23:12:29 -04:00

Opened #296 Cut AI pipeline cost: evaluate cheaper / alternative models for STT, scene extraction, correlation 2026-10-27 19:27:14 -04:00

Opened #297 Transcription: move to an OpenAI-compatible cheaper provider (Groq whisper-large-v3-turbo) with a domain vocabulary prompt 2026-10-27 20:03:49 -04:00

Opened #298 Extraction: one cheap call per transcript, skip chatter before any LLM, config-driven model, cache geocodes 2026-10-27 20:03:49 -04:00

Opened #299 Correlation: rules first, one cheap LLM call only when ambiguous; remove the cheap/smart consensus tiebreak 2026-10-27 20:03:49 -04:00

Opened #300 Alerts: confidence gate before any push alert (Discord/webhook) — avoid the CrimeRadar false shots-fired failure 2026-10-27 20:03:50 -04:00

Opened #301 /upload: a late (spooled) upload is correlated against now, not the call's started_at 2026-10-27 20:14:56 -04:00

Opened #302 /upload has no idempotency: a retried upload re-runs Whisper/Gemini/correlation on the same call_id 2026-10-27 20:14:57 -04:00

Opened #303 call_start overwrites the call doc (merge=False) and can erase audio_gcs_uri when it lands after /upload 2026-10-27 20:38:15 -04:00

Opened #304 Correlation: make the P25 radio ID (srcaddr) a first-class link, and measure how often calls carry it 2026-11-08 01:07:48 -05:00