correlator/intelligence: let 10-8s actually close incidents #174

Merged
logan merged 1 commits from fix/clearance-signal into main 2026-09-26 16:49:33 -04:00
Owner

Found by replay (#170). See commit.

🤖 Generated with Claude Code

Found by replay (#170). See commit. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
logan added 1 commit 2026-09-26 16:49:32 -04:00
Replay of 09-22 10:00-12:00 ET (server-26#170): 0 of 19 incidents resolved
on a clear, 19 on the idle timer, although 25 transmissions said 10-8/clear.
Three independent breaks:

1. Short clears never reached extraction. "45-9, I'm clear." is <=5 words,
   so extract_scenes skipped it before GPT and cleared_units stayed empty.
   A rule parser now names the unit when it precedes the status word
   (never guesses: "10-8, 10-8." / "CMT clear." clear nobody) and returns a
   minimal scene that links by unit overlap but cannot open an incident.
2. Clearance compared unit strings exactly, so "11-Adam" clearing never
   removed "11 Adam". Now by _normalize_unit key.
3. units_active collected "Desk", "Central", "Division", "unknown", plate
   phonetics — none of which ever clear, so all-clear could never pass.
   Only units carrying a number (and not a ten-code) are tracked now; the
   rest stay in `units` for matching.

c2-core: 463 pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
logan merged commit f0a88d401c into main 2026-09-26 16:49:33 -04:00
Sign in to join this conversation.