Fixes for the task-mutation and display gaps reported while dogfooding (fixture-site) ahead of open-sourcing. All five are CLI-layer issues.
- Fix
lash add --idsilently discarded (#24)- Write
@id: <slug>annotation under the created task - Success message and index reflect the explicit ID
- Reject invalid slugs loudly
- Tests: annotation written, task resolvable via
show <file>#<id>
- Write
- Validate
lash add --depends-onrefs at add time (#27)- Unresolvable ref β hard error by default (no file written)
-
--allow-forward-refdowngrades to warning for create-in-any-order - Tests: dangling ref rejected, forward-ref flag allows with warning
- Add
lash waivecommand (#23)- Mirrors
complete: fuzzy resolver,--dry-run,--cascade, JSON - Writes
- [-]marker and reindexes atomically - Optional
--reason "<text>"records rationale - Tests: status transition, cascade, dry-run, already-waived error
- Mirrors
-
lash showdisplays full task record (#26)-
@agent-note,@depends-on(with each dependency's current status) - One-line-per-child summary with checkbox states
-
--shortflag preserves current terse output - Tests: full output fields, dependency status,
--short
-
- Add
lash updatecommand (#25)-
--titlewith ID stability (auto-pin@id:for derived-slug tasks) -
--add-label/--remove-label -
--estimate,--owner -
--agent-note(replace) /--append-agent-note -
--add-depends-on/--remove-depends-on, validated against index - Tests: each field, ID stability on retitle, dangling-dep rejection
-
- Fix
--append-agent-noteduplicating@agent-notewhen body text precedes the note (#74)- Annotation lookup scans the task's whole body (mirrors the parser's orphaned-annotation merge)
- Tests: append/replace past body text, no reach into next task, lint-clean round trip