Skip to content

fix(landing): land composer, provider, and plugin safety fixes - #768

Merged
vastsa merged 7 commits into
mainfrom
review/land-prs-20260921
Sep 21, 2026
Merged

vastsa merged 7 commits into
mainfrom
review/land-prs-20260921

Conversation

@vastsa

@vastsa vastsa commented Sep 21, 2026

Copy link
Copy Markdown
Owner

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.

  • Preserve edit-draft copy/select behavior.
  • Restore file references through native undo and workspace remounts.
  • Reset provider retry budgets after successful responses and normalize failed assistant suffixes before retrying.
  • Keep plugin crash diagnostics to unsigned/hex exit codes; do not copy untrusted plugin stdout/stderr into crash errors, audit crash entries, or plugin crash logs. The existing plugin.stdio audit stream is unchanged.

#756/#766 are already present in the target branch; this PR carries the security follow-up on that implementation.

Validation

  • pnpm build:js
  • pnpm lint
  • pnpm docs:check
  • pnpm check:agent-policy
  • node scripts/check-architecture.mjs
  • pnpm --filter @pi-desktop/desktop typecheck
  • Desktop plugin tests: 17/17
  • Agent runtime tests: 49 files, 730 tests
  • Provider recovery test: 10/10
  • Message-edit copy E2E and composer-paste E2E passed

Related: #757 #751 #713

Windows-only E2E was not available in this environment.

yuxino and others added 7 commits September 21, 2026 12:08
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.
Copilot AI lite review requested due to automatic review settings September 21, 2026 04:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@vastsa
vastsa merged commit 6f24ff2 into main Sep 21, 2026
4 of 5 checks passed
@vastsa
vastsa deleted the review/land-prs-20260921 branch September 21, 2026 11:16

This branch had an error being deployed

1 failed deployment
Preview — 9d39e7d6 Deployed Sep 21, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants