Agent Attention Prompts
Status: First adapter foundation shipped — the production jackin❯ daemon accepts one-way attention snapshots, de-duplicates blocked / unseen done transitions, and can dispatch macOS/Linux notifications when started with JACKIN_ATTENTION=1. Per-container event subscription, click-to-focus, jackin-attention MCP enrichment, and the console Notifications tab remain unbuilt.
Shipped baseline
The Agent Runtime Status Authority is implemented and already produces the effective blocked / derived done / idle / working / unknown transitions this feature needs; this item does not have to invent its own waiting-detection heuristic. MCP registration also already has a working pattern to extend: crates/jackin-capsule/src/runtime_setup.rs auto-registers the tirith / shellfirm MCP servers into each agent's config at container launch, and a future jackin-attention server would register through the same code path.
The production implementation in crates/jackin-runtime/src/host_daemon.rs accepts an attention_snapshot control request carrying pane states and emits notifications on blocked / done transitions only. Notifications are muted unless JACKIN_ATTENTION=1 is set on the daemon process; muted mode still records the transition state so repeated snapshots do not spam later.
Everything else — per-container event subscription, click-to-focus, and the console Notifications tab — is unbuilt.
Remaining work
jackin-attentionMCP server (optional enrichment, not the state source):attention.note(reason, urgency?)/attention.clear(), baked into the construct image, auto-registered per runtime via the existingruntime_setup.rspattern.- Daemon adapter: subscribe to per-container control-channel
blocked/donetransitions, track sound-escalation timers, hold per-workspace mute state. - OS notification dispatch: macOS Notification Center (
osascript/UserNotifications, sound viaafplay/NSSound) and Linuxnotify-send/ libnotify in the same phase; Windows out of scope until jackin❯ supports Windows hosts. - Click-to-focus: Ghostty first, matching the Desktop Agent Hub v1 contract; other terminals get a notification with no click action until their adapters are added.
Notificationstab injackin consoleworkspace editor:attention.enabled,attention.urgency_filter,attention.sound_escalation_after,attention.click_action,attention.mute_until, resolved with the same most-specific-wins precedence (global / workspace / workspace×role×agent) the rest of jackin❯ already uses. No per-role overrides in v1.
Out of scope
- Independent PTY-idle inference in the notification adapter — state comes only from the runtime status authority.
- Sound files beyond a single default; urgency-based sound differentiation.
- Cross-terminal click-to-focus matrix beyond Ghostty.
- Windows support.
- Remote/cross-host notification delivery (revisit once remote-agent work lands).
Related work
- jackin❯ daemon — must ship phase 1 before this adapter can be built.
- Live bidirectional auth sync — sibling adapter on the same daemon.
- jackin❯ Desktop Agent Hub — owns the first Ghostty click-to-focus UX.
- Agent runtime status authority — canonical state source this item consumes.
- Research: Agent attention prompts: design exploration — full UX narrative, MCP contract alternatives, and open design questions behind this item.
crates/jackin-runtime/src/reactive_daemon.rs— feature-gated spike adapter.