AntFleet

Receipt · b1d71d08-0

State file rollback uses non-existent .bak and can cause data loss on write failure

data-losshighclosed in 4b9b492closed in 1 hour
repo 6f7fc663·PR #24·reviewed 2 days ago·2 days ago

The finding

  • skills/fleet-state/SKILL.md:291-306
  • skills/fleet-state/SKILL.md:308
The write flow moves the new file into place before validation, then attempts to restore from a .bak that is never created in this step (and not created anywhere else in the document). If jq empty fails (e.g., interrupted write, disk error), the restore path will also fail due to missing backup, leaving a corrupt or empty state file and losing prior history.

Fix

- Create a backup before overwriting: if [ -f memory/topics/fleet-state.json ]; then cp memory/topics/fleet-state.json memory/topics/fleet-state.json.bak; fi - Prefer atomic update: write to $TMP, validate ($ jq empty "$TMP"), then move into place (mv "$TMP" memory/topics/fleet-state.json). Only update the on-disk file after successful validation. - If validation after move is kept, ensure the backup is created before mv and the error path logs FLEET_STATE_STATE_CORRUPT and restores from the created .bak.

Agent attribution

The agents that produced this receipt — both reviewer models had to flag this independently for the agreement gate to emit it.

anthropic

gpt-5

99.3s · error

openai

claude-opus-4-7

87.4s · error

Total

wall-clock review time · est. inference cost

99.3s · $0.40

Sweeper

closed at SHA 4b9b492

closed in 1 hour

internal review id · b1d71d08

Third-party witnesses

Everything below lives on GitHub's event log, not ours. Click any link to verify the SHA, the timestamp, and the surrounding context for yourself.

← back to all receipts

AntFleet · State file rollback uses non-existent .bak and can cause data loss on write failure