Recognise that a member is asking about a trace, ahead of being able to fetch one #346

Closed
opened 2026-08-13 10:36:54 +00:00 by coilyco-ops · 0 comments
Member

The slice of #339 that can land without a grant. Filed as its own issue because the parent asks for the fetch and this does not deliver the fetch. Per `AGENTS.md`: file the slice, close the slice, leave the parent open.

Scope

Recognition only. A turn is a trace lookup when both halves are present:

  • the word `trace`, on its own word boundary
  • a trace id: 32 hex characters, also on word boundaries

The id may be typed by the member or carried by the message they replied to — the second is the common case, since the id arrives in a harness notice and the member answers it. A typed id wins over a quoted one, because a member who types an id has named a different turn from whichever they are replying under.

Both halves required, in both directions. The 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.

Out of scope, and why

The fetch. This service has no tracing backend in its roster. That grant is deploy-owned and tracked on #278 and coilyco-bridge/deploy#359. A recognised lookup is recorded as `turn.trace.requested` with `served: false` so the demand is measured before the fetch is built rather than assumed.

The access rule is also out of scope and is a decision, not an implementation. It is written up in `docs/sirens-echo-trace-lookup.md` and raised on the parent.

Acceptance

  • Both halves required; neither alone fires.
  • The id resolves from the replied-to message as well as from the member's own text, and the typed one wins.
  • Uppercase input resolves, because a member pasting from a console is not obliged to preserve the wire's lowercase.
  • A test asserts the harness's own notice is still parseable by the detector, so a notice shape change fails in the test rather than in production.
**The slice of** https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/339 **that can land without a grant.** Filed as its own issue because the parent asks for the fetch and this does not deliver the fetch. Per \`AGENTS.md\`: file the slice, close the slice, leave the parent open. ## Scope Recognition only. A turn is a trace lookup when both halves are present: - the word \`trace\`, on its own word boundary - a trace id: 32 hex characters, also on word boundaries The id may be typed by the member or carried by the message they replied to — the second is the common case, since the id arrives in a harness notice and the member answers it. A typed id wins over a quoted one, because a member who types an id has named a different turn from whichever they are replying under. Both halves required, in both directions. The 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. ## Out of scope, and why The fetch. This service has no tracing backend in its roster. That grant is deploy-owned and tracked on https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/278 and https://forgejo.coilysiren.me/coilyco-bridge/deploy/issues/359. A recognised lookup is recorded as \`turn.trace.requested\` with \`served: false\` so the demand is measured before the fetch is built rather than assumed. The access rule is also out of scope and is a decision, not an implementation. It is written up in \`docs/sirens-echo-trace-lookup.md\` and raised on the parent. ## Acceptance - Both halves required; neither alone fires. - The id resolves from the replied-to message as well as from the member's own text, and the typed one wins. - Uppercase input resolves, because a member pasting from a console is not obliged to preserve the wire's lowercase. - A test asserts the harness's own notice is still parseable by the detector, so a notice shape change fails in the test rather than in production.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/sirens-echo#346
No description provided.