feat(notice): cite the turn's trace when it ends in anything but success #340
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!340
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/notice-carries-the-trace-id"
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 #336
A member reporting "it said no and I do not know why" was handing over a report. Now they hand over a query.
Covers stage failures, timeouts, rate-limit cooldowns, queue sheds, and an undelivered reply. A successful reply never gains one, because the line is what marks a turn that did not succeed.
Two deviations from the request, both deliberate
trace idrather thantrace ID:. Both lines take the notice alphabet, which admits[a-z0-9 ,./-]and nothing else, and a colon cannot survive it. I could have widened the alphabet for the label and did not: the strictness is what makes a notice recognisable at a glance as harness output rather than model output, and that is worth more than the punctuation. A test asserts both lines still matchnoticeShape.Outside a span the line is omitted, not rendered blank. Not every refusal happens inside a turn span. A rate-limit shed can fire before one exists, and an empty identifier reads as a defect rather than as an absence.
What it cost
Nothing new is plumbed and no identifier is invented. The value is the turn's own trace, already carried by every metadata log inside it, so an operator pastes it into SigNoz and has the whole turn.
One thing worth a look, not blocking
A trace ID is not member data and is inert on its own, but it is an internal identifier appearing in a public channel. I treated that as intended because it is the point of the feature. If it should appear only in
#botsand not on the HTTP profile, that is a one-line condition.ward exec gategreen: build, policy-check, vet, test, test-skips, pre-commit.