Skip to content

feat(web): navigate queued messages without losing unsaved edits - #12892

Open
shivamhwp wants to merge 1 commit into
stack/pr-12599-basefrom
feat/queued-message-navigation
Open

shivamhwp wants to merge 1 commit into
stack/pr-12599-basefrom
feat/queued-message-navigation

Conversation

@shivamhwp

@shivamhwp shivamhwp commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #12599. Its shortcut opens only the last queued message. This follow-up lets Option/Alt+Up walk backward through the queue and Option/Alt+Down walk forward to the original composer draft.

Unsaved text, attachment, and context changes require Save or Cancel before switching. Keyboard navigation never saves automatically, and clicking another message's pencil uses the same guard. Navigation follows current queue order and leaves recovery of a message that starts or disappears to the existing edit flow. Both shortcuts are configurable.

The base branch stack/pr-12599-base is an exact snapshot of #12599 at 8ff7cb4b2095880866469c433951c33a2247297d, needed because that PR's head is on a contributor fork. Merge #12599 first, then retarget this PR to its destination and rerun required checks. Do not merge into the snapshot branch.

Validation: 172 focused tests pass, web typecheck passes, and targeted lint passes with existing warnings. Real Linux Chromium keyboard/mouse verification covers backward/forward navigation, queue boundaries, draft restoration, save/cancel, empty edits, collapsed queue, saved attachment removal, custom Next binding, key-repeat handling, single/empty queues, and removal of neighboring/current messages from another tab. Reordering is covered by the navigation unit tests, not an integrated drag test. CI passes at 02b518717f. Macroscope correctness, UI consistency, and Effect checks pass; approvability requires human review because this adds a default shortcut.

Scope: shared web/desktop UI. Tests used held queue fixtures in an isolated database; successful provider execution was not verified. Native mobile keyboard navigation is not implemented. macOS, Windows, Electron shell, and relay/tunnel connections have not been exercised.

Before: #12599, a second Up stays on the last message After: a second Up opens the previous message
Before After

Backward and forward navigation restores the original draft

Full screen recording. The GIF is a cropped version at the original playback speed.

Unsaved edits block switching with Save/Cancel guidance

Model: GPT-6. Harness: Codex.

@github-actions github-actions Bot added size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Sep 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 4.9 KiB 6.8 KiB
Codex Thread snapshot wire 3.7 KiB 4.9 KiB
Codex Live turn WebSocket wire 1.1 KiB 2.0 KiB
Codex Live turn WebSocket decoded 20.4 KiB 29.3 KiB
Codex Live turn messages 1 8
Claude Total thread wire 4.9 KiB 6.8 KiB
Claude Thread snapshot wire 3.7 KiB 4.9 KiB
Claude Live turn WebSocket wire 1.2 KiB 2.0 KiB
Claude Live turn WebSocket decoded 20.8 KiB 29.3 KiB
Claude Live turn messages 2 8

Baseline: unavailable · PR result: 02b5187 · Source CI: success

Scenario and decoded snapshot size

10 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.

  • Codex decoded thread snapshot: 106.1 KiB
  • Claude decoded thread snapshot: 106.4 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds user-facing navigation across queued messages and changes composer shortcut behavior, including protection for unsaved edits. It also adds a new shortcut to the product’s default keybindings, requiring human review.

You can add or adjust custom eligibility rules. Learn more.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant