feat(install-targets): generic plan-diff retirement for all install targets - #3
Open
kunaaaalcodes wants to merge 2 commits into
Open
kunaaaalcodes wants to merge 2 commits into
kunaaaalcodes wants to merge 2 commits into
Conversation
…argets (Fmarzochi#1412) Extend the plan-diff retirement mechanism from OpenCode-only (Fmarzochi#1411) to every install target. When a file leaves an install plan, the copy an earlier install wrote is cleaned up on the next install/auto-update. Changes: - Add planGenericRetirements(), collectCurrentlyCoveredDestinations(), and isDestinationCovered() helpers to install-targets/helpers.js - Update the default planRetirements in createInstallTargetAdapter to call planGenericRetirements instead of returning [] - Pass precomputed operations into planRetirements in registry.js to avoid redundant planning - Add clarifying comment to install-lifecycle.js explaining the split between pruneOrphanedOperations and planGenericRetirements - Add 2 new tests: generic retirement and directory scaffold shielding - Update CHANGELOG.md and docs/ROADMAP.md Signed-off-by: Kunal Jaiswal <rajputkunal5675@gmail.com>
Owner
Author
|
I have read the CLA Document and I hereby sign the CLA. |
|
Thank you for your contribution to EGC! Please sign our Contributor License Agreement to get this PR merged. Read .github/CLA.md, then post the comment below:
I have read the CLA Document and I hereby sign the CLA. Kunal Jaiswal seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. |
Owner
Author
|
recheck |
Owner
Author
|
I have read the CLA Document and I hereby sign the CLA. |
Owner
Author
|
recheck |
1 similar comment
Owner
Author
|
recheck |
…8.30 Move @opencode-ai/plugin from peerDependencies to dependencies and update the lockfile to the restored plugin dependency graph. Signed-off-by: Kunal Jaiswal <rajputkunal5675@gmail.com>
Owner
Author
|
recheck |
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
Extends the plan-diff retirement mechanism from OpenCode-only (Fmarzochi#1411) to every install target. When a file leaves an install plan, the copy an earlier install wrote is cleaned up on the next install/auto-update.
Problem
PR Fmarzochi#1411 added \planRetirements\ to the OpenCode adapter, but every other install target (Cursor, Windsurf, Claude, Copilot, Kiro, etc.) had \planRetirements: () => []\ as a no-op default. Files copied to non-EGC-managed destinations accumulate silently when modules are deselected or plans change.
What Changed
Identity Rules
The same identity rules from Fmarzochi#1411 apply: only regular files, no linked ancestor, byte-identical to the source EGC copied, are actually deleted (enforced by \�pply.js's \isRetirableFile). Sources no longer in the repository are left in place (report-and-leave). Only \copy-file\ operations are diffed; \merge-json\ and \hook\ have no retirement counterpart yet (open follow-up).
Validation