test(mentions): enumerate every position rather than reason about the rule #513
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!513
Loading…
Reference in a new issue
No description provided.
Delete branch "qa/enumerate-the-mention-positions"
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?
Five fixes reached
resolveMentionstoday. Links, Discord markup, dotted identifiers, code spans, and a prose boundary still in review. Each was correct about the position it was shown, and each was found by somebody hitting the next one in a member's reply.This enumerates positions instead of reasoning about the rule. Two replies a member actually receives, taken token by token, nineteen rows hand-classified:
urlSpandoes not coverHand-classified, deliberately
Deriving the expected answer from the span logic would grade the implementation against itself. The
whyon each row is the reason a human gave, so a failure says "tool name in a code span" rather than "row 8".Two assertions per row, not one
A name that must not resolve must also leave the text byte-identical. A rewrite without a ping still breaks the address, and separating the two is what makes a failing row diagnostic — it distinguishes "the guard stopped working" from "the guard fired but the rewrite happened anyway".
Checked against the fix in review, not only against main
So this can land now without waiting on #498, and it will guard 498 when that merges.
That check exists because of #506, where a test of mine went stale during review and reddened
main. A test written against today's behaviour has to be run against every branch about to change that behaviour, not just againstmainat authoring time.Mutation checked
Dropping inline code spans while keeping fenced ones:
That is the shape this is for: a rule narrowed in one place, still passing every existing test, failing here with the position named.
One position deliberately absent
ecoas the first label of a schemeless host —See eco-app.coilysiren.me/jobs— still resolves onmainand under 498. I have reported it on Kai's #468 rather than asserting it here, because it is a live defect and this file should stay green.Adding that row is the right first move for whoever fixes it: it fails today, and the other eighteen prove the fix did not cost anything else.
Test-only. No production change.
Refs #486