Skip to content

Support Windows clipboard text paste shortcuts in the TUI - #53224

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/080c1c05a4587e325cea938a6e28c646b9ac5837
Oct 11, 2026
Merged

copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/080c1c05a4587e325cea938a6e28c646b9ac5837

Conversation

@copyberry

@copyberry copyberry Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Support Windows clipboard text paste shortcuts in the TUI

Why

Ctrl+V previously attempted only image paste, so a text-only clipboard produced an image-paste error. Shift+Insert did not use the clipboard paste path.

What changed

  • On Windows, let Ctrl+V and Shift+Insert paste images first, then read clipboard text asynchronously when no image is available. Keep clipboard access errors distinct from missing images.
  • Allow keyboard paste into composer selections and active history or Vim search queries, including inline mode with right-click paste disabled.
  • Flush buffered typing before explicit paste to preserve input order. Discard pending clipboard text when the thread or editable target changes, while allowing shortcut releases and repeated paste shortcuts to leave the read pending.

Testing

Extend shortcut and clipboard-worker tests to cover text fallback, multiline Unicode text, stale-read cancellation, shortcut releases and repeats, and read-only drafts. Add assertions for history-search preview stability and selection changes.

## Why

`Ctrl+V` previously attempted only image paste, so a text-only clipboard produced an image-paste error. `Shift+Insert` did not use the clipboard paste path.

## What changed

- On Windows, let `Ctrl+V` and `Shift+Insert` paste images first, then read clipboard text asynchronously when no image is available. Keep clipboard access errors distinct from missing images.
- Allow keyboard paste into composer selections and active history or Vim search queries, including inline mode with right-click paste disabled.
- Flush buffered typing before explicit paste to preserve input order. Discard pending clipboard text when the thread or editable target changes, while allowing shortcut releases and repeated paste shortcuts to leave the read pending.

## Testing

Extend shortcut and clipboard-worker tests to cover text fallback, multiline Unicode text, stale-read cancellation, shortcut releases and repeats, and read-only drafts. Add assertions for history-search preview stability and selection changes.

GitOrigin-RevId: 080c1c05a4587e325cea938a6e28c646b9ac5837
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/080c1c05a4587e325cea938a6e28c646b9ac5837 branch from 70e7cc9 to a9b0815 Compare October 11, 2026 23:44
@chatgpt-codex-connector

Copy link
Copy Markdown
Contributor

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-11T23:44:55.276408Z 70e7cc9 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@copyberry
copyberry Bot merged commit a9b0815 into main Oct 11, 2026
1 check passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/080c1c05a4587e325cea938a6e28c646b9ac5837 branch October 11, 2026 23:45
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 11, 2026
@denvey
denvey deployed to issue-triage October 11, 2026 23:49 — with Image GitHub Actions Active
@denvey
denvey deployed to issue-triage October 11, 2026 23:49 — with Image GitHub Actions Active
@denvey
denvey deployed to issue-triage October 11, 2026 23:49 — with Image GitHub Actions Active
@denvey
denvey deployed to issue-triage October 11, 2026 23:50 — with Image GitHub Actions Active
@Taoist77339
Taoist77339 deployed to issue-triage October 11, 2026 23:53 — with Image GitHub Actions Active
@Taoist77339
Taoist77339 deployed to issue-triage October 11, 2026 23:53 — with Image GitHub Actions Active
@Taoist77339
Taoist77339 deployed to issue-triage October 11, 2026 23:53 — with Image GitHub Actions Active
@Taoist77339
Taoist77339 deployed to issue-triage October 11, 2026 23:54 — with Image GitHub Actions Active
@RaptorX
RaptorX deployed to issue-triage October 11, 2026 23:56 — with Image GitHub Actions Active
@RaptorX
RaptorX deployed to issue-triage October 11, 2026 23:56 — with Image GitHub Actions Active
@RaptorX
RaptorX deployed to issue-triage October 11, 2026 23:56 — with Image GitHub Actions Active
@RaptorX
RaptorX deployed to issue-triage October 11, 2026 23:57 — with Image GitHub Actions Active
@totorofly
totorofly deployed to issue-triage October 12, 2026 00:24 — with Image GitHub Actions Active
@totorofly
totorofly deployed to issue-triage October 12, 2026 00:24 — with Image GitHub Actions Active
@totorofly
totorofly deployed to issue-triage October 12, 2026 00:24 — with Image GitHub Actions Active
@Aquagate
Aquagate deployed to issue-triage October 12, 2026 00:24 — with Image GitHub Actions Active
@Aquagate
Aquagate deployed to issue-triage October 12, 2026 00:24 — with Image GitHub Actions Active
@Aquagate
Aquagate deployed to issue-triage October 12, 2026 00:24 — with Image GitHub Actions Active
@Aquagate
Aquagate deployed to issue-triage October 12, 2026 00:25 — with Image GitHub Actions Active
@garyamorris
garyamorris deployed to issue-triage October 12, 2026 00:40 — with Image GitHub Actions Active
@flazouh
flazouh deployed to issue-triage October 12, 2026 00:53 — with Image GitHub Actions Active
@flazouh
flazouh deployed to issue-triage October 12, 2026 00:53 — with Image GitHub Actions Active
@flazouh
flazouh deployed to issue-triage October 12, 2026 00:54 — with Image GitHub Actions Active
@denvey
denvey deployed to issue-triage October 12, 2026 01:23 — with Image GitHub Actions Active
@denvey
denvey deployed to issue-triage October 12, 2026 01:23 — with Image GitHub Actions Active
@denvey
denvey deployed to issue-triage October 12, 2026 01:23 — with Image GitHub Actions Active
@taesungyoon
taesungyoon deployed to issue-triage October 12, 2026 01:52 — with Image GitHub Actions Active
@taesungyoon
taesungyoon deployed to issue-triage October 12, 2026 01:52 — with Image GitHub Actions Active
@taesungyoon
taesungyoon deployed to issue-triage October 12, 2026 01:52 — with Image GitHub Actions Active
@laozhangzzz
laozhangzzz deployed to issue-triage October 12, 2026 02:27 — with Image GitHub Actions Active
@laozhangzzz
laozhangzzz deployed to issue-triage October 12, 2026 02:27 — with Image GitHub Actions Active
@laozhangzzz
laozhangzzz deployed to issue-triage October 12, 2026 02:27 — with Image GitHub Actions Active
@mms8089-bot
mms8089-bot deployed to issue-triage October 12, 2026 02:37 — with Image GitHub Actions Active
@mms8089-bot
mms8089-bot deployed to issue-triage October 12, 2026 02:37 — with Image GitHub Actions Active
@mms8089-bot
mms8089-bot deployed to issue-triage October 12, 2026 02:37 — with Image GitHub Actions Active
@willamboss
willamboss deployed to issue-triage October 12, 2026 02:42 — with Image GitHub Actions Active
@willamboss
willamboss deployed to issue-triage October 12, 2026 02:42 — with Image GitHub Actions Active
@willamboss
willamboss deployed to issue-triage October 12, 2026 02:42 — with Image GitHub Actions Active
@qw261528566
qw261528566 deployed to issue-triage October 12, 2026 02:46 — with Image GitHub Actions Active
@qw261528566
qw261528566 deployed to issue-triage October 12, 2026 02:46 — with Image GitHub Actions Active
@qw261528566
qw261528566 deployed to issue-triage October 12, 2026 02:46 — with Image GitHub Actions Active

This branch was successfully deployed

1 active deployment
issue-triage — a9b08151 Deployed Oct 12, 2026 by wuterry via Identify potential duplicates (all issues) #54666
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.