Repository navigation
LOCAL: hold orchestration mail pointers while the user types - #69
Conversation
Orca typed "You have N orchestration messages" plus Enter into a coordinator's prompt even while the user was composing there, so the notice landed inside their draft and was submitted with it. Most of those notices were for heartbeats alone. - A pointer batch of only heartbeats types nothing. Heartbeats stay undelivered and are counted in the next real pointer, as `check` returns them. A full page of heartbeats still lets newer mail through. - Delivery holds while keys from any client reached the PTY in the last 4 s, or while keys typed since the last submit or clear are under 2 min old. The existing delivery recheck redrives the pointer once the hold lifts. The signal is main's TerminalRunFactsRegister, which records `driving` input from desktop IPC and remote/mobile RPC in the same process as the mailbox lane, so no version skew applies. - A pointer the user typed behind before its Enter (including a deferred Enter) is never submitted. It is settled as delivered and left in the composer, and its mail stays unread for `check`. The structured-chat lane is unchanged: it has no PTY composer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c4cb431071
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…hold An unmodified Kitty Enter (CSI 13 u, CSI 13;1 u) left the unsent-draft hold up for two minutes. Reuse the Enter encodings the question-answer inference already recognizes; Shift+Enter (CSI 13;2 u) stays an edit (Codex review on #69). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
ELI5
Orca used to type "You have 1 orchestration message…" and press Enter in a coordinator's terminal even while you were typing there, so the notice landed in your half-written message and got sent with it. Now it waits until you stop typing, and it never types a notice that only says workers are alive.
What Changed
Before: the mailbox pointer lane (
mailbox-pointer-stage.ts) wroteformatMessagePointer(...)into the coordinator's PTY and staged Enter, with no regard for user input. Most of these notices were forheartbeatmessages alone.After:
checkreturns them. A full page of heartbeats still lets newer mail through.TerminalRunFactsRegister. It recordsdrivinginput from desktop IPC and from remote and mobile RPC in the same process as the mailbox lane, so no version skew applies.check.Why
The operator reported that notices regularly interrupt their typing. Suppressing heartbeat-only pointers removes most notices, and holding the rest while someone is typing removes the rest of the interruptions. The rejected alternative was a type filter on the coordinator's own
check --wait: it only helps while a waiter is running, and that waiter returns on every heartbeat.Linked Issue
N/A: operator request in session.
Visual Proof
N/A: no visual change. The behaviour is covered by timer-driven tests in which the typed output is checked. A live check in a coordinator terminal is pending.
Testing
New
orchestration-mailbox-typing-holdspec: 9 tests, each checked by mutating the change. Covers heartbeat-only, a mixed batch, deferral and single delivery, typing during the Enter delay, new mail during a hold, and fallback.Updated eligibility, submit, stage and run-facts tests.
In targeted runs, 135 of 137 runtime/orchestration/wait test files passed:
pnpm check:changed --maxWorkers=2 --base=refs/remotes/swaplabs/swaplabs/mainwas interrupted twice by the operator to relieve host memory. Run 1's format and lint findings are fixed. A full run follows now that the PR is open, and its results will be posted here.I manually tested these changes locally (pending live coordinator-terminal check)
Automated tests added/updated, or explained why not below
AI Disclosure
Prepared by Claude Code (Claude Opus 5.5) at the operator's request.
Review
Opened at the operator's request to "open PRs asap and run tests after". The local review and coordinator test runs follow. This is generic Orca behaviour that stablyai/orca would likely want, but it is not on the approved upstream list, so it stays fork-only (
LOCAL:) for now.Agent skill upstream boundary
Notes
Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred): the fullcheck:changedrun follows🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.