feat(turn): recognise a member asking about a trace, ahead of the fetch #347
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!347
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/recognise-a-trace-lookup-request"
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?
closes #346
The slice of #339 that lands without a grant. The parent stays open — this does not deliver the fetch.
What it recognises
Both halves required, in both directions:
trace, on its own word boundaryThe word alone cannot name a turn, and guessing which one is worse than not answering. An id alone is someone quoting a hash, and reading that as a telemetry request is the false positive the keyword exists to prevent.
retrace my stepsdoes not fire.The id resolves from the message the member replied to as well as from what they typed — the replied-to case is the common one, since the id arrives in a harness notice and the member simply answers it. A typed id wins, because a member who types one has named a different turn from whichever they happen to be replying under. Uppercase resolves: a member pasting from a console is not obliged to preserve the wire's lowercase.
What is deliberately absent
The fetch. No tracing backend is in this service's roster; the grant is deploy-owned and tracked on #278 and coilyco-bridge/deploy#359. A recognised lookup is recorded as
turn.trace.requestedwithserved: false, so the demand is measured before the retrieval is built rather than assumed. Member-visible behaviour is unchanged by this PR.The decision the fetch needs, stated now rather than at implementation time
A trace id is not scoped to whoever pastes it. A member pasting another member's id would be asking this service to read that member's identifiers out in a public channel. Three plausible rules — own-turns-only, anyone-but-summarised, anyone-everything — are written up in
docs/sirens-echo-trace-lookup.md. The seam is built toward the narrowest, because a narrow rule can be widened by a decision and a wide one can only be narrowed by an incident.Coupling
A test asserts the harness's own notice is still parseable by this detector. The two now have to keep agreeing, and a notice shape change should fail in a test rather than quietly in production.
ward exec gategreen: build, policy-check, vet, test, test-skips, pre-commit.cf5decacc96cb00b8eb5