feat: add a follow-up queue alongside Steer - #744
Open
SpookySandwich wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Queued messages now wait for the current chat turn and any open requests to finish, then run in FIFO order. Existing Steer behavior stays available, and Settings > Threads chooses whether Enter steers or queues; existing users keep Steer, while Ctrl/Cmd+Enter selects the opposite action.
The queue appears above the composer with a left drag grip and Steer, Edit, and Remove controls on hover or keyboard focus. Touch devices keep those actions visible. Dragging and keyboard reordering use stable item IDs so concurrent queue changes cannot resurrect removed messages.
Editing and Stop pause delivery; Resume continues it. Edits preserve attachment and mention metadata, retain local text if another client changes/removes the message, and reject stale saves. The supervisor owns queue state and mirrors it to desktop and mobile clients; queues survive renderer/remote reconnects but are in memory for the supervisor session.
Closes #737.
Validation
Independent Luna reviews completed, followed by typecheck, regular/type-aware touched-file oxlint, formatting, whitespace checks, and localization extraction (0 missing in all 12 non-English locales).
Targeted coverage: 988 tests across 34 suites. The combined run passed 987; an existing app hydration timing assertion failed under concurrent load, then the complete app suite passed 33/33 in isolation. Queue, admission, restart, remote settings/reset, and UI regressions passed.
Real Codex chat checks completed locally: FIFO, Steer, Edit/Resume, Remove, Stop/Resume, mouse drag, and keyboard reordering. Deterministic Electron smoke covered the baseline, Settings, thread search, and mock integration gates with zero renderer/runtime errors.
Final live checks also passed command-only
/goal→ FIFO delivery, dirty-edit retention after remote edit/removal, renderer reload recovery, keyboard reorder, and mouse reorder while another message is appended. Dark/light themes and Chinese labels were spot-checked. Automated Electron scenarios passed with 0 console/runtime errors.Physical mobile/remote pairing and live approval/question dialogs were not exercised; those lifecycle and transport branches have deterministic coverage. The real-mode report intentionally leaves those two manual gates unacknowledged.
Compatibility
Remote v9 remains additive: new procedures and optional queue snapshot state, with explicit unsupported errors on older hosts. Existing settings normalize to Steer. Edit concurrency tokens are optional for older clients. No database migration is needed for the in-memory queue.
Screenshot
Queue actions appear on hover or keyboard focus; the left grip supports reordering.