Repository navigation
v1.21.1 — the check that asked the wrong plane who hands out ids - #23
Merged
Merged
Conversation
`check` refused every `idRegisters` entry on `backend: fs` + `leaseBackend: git`, while `reserve DEC` in the same repository allocated race-free through refs/agent-sync/ids/* at the remote. Repositories with a local record plane dropped their registers and took numbers by hand. - one predicate, id_allocator(cfg, adapter), answers for reserve, release_id, check and the generated snapshot (which now names the allocator) - still refused, by both commands: a non-ordering plane with leaseBackend local; leaseBackend git pointed at a remote that does not exist - a missing lease remote is refused by name in acquire and reserve; it used to read as "held by another run" / "another allocator is racing" - check_check_and_reserve_agree_on_who_allocates_ids drives all three configurations through both commands against a bare remote; two new self-test plants (record-plane-only condition, phantom contention) and the retargeted "check blesses a register nobody can reserve" plant are caught - docs: lease-protocol.md configuration table, backend-fs.md, schema, README, SKILL.md Gate: npm test EXIT=0 — validate PASS v1.21.1 (also on Python 3.9.6), SELF-TEST PASS (64 fixtures), claim cell 27, session hooks 13, installer 11; audit regressions 13/13; evals OK; pinned house audit 0 GAP / 18 PASS; claude plugin validate --strict passed for . and plugins/agent-sync. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
checkrefused everyidRegistersentry onbackend: "fs"+leaseBackend: "git", whilereserve DECin that same repository allocated race-free throughrefs/agent-sync/ids/*at the remote. Repositories with a local record plane had to drop their DEC/OQ registers and take numbers by hand.Root cause.
reserveallocates when the record plane orders writes OR the lease is git.checkasked only the record plane (probe.is_lease_authority).Fix.
id_allocator(cfg, adapter), answers forreserve,release_id,checkand the generated snapshot (which now names the allocator).fs, or a cloud plane degraded tofs) withleaseBackend: "local";leaseBackend: "git"pointed at a remote that does not exist.acquireandreserve. It used to read as "held by another run" / "another allocator is racing".Tests.
check_check_and_reserve_agree_on_who_allocates_idsdrives all three configurations through both commands against a bare remote. It was written first and failed 4 ways on the old code. Two new self-test plants (the record-plane-only condition, the phantom contention) are caught, and so is the retargetedcheck blesses a register nobody can reserveplant, which had silently stopped applying.Gate (local).
npm testEXIT=0: validate PASS v1.21.1 (also on Python 3.9.6), SELF-TEST PASS (64 fixtures), claim cell 27, session hooks 13, installer 11. Audit regressions 13/13, evals OK, pinned house audit 0 GAP / 18 PASS, andclaude plugin validate --strictpassed for.andplugins/agent-sync.🤖 Generated with Claude Code