v0.7.0
·
386 commits
to develop
since this release
What's Changed
- ci: auto-bump Homebrew tap formula on each release by @fulsomenko in https://github.com/fulsomenko/kanban/pull/278
- KAN-469 refactor(web): collapse installation methods into single code block by @fulsomenko in https://github.com/fulsomenko/kanban/pull/279
- KAN-451 feat(cli): add init subcommand to decouple storage bootstrapping from board create by @fulsomenko in https://github.com/fulsomenko/kanban/pull/280
- KAN-466 chore(mcp): pass gitRev to nix build so -V includes commit hash by @fulsomenko in https://github.com/fulsomenko/kanban/pull/277
- KAN-191 refactor(service): inverse-command undo/redo, no more snapshot replay by @fulsomenko in https://github.com/fulsomenko/kanban/pull/281
- KAN-480 chore: remove redundant git MCP server by @fulsomenko in https://github.com/fulsomenko/kanban/pull/283
- KAN-402 docs: add CI, AUR, nixpkgs, and Homebrew tap badges to README by @fulsomenko in https://github.com/fulsomenko/kanban/pull/284
- KAN-457 docs(mcp): align README schemas with name-accepting fields by @fulsomenko in https://github.com/fulsomenko/kanban/pull/285
- KAN-414 docs: welcome bug fixes in Areas for Contribution by @fulsomenko in https://github.com/fulsomenko/kanban/pull/286
- KAN-504 feat: expose card parent/child relations through CLI and MCP by @fulsomenko in https://github.com/fulsomenko/kanban/pull/287
- KAN-522 feat: refuse-on-future-version, writer-stamp metadata, F12 diagnostics by @fulsomenko in https://github.com/fulsomenko/kanban/pull/288
- KAN-530 feat(persistence-json): rename JSON graph bucket parent_child to spawns (v7) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/289
- KAN-520 fix(tui): restore card-detail enter and backspace navigation across parent/child boxes by @fulsomenko in https://github.com/fulsomenko/kanban/pull/290
- KAN-534 fix(tui): resolve active card by id after external file reload by @fulsomenko in https://github.com/fulsomenko/kanban/pull/291
- KAN-482 fix(cli): drop implicit "My Board" board from kanban init by @fulsomenko in https://github.com/fulsomenko/kanban/pull/292
- KAN-538 chore(choco): add packaging/chocolatey/ source files by @fulsomenko in https://github.com/fulsomenko/kanban/pull/293
- KAN-539 ci(release): add build-windows job producing kanban + kanban-mcp archive by @fulsomenko in https://github.com/fulsomenko/kanban/pull/294
- KAN-541 ci(release): add publish-chocolatey job (pack + smoke install + push) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/295
- KAN-545 chore(choco): cosmetic polish — iconUrl, VERIFICATION wording, README clarity by @fulsomenko in https://github.com/fulsomenko/kanban/pull/296
- KAN-550 chore: ignore .claude/ (Claude Code CLI scratch + per-machine settings) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/297
- KAN-551 fix(tui): retain card selection after toggle-completion in kanban view by @fulsomenko in https://github.com/fulsomenko/kanban/pull/307
- KAN-175 test(service): add data integrity integration tests by @fulsomenko in https://github.com/fulsomenko/kanban/pull/305
- KAN-250 fix(persistence-sqlite): validate required string fields in SQLite write path by @fulsomenko in https://github.com/fulsomenko/kanban/pull/304
- KAN-437 fix(tui): refresh task list before selecting moved card by @fulsomenko in https://github.com/fulsomenko/kanban/pull/303
- KAN-174 feat(tui): surface save errors to user via UI banner by @fulsomenko in https://github.com/fulsomenko/kanban/pull/306
- KAN-557 refactor(tui): extract RadioList and SprintPicker for reuse by @fulsomenko in https://github.com/fulsomenko/kanban/pull/309
- KAN-249 refactor(domain): remove unused DomainError not_found helpers by @fulsomenko in https://github.com/fulsomenko/kanban/pull/310
- KAN-556 feat: optional sprint assignment at card creation by @fulsomenko in https://github.com/fulsomenko/kanban/pull/311
- KAN-580 refactor(domain): accept impl Into for unconditional-store params by @fulsomenko in https://github.com/fulsomenko/kanban/pull/313
- KAN-643 fix(domain): accept YYYY-MM-DD in external-editor due_date field by @fulsomenko in https://github.com/fulsomenko/kanban/pull/314
- KAN-644 feat: add due-date sort field across TUI, CLI, and MCP by @fulsomenko in https://github.com/fulsomenko/kanban/pull/315
- KAN-646 refactor(domain): extract filter+sort engine into query::filter_sort by @fulsomenko in https://github.com/fulsomenko/kanban/pull/316
- KAN-656 ci(release): read chocolatey digest from gh release API by @fulsomenko in https://github.com/fulsomenko/kanban/pull/317
- KAN-657 docs(chocolatey): add recovery runbook and idempotent push by @fulsomenko in https://github.com/fulsomenko/kanban/pull/318
- KAN-655 refactor(domain): typed SprintBoardMismatch + negative-path tests for card create --assign by @fulsomenko in https://github.com/fulsomenko/kanban/pull/320
- KAN-650 fix(persistence-json): mirror .v{N}.backup writes in sync migration path by @fulsomenko in https://github.com/fulsomenko/kanban/pull/321
- KAN-660 fix(persistence-json): cover V1/V2 sources in pre-V7 backup wrap by @fulsomenko in https://github.com/fulsomenko/kanban/pull/322
- KAN-659 fix(domain): capitalize entity tags in KanbanError::not_found by @fulsomenko in https://github.com/fulsomenko/kanban/pull/323
- KAN-649 fix(ci): make release.yml idempotent on partial-failure re-runs by @fulsomenko in https://github.com/fulsomenko/kanban/pull/324
- KAN-668 fix(release-tooling): make validate-release Step 5 actually validate by @fulsomenko in https://github.com/fulsomenko/kanban/pull/325
- chore: update kanban todo by @fulsomenko in https://github.com/fulsomenko/kanban/pull/326
- release 0.7.0 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/308
- hotfix: revert KAN-668 Step 5 to unblock 0.7.0 release by @fulsomenko in https://github.com/fulsomenko/kanban/pull/327
Full Changelog: https://github.com/fulsomenko/kanban/compare/v0.6.0...v0.7.0