Skip to content

macOS: preserve native editing keys and add optional Codex draft selection - #103

Merged
howdeploy merged 3 commits into
howdeploy:mainfrom
mrcertis:fix/macos-native-editing
Sep 30, 2026
Merged

howdeploy merged 3 commits into
howdeploy:mainfrom
mrcertis:fix/macos-native-editing

Conversation

@mrcertis

@mrcertis mrcertis commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

This proposal gives macOS users native Command+A/C/V draft editing and prevents focused CLI keys such as F2 and Home from also triggering canvas actions.

Behavior

  • Command+A selects the entire Codex draft with the optional frontend. Command+C copies draft selection or selected terminal output. Command+V supports text and native clipboard images.
  • Enter and Shift+Enter insert a newline in the optional macOS frontend's main draft, including during startup. Only Command+Enter submits or queues. Tab completes without sending. Trust/resume/approval dialogs and embedded question editors retain their normal Enter behavior.
  • Ordinary application fields keep native Command+A selection. Other terminal keys reach the focused CLI; canvas shortcuts remain available with canvas focus.
  • Delayed clipboard reads are discarded after a terminal closes, exits or restarts.
  • Launch-scoped Codex configuration uses --no-daemon. Successfully spawned terminals retain an unused browser capability until cleanup, avoiding expiry during delayed trust/resume dialogs. Existing authentication and one-time-use checks remain intact.

Optional frontend

Stock Codex 0.159.2 lacks whole-draft selection. The separate macOS frontend is based on official rust-v0.159.2 and requires official codex-cli 0.159.2 as its backend. The standard CanvasTTY build does not download or bundle it automatically; ordinary CLI launching remains available. Distribution and ongoing version support need maintainer review, so this remains a draft proposal. See the integration document.

Validation

  • CanvasTTY: 1241 tests passed, zero failed, two skipped. Build, TypeScript checks and secret audit passed.
  • Frontend: 28 focused editing/startup/launch checks passed; expanded checks reported 83 passed and one existing version-dependent header-padding snapshot failure. Scoped Clippy, Rust formatting and build passed. Launcher: 14 tests passed.
  • Apple Silicon GUI: Enter and Shift+Enter produced unsent three-line drafts during and after startup; Command+A/C preserved the complete text and both newlines. Shortcuts help displays Command+Enter for sending and Enter for a new line. No real task was submitted; submission and queueing were checked in mocked tests.

Intel packaging and Windows/Linux execution remain unverified. The frontend README records its existing full-suite limitations.

@howdeploy
howdeploy merged commit c61889b into howdeploy:main Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants