[Security] Reapprove changed plugin artifacts and minimize MCP child environments#256
Open
fettpl wants to merge 3 commits into
Open
[Security] Reapprove changed plugin artifacts and minimize MCP child environments#256fettpl wants to merge 3 commits into
fettpl wants to merge 3 commits into
Conversation
Author
|
@0xSero Exact head |
fettpl
force-pushed
the
p1/issue-233-plugin-artifact-identity
branch
from
July 20, 2026 09:51
15c5d28 to
4929d31
Compare
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
Root cause and design
Approval identity previously stopped at the plugin/version/binding boundary, so same-version artifact or launch changes could retain authority. Stdio MCP children also inherited the desktop process environment. The new design computes a bounded canonical SHA-256 artifact identity, snapshots the reviewed executable, binds the discovered inventory, and revalidates the exact identity across reconciliation and invocation transitions. Child launch uses only required platform values plus connector-owned startup data. Bootstrap acknowledgement is raw-byte bounded at 64 KiB, has an injectable timeout, and every terminal bootstrap failure closes the complete owned process tree.
Dependency
This PR is stacked on #250 (
[Security] Enforce least-privilege connector permissions and action approval) at8607bcd48ff879b6e6ee503af917bb3d037ffbdfand should merge after it.Acceptance outcomes
Validation
4929d315c1fd7e13830cb3213e96644d744d8e3a.npm --prefix services/agent-runtime run check: 99/99 tests passed, helper verification passed, and TypeScript passed.npm run check: passed the full repository gate.npm --prefix frontend run check:quality: passed, including production build.git diff --check 8607bcd48ff879b6e6ee503af917bb3d037ffbdf 4929d315c1fd7e13830cb3213e96644d744d8e3a: passed.desktop:dist, packaged runtime probes, and deep strict code-signature verification passed at the exact reviewed head./Applications/Local Studio.appreinstall completed;GET /api/desktop-healthreturned HTTP 200.action_requiredwith zero jobs; an upstream maintainer must approve the fork workflows before GitHub can execute them.test:integrationscript; the available full repository and runtime suites above were run.Closes #233