Repository navigation
Conversation
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 10bb726636
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| None => live.cancel(), | ||
| }) | ||
| match live_final { | ||
| Some(text) => Some(replace_live_composition(&mut guard, &text)), |
There was a problem hiding this comment.
Gate final live-target capture on composition input being enabled
On macOS with live transcript input disabled (the default), live_composition is intentionally None, but this now captures a new AX target on every finish and always produces Some(live_result). Consequently, the later branch always returns before the ordinary insert_final path: unsupported AX editors receive only a clipboard fallback instead of normal insertion, while supported editors receive text at the current focus without restoring the captured insertion target. Streaming finalization also passes an empty string, which can now delete selected text rather than simply close the session. Only retry live capture when context.insertion.composition_input is enabled; otherwise preserve the existing non-composition finalization path.
Useful? React with 👍 / 👎.
When macOS live transcript input cannot capture its initial editor, later partials used to stop and finalization always copied the result. Before any text has been submitted, retry capture on later updates and at finalization so a user can focus the intended editor after starting. Once a write has been submitted or its outcome is uncertain, keep the original target and fall back safely instead of retargeting. Exclude OpenLess's own controls from delayed capture.
Move the existing macOS and Windows live transcript switches to an Advanced → Text insertion page, with platform-neutral labels. This branch builds on #1400 because that unmerged branch contains the macOS live input implementation.
Validation: macOS Rust unit tests for pre-write retargeting and uncertain writes; native disposable NSTextView acceptance for AX replacement, final text, cancellation and caret changes; frontend build; Chromium/WebKit settings tests for both platforms. The full record-to-insertion flow and delayed-focus path still need native application acceptance.