correlator: remove is_dispatch and the tactical fit path entirely (#134) #135

Merged
logan merged 3 commits from fix/134-drop-tactical-fit-path into main 2026-09-13 14:55:04 -04:00
Owner

Removes the dispatch/tactical fork entirely (2 commits: hardcode-True, then full removal per owner request). _is_dispatch_channel, _DISPATCH_TG_RE, the is_dispatch parameter, and _call_fits_incident's tactical branch are gone — one evaluation path for every channel.

Why: is_dispatch=False skipped the location-conflict/content-divergence vetoes on a unit-overlap match and defaulted to True on zero signal within 20 minutes ("tactical_default"). Owner correction from direct scanning experience: a channel named tac/tactical only sees materially different traffic during a real incident, and that's rare — the bulk of traffic on any monitored channel, pursuits included, stays on the main channel regardless of name. The permissive path existed for a channel category that's not real in practice.

Reviewed (drb-correlation-review) on the hardcode-True version before the full removal: confirmed the direction is strictly less-permissive (fewer bare unit-overlap absorptions, fewer no-signal absorptions), quantified against the 3 correlation dumps — ~6-7 of 18 calls in one incident chain (TG 363 "Muni") would flip from linked to rejected, ~2 of those plausibly correct links lost, the rest junk. No other reader of the removed fields.

Sandboxed pytest: 380 → 380 (one test deleted — it tested the now-removed tactical path directly — two others updated for the new behavior).

🤖 Generated with Claude Code

Removes the dispatch/tactical fork entirely (2 commits: hardcode-True, then full removal per owner request). `_is_dispatch_channel`, `_DISPATCH_TG_RE`, the `is_dispatch` parameter, and `_call_fits_incident`'s tactical branch are gone — one evaluation path for every channel. Why: `is_dispatch=False` skipped the location-conflict/content-divergence vetoes on a unit-overlap match and defaulted to `True` on zero signal within 20 minutes ("tactical_default"). Owner correction from direct scanning experience: a channel named tac/tactical only sees materially different traffic during a real incident, and that's rare — the bulk of traffic on any monitored channel, pursuits included, stays on the main channel regardless of name. The permissive path existed for a channel category that's not real in practice. Reviewed (`drb-correlation-review`) on the hardcode-True version before the full removal: confirmed the direction is strictly less-permissive (fewer bare unit-overlap absorptions, fewer no-signal absorptions), quantified against the 3 correlation dumps — ~6-7 of 18 calls in one incident chain (TG 363 "Muni") would flip from linked to rejected, ~2 of those plausibly correct links lost, the rest junk. No other reader of the removed fields. Sandboxed pytest: 380 → 380 (one test deleted — it tested the now-removed tactical path directly — two others updated for the new behavior). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
logan added 2 commits 2026-09-13 14:50:26 -04:00
is_dispatch was computed from _is_dispatch_channel(talkgroup_name) and picked between two _call_fits_incident evaluation orders: dispatch (requires a positive signal, runs location-conflict/content-divergence vetoes on unit overlap) vs tactical (skips both vetoes, defaults to True on no signal at all within 20 min). Per #133's reasoning, a name not literally containing dispatch/patched/primary got the unvetoed, default-True path solely because of its label. Hardcoded is_dispatch=True at its one real call site; the tactical branch and its own tests stay in place, unreached.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01Tbknwttzou4s46PAykmtix
Full removal, not a hardcoded flag: _is_dispatch_channel, _DISPATCH_TG_RE, the is_dispatch parameter, and _call_fits_incident's tactical branch are gone. One evaluation path for every channel.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01Tbknwttzou4s46PAykmtix
logan added 1 commit 2026-09-13 14:54:57 -04:00
logan merged commit 454fe7e81c into main 2026-09-13 14:55:04 -04:00
logan deleted branch fix/134-drop-tactical-fit-path 2026-09-13 14:55:05 -04:00
Sign in to join this conversation.