Repository navigation
feat(project): complete isolated installations across supported clients - #499
Merged
Merged
Conversation
… cache extraction
feat(cursor): install project skills and MCP with isolated lifecycle
feat(copilot): install project skills and MCP without changing user state
…act dependency closure
…esearch approvals
WalkthroughWarning Review details and warnings were omitted to fit the comment limit. |
777genius
marked this pull request as ready for review
October 25, 2026 16:30
This was referenced Oct 25, 2026
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.
Why
Project installation needs one explicit environment contract across packages, standalone Skills, saved dependencies and every supported agent. Mutable project ownership must remain separate from the original user profile and other projects.
What this PR delivers
no_changewithout mutating state or promoting readiness.serversJSONC codec, separate from the user Copilot path. It prepares.github/skillsand.vscode/mcp.json, preserves foreign JSONC members and refuses ambiguous/malformed ownership. SDK composition is explicit throughall.Project()/vscode.NewProject(); the CLI selects the scoped registry. Installed files remain Prepared.Exact integrated candidate
Head
3386c72a91e7e9b3574f12ce0613b399227a1ada, tree11e85b7b8a762f9be92ff7d24cd3e1e7d28feffc(2026-10-25). Integrated based1b18dd4a5cbfb728e26938df5244d6c8cc1e9aeand all reviewed project follow-ups are included without merge conflicts.The latest independently reviewed corrections are:
Fix Windows publication with precisely two deletion-sharing reader opt-ins: directory-swap journals and security-assessment cache entries. Use same-parent standard-library rooted replacement; keep ordinary non-sharing readers as refusals. Retain the cache's 0700 parent, 0600 temporary file, sync/close and error behavior while removing its delete-before-rename gap. Single native errors retain their concrete type, including existing
os.IsNotExistbehavior. The bounded proof does not claim every unrelated Windows reader/writer race is qualified.Give both the main CLI and retained compatibility CLI's self-reexecuted completion tests separate private coverage directories through explicit
GOCOVERDIR. Preserve all 80 cases and zero-stderr/output/token/debug assertions. Remove only this test's Coverage exclusion; unrelated version-probe exclusions remain.Recognize a complete, canonical Linux task-release stat record as a private error candidate. Accept disappearance only after an independent observation that the exact task directory is absent. Preserve before/after PID and start-time mismatch refusal, present-directory refusal and every malformed or uncertain result. An opaque uncertainty carrier prevents nested ENOENT/ESRCH errors from becoming disappearance authority. No traversal, pidfd, signal, quiescence, deadline or native-admission rule is relaxed.
Add fixed cleanup-origin metadata to the existing strict supervisor result and classifier. Original failure strings/causes, cleanup behavior and generic privacy limits remain intact.
Correct OpenCode's test expectations for actual public responses: unchanged add/update use the real no-change envelope; intact group repair deliberately restages and mutates state while exact package/native bytes and binding authority stay unchanged. Missing-skill repair keeps its direct local source at the applied A-two revision, preserving the product's existing refusal of changed local repair sources.
Retain the previous configured-lint, Claude trust-profile and Codex/OpenCode Prepared replay corrections. Every new slice received two independent plan rounds and frozen implementation review.
Validation
The main completion fixture has deterministic red/green proof: unchanged instrumented source failed with the observed 54 stderr bytes; corrected ordinary coverage, atomic coverage and plain execution pass all original cases. The real Core informational coverage pass subsequently passes. Configured lint and exact workflow checks pass.
The retained
plugin-kit-aicompatibility command has a second fixture with the same name. Removing the old name-based exclusion exposed its identical missing-coverage-directory failure in the2c64dc8cCoverage run. The final two-line correction has both independent code approvals. One serial atomic-coverage command passes all 80 original cases across both exact fixtures (main CLI 6.356s; compatibility CLI 3.083s), with no skips and strict zero-stderr assertions. Affected compatibility lint reports zero issues. The exact-source Required CLI lint job also reports zero issues for both configured CLI-wide lint and the unfiltered architecture/complexity suite on GitHub's merge tree11e85b7b8a762f9be92ff7d24cd3e1e7d28feffc. The initial environment-preparation attempt could not fetch three exact locked dependencies; those modules were subsequently downloaded and verified against unchangedcli/go.sum, and that setup-failure log is preserved separately. No assertion or exclusion was weakened, and private child counters are not claimed to increase the parent profile's coverage percentage.All Windows local gates are complete: affected Linux vet/contracts/configured lint, the existing missing-journal recovery contract and Windows-target configured/unfiltered architecture lint pass. The single focused Windows observation, source
2c64dc8c, passes all four exact required tests without skips. Root and an independent reviewer verify its closed four-member archive, SHA-256adc653594cdb7201102ba3bc04a391714b47869f4fbed4454fc41c465c232019, exact source/tree/toolchain and actual Windows image20261021.278.1. The same observation contains the legacy access-denied control, preserved ordinary-reader refusal, corrected held-reader publication, readonly/directory/missing-error controls, relative Unicode long paths and real cache Store/Load.The final compatibility-only delta preserves every Windows production, test and workflow blob from that observation. No extra focused run was triggered. The final normal Terminal matrix passes on all three platforms, including the unchanged Windows public concurrent-add resilience case (1.641s). Independent selective raw-artifact review verifies all 20 concurrent-case member hashes: three expected mutation-lock refusals, one completed successful installation, no AccessDenied, exactly one installation and zero open operations before and after successful convergent replay. The final Windows artifact is
12605457729, 50,814,609 bytes, SHA-25691c5e23e3dc16fa4d158a83b98b310742202a1a8df3a2cc6a42fafed655536d1; its checkout is the exact-tree PR merge preview.Final-source runs use head
3386c72a91e7e9b3574f12ce0613b399227a1adaand tree11e85b7b8a762f9be92ff7d24cd3e1e7d28feffc:All 74 GitHub check runs pass on this exact head, across 24 completed PR workflow runs, each on attempt 1. The separate CodeRabbit commit status also passes. CodeQL completes both language analyses and reports no new alerts in code changed by this PR. Required, Core, Coverage, Terminal, platform packaging, docs, landing and the remaining normal gates are green.
Required's full raw log contains no hidden failure: all 133 pinned conformance cases pass (125 core, four disputed, four regressions), with zero conformance failures/errors/skips/warnings. The Node suite reports 1,197 passes and zero failures/cancellations across 1,202 tests; its five existing coordinator/opt-in authoring-release sentinels remain skipped and are separate from project/client qualification. Every required native-client case below executes without skips.
Independent raw-evidence review establishes:
Independent integration review verifies the original 14-path disjoint union and the final two-path compatibility-only delta, every selected blob/mode and all input ancestry. GitHub's PR merge preview
1da59245fb30bf03f89e4f74fd31a8d1aa4488b4has the same tree and the expected base/head parents. No vendor client ran on the unsupported local executor.Observations retained from earlier sources
The
2c64dc8ccheckpoint additionally passes both independently audited Claude native archives, current-source VS Code/Cline metadata and local argv observations. Core's actual plain and informational coverage passes contain no failure, and Windows Terminal's unchanged resilience matrix—including concurrent add—passes. The separate Coverage run fails only in the retained compatibility completion fixture described above. These results remain attached to their original source; fresh final-source normal gates are listed above.On
6a1d53f4, all 75 checks finished: 74 passed and one Windows Terminal check failed. Required, all three-platform SDK/public CLI contracts, all six Claude/Codex/OpenCode native jobs, and VS Code/Cline/argv gates passed. Independent raw archives verify that source's exact tree, pins, inventories and digests. Claude passed five required cases per OS, Codex four and OpenCode five, all without required skips. OpenCode's update, intact/missing repair, removal, inline override and root-JSON stages passed. These remain evidence for that source.The
6a1d53f4Windows Terminal artifact retains four concurrent-add children: two expected mutation-lock refusals, one security-cache publication access-denied failure and one operation-journal replacement access-denied failure with rollback. Actual handle-holder identity was not captured. Its successful Core job also contains the unchanged completion fixture's 54-byte stderr failure in the informational second coverage pass. The new slices address those concrete boundaries; neither old result is rewritten.The
6a1d53f4corrected-source Git observation passed all 512 iterations in 105.916 seconds without skips on actual GitHub-hosted Ubuntu 24.04 image20261012.334.1, matching the failed observation's image. Root and an independent reviewer checked checkout, immutable test/workflow and raw log. The process correction and this test/workflow remain unchanged in the final candidate; no extra observation was triggered. This finite result does not prove every process race is absent.On
e81e9daf, all 74 checks completed: 70 passed and four failed. Required, Coverage, the three-platform project contracts, Claude/Codex native jobs and current-source VS Code/Cline metadata all passed. OpenCode's project test stopped at its incorrect intact-repair mutation expectation; the two Linux acquisition failures remain in their original runs. Those results are evidence for their original source, not qualification of this new candidate.The first bounded local-Git observation completed 512 iterations on Ubicloud Ubuntu 24.04 without identifying the historical cause.
The distinct-provider GitHub-hosted Ubuntu observation, source
fa59fd25, failed at fetch iteration 497 with the controlled original errormalformed proc task stable identity. The actual image was20261012.334.1. Pinned Linux producer source establishes the valid release-snapshot family addressed by the correction; the raw numeric stat tuple was not captured. Do not assign that inferred tuple to the separate historical Core failure or claim the earlier parent-change hypothesis was observed.Each bounded observation used its reviewed source/host specification once. The corrected run above retained the same immutable test, 512 iterations, first-error stop, environment and budgets; both earlier results remain preserved.
Evidence and product boundaries
The source-only support matrix distinguishes Installed/Prepared delivery from native discovery, MCP initialization and model/authentication use. Existing exact-source raw archives and failed attempts remain preserved.
Claude's trusted disposable-profile proof covers exact native project listing/details/removal and byte-identical profile guards. Codex's proof covers trusted selection, six nonce-correlated direct MCP tool calls per platform, unchanged Prepared replay and empty project-B/removal controls; trusted changed-MCP update/repair runtime is outside that bounded proof. OpenCode's debug observation does not qualify MCP startup, authentication or model use.
VS Code and Cline component metadata observations retain false trust/runtime/model qualification flags. Cline's same-name user-skill precedence and explicit whole-file MCP selection remain visible. Their collectors do not promote Prepared delivery to active runtime.
Ten earlier project PR heads and #515's original history are preserved by ancestry. #486's 12-file source was imported exactly, with only a later truthful evidence addendum in one document.
Merged into
mainon 2026-10-25 as3b93148c356fc5db6fe101d81d943160a5176b6d. Independent post-merge verification confirms the actual tree is exactly11e85b7b8a762f9be92ff7d24cd3e1e7d28feffc, with the expected base and validated head as parents; there is no resolution delta.GitHub automatically marked #472 merged. After fresh exact-head checks, #475, #480, #481, #482, #484, #485, #486, #487, #494 and #495 were closed as incorporated, with delivery notes; #486's note identifies its exact source import. #515 was already merged and remains closed. Independent final inventory verifies no scoped project PR remains open and exactly the ten unrelated PRs remain open. No release was published.