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
feat(store,api): hard-delete a feature alongside cancel — the tombstone edge (v0.23.0) (#55)
Follow-up to #47: that shipped cancel-with-audit (close + `cancelled` lane); this adds
the hard-delete sibling the issue's "and/or" also called for, so the operator chooses
per-case instead of the maintainer baking one in.
• store.delete_feature(fid, reason) → `br delete --reason "deleted: …"` — a tombstone
in the JSONL (recoverable), run THROUGH the board so board ↔ JSONL stay in step
(vs the raw `br` reach-around the issue warned desyncs the board). Refuses via `br`'s
non-zero exit when the feature has dependents (deleting would orphan them) — cancel
or re-point first. Returns the pre-delete snapshot for the API echo.
• DELETE /features/{fid} (the route the issue proposed; reason optional, body or none).
cancel stays the recommended default (visible, reopenable audit lane); delete is for a
feature that should leave no trace. Verified `br delete` tombstones + the dependent
guard against real `br` 0.1.23; unit-tested both methods + the route.
Ref #47
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments