Context
A2A wake delivery currently injects every wake into the active agent session. The bridge already carries message priority (low, normal, high) in the message payload and supports priority filters, but the human-visible wake digest flattens every wake into the same [WAKE] header.
This creates unnecessary cognitive load during active lifecycle work. A normal-priority peer message can interrupt a hot transaction such as ticket creation -> intake -> implementation -> PR -> A2A review ping, even when it does not need immediate handling.
Problem
Agents cannot reliably distinguish high-priority interruptions from normal/low mailbox noise by reading the wake digest. The digest lacks an explicit priority tag, so every wake looks equally urgent.
This is especially visible after the generalized Resumption Protocol change: A2A messages now count as interruptions, but the digest still provides no priority signal to decide whether to interrupt the active lifecycle or defer triage until the lifecycle handoff is complete.
Architectural Direction
Keep the model simple and use the existing priority vocabulary. Do not introduce an urgent enum.
The quick win is:
- Always surface the effective wake priority in the digest header as
[priority:<level>].
- For coalesced message events, use the highest message priority as the digest priority.
- Preserve the existing
[WAKE] prefix for compatibility and scanability.
- Include message priority in the message summary line so agents can see the latest-message priority without polling first.
- Add a compact AGENTS.md rule:
[priority:high] means poll and handle immediately; normal/low wakes should wait until the active lifecycle task, including required handoff/ping, is complete.
Recommended examples:
[WAKE][priority:high] 1 events for @neo-gpt:
[WAKE][priority:normal] 1 events for @neo-gpt:
[WAKE][priority:low] 1 events for @neo-gpt:
Acceptance Criteria
- Wake digests include
[priority:high], [priority:normal], or [priority:low] in the header.
- Coalesced message wakes use the highest message priority as the digest header priority.
- The message breakdown includes priority for the latest message summary.
AGENTS.md codifies the operational rule:
- if a digest includes
[priority:high], poll list_messages and handle it immediately;
- otherwise finish the active lifecycle task first, including required PR/handoff/review ping work, then poll and triage normal/low wakes;
- if the active lifecycle becomes blocked, triage deferred wakes before escalating or switching work.
- Existing wake behavior remains unchanged except for formatting and the documented triage rule.
- Targeted bridge-daemon tests cover priority formatting, including a high-priority coalesced wake.
Out of Scope
- Transport-level suppression of normal/low wakes.
- HarnessPresence or wakePolicy routing design.
- New priority enum values such as
urgent.
- Mailbox schema changes.
Related Work
- Related but broader: #10517
- Wake interruption background: #10408
- Generalized resumption protocol: #10523
- Parent architecture context: #10311
Semantic Anchors
wake digest, A2A priority, priority-gated interruption, active lifecycle deferral, Resumption Protocol, cognitive load reduction
Origin Session ID: c02c5b92-cfd8-41db-b1fc-9625824d7fff
Context
A2A wake delivery currently injects every wake into the active agent session. The bridge already carries message priority (
low,normal,high) in the message payload and supports priority filters, but the human-visible wake digest flattens every wake into the same[WAKE]header.This creates unnecessary cognitive load during active lifecycle work. A normal-priority peer message can interrupt a hot transaction such as ticket creation -> intake -> implementation -> PR -> A2A review ping, even when it does not need immediate handling.
Problem
Agents cannot reliably distinguish high-priority interruptions from normal/low mailbox noise by reading the wake digest. The digest lacks an explicit priority tag, so every wake looks equally urgent.
This is especially visible after the generalized Resumption Protocol change: A2A messages now count as interruptions, but the digest still provides no priority signal to decide whether to interrupt the active lifecycle or defer triage until the lifecycle handoff is complete.
Architectural Direction
Keep the model simple and use the existing priority vocabulary. Do not introduce an
urgentenum.The quick win is:
[priority:<level>].[WAKE]prefix for compatibility and scanability.[priority:high]means poll and handle immediately; normal/low wakes should wait until the active lifecycle task, including required handoff/ping, is complete.Recommended examples:
Acceptance Criteria
[priority:high],[priority:normal], or[priority:low]in the header.AGENTS.mdcodifies the operational rule:[priority:high], polllist_messagesand handle it immediately;Out of Scope
urgent.Related Work
Semantic Anchors
wake digest, A2A priority, priority-gated interruption, active lifecycle deferral, Resumption Protocol, cognitive load reduction
Origin Session ID: c02c5b92-cfd8-41db-b1fc-9625824d7fff