Skip to content

feat(project): complete isolated installations across supported clients - #499

Merged
777genius merged 318 commits into
mainfrom
feat/project-completion-e2e
Oct 25, 2026
Merged

777genius merged 318 commits into
mainfrom
feat/project-completion-e2e

Conversation

@777genius

@777genius 777genius commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

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

  • Carry the selected project through the public CLI, browser picker, SDK, add/update/repair/remove, saved dependencies and recovery. Reuse the existing solver, portable manifest/lock, immutable store, transactions, journals and exact receipts.
  • Admit project scope for 13 clients: Claude Code, Codex, Cursor, Gemini, OpenCode, Copilot CLI, Kiro, Grok Build, Qoder, Cline, Windsurf/Devin, Kimi Code and VS Code. ChatGPT refuses unsupported project installation before source acquisition. See the source-only support matrix for each native boundary.
  • Preserve original user and project B bytes, retained data, exact file/member ownership and unresolved native-attempt fencing. Ownership verification remains mandatory when optional live discovery is disabled. Final Configuring callbacks run before the last ownership observation.
  • Fix unchanged Prepared native-config replay: verified Codex/OpenCode component delivery returns no_change without mutating state or promoting readiness.
  • Add a distinct VS Code project adapter and native servers JSONC codec, separate from the user Copilot path. It prepares .github/skills and .vscode/mcp.json, preserves foreign JSONC members and refuses ambiguous/malformed ownership. SDK composition is explicit through all.Project() / vscode.NewProject(); the CLI selects the scoped registry. Installed files remain Prepared.
  • Exercise saved public CLI lifecycle, immutable-pin repair, moving-source update, managed stdio package/data/launcher authority and real process death at the native commit boundary. Repair/removal cannot guess ownership after an unresolved attempt.
  • Add trusted disposable native project tests for Codex MCP initialization/direct tool calls/replay/removal and Claude exact listing/details/removal. Claude's fixed native initialization controls establish one byte-exact profile baseline before UAP; Windows trust keys match the pinned client's normalized paths. Original untrusted tests and all later profile guards remain.
  • Update the source-only guides and all five maintained documentation locales. Preserve current main, including landing: auth indicator lock icons and grouped per-agent details #516's landing authentication changes, feat(skills): add unified catalog backed by cached skills.sh API #496's Skills catalog and feat(landing): link the restore guide to the docs manage page #517's restore-guide link. No release is published.

Exact integrated candidate

Head 3386c72a91e7e9b3574f12ce0613b399227a1ada, tree 11e85b7b8a762f9be92ff7d24cd3e1e7d28feffc (2026-10-25). Integrated base d1b18dd4a5cbfb728e26938df5244d6c8cc1e9ae and 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.IsNotExist behavior. 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-ai compatibility command has a second fixture with the same name. Removing the old name-based exclusion exposed its identical missing-coverage-directory failure in the 2c64dc8c Coverage 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 tree 11e85b7b8a762f9be92ff7d24cd3e1e7d28feffc. The initial environment-preparation attempt could not fetch three exact locked dependencies; those modules were subsequently downloaded and verified against unchanged cli/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-256 adc653594cdb7201102ba3bc04a391714b47869f4fbed4454fc41c465c232019, exact source/tree/toolchain and actual Windows image 20261021.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-256 91c5e23e3dc16fa4d158a83b98b310742202a1a8df3a2cc6a42fafed655536d1; its checkout is the exact-tree PR merge preview.

Final-source runs use head 3386c72a91e7e9b3574f12ce0613b399227a1ada and tree 11e85b7b8a762f9be92ff7d24cd3e1e7d28feffc:

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:

  • Claude Code, macOS and Windows: all five required tests per platform pass without skips. Exact trusted project identity, native listing/details, eight fresh A/B/removal controls and all eleven byte-equal post-authored profile guards pass. Trusted observed identity can be Active; the original untrusted Prepared case remains intact. Project MCP/model execution is not qualified by these observations.
  • Codex, macOS and Windows: all four required tests per platform pass without skips. Each platform has six nonce/PID/session-correlated direct MCP tool calls, exact default and explicit connected sources, four fresh B/removal absence controls, and unchanged Prepared no-change replays. No model turn or Responses request is used. Changed-MCP update/repair runtime remains outside that bounded proof.
  • OpenCode, macOS and Windows: all five required tests per platform pass without skips. Each project archive retains 43 commands, 86 stream receipts, the actual update, intact repair, missing-skill repair, removal, inline override and root-JSON observations. Intact repair changes the receipt/state while preserving exact native bytes; delivery remains Prepared. The final run observes A=A, B=B and user=user for same-name skills on both platforms. The older Windows A=user result remains historical evidence; general same-name precedence stays blocked, with no platform-wide rule or MCP/model/authentication qualification inferred.
  • SDK/public CLI, metadata and argv: all three native-platform project-contract jobs pass. VS Code and Cline actual-UAP metadata archives and both native argv archives pass closed-inventory, digest and raw-result review. Their documented Prepared/runtime limitations remain unchanged.
  • Coverage and Windows follow-through: both actual Core passes, including informational coverage, and the separate Coverage job contain no hidden failure. Both completion fixtures also pass all 80 original cases together under local atomic coverage. The final Windows concurrent-add raw results and successful replay are verified above.

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 1da59245fb30bf03f89e4f74fd31a8d1aa4488b4 has the same tree and the expected base/head parents. No vendor client ran on the unsupported local executor.

Observations retained from earlier sources

  • The 2c64dc8c checkpoint 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 6a1d53f4 Windows 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 6a1d53f4 corrected-source Git observation passed all 512 iterations in 105.916 seconds without skips on actual GitHub-hosted Ubuntu 24.04 image 20261012.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 error malformed proc task stable identity. The actual image was 20261012.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 main on 2026-10-25 as 3b93148c356fc5db6fe101d81d943160a5176b6d. Independent post-merge verification confirms the actual tree is exactly 11e85b7b8a762f9be92ff7d24cd3e1e7d28feffc, 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.

feat(cursor): install project skills and MCP with isolated lifecycle
feat(copilot): install project skills and MCP without changing user state
@coderabbitai

coderabbitai Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Walkthrough

Warning

Review details and warnings were omitted to fit the comment limit.

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.

1 participant