local-fs: make post_comment atomic (write-temp + rename), with a crash test #13
Labels
No labels
component:adapters
component:lifecycle
component:qa
component:setup
component:shared
component:worktrees
phase/accepted
phase/backlog
phase/deployed
phase/developing
phase/integrating
phase/planning
phase/qa
phase/requirements
phase/uat
priority:critical
priority:critical
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:bug
type:chore
type:docs
type:feature
type:infra
type:tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jbr870/devwork-skills#13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Observed failure
An mtime-pin failure left an orphaned partial
test-plan:v1with a malformedcreated_ms(axanadogfood run). The comment existed, the pin did not, so the record was unreadable by the consumers that
order on
created_ms.What it needs
local-fsallocates a comment in several steps — pick the next number, write the file, pin the mtime toepoch_ms(which is what makescreated_at = mtime, and therefore what makes an edit detectable asmtime > epoch_ms). Those steps must become one commit point: write to a temp file, pin it, thenrenameinto place. A crash anywhere before the rename must leave no visible comment at all.Plus a crash test: interrupt between the steps and assert that no partial comment is observable.
Why it matters more here than it looks
local-fsis the adapter the contract is developed against, and the mtime pin is load-bearing for theimmutability check (
phase-outcome.mdread_allstep 3). A partial write does not just lose a comment— it can produce a false edit signal on a record that was never edited.
Source: dogfood retrospective 2026-08-07 (F5), deferred backlog.