This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

An intent verb's link repoint (plan, spec close, bundle plan and close, reclassify, through repointUnderLock in internal/core/intent/lifecycle.go) rewrites every markdown record linking the moved path, issue and reading records included, under the intent store's lock alone: a ledger writer (a resolve, a link, a disposition) landing on a linking ledger record between the repoint's read and its write is erased, and the same holds for a spec record against a spec writer. The intent package cannot take the ledger lock (capture imports it), so closing this needs a registered ledger-lock seam taken OUTSIDE the intent lock (ledger, then intent, the order capture's transition and migrate take), and a stance on a tree with no ledger, which taking the lock would create.

issueresolvedminoriss-2609262143209970

An intent verb's link repoint (plan, spec close, bundle plan and close, reclassify, through repointUnderLock in internal/core/intent/lifecycle.go) rewrites every markdown record linking the moved path, issue and reading records included, under the intent store's lock alone: a ledger writer (a resolve, a link, a disposition) landing on a linking ledger record between the repoint's read and its write is erased, and the same holds for a spec record against a spec writer. The intent package cannot take the ledger lock (capture imports it), so closing this needs a registered ledger-lock seam taken OUTSIDE the intent lock (ledger, then intent, the order capture's transition and migrate take), and a stance on a tree with no ledger, which taking the lock would create.

Grounds

  • pursued: a ledger writer arriving while an intent verb's repoint runs now waits for its write and the linking issue keeps both edits (TestRepointHoldsTheLedgerLockAgainstALedgerWriter, TestAnIntentVerbRepointTakesTheLedgerLock); a ledger edit erased by a repoint would show it wrong

Frontmatter

idiss-2609262143209970
typeissue
lifecycleresolved
severityminor