fix(landing): land composer, provider, and plugin safety fixes - #768
Merged
Merged
Conversation
Read textarea selections before the context menu takes focus and use the current draft as the copy fallback. Select text targets the editor; saved-message actions remain available after editing ends. Cover the editing workflow in a Chromium component regression and align the English and Chinese interaction specifications.
Deleting an inline file chip removes its reference metadata, but native undo restores only its DOM. Retain deleted references within the current draft so undo can restore the matching file path instead of leaving a broken placeholder. Recover metadata only for restored chip elements, clear history on draft context changes or send, and cover undo, redo, outgoing paths, session switching, and literal private-use text in the Electron fixture.
Observe the store transition directly so deleted references cannot survive an away-and-back project change batched by React. Keep the regression independent of the remount coverage in the concurrent Settings fix.
Verify that a batched project change invalidates deleted relative reference metadata before native undo can restore a chip.
A sent key event is not yet a processed event in the renderer. Wait for keyup and the next frame so the existing preview assertions observe completed native keyboard behavior during the composer regression run.
Let long-running sessions and subagents recover from independent provider outages without spending retries from earlier successful responses. Keep continuous failures bounded and preserve cancellation and tool execution. Report terminal retry counts from the relevant budget and cover recovery through real agent loops and isolated desktop fault injection. Refs #699
Keep plugin crash diagnostics focused on the exit code so untrusted plugin output cannot leak workspace data through error or audit payloads. Normalize failed provider transcripts before retrying so repeated stream failures remain recoverable.
This branch had an error being deployed
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.
Summary
Consolidate the validated fixes from #757, #751, and #713 on the current main line, with a small landing fix for the provider failure path and plugin crash reporting.
#756/#766 are already present in the target branch; this PR carries the security follow-up on that implementation.
Validation
pnpm build:jspnpm lintpnpm docs:checkpnpm check:agent-policynode scripts/check-architecture.mjspnpm --filter @pi-desktop/desktop typecheckRelated: #757 #751 #713
Windows-only E2E was not available in this environment.