chore: sync upstream dev through 69a80663a2#3
Conversation
Co-authored-by: Frank <frank@anoma.ly>
Co-authored-by: Brendan Allan <git@brendonovich.dev>
Preserve OpenCode Classic trusted IPC and renderer navigation safeguards while integrating upstream desktop recovery and focus-debug changes.
|
This PR doesn't fully meet our contributing guidelines and PR template. What needs to be fixed:
Please edit this PR description to address the above within 2 hours, or it will be automatically closed. If you believe this was flagged incorrectly, please let a maintainer know. |
|
Thanks for your contribution! This PR doesn't have a linked issue. All PRs must reference an existing issue. Please:
See CONTRIBUTING.md for details. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8167c1bec7
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| <PromptInputV2SubmitButton | ||
| mode={state.mode} | ||
| stopping={view.submit.stopping()} | ||
| disabled={!props.controller.canSubmit()} |
There was a problem hiding this comment.
Respect disabled state for the submit control
When a parent renders PromptInputV2 as disabled or readOnly while it already has text, attachments, or comments, this line still enables the send button solely from canSubmit(), and the button's click handler calls controller.submit() directly. The editor itself becomes non-editable, but the composer can still send the existing draft; include the outer disabled/read-only state in the submit/add controls or guard their handlers.
Useful? React with 👍 / 👎.
Summary
devcommits through69a80663a2ed7d671d2b4d5dd6f2d605714675a5.devnow points to901c9e732921891e1fd71eb735ef5e78013f582fand requires a separate audit.Review
c3e504e5cc023e885b693b315e1525ea0cf0e0b88167c1bec73248daec9ef522bbd7221b424b263175ad0d67684f4d3a2e6c807582d4bf25b38567feed64643ab6dc9020d0aaadd63dda58f55fcb5f48c3e504e5cc023e885b693b315e1525ea0cf0e0b8, upstream69a80663a2ed7d671d2b4d5dd6f2d605714675a5main: 0 behind, 26 aheadIncoming Commits
4436678f7fix(desktop): guard destroyed recovery windows (fix(desktop): guard destroyed recovery windows anomalyco/opencode#37406)3a1c6df9efix(app): deduplicate diff summaries linearly (fix(app): deduplicate diff summaries linearly anomalyco/opencode#37414)52f65f3a0feat(console): promote Kimi K3 usage limits (feat(console): promote Kimi K3 usage limits anomalyco/opencode#37442)a414e06d0go: kimi k3 2x usage90291fc6dchore: generate3238daa85Revert "chore: generate"f7d5a1cbcfeat(desktop): align provider onboarding dialogs (feat(desktop): align provider onboarding dialogs anomalyco/opencode#36733)aca52ba19chore: generateb527f605dfeat(app): update review panel tooltip to v2 (feat(app): update review panel tooltip to v2 anomalyco/opencode#37095)ed926be25feat(app): review panel reactivity improvements (feat(app): review panel reactivity improvements anomalyco/opencode#37089)c0a258b22feat(session-ui): rewrite v2 prompt input (feat(session-ui): rewrite v2 prompt input anomalyco/opencode#37102)82a3270cfchore: generate86978e7a8feat(ui): updates to design system (feat(ui): updates to design system anomalyco/opencode#37471)ba6cf3860feat(desktop): add focus debug toggle (feat(desktop): add focus debug toggle anomalyco/opencode#37465)4bffbb655chore: update nix node_modules hashesefb6cc2d4fix(session-ui): preserve prompt editing behavior (fix(session-ui): preserve prompt editing behavior anomalyco/opencode#37483)be08207a8docs(go): update DeepSeek and MiMo pricing (docs(go): update DeepSeek and MiMo pricing anomalyco/opencode#37509)518b0bf9echore: generate69a80663afix(stats): polish comparison chartCorrective Commits
c80dde50d6f0ba22a52368c8e51a4136f2de09e7fix(app): preserve v2 prompt structure and localization24f21689c46fb7781883a04f77301966d4392a1bfix(desktop): harden focus debug toggle169366aae9a0f59a4102af21c92fe313756e2ebdfix(session-ui): preserve structured prompt editing82d3a2f1150fa1c43cf7ecf71c32a5280e74d87cfix(app): defer provider row activation8f6a0e6d4b19ac21c2c40c1c0b81f8a77b90e660fix(session-ui): preserve command focus targets8167c1bec73248daec9ef522bbd7221b424b2631fix(session-ui): isolate prompt cursor moduleConflict Resolutions
packages/desktop/src/main/ipc.ts: retained Classic's trusted-renderer wrapper for updater, background, log export, fatal-error, and store handlers, and routed the incoming focus-debug handler through the same trust boundary.packages/desktop/src/main/windows.ts: retained Classic renderer URL validation and scheme/host constants while integrating the incoming safe window-state URL helper.bun.lock, app platform context, Console Go limits, desktop startup, and desktop renderer wiring auto-merged and were explicitly audited with frozen installation, identity/security tests, builds, packaging, and installed-runtime checks.Validation
git diff --check, and app, desktop, and Storybook production builds.linux-ci-20260718T051303Z-8167c1bec7-package.--no-sandbox;oc://renderer, loopback sidecar, isolated credentials/XDG roots, deep-link forwarding, Settings, Classic identity/version, empty console/page-error arrays, package integrity, and clean teardown all passed.sync-upstream-prompt-minimal-8167c1bec7-final-evidence; its complete 419-file relative checksum manifest verifies.Hosted Checks
blacksmith-4vcpu-*and currently hasrunner_id: 0. No hosted rerun was attempted because it would return to the same unavailable runner pool.Artifact Hashes
2b1a96d06146fe6daa59697e683d2addfafbb179c10c26c03ace008b391f1279bun.lockSHA-256:a70c13b89cfc001ee1dfe11c1c2a1d45b15fba4511929dba8fbf0d43a9935134cd3074c6e6712afb32b9111a64c3b7e619b64d8fed652495ab1e97403872e6294716771f64316be11d833a99f040f3c39685764946d0432ec043561721b15183latest-linux.ymlSHA-256:f63371f8319bdb550d443f46249b90c2ee6b66fd18c91f6f3948ff82fbb5c141040a711e2af4936a1080af024663e481a95385962836e78d9395f416f558ffedf8ce8f62a805a75fd866cc06774caaaedcf02a30aac9be31e66a274c170b7bbaf36fa671ab3808b8c1ecfe9d19c1c5e6bc0df96b9afa9f383d7b0a60cddc67e32a6eb1ccafb5fdc10f634f08900146547416e4144e27903b92040410d8b64bd7SHA256SUMSSHA-256:40c4fb4342a3fca74ae10042fc72a8d83cb58ba41fcb8ed1da8afec9e1be8361Expected Warnings And Deferred Coverage
No published versions on GitHubis expected before the first stable release; startup, rendering, identity, and every other installed-runtime assertion passed.CI_RUNTIME_DIRoption because deeply nested evidence paths exceed Linux's Unix-domain socket limit in ElectronProcessSingleton; the final installed-package run used a fresh short path and passed.38989c57athrough901c9e732, are intentionally deferred rather than silently added after the audit pin.No tag, release, publication, direct
mainpush, or write to the official upstream repository occurred. Please review and merge this PR on GitHub using a merge commit, not squash or rebase.