Skip to content

Withhold Delete Task for done tasks, even in active Changes - #43

Merged
VeryComplexAndLongName merged 2 commits into
mainfrom
feat/task-done-lock
Aug 18, 2026
Merged

VeryComplexAndLongName merged 2 commits into
mainfrom
feat/task-done-lock

Conversation

@VeryComplexAndLongName

Copy link
Copy Markdown
Owner

Summary

  • A task marked done (- [x]) no longer offers "Delete Task" in its context menu in active changes — matching the guard already in place for archived changes (tasks-tree-expand). A completed checklist line records that work happened; deleting it throws that record away.
  • New openspec-ui.activeTaskDone contextValue, distinct from openspec-ui.activeTask; the existing package.json menu when-clause needed no change since it already only matches openspec-ui.activeTask.
  • Command itself refuses to delete a done task even if invoked another way, not just menu-gated (same fail-closed pattern as the existing archived-item guard).
  • Stacked on Archive three shipped OpenSpec changes #42 (archives three already-shipped changes so this one's spec delta has a canonical base to modify against).

Test plan

  • npm run verify (typecheck/lint/english-policy/test) passes repo-wide
  • New unit tests: done-active-task contextValue, delete-command no-op for done tasks
  • Real Extension Host run (npm run test:integration) — 6/6 passing
  • Live readTaskChecklist run against a real temp tasks.md confirming done-state parsing
  • openspec change validate --strict task-done-lock passes

🤖 Generated with Claude Code

VeryComplexAndLongName and others added 2 commits August 17, 2026 17:24
…trap-snippets, template-catalog-v2)

All three merged with passing CI and every tasks.md checkbox already
checked, but were never run through `openspec archive`, so their
requirements never landed in the canonical specs. Doing this now so
upcoming changes can write valid deltas against the specs they modify.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
A completed checklist line records that work happened; deleting it
throws that record away with no equivalent safeguard to the one
archived changes already get. Extends the existing archived/active
contextValue gating (tasks-tree-expand) with a done-state distinction,
both in the tree (menu withheld) and in the command itself (fail-closed
guard, not just UI-gated).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@VeryComplexAndLongName
VeryComplexAndLongName merged commit a3fd872 into main Aug 18, 2026
6 checks passed
@VeryComplexAndLongName
VeryComplexAndLongName deleted the feat/task-done-lock branch August 18, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant