Repository navigation
Conversation
OpenAI Responses requests now stream, and the popover shows the text as it arrives instead of waiting for the full answer behind static dots. The final result still replaces the streamed text and stays editable. Escape (or the new Stop hint) stops generation and discards the partial text. Providers without streaming keep returning the complete result. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BXH1caQ6B1mSdP4axrmkow
The result area gets an icon-only copy control with a tooltip and accessibility label. It shows a checkmark briefly after copying, keeps the popover open, and gives a way out when there is no app to insert into. The result text keeps clear of the icon on long first lines. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BXH1caQ6B1mSdP4axrmkow
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BXH1caQ6B1mSdP4axrmkow
wanming
marked this pull request as ready for review
October 4, 2026 23:36
The shortcut works from either editor, matches the C key by character so other keyboard layouts work, and leaves plain Command-C for copying selected text. The copy button's tooltip names the shortcut. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BXH1caQ6B1mSdP4axrmkow
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BXH1caQ6B1mSdP4axrmkow
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Tom · project thread
Before: after pressing Enter, the popover shows "Transforming..." beside three static dots until the whole answer arrives. A result can only be inserted, so when there is no app to insert into, the user is stuck with the "Could not find the target app" error.
After: the result area appears as soon as the first words arrive and grows as text streams in, scrolling to keep the newest line visible. The toolbar shows an
escStop hint, and stopping discards the partial text. The finished result replaces the streamed text and is editable as before. The result also has an icon-only copy button with a tooltip and VoiceOver label. Shift+Command+C copies the whole result from either editor. Copying shows a checkmark briefly and leaves the popover open. Plain Command+C still copies only the selection.How:
LLMProvidergainsstreamTransform(_:onPartialOutput:). Its default implementation callstransform, so Anthropic, Gemini and chat-completion providers behave as they do today.OpenAIProviderimplements it with"stream": trueand a smallResponseStreamParserfor Responses API server-sent events. That parser handles text deltas, a fallback toresponse.completed, anderror/response.failedevents.TransformationServiceforwards trimmed partials and keeps the existing timeout and connection-lost retry. The view model publishesstreamingResultTexton the main queue and uses a generation counter so late partials from a cancelled run are dropped. The view shows that text read-only while transforming.WritingPopoverKeyboardPolicymaps Shift+Command+C by character (not key code), so it follows non-QWERTY layouts, and ignores it while composing input. New stringspopover.hint.stop,popover.action.copyResultandpopover.action.copyResultHelpare added andpopover.hint.accessibilityis updated in all 10 languages. Both READMEs and the manual checklist are updated.Notes for review:
swift testand the localization checks pass in CI on macOS 15. An equivalent build of the shortcut was run locally as Inklet Local.Manual QA (not run): see the new "Streaming result", "Streaming cancellation" and "Copy result" items in
docs/manual-test-checklist.md.🤖 Generated with Claude Code
https://claude.ai/code/session_01BXH1caQ6B1mSdP4axrmkow