This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

Deferring the orphan sweep to the commit path lengthens the window in which an orphan's reading records can be dispositioned before they are deleted. The sweep now runs only when a later ingest validates (iss-2608311517509690), so an orphaned run's reading records sit in the committed ledger for longer, and during that window capture's disposition verb can act on one of them. A later sweep then removes the item record by its id grammar and leaves the disposition record dangling, pointing at an item that no longer exists. The dangling case existed before the move — any orphan could be dispositioned between its crash and the next invocation — but the move widens it from the next invocation to the next one that validates. A future change could have the sweep refuse, or report, an orphan whose records already carry a disposition.

issueopenminoriss-2609012043443066

Deferring the orphan sweep to the commit path lengthens the window in which an orphan's reading records can be dispositioned before they are deleted. The sweep now runs only when a later ingest validates (iss-2608311517509690), so an orphaned run's reading records sit in the committed ledger for longer, and during that window capture's disposition verb can act on one of them. A later sweep then removes the item record by its id grammar and leaves the disposition record dangling, pointing at an item that no longer exists. The dangling case existed before the move — any orphan could be dispositioned between its crash and the next invocation — but the move widens it from the next invocation to the next one that validates. A future change could have the sweep refuse, or report, an orphan whose records already carry a disposition.

Remedy grounds (2026-09-29)

  • rollbackRun at the base removes an orphan's item records by the id grammar under the ledger lock and never reads dispositions, so the dangling case is real; option (a) is the lane-found writer-side close the deferral names.
  • No outside-practice check: the choice is among behaviours of a shipped internal verb.
  • Rejected: widening the sweep back to every invocation, which reopens the refused-run delete the commit-path move closed.

Frontmatter

idiss-2609012043443066
typeissue
lifecycleopen
severityminor

mentions1