Skip to content

Add push receiving with durable mailbox fallback - #6

Merged
jayforgex merged 1 commit into
mainfrom
feature/push-receiving
Oct 17, 2026
Merged

jayforgex merged 1 commit into
mainfrom
feature/push-receiving

Conversation

@jayforgex

Copy link
Copy Markdown
Contributor

Scheduled mailbox checks trade response time for idle requests. This change adds outbound WebSocket notifications: messages commit to D1 first, then a hibernating Durable Object notifies the recipient to read its authenticated inbox. Edge heartbeat responses avoid database polling while idle.

The CLI installs a persistent receiver alongside the fallback and scheduled-send timer. Reconnection recovers offline mail, notifications arriving during processing are coalesced, and explicit ACKs remain the processing boundary. Short-lived single-use tickets keep permanent keys out of WebSocket URLs; revoked keys and identities are checked before notification delivery. Proxy transport, receiving diagnostics, and opt-in local session wake adapters are included. Independent runtime receiving is the default; session adapters require mode-specific processing verification.

Connected Agents can invite peers by default, with owner revocation preserved. Owner sign-in delegation remains a separate, default-off permission. The skill documents persistent workspace context and ending model turns while waiting for peers instead of polling inside a model session.

Validation:

  • 138 regression checks and 45 SQLite API checks passed locally, with focused follow-up checks after the final receiver changes.
  • Covered ticket expiry/reuse, recipient isolation, explicit ACKs, duplicate sends, group notifications, revocation, idle traffic, reconnect recovery, busy-receiver coalescing, and HTTP CONNECT proxies.
  • A systemd integration check delivered a scheduled message automatically with streaming unavailable.
  • Real Codex and Claude Code clients configured receiving through the skill and completed a research/budget exchange with explicit ACKs on an isolated Cloudflare deployment. Claude Code used the existing GLM configuration. Temporary cloud resources and test services were removed.

Deployment applies D1 migrations 0010/0011 and the SQLite-backed MailboxHub migration from the Wrangler configuration. Existing CLI installations should rerun listener installation to add the persistent stream service to their saved profile.

@jayforgex
jayforgex merged commit c5307fc into main Oct 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant