fix: cloned environments load plugins from their source - #215
Merged
shakkernerd merged 2 commits intoSep 13, 2026
Merged
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review blockedAutomated review did not run, so no review verdict was produced. Reason: The input-safety check rejected material in this revision. No detected value, path, or scanner output is reproduced here. ClawSweeper will not retry this unchanged revision. Next step: If this is a genuine credential, remove and rotate it. If it is an intentional test fixture, a maintainer must review and qualify it. |
shakkernerd
force-pushed
the
fix/clone-plugin-registry
branch
from
September 13, 2026 21:58
d674aa3 to
cc3e397
Compare
Member
|
Fixed: environment clones use their own plugin files while preserving copied local installations, missing managed plugin records, and source data. With thanks to @Marvinthebored. |
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.
Related: #98
What Problem This Solves
Resolves a problem where cloned environments load registered plugins from the source environment instead of their own copy. Cloning must also preserve normally copied local plugins and environments with a missing managed plugin payload.
Why This Change Was Made
The shared regular and simulation clone path relocates plugin registrations before publishing the clone. It validates the executable installation path against the copied environment and retains original project or archive paths as provenance for managed installations. Both the legacy registry and modern
config_machine_staterepresentation preserve their other fields and existing wrapper/revision.User Impact
Clones use their own plugin files, including linked files owned by the copied environment. Missing managed payloads retain registrations pointing into the clone for diagnosis or repair. Source plugin files and databases stay unchanged, and active paths or writable databases that escape the copied environment are rejected.
This addresses the plugin registry isolation portion of #98.
Evidence
cargo fmt --check,cargo check --workspace --all-targets --locked, andgit diff --checkpass.plugins inspect --runtime --jsonimported each clone's module and selected its clone-only manifest change. A missing payload remained cloneable, and repair in the target loaded target-owned code. Source database bytes, plugin files, original projects, and archive bytes remained unchanged.MACOS_TEAM_IDconfiguration variable in fork CI before invoking signing tools. The unchanged validator on exact main1e9b731e3cd70eef565e13771bfcb743f4a707b9reproduces that argument error. Those jobs test the fixed published v0.2.39 binary; the workflow, fixture, and validator are unchanged by this PR. The separate CI repair is tracked in fix: verify macOS npm fixtures on fork pull requests #216.All task-owned Rust builds, tests, and live consumer checks ran on Crabbox. No local Rust checks were run.