You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
writ deploy leaves the links of removed sources dangling and drops them from the record: reconcile then reports a clean machine #960
The operation that ran was writ deploy, not writ upgrade (the owner, 2026-09-27: "we deployed. we did not upgrade."). Measured 2026-09-26 on DANOBLE-UD24-1: personal#232 deleted sixteen files from the layer; the next writ deploy (graph 64ee1699, 20:04Z) correctly stopped planning them, then replaced the record (#922) and left their links on disk, dangling, in no record. writ reconcile reads only the current record, so it reports the machine clean while ~/.local/bin/git-protect-encrypted-files, its man page and both completions, and the ~/.Personal-secrets links point at nothing. deploy.go has no stale, orphan or prune step.
Deploy is the operation that replaces the record, so it is the one that knows, at that moment, which links the replaced lifetime made and which of their sources are gone. The defect is that it drops them silently. What deploy does instead — unlink them, carry them into the new record for upgrade (#845's orphan row) to remove, or at least report them — is the design to rule on; a link whose target is no longer what writ made is never removed.
changed the title [-]writ upgrade unlinks orphans: a link writ made whose source left the layer is removed, not left dangling and dropped from the record[/-][+]writ deploy leaves the links of removed sources dangling and drops them from the record: reconcile then reports a clean machine[/+]on Sep 26, 2026
Folded into #971 (lane 17 of #916), 2026-09-28, agreed with the session that held this as its schedule #949's lane 15. Deploy loses a removed source precisely because it replaces the lifetime, so the fix is designed once, against kept snapshots (#847). personal#236 waits on it; its dangling links can be removed by hand meanwhile, and only reconcile's false clean waits for #971 and #972.
Activity
[-]writ upgrade unlinks orphans: a link writ made whose source left the layer is removed, not left dangling and dropped from the record[/-][+]writ deploy leaves the links of removed sources dangling and drops them from the record: reconcile then reports a clean machine[/+]David-Noble-at-work commentedon Sep 28, 2026
Folded into #971 (lane 17 of #916), 2026-09-28, agreed with the session that held this as its schedule #949's lane 15. Deploy loses a removed source precisely because it replaces the lifetime, so the fix is designed once, against kept snapshots (#847). personal#236 waits on it; its dangling links can be removed by hand meanwhile, and only reconcile's false clean waits for #971 and #972.
doc(writ): kept snapshots complete -- the words against the ref, live…
doc(writ): kept snapshots -- reconcile against the ref that produced …