fix(telemetry): one meaning for discord.channel.id across a trace #349
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!349
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/one-meaning-for-channel-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?
PR 342 established that a thread reported as its own channel hides the turn
from a query for the channel it hangs under, and moved the turn span to report
the parent under discord.channel.id with the thread on its own key. The two
boundary spans kept passing message.ChannelID, so for a thread turn one trace
carried that key with two different values.
Both operator queries were then quietly partial. Querying the parent matched
community.turn and neither boundary span; querying the thread matched the two
boundary spans and not community.turn. Neither result looks partial.
The split moves from a method on the turn to discordLocationFor, and
discordMessageSpanAttributes takes that location rather than loose strings.
Every span now reads one resolved location, and a caller cannot reintroduce the
disagreement by passing a channel string, because there is no longer a
parameter to pass it to.
Resolution is unchanged: cached gateway state only, no Discord API call, and an
unresolved channel still reports itself and contributes no thread.
TestDiscordMessageSpanAttributesUseStringIdentifiers compared a subset, so it
could not have failed on an identifier added to that helper that nobody meant
to export. It compares the whole map now.
closes #348
Co-authored-by: Kai Siren coilysiren@gmail.com
Co-authored-by: Claude noreply@anthropic.com