Changelog
All notable changes to docket are documented in this file.
The format is based on Keep a Changelog, and the project adheres to Semantic Versioning.
Each ## [VERSION] section is consumed verbatim by the release workflow as the
GitHub Release body for the matching tag — keep entries written for that audience.
Unreleased
0.0.4 - 2026-05-17
Backlog and task-kind release. Introduces a dedicated backlog status so tasks can be parked without polluting the open queue, adds a first-class kind field for distinguishing features from bugs/chores, and lets docket launch straight into the TUI when invoked bare. Also lands a batch of TUI polish: fewer error states, better edit-form ergonomics, and wider test coverage.
Added
docket backlog— new top-level command that lists backlog tasks;docket backlog addparks a new task directly in the backlog (T-10).backlogstatus across the model —docket add --status backlog,docket status <id> backlog, anddocket ls --status backlogall recognize the new state; backlog tasks are excluded from defaultls/readyoutput (T-10).kindfield on tasks — every task now carries a kind (defaults tofeature; known kinds includefeature,bug,chore). Propagated throughadd,update,show,ls, and the TUI list/detail/edit views. Schema migration adds the column on existing databases (T-9).- Bare
docketinvocation launches the TUI — runningdocketwith no subcommand now opens the interactive UI instead of printing help (T-16).
Changed
- TUI edit screen overhauled — improved field navigation, validation feedback, and reduced error states when saving partial edits (T-9).
docketplugin description expanded so the marketplace listing better reflects current capabilities (T-11).
Tests
- Integration coverage for
backlogadd/list/status transitions,kinddefaulting and explicit values across CLI verbs, bare-invocation TUI launch, andupdateflows for the new fields.
0.0.3 - 2026-05-17
The TUI release. Lands an interactive docket tui for navigating, mutating, and starting tasks without leaving the keyboard, plus a docket update subcommand for editing tasks in place. The CLI core was extracted into modules along the way (cli/, db/, model/, prompts/, tui/) so the TUI and CLI share a single data layer.
Added
docket tui— interactive terminal UI built on ratatui/crossterm. List/detail panes, filters, help overlay, chord-driven keybindings via a scope-based command registry. Keys:scycles status (open → in_progress → done),dmarks done,xdeletes (with confirm modal),n/eopen Add/Edit forms,Tab/Shift+Tabcycle fields,Ctrl+Ssaves,Escon dirty form prompts to discard,S/Ctrl+Sstart the cursor task (tmux variant for the latter), live per-field validation with placeholder hints.docket update <id>— partial-field updates for title, body, acceptance, deps, priority, and group. Requires at least one field; lazily creates the group if missing; replaces deps exactly; bumpsupdated_at. Covered by integration tests for help, flag presence, deps replacement, group creation, missing id, and multi-field updates.docket start --tmuxupgraded — now creates and attaches a fresh tmux session, spawning a terminal if invoked outside of tmux (T-4). The 0.0.2 implementation only opened a window inside an existing session; this closes the gap for "I just want to start a task in a new pane from anywhere."
Changed
docket addaccepts hyphen-prefixed values (e.g.--body "- bullet") without clap mistaking them for flags.src/main.rsmodularized:cli/(one file per subcommand handler + dispatcher),db/(schema, connection, read-side queries, mutation helpers),model/(Task, Group, parse helpers),prompts/,tui/. The single 750-linemain.rsis now a ten-line entry point.
Tests
- End-to-end tests for
add/update/startagainst the built binary; unit tests pinparse_id,parse_deps,deps_from_db.
0.0.2 - 2026-05-09
The handoff release. Closes the loop between picking a task and handing it to an agent — docket start assembles a task's body, acceptance, and the embedded tdd-pursuit discipline into a single ready-to-pipe brief, optionally delivered into a fresh tmux window. Also lands the Claude Code plugin and stands up tag-driven release automation so future versions ship from a two-command flow.
Added
docket start <id>— assembles# Task T-N: <title>,## Body,## Acceptance, and the verbatimtdd-pursuittemplate into a single stdout blob. Composes with pipes/redirects:docket start T-N | claude,docket start T-N | pbcopy,docket start T-N > /tmp/p.md. Transitions the task toin_progressand bumpsupdated_at. Refusesdonetasks with a hint atdocket status. Accepts bothT-3and3ID forms.docket start --tmux— opens the brief in a fresh tmux window, delivering the prompt to a new shell ready for an agent invocation.- Claude Code plugin (
/docket:create-task,/docket:start T-N) — exposes the CLI verbs as slash commands inside an active session. Installable via/plugin marketplace add parzival1l/docketthen/plugin install docket@docket. - Hermetic integration test suite for
docket start— 7 tests covering each acceptance behavior end-to-end against the built binary.
Changed
- Documentation reorganized into
docs/—CHANGELOG.md,RESEARCH.md,RESEARCH-STORAGE.md,ROADMAP.mdmoved out of the repo root. OnlyREADME.mdandLICENSEremain at the top level. - Release pipeline now reads release notes from
docs/CHANGELOG.md.
Release automation
release.toml—cargo-releaseconfiguration that bumpsCargo.toml+Cargo.lock, splits theUnreleasedsection in CHANGELOG into a new dated version section, and commits asrelease: <version>without tagging or pushing..github/workflows/auto-tag.yml— fires on push tomain, reads the version fromCargo.toml, creates and pushes the matchingv<version>tag if absent, then dispatchesrelease.yml. Cuts the maintainer flow to two commands:cargo release X.Y.Z --executethengit push origin main.
0.0.1 - 2026-05-09
Initial release. v1 CLI shell with embedded prompts and bundled SQLite store.
Added
- CLI verbs:
init,add,ls,show,ready,blocked,status,done,rm,prompt,group {new,ls,show,close}. - Per-repo SQLite store at
.docket/db.sqlite(auto-gitignored oninit). - Two tables:
tasks(with first-classacceptanceanddepsfields) andgroups. - Computed
readyqueue andblockeddebug view from unmet deps. - Four prompt templates embedded at build time via
include_str!:tdd-pursuit,create-task,commit,pr. --jsonoutput on every list/show command for agent consumption.- Release pipeline: tag-triggered cross-builds for
{macOS, Linux} × {x86_64, aarch64}, GitHub Release with checksums,install.shforcurl | bashinstall.
Notes
- Versioning starts at
0.0.xdeliberately. Every shipped item bumps the patch (0.0.2, 0.0.3, …). The cut to0.1.0is maintainer judgment, not a feature checklist — it happens when the loop feels solid for daily use.docket startlanding is the most likely trigger but is not by itself sufficient.