test(reactions): a reaction nobody emits is a state no member ever sees #474
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!474
Loading…
Reference in a new issue
No description provided.
Delete branch "qa/pin-every-reaction-is-emitted"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
0e3fccbfoundreactionRefuseddeclared, meaningful, and fired by nothing on the content boundary it exists for:It found that by reading. No test failed. And deleting the emission it added leaves the whole suite green today, so the fix can revert to the defect as quietly as it arrived.
Generalised rather than pinned
Rather than guard that one call site, this asserts the property the commit discovered: every declared reaction is emitted somewhere outside the file that declares it. A state a member cannot reach is either unwired or dead, and both want the same answer — wire it or delete it.
That covers the case 447 fixed, the three it did not touch, and any reaction added later.
The list is hand-kept, so the list is checked
A second test asserts the names this test knows match what
reactions.godeclares. Without it, a fifth reaction added tomorrow is silently exempt from the check that matters — which is the same shape as the glyph drift 447 fixed, arriving one level up.Both directions verified
Why this shape
This is the second unguarded wiring I have found in an hour — #208's sandbox label was the first, where the policy had five tests and the line invoking it had none. Both are cases where the component is correct and nothing checks that anything calls it.
The difference here is that the invariant generalises.
reactionRefusedfiring on nothing was findable only by someone reading the file and noticing; the next one is findable by running the suite.Test-only. No production change.
Refs #447