Skip to content

v4.0.1 — fix #17 checkpoint data-loss

Latest

Choose a tag to compare

@jnuyens jnuyens released this 28 Jun 00:46

Fixed

  • Periodic-checkpoint hook destroyed HANDOFF.json and created .planning/ where it should not (#17). writeCheckpoint() in bin/lib/checkpoint.cjs had no guards: it created .planning/ when absent (so the PostToolUse hook spawned a .planning/HANDOFF.json in directories that are not GSD projects) and wrote a phase:null/task:null skeleton even with nothing to resume (so it silently blanked a hand-authored HANDOFF.json in an idle GSD project). Added two early-return guards before any filesystem mutation: no-op when .planning/ does not already exist, and no-op for any non-manual-pause source when both phase and task are null. /gsd:pause-work still writes via the manual-pause bypass; active phase/task work still checkpoints. Regression test tests/checkpoint-write-guards.test.cjs (8 cases).

Added

  • Pre-release CI gate for the #17 regression. The checkpoint write-guards test now runs in CI (.github/workflows/check-drift.yml, handoff-schema job) on every push, so the data-loss failure mode fails the build before any tag. New RELEASING.md documents the pre-release checklist with CI as the source-of-truth gate.

Changed

  • README polish: install flow moved ahead of "What's New"; "Added features beyond upstream" descriptions tightened for scannability; intro reworded ("evolution" of GSD, not "packaging"); redundant "Based on" header dropped (covered by the Upstream projects section).