Releases: kanban-rs/kanban
Releases · kanban-rs/kanban
Release list
v0.9.0
What's Changed
- chore: sync develop with master after v0.8.0 release by @fulsomenko in #526
- fix(release): add workflow_dispatch recovery path for build-windows/publish-chocolatey by @fulsomenko in #527
- fix(release): always() guard for build-windows/publish-chocolatey skip-propagation by @fulsomenko in #528
- docs(readme): add Chocolatey version badge by @fulsomenko in #529
- ci(release): silence false-positive SC2016 in .SRCINFO step by @fulsomenko in #532
- ci(release): publish kanban to winget via winget-releaser by @fulsomenko in #530
- fix(api): enable schemars chrono04 feature for JsonSchema derives by @fulsomenko in #533
- KAN-1046 feat(server): configurable bind address via --addr, KANBAN_ADDR, and server_addr by @fulsomenko in #531
- fix(packaging): add required schema header to winget reference manifests by @fulsomenko in #534
- fix: repair CHANGELOG.md and the aggregate-changelog title-placement bug by @fulsomenko in #536
- fix(persistence): ignore file watch events with no content change by @fulsomenko in #538
- fix: group per-release Other Changes under one changelog header by @fulsomenko in #537
- chore: merge master into develop, resolve CHANGELOG.md conflict by @fulsomenko in #541
- fix(tui): stop tests from touching the real kanban config by @fulsomenko in #544
- KAN-1044 feat(view): extract renderer-agnostic kanban-view crate from kanban-tui by @fulsomenko in #539
- Update project description in README.md by @fulsomenko in #545
- refactor(view): split model.rs into submodules, drop deps-allowlist compile-lock by @fulsomenko in #546
- KAN-1086 feat(domain,view): foundation for list search/filter/sort parity by @fulsomenko in #547
- KAN-1089 feat(view,domain,tui): board list search/scroll/multi-select parity with the card list by @fulsomenko in #549
- refactor(persistence-json): give JsonDataStore a real single-lock with_transaction override by @fulsomenko in #550
- refactor(cli): create empty storage files through make_backend instead of PersistenceStore::save by @fulsomenko in #551
- KAN-1093 feat(view,tui): column list search/scroll parity with the card list by @fulsomenko in #552
- KAN-1115 feat(domain,persistence,service,api,cli,mcp): configurable completion columns by @fulsomenko in #558
- docs: frame completion columns as a definition, not a retarget step by @fulsomenko in #559
- chore: sync develop with master after v0.8.1 release by @fulsomenko in #560
- KAN-1070 refactor(persistence-json): route JsonDataStore's load/flush onto InMemoryStore's inherent snapshot methods by @fulsomenko in #554
- KAN-1106 refactor(service): narrow validate_and_load_store to validate_store_readable with a cheap backend probe by @fulsomenko in #553
- KAN-1067 feat(persistence-sqlite): ambient BEGIN/COMMIT/ROLLBACK transaction for SqliteBackend::with_transaction by @fulsomenko in #555
- KAN-1127 refactor(persistence-sqlite): close the two paths that bypass the ambient transaction by @fulsomenko in #561
- KAN-1110 refactor(backend): delete with_transaction's generic default and override it per backend by @fulsomenko in #563
- KAN-1105 feat(service,persistence-sqlite): storage adapter for cross-format moves using atomic reads and transactional writes by @fulsomenko in #564
- KAN-1132 feat(cli): board create --with-default-columns seeds columns and completion by @fulsomenko in #566
- KAN-1134 feat(core): -V reports unstable for non-release builds by @fulsomenko in #567
- KAN-1135 feat(domain): column default_status and the column-move promotion rule by @fulsomenko in #568
- KAN-1136 feat(persistence-json): V13 envelope makes column default_status durable by @fulsomenko in #569
- KAN-1137 feat(persistence-sqlite): schema v7 adds columns.default_status by @fulsomenko in #570
- KAN-1138 feat(api,service): expose column default_status through DTOs and the service layer by @fulsomenko in #571
- KAN-1139 feat(cli,mcp): set and clear a column's default_status by @fulsomenko in #572
- KAN-1140 feat(tui): view and edit a column's default_status by @fulsomenko in #573
- KAN-1142 fix(cli,tui): seed template columns with their default card status by @fulsomenko in #574
- KAN-1174 feat(domain): derive completion columns from column default_status by @fulsomenko in #575
- KAN-1154 feat(persistence-json): V14 derives column default_status from completion_column_ids by @fulsomenko in #576
- KAN-1157 feat(persistence-sqlite): v8 derives columns.default_status from board_completion_columns by @fulsomenko in #577
- KAN-1176 feat(domain): keep column default_status in step with completion columns by @fulsomenko in #578
- KAN-1163 refactor(domain): repoint card lifecycle completion checks onto derived columns by @fulsomenko in #579
- KAN-1159 refactor(api): drop completion_column_ids from the board DTOs by @fulsomenko in #580
- KAN-1168 refactor(cli,mcp,tui): remove direct completion-column configuration surfaces by @fulsomenko in #581
- KAN-1153 refactor(domain,api,service,persistence-sqlite,tui): delete completion_column_ids and its storage by @fulsomenko in #582
- KAN-1081 refactor(tui): split prepare_frame into reload_model (I/O) and a pure prepare_frame by @fulsomenko in #583
- KAN-1081 fix(tui): reload the model after undo, redo and a storage swap by @fulsomenko in #584
- KAN-1205 perf(tui): reload the model once per animation tick by @fulsomenko in #585
- KAN-1207 KAN-1217 perf(service,cli): resolve archived-card markers by id instead of scanning by @fulsomenko in #587
- KAN-1211 feat(domain): the Prefix entity and pure effective-prefix resolution by @fulsomenko in #586
- KAN-1209 perf(persistence-sqlite): composite indexes for owner-scoped card-number lookup by @fulsomenko in #588
- KAN-1210 feat(domain,persistence-sqlite,persistence-json): defaulted DataStore primitives for owner-scoped card lookup by @fulsomenko in #589
- KAN-1212/1213 feat(persistence-sqlite,persistence-json): prefixes as shared namespaces, backfilled identically on both backends by @fulsomenko in #592
- fix(domain,backend-memory,persistence-json): stop the first save erasing the V15 prefixes backfill by @fulsomenko in #593
- KAN-1244 feat(domain,backend-memory,persistence-sqlite,persistence-json): the prefix DataStore surface across all backends by @fulsomenko in #594
- KAN-1246 feat(domain,persistence-sqlite,persistence-json): Card stores the prefix it was minted under by @fulsomenko in #595
- KAN-1247 feat(domain,service): allocate card numbers from the prefix row, not from the board by @fulsomenko in #596
- KAN-1215 perf(domain,service,persistence-sqlite): resolve card identifiers by (prefix, card_number) by @fulsomenko in #597
- KAN-1248 fix(domain,persistence-sqlite): store prefix casing as configured, compare case-insensitively by @fulsomenko in #598
- fix(demo): correct demo tape for current TUI and CLI behaviour by @fulsomenko in #548
- KAN-1214 feat(domain,persistence-sqlite,persistence-json): allocate sprint numbers from the shared prefix row by @fulsomenko in #600
- KAN-1251 refactor(service,domain): allocate card numbers inside the command transaction by @fulsomenko in #601
- KAN-1252 refactor(domain): Card::new takes a board id instead of &mut Board by @fulsomenko in #602
- KAN-1253 fix(domain): CreateSubcardCommand must respect the column WIP limit by @fulsomenko in #603
- fix(service): name --column ...
v0.8.1
What's Changed
- docs: repair CHANGELOG.md structure on master to match develop by @fulsomenko in https://github.com/fulsomenko/kanban/pull/543
- chore: release v0.8.1 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/540
Full Changelog: https://github.com/fulsomenko/kanban/compare/v0.8.0...v0.8.1
v0.8.0
What's Changed
- KAN-675 docs: advertise nixpkgs 26.05 stable in README and web install by @fulsomenko in https://github.com/fulsomenko/kanban/pull/333
- KAN-728 feat(core): define ClientId newtype by @fulsomenko in https://github.com/fulsomenko/kanban/pull/342
- KAN-732 feat(core): add HealthStatus enum and HealthChecker trait by @fulsomenko in https://github.com/fulsomenko/kanban/pull/343
- KAN-742 chore(workspace): add kanban-api, kanban-server, kanban-http-backend crate stubs by @fulsomenko in https://github.com/fulsomenko/kanban/pull/341
- KAN-752 chore(http-backend): drop tokio-tungstenite; transport is SSE not WebSocket by @fulsomenko in https://github.com/fulsomenko/kanban/pull/348
- KAN-712 feat(service): add kanban-service::api module with ApiError and ChangeEventFrame by @fulsomenko in https://github.com/fulsomenko/kanban/pull/347
- KAN-729 feat(domain): wrap commands in CommandBatch with correlation_id, issued_by, and AppType by @fulsomenko in https://github.com/fulsomenko/kanban/pull/346
- KAN-753 chore(workspace): remove empty kanban-http-backend stub crate by @fulsomenko in https://github.com/fulsomenko/kanban/pull/349
- KAN-755 chore(packaging): move AUR sources into packaging/aur/ (sibling of chocolatey) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/351
- KAN-713 feat(service): board/column v1 API DTO surface + foundation by @fulsomenko in https://github.com/fulsomenko/kanban/pull/350
- KAN-762 refactor: decompose six oversized modules into focused submodules by @fulsomenko in https://github.com/fulsomenko/kanban/pull/352
- KAN-769 feat(service): v1 API DTO surface + unified entity construction factory by @fulsomenko in https://github.com/fulsomenko/kanban/pull/353
- Update README to clarify undo/redo functionality by @fulsomenko in https://github.com/fulsomenko/kanban/pull/354
- Clarify back navigation shortcut in README by @fulsomenko in https://github.com/fulsomenko/kanban/pull/355
- Update checklist item for attachments in README by @fulsomenko in https://github.com/fulsomenko/kanban/pull/356
- Add search feature to the project roadmap by @fulsomenko in https://github.com/fulsomenko/kanban/pull/357
- KAN-822 feat(tui): board delete from the TUI (closes #359) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/362
- KAN-828 feat(domain): shared archival abstraction + KanbanError::unsupported by @fulsomenko in https://github.com/fulsomenko/kanban/pull/363
- KAN-829 feat(domain): first-class board_id on ArchivedCard (B1) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/364
- KAN-830 feat(domain): additive board-scoped archived-card query (B2) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/365
- KAN-831/832 feat(persistence): board_id backfill migrations — JSON V7→V8 (B3) + SQLite 2→3 (B4) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/366
- KAN-833 feat(service): board-scoped archived-card queries + cascade orphan fix (B5) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/367
- KAN-843 feat(service): ArchivedCardResponse v1 DTO with board_id (B6) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/369
- KAN-848 fix(domain): deterministic board ordering (fixes #358) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/374
- KAN-849 fix(tui): set task priority with
pfrom the card list (fixes #360) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/375 - KAN-850 fix(tui): declutter footer by dropping
panel Nhints (fixes #361) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/376 - KAN-855 feat(domain): generalize archival to Archived<T,C> + migrate ArchivedCard [F1b] by @fulsomenko in https://github.com/fulsomenko/kanban/pull/378
- KAN-834 feat(domain): first-class ArchivedBoard = Archived + Snapshot.archived_boards [C1] by @fulsomenko in https://github.com/fulsomenko/kanban/pull/377
- KAN-835 feat(domain): board archive/restore collection-move commands + store [C2] by @fulsomenko in https://github.com/fulsomenko/kanban/pull/380
- KAN-836/844 feat(service): board archive/restore/list-archived + delete + ArchivedBoardResponse DTO [C3a+C3d] by @fulsomenko in https://github.com/fulsomenko/kanban/pull/381
- KAN-837 feat(service): forward archived-board methods through JsonDataStore [C4] by @fulsomenko in https://github.com/fulsomenko/kanban/pull/382
- KAN-845 feat(persistence-sqlite): durable pre-migration backup before irreversible schema upgrade by @fulsomenko in https://github.com/fulsomenko/kanban/pull/370
- KAN-856 test(service): JSON V7→V8 migration coexists with archived boards by @fulsomenko in https://github.com/fulsomenko/kanban/pull/383
- KAN-838 feat(persistence-sqlite): board_archival marker table + schema 3→4 [C5] by @fulsomenko in https://github.com/fulsomenko/kanban/pull/384
- KAN-857 feat(persistence-json): bump save format V8→V9 for archived-board capability by @fulsomenko in https://github.com/fulsomenko/kanban/pull/385
- KAN-842 refactor(service): hide archived-board descendants from live cross-board reads [C3b] by @fulsomenko in https://github.com/fulsomenko/kanban/pull/386
- KAN-860 fix(persistence-sqlite): carry archived_boards through snapshot + apply (data loss) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/387
- KAN-861 feat(service): view archived-board constituents — board-scoped card reads + relations (C10a) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/388
- KAN-863 fix(persistence-sqlite): board restore data-loss — restore no longer cascades the subtree away by @fulsomenko in https://github.com/fulsomenko/kanban/pull/389
- KAN-870 refactor(domain): archive cards by reference — card stays live, get_card unfiltered (F1) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/391
- KAN-871 test(service): pin JSON seam round-trips the reference archival model (F2) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/392
- KAN-872 refactor(domain): archived-card sprint mutations edit the live card (F3a) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/393
- KAN-879 feat(service): CardResponse.archived_at additive DTO consolidation (D1) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/394
- KAN-880 feat(service): BoardResponse.archived_at additive DTO consolidation (D2) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/395
- KAN-884 refactor(domain): collapse Archived to a pure marker (F3b) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/396
- KAN-874 feat(persistence): JSON V9->V10 archival-reference migration (M1) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/397
- KAN-873 test(service): cross-backend archival contract + edit-archived roundtrip (F4) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/398
- KAN-889 feat(domain/service): three-state archived selector on the card list (F7) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/399
- KAN-881 feat(cli): unify card list with a three-state archived filter (I1) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/400
- KAN-882 feat(mcp): merge card list tools into one list_cards with archived filter (I2) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/401
- KAN-886 feat(cli): board archive/restore/delete + unified list with archived filter (I4) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/402
- KAN-887 feat(mcp): board archive/restore + unified list_boards with archived filter (I5) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/403
- KAN-888 feat(tui): archived-boards view + archive/restore/delete affordances (I6) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/404
- KAN-894 fix(cli,mcp): board delete-archived/restore resolves archived-only (data-loss fix) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/405
- KAN-898/899/908 fix(domain): align clear_sprint_from_cards + guard delete_board across backends (regression) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/406
- KAN-895 feat(domain): export/import carries archived boards + orphan-safe archived cards (regression) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/407
- KAN-891 feat(tui): archived-board full interaction parity + view fixes (regression cluster) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/408
- KAN-900 fix: archival regression tail fixes (edge-guard, dead-code, docs, pagination, restore hint, migration test) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/409
- chore(changeset): unified reference-marker archival for v0.8.0 release by @fulsomenko in https://github.com/fulsomenko/kanban/pull/410
- KAN-911 feat(tui): archived boards are ordinary boards — unify active board by id (LSP) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/412
- KAN-912 chore(choco): drop tools/LICENSE.txt and VERIFICATION.txt for download-only package by @fulsomenko in https://github.com/fulsomenko/kanban/pull/413
- KAN-924 feat(domain): filter-aware DataStore read methods with loud floor by @fulsomenko in https://github.com/fulsomenko/kanban/pull/415
- KAN-917 feat(domain): BoardListFilter carrying ArchivedFilter by @fulsomenko in https://github.com/fulsomenko/kanban/pull/416
- KAN-925 feat(persistence-sqlite): 3-state archived clause on filtered card reads by @fulsomenko in https://github.com/fulsomenko/kanban/pull/417
- KAN-918 feat(service): list_boards(filter) gather mirroring filter_cards by @fulsomenko in https://github.com/fulsomenko/kanban/pull/418
- KAN-926 feat(domain): 3-state archived predicate on in-memory filtered card reads + delegator forwarding by @fulsomenko in https://github.com/fulsomenko/kanban/pull/419
- KAN-919 refactor(service): consolidate BoardResponse to one shape + archived_at by @fulsomenko in https://github.com/fulsomenko/kanban/pull/420
- KAN-931 refactor(tui): unify card collection + archived-id set, drop get_card_by_id re-join by @fulsomenko in https://github.com/fulsomenko/ka...
v0.7.2
What's Changed
- KAN-674 ci(release): escape $asset variable in chocolatey digest read step by @fulsomenko in https://github.com/fulsomenko/kanban/pull/330
- release 0.7.2 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/331
Full Changelog: https://github.com/fulsomenko/kanban/compare/v0.7.1...v0.7.2
v0.7.1
What's Changed
- KAN-667 ci(release): surface chocolatey publish failure with warning annotation by @fulsomenko in https://github.com/fulsomenko/kanban/pull/328
- release 0.7.1 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/329
Full Changelog: https://github.com/fulsomenko/kanban/compare/v0.7.0...v0.7.1
v0.7.0
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
v0.6.0
What's Changed
- editor/improve-robustness by @amanda-amy-frost in https://github.com/fulsomenko/kanban/pull/255
- KAN-323 fix(cli): require existing file for all subcommands, init on no-subcommand path by @fulsomenko in https://github.com/fulsomenko/kanban/pull/271
- KAN-328 fix(tui): show toast when toggling sprint filter without active sprint by @fulsomenko in https://github.com/fulsomenko/kanban/pull/272
- KAN-455 fix(tui): scroll board edit and filter popup lists to keep selection visible by @fulsomenko in https://github.com/fulsomenko/kanban/pull/273
- chore: update kanban todo by @fulsomenko in https://github.com/fulsomenko/kanban/pull/274
- KAN-400 feat(workspace): accept entity names everywhere a UUID was required by @fulsomenko in https://github.com/fulsomenko/kanban/pull/275
- Release 0.6.0 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/276
Full Changelog: https://github.com/fulsomenko/kanban/compare/v0.5.1...v0.6.0
v0.5.1
What's Changed
- KAN-449 test(tui): make apply_config_edit non-default-content test sandbox-safe by @fulsomenko in https://github.com/fulsomenko/kanban/pull/269
- Hotfix: KAN-449 test(tui): make apply_config_edit non-default-content test sa… by @fulsomenko in https://github.com/fulsomenko/kanban/pull/270
Full Changelog: https://github.com/fulsomenko/kanban/compare/v0.5.0...v0.5.1
v0.5.0
What's Changed
- KAN-397/ci-wire-aur-publish-into-release-workflow by @fulsomenko in https://github.com/fulsomenko/kanban/pull/243
- fix(demo): use card move with column-id in Beat 9 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/244
- KAN-406/sprint-assignment-dialog-group-sprints-by-status-with-completed-sprints-in-separate-section by @fulsomenko in https://github.com/fulsomenko/kanban/pull/245
- chore: track PR #247 follow-ups in kanban roadmap by @fulsomenko in https://github.com/fulsomenko/kanban/pull/248
- windows/fix-keyevent-handling by @amanda-amy-frost in https://github.com/fulsomenko/kanban/pull/247
- KAN-405: make undo in-session only — strip command log from persistence by @fulsomenko in https://github.com/fulsomenko/kanban/pull/246
- KAN-332/require explicit file path no implicit kanban json default by @fulsomenko in https://github.com/fulsomenko/kanban/pull/249
- KAN-418/fix kanban -V output drop Error prefix and stray trailing newline by @fulsomenko in https://github.com/fulsomenko/kanban/pull/250
- chore/rebalance-changeset-bump-levels-for-0.5.0 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/252
- KAN-419 fix(tui): show sprint history on cards with >= 1 sprint assigned by @fulsomenko in https://github.com/fulsomenko/kanban/pull/253
- KAN-420 chore: bump minimum Rust version to 1.74 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/254
- KAN-421 feat(tui): add raw key event trace logging to EventHandler by @fulsomenko in https://github.com/fulsomenko/kanban/pull/256
- KAN-426 fix(tui): make KeyEventKind::Press filter unconditional across all platforms by @fulsomenko in https://github.com/fulsomenko/kanban/pull/257
- KAN-394 fix(service): sync card status with completion column by @fulsomenko in https://github.com/fulsomenko/kanban/pull/258
- KAN-434 refactor(service): collapse singular card methods into shorthands over plural by @fulsomenko in https://github.com/fulsomenko/kanban/pull/259
- KAN-403 fix(tui): selector jumps to newly created card by @fulsomenko in https://github.com/fulsomenko/kanban/pull/260
- KAN-435 fix(tui): sprint-detail card lists scroll and reach action parity by @fulsomenko in https://github.com/fulsomenko/kanban/pull/261
- KAN-431 refactor(domain): extract UpdateSprint validators into private functions by @fulsomenko in https://github.com/fulsomenko/kanban/pull/262
- KAN-427 refactor(service): lift DeleteBoard cascade to service layer (invert the wrap) by @fulsomenko in https://github.com/fulsomenko/kanban/pull/263
- KAN-430 refactor(service): lift MigrateSprintLogs from domain to service by @fulsomenko in https://github.com/fulsomenko/kanban/pull/264
- KAN-428 refactor(service): lift MoveCards batch position calculation to service by @fulsomenko in https://github.com/fulsomenko/kanban/pull/265
- chore: add editor.rs follow-up cards from #255 review by @fulsomenko in https://github.com/fulsomenko/kanban/pull/266
- KAN-445 fix(service): use dunce::canonicalize to avoid Windows UNC prefix by @fulsomenko in https://github.com/fulsomenko/kanban/pull/267
- Release 0.5.0 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/251
New Contributors
- @amanda-amy-frost made their first contribution in https://github.com/fulsomenko/kanban/pull/247
Full Changelog: https://github.com/fulsomenko/kanban/compare/v0.4.1...v0.5.0
v0.4.1
What's Changed
- [hotfix] fix(ci): aur-publish makepkg.conf + manual dispatch by @fulsomenko in https://github.com/fulsomenko/kanban/pull/236
- [hotfix] fix(ci): aur-publish VERSION propagation + soft-fail commit-back by @fulsomenko in https://github.com/fulsomenko/kanban/pull/238
- [hotfix] fix(ci): bump KSXGitHub/github-actions-deploy-aur v4.1.1 → v4.1.3 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/239
- [hotfix] fix(ci): aur-publish action inputs need snake_case by @fulsomenko in https://github.com/fulsomenko/kanban/pull/240
- chore: sync develop with master after v0.4.0 release by @fulsomenko in https://github.com/fulsomenko/kanban/pull/237
- KAN-396/fix-tui-make-settings-config-edit-tests-sandbox-safe-for-nixpkgs by @fulsomenko in https://github.com/fulsomenko/kanban/pull/241
- Release 0.4.1 by @fulsomenko in https://github.com/fulsomenko/kanban/pull/242
Full Changelog: https://github.com/fulsomenko/kanban/compare/v0.4.0...v0.4.1