v0.9.0
govctl v0.9.0
Added
- Added the first local loop workflow.
govctl loop start,show,resume,run,list,add,remove, andreplannow operate on persisted loop state under.govctl/loops/instead of writing execution trace into work item fields. - Added canonical loop IDs (
LOOP-YYYY-MM-DD-NNN), deterministic loop listing, lifecycle filters, and table/plain/json output for local loop state discovery. - Added work item dependencies through
depends_on, including display support inwork show/render output and validation for malformed, unknown, or cyclic dependencies. - Added dependency-aware loop planning. Loops compute an execution order from
depends_on, preserve existing item state where possible, and mark downstream items blocked when dependencies fail or cancel. - Added loop state and round schemas for execution evidence, summaries, verification evidence, and note candidates.
- Added non-blocking diagnostics for work items that still contain legacy inline execution-history entries, with guidance to move durable takeaways to notes and keep new execution trace in loop state.
Changed
- Work item execution history is no longer modeled as an editable field. New work items omit
content.journal; existing legacy entries still render correctly inwork showand generated work item output. - Loop scope mutation now uses
workas the editable field, keepswias the supported alias, and rejects legacywork_items/root_work_itemsfield names. loop runis specified as a local execution protocol that records and validates round evidence. It does not introduce a parallel resource CRUD model or a separate testing system.- CLI-visible command routing, file I/O, serialization, and scan paths now return coded
Diagnosticvalues where possible. Remaininganyhowboundaries are documented as transport or test-only. - Embedded skills, agent guidance, CLI help, and
describeoutput now direct execution trace to loop state and durable takeaways to notes. - Integration tests were converted from
include!-based splitting to normal Rust modules, and several over-split helper modules were folded back into their callers.
Removed
- Removed path-addressable work item journal operations.
journalcan no longer be fetched, added, edited, ticked, or removed as a work item field. - Removed support for legacy loop state keys
root_work_itemsandwork_items. - Removed legacy RFC/clause JSON storage compatibility from normal operation. Repositories that still contain
rfc.jsonor clause JSON files now fail withE0505and must be migrated with govctl<0.9before upgrading. - Removed RFC/clause JSON conversion from
govctl migrate. The command now upgrades TOML artifacts and schema metadata only.
Fixed
govctl migratenow treats the config version bump as part of the same transactional operation set as artifact rewrites, and rollback restores overwritten or deleted files if apply fails.govctl rfc supersedenow updates the source RFC, records the replacement, and rejects missing or invalid replacements with diagnostics.govctl clause deletenow refuses to delete clauses referenced by another artifact while preserving the existing draft-status and section-update behavior for safe deletions.refsedits now validate target existence and RFC/ADR reference hierarchy before writing, including indexedrefs[N]updates.- Acceptance-criteria ticking now matches category-prefixed patterns.
- Commit skill behavior now detects whether a repository is governed before running
govctlcommands, so non-governed repositories skip governance checks while governed repositories keep the full workflow.
Full Changelog: v0.8.5...v0.9.0