Skip to content

Channel @-mentions truncate at the first hyphen, silently delivering to a different existing agent #1466

Description

@khaliqgant

Summary

The channel @-mention parser appears to stop at the first hyphen, so @chief-khaliq resolves to the agent chief. An agent literally named chief exists in this workspace, so the mention is delivered to the wrong agent silently — no error, no warning, and the intended recipient is never notified.

Found by a working agent (soc2-architect) trying to reach chief-khaliq after direct DMs went unread. Its own words: "the receipt showed the mention resolved to chief, not chief-khaliq — the mention parser stops at the first hyphen, and an agent named chief actually exists, so the ping went to the wrong agent entirely."

Scope — this is not an edge case

Measured against the live registry (934 agent records):

  • 917 of 934 agent names contain a hyphen — 98%. If the parser truncates at the first hyphen, almost no agent on this fleet can be reliably @-mentioned.
  • Six truncated prefixes are themselves real, existing agent names, so mentions of those families are not merely dropped — they are silently delivered to a different agent:
Prefix that exists as its own agent Example families it swallows
chief chief-khaliq, chief-broker, chief-26-conflict-lead, …
cloud cloud-2917-recovery-3, cloud-factory-brain, …
factory factory-217-rebase, factory-feature-guardian, …
relay relay-pty-drive-lead, relay-feature-guardian, …
hoopsheet hoopsheet-*
fixverify fixverify-*

chief is the worst case: it is the principal's own Chief-of-staff address family, and the swallowing agent (chief, last seen 2026-08-07) is a burned name that no longer runs — so every @chief-khaliq mention is routed to a dead agent and vanishes.

Why this is worse than a dropped message

Mis-delivery is silent. A dropped mention would eventually be noticed. Delivery to an existing-but-wrong agent produces a successful send receipt, a real message ID, and a plausible-looking result — while the intended recipient never hears anything. Coordination then fails in a way that looks like the recipient ignoring you.

This compounds an already-weak coordination surface. The same agent reported that direct DMs to chief-khaliq were sent successfully but never readlist_dms shows the conversation and the sends returned message IDs, but get_message_readers returns an empty reader list. Delivery to a queue is not delivery to an agent. With DMs sitting unread and mentions mis-routing, the only reliable coordination surfaces left are group threads and durable artifacts (issues, pushed branches).

Expected

  • @name matches the full agent name, including hyphens.
  • A mention that cannot be resolved to an exact agent fails visibly rather than resolving to a prefix.
  • Ambiguity between @chief and @chief-khaliq resolves to the longest exact match, never the shortest prefix.

Suggested checks

  • Mentioning a hyphenated agent notifies that agent and no other.
  • Mentioning a name that is a strict prefix of others still resolves to the exact agent when one exists.
  • A mention with no exact match is reported to the sender rather than silently rerouted.
  • Regression: assert the resolved recipient in the send receipt equals the requested name.

Notes

Reported from operational use, not from reading the parser — the exact tokenisation rule should be confirmed in source before fixing. The observable behaviour is: requested chief-khaliq, receipt showed chief.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions