-
Notifications
You must be signed in to change notification settings - Fork 0
feat(install): same-version replace path for every emitted installer (#400) #420
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
0907d95
feat(install): same-version replace path for every emitted installer …
5a9ee1a
fix(install): harden replace policy per review (#400)
ScriptedAlchemy 3f17e37
fix(install): guard symlinked ancestors and case aliases; patch chang…
ScriptedAlchemy 27e1a0d
fix(install): receipt inventory, owned restructures, multi-scope doct…
ScriptedAlchemy 2e43011
fix(install): empty directories are collisions; validate Claude rows …
ScriptedAlchemy 38a0311
fix(install): legacy adoption preserves unknown files; empty descenda…
ScriptedAlchemy 21c8d28
fix(install): case-alias identity only, alias-aware ancestors, exclus…
ScriptedAlchemy 3ef368e
fix(install): prove case aliases via realpath; refuse symlinked recei…
ScriptedAlchemy 5118dcc
fix(install): public-host version collisions fail closed; foreign bea…
ScriptedAlchemy 726cf9b
fix(install): uncomparable host copies fail closed; alias-aware legac…
ScriptedAlchemy 68cadbe
fix(install): require inventory versions; report public-host destinat…
ScriptedAlchemy b9afba8
fix(install): hash executable bits; reject Windows-normalised receipt…
ScriptedAlchemy cef7611
fix(install): runtime state roots are never inventoried, installed, o…
ScriptedAlchemy 58007fb
fix(install,doctor): filter runtime roots during staging; real Claude…
ScriptedAlchemy 650830e
fix(install): receipts never own runtime roots; receipt must be a reg…
ScriptedAlchemy a073032
fix(install): preserved roots match case-insensitively; tests for FIF…
ScriptedAlchemy 9bf1270
fix(install): receipts own the directories the installer created; onl…
ScriptedAlchemy 92736f7
fix(install): empty artifact directories are not content: never stage…
ScriptedAlchemy fa611bb
fix(install): refuse artifact paths that cannot round-trip through a …
ScriptedAlchemy ec29c97
fix(install): the receipt filename is reserved in every spelling (#400)
ScriptedAlchemy a56791e
fix(install): reserve the receipt name as a top-level segment, file o…
ScriptedAlchemy 05a826b
fix(install): reject Windows device names in receipt and artifact pat…
ScriptedAlchemy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| "agent-bundle": patch | ||
| --- | ||
|
|
||
| Add `--replace` (alias `--force`) to `agent-bundle install <host>`, the package-relative installer bin, and the emitted standalone `install.mjs`, and replace a same-version stale copy automatically: an agent-bundle install of the same plugin whose version matches but whose content hash differs is replaced without a flag, identical reruns stay an `already-installed` no-op, and rebuilding without a version bump no longer needs a manual uninstall + `rm -rf`. Cursor copies now carry an install receipt (`.agent-bundle-install.json`: plugin, version, host, content hash, owned files); replacement is in place, touches owned files only, refuses to overwrite unowned entries such as `state/`, and `--replace` adopts a pre-receipt copy (`adopted`). Claude replacement runs `claude plugin uninstall --keep-data` before reinstalling because `plugin update` is version-gated; Codex runs `codex plugin remove` before `add`; both fail `--replace` closed when `plugin list --json` is unusable. Foreign directories are still refused (`AB7005`) with an installed-versus-artifact content-hash comparison. `agent-bundle doctor --from` reports the installed copy per host as `current`, `stale` (`AB7308`), `version-mismatch` (`AB7309`), `foreign` (new `AB7321`), or `not-installed` (`AB7307`), and emitted `INSTALL.md` documents the same-version reinstall recipe per host (#420) | ||
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.