Conversation
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
Replacing a remote marketplace under an existing managed name now publishes the requested repository and registry entry as one ownership-safe transaction. Same-process marketplace lifecycle operations serialize by cache path, and project registries use namespaced cache roots so one scope cannot overwrite another.
This follows the registry-write serialization in #473 and closes the remaining path where the registry could name source B while the managed cache still contained source A.
Design decisions
Validation
Red reproduction before the fix:
Green checks on the rebased commit:
bun test: 1,542 passed, 6 skipped, 0 failed across 142 files.bun run typecheck: passed.bun run lint: passed across 94 source files.bun run build: bundled 520 modules.Manual built-CLI E2E:
shared) and distinctorigin.txtmarkers.git daemonon127.0.0.1:19418.HOME="$tmp/home" ./dist/index.js plugin marketplace add git://127.0.0.1:19418/source-a.git --name shared.HOME="$tmp/home" ./dist/index.js plugin marketplace add git://127.0.0.1:19418/source-b.git --name shared.marketplaces.json,origin.txt, andgit remote get-url originall identified source B. The cache root contained onlyshared; no.backup-*artifact remained.Non-goals
Post-Deploy Monitoring & Validation
AllAgents has no centralized runtime telemetry for local cache operations. During the first release after merge, maintainers should watch CLI output and issue reports for cache publish, rollback, or backup-cleanup warnings. For any report, compare the registry source with
git remote get-url originin the recorded cache path and check its parent for.backup-*entries. A repeated registry/cache mismatch or an unrecoverable backup is the rollback signal; the marketplace transaction should then be reverted before the next release.