Conversation
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This cross-platform feature adds queued-message navigation and unsaved-edit protection while changing existing composer shortcut and Escape behavior. It also adds You can add or adjust custom eligibility rules. Learn more. |
|
Macroscope has since reviewed this pull request. An earlier review was skipped by a cost limit; a review has now completed, so that notice no longer applies. |
02b5187 to
1004723
Compare
1bd44f2 to
3b9c885
Compare
1004723 to
03c1a7a
Compare
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
fe4f6ad to
87c67bd
Compare
03c1a7a to
ce61b28
Compare
ce61b28 to
024abdc
Compare
The native queue sheet was a flat one-line list with a small resume pill. Rows now sit in a grouped card with two-line previews, a status line (up next, position, attachment count, or editing), a larger image thumbnail, and a quieter Steer pill. A held queue shows a paused banner with an inline Resume, and a hint explains tap, hold, and swipe. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Extends #12599: Option/Alt+Up walks backward through queued messages, and Option/Alt+Down walks forward to the original composer draft. Unsaved text, attachment, and context changes require Save or Cancel before switching, including when clicking another row's pencil.
The configured send shortcut saves the edited message in place and restores the original draft. Escape discards the edit and restores that draft. Suggestions and attachment previews close first; holding Escape does not also discard the edit. Shift+Enter retains its newline behavior. Navigation shortcuts are configurable. Image thumbnails stay on the left, with a one-pixel vertical adjustment to align visually with the message text.
Targets V2 (
t3code/codex-turn-mapping), based on1f2f91ded4. Parent #12599 is already merged into V2.Validation
c808dedbf2: real Linux Chromium verification at normal width, a narrow window, and 125% zoom; backward/forward navigation, dirty-edit protection, Escape, Ctrl+Enter save, and draft restoration checked again. Targeted lint, formatting, and diff checks pass. Full CI passed on this head (Check, Test, all three server test shards, Rust, and Release Smoke). Macroscope correctness and UI consistency passed with no findings; the unchanged Effect check was skipped. Macroscope requires human review for the workflow and default-keybinding changes.024abdc43a, before the one-line thumbnail adjustment: 259 focused tests in six files, web typecheck, and full CI passed. Macroscope correctness, Effect conventions, and UI consistency passed with no findings. Approvability requires human review because this changes the queue-editing workflow and default shortcuts.Native queue sheet redesign (
74ec2ceae2, iOS and Android)The native "Queued" sheet was a flat one-line list with small handles and a weak "Resume queue" pill. It now uses a rounded grouped card. Each row shows two lines of text, a status line (up next, position, attachment count, or "Editing in composer"), a 44 px image thumbnail and a quieter Steer pill. A held queue shows a "Queue paused" banner with an inline Resume, and a hint below the list explains tap, hold and swipe. Behavior is unchanged apart from layout. Checked on a real queue against the isolated server (iPhone 17 Pro sim on iOS 26.5, Android 16 emulator): the editing state, reorder handles and the paused banner all render, and Resume drained the held queue. Mobile typecheck and the queue presentation tests pass.
c808ded)74ec2ce)The mobile recordings below were taken at
c808ded, before this redesign. The unsaved-edit loss on mobile is still open.Verification at
c808dedbf2(Mac, isolated state, real Codex turns)Tested head
c808dedbf2f23f567bd7bc116047d0ce6c034b5con V2 without rebasing. Each client used a queue of four real messages behind an active turn: a short one, a long multiline one, one with an image, and one more. Queue state was checked against the server's database after each save, cancel, reorder and removal.Mobile unsaved-edit loss (pre-existing, not from this PR): on both iOS and Android, open a queued message, type
X, open another queued entry, then return. The field shows the saved text again with no Save/Cancel prompt, and theXis lost. The native queue sheet has no dirty-edit guard; this PR changes only the shared web/desktop composer. Mobile needs a separate fix.Other notes (none caused by this PR):
mobile-native-client.ts ensure androidfails for emulators because it validates the serial and Expo expects the AVD name.libfbjni.soneeds__cxa_init_primary_exception); it runs when built with NDK 28.2.<body>, so the next shortcut does nothing until the composer is clicked.Mac web demonstration (82 s, normal speed)
MP4: Option+Up to the first entry, blocked switches with the toast, Enter save, reopen to show it persisted, Escape cancel with draft restored, suggestions closed by the first Escape, forward navigation to the draft, and ⌘Enter save during an active turn. Idle waits are cut; each action plays at recorded speed.
iOS simulator: native queue workflow (75 s)
MP4: held queue, then the
Xedit is lost after switching, Update persists, Cancel restores the draft, Move up, Remove, and Resume drains.Android emulator: native queue workflow (119 s)
MP4: the same sequence as iOS on Android, now connected: successful Save, reorder, removal and draining are verified (these were blocked in the earlier Android pass). The
Xloss reproduces.Thumbnail alignment (before/after)
Earlier Android evidence from the 2026-09-21 pass, which first reproduced the mobile edit loss: before switching · after returning · real-time recording
Full test report · Previous report
Scope: shared web/desktop composer only. Not tested: Electron shell, Windows/Linux, IME input, relay/tunnel. Native mobile keyboard shortcuts are not implemented. Mobile unsaved-edit loss remains unresolved and needs a separate native fix. No source changes in this verification pass.
Verification pass: Claude Opus 5.5 via Claude Code (T3 Code). Original implementation: GPT-6-Astra, Codex.