diff --git a/.changeset/tidy-codex-shift-arrows.md b/.changeset/tidy-codex-shift-arrows.md new file mode 100644 index 000000000..a46d4fce1 --- /dev/null +++ b/.changeset/tidy-codex-shift-arrows.md @@ -0,0 +1,5 @@ +--- +"aicodeman": patch +--- + +Add Shift+Left and Shift+Right buttons to the default and extended mobile agent keyboard bars, enabling Codex queued-message editing and prompt-stack navigation. Flush locally buffered drafts before navigation and keep terminal focus after taps. diff --git a/README.md b/README.md index 87e052579..ad06e6635 100644 --- a/README.md +++ b/README.md @@ -209,7 +209,7 @@ The most responsive AI coding agent experience on any phone. Full xterm.js termi Password typing on phoneQR code scan — instant auth -- **Keyboard accessory bar** — `/init`, `/clear`, `/compact` quick-action buttons above the virtual keyboard; destructive commands require a double-press to confirm, so you never fire one by accident +- **Keyboard accessory bar** — `⇧←` / `⇧→` send Shift+Left / Shift+Right in both default and extended agent layouts (Codex defaults: edit the last queued message / return through the prompt stack); `/init`, `/clear`, `/compact` quick-action buttons above the virtual keyboard; destructive commands require a double-press to confirm, so you never fire one by accident - **Dedicated Enter button** — replays the keypress through the terminal, so text buffered by local echo is flushed first rather than stranded - **Swipe navigation & smart keyboard handling** — swipe left/right to switch sessions; toolbar and terminal shift up when the keyboard opens (`visualViewport` API) - **Built for phones** — safe-area insets for notch and home indicator, 44px touch targets, bottom-sheet case picker, native momentum scrolling diff --git a/src/web/public/keyboard-accessory.js b/src/web/public/keyboard-accessory.js index 8cdc16bad..c0fa7bae0 100644 --- a/src/web/public/keyboard-accessory.js +++ b/src/web/public/keyboard-accessory.js @@ -4,7 +4,7 @@ * Defines three exports: * * - KeyboardAccessoryBar (singleton object) — Quick action buttons shown above the virtual - * keyboard on mobile: arrow up/down, /init, Tab, paste, Esc, and dismiss (the extended + * keyboard on mobile: arrow up/down, /init, Tab, Shift+Left/Right, paste, Esc, and dismiss (the extended * bar adds /clear, /compact, Shift+Tab and more). Tab flushes any locally-buffered * prompt text to the PTY before sending \t, so completion applies to what was typed. * The paste button opens a dialog that handles both text paste and image attach @@ -492,6 +492,8 @@ const KeyboardAccessoryBar = { + +