---
created: 2026-04-13T11:55:15.167Z
title: Add deferred message delivery style
area: messaging
files:
  - src/owl/deliver.rs
  - src/owl/poll.rs
---

## Problem

Currently all delivered messages are "waking" -- they cause the background listener (`$OWL poll`) to exit, returning the message to the agent. For capsule listeners (v1.9), messages trigger sendkeys injection. Both approaches interrupt the agent's current work.

Non-urgent system messages (e.g., subagent working perch notices) don't need this urgency. They should be passively available for the next hook cycle (UserPromptSubmit or PreToolUse) to pick up, without waking the poll process or triggering sendkeys.

## Solution

Introduce a `deferred` delivery style:
- Messages marked deferred are written to the perch inbox (filesystem or SQLite spool) but do **not** wake the TCP listener or trigger sendkeys
- Delivery relies entirely on hooks (UserPromptSubmit / PreToolUse) scanning the inbox on their natural cadence
- New flag on deliver command: `--deferred` or `--style deferred`
- Primary use case: non-urgent system functions like subagent working perch notices
- Poll process continues running undisturbed
- Capsule listener ignores deferred messages for sendkeys purposes
