Metadata: - Bump dew CLI version 0.0.1 → 1.0.0 - Add repository + issue_tracker URLs to all pubspec.yaml files - Switch inter-package path deps to versioned deps (^1.0.0) - Remove publish_to: none from all packages - Add MIT LICENSE to root and all packages - Confirm all four pub.dev names available (dew, dew_core, dew_kanban, dew_mcp) Documentation: - Add CHANGELOG.md (Keep a Changelog format, full 1.0.0 feature history) - Overhaul README.md (pitch, pub.dev badge, quick-start, feature sections) - Add TUI section + full keybinding tables to docs/features/kanban.md - Add CONTRIBUTING.md (setup, test, lint, branch strategy, command guide) Tests: - Add packages/cli/test/cli_test.dart (6 smoke tests) - Add packages/kanban/test/integration_test.dart (6 TicketStore e2e tests) - Expand packages/mcp/test/mcp_test.dart (5 tool registration tests) - Add dew_kanban as dev dependency in packages/mcp/pubspec.yaml - 57/57 tests passing Code quality: - dart format applied across all 23 changed source files - dart analyze: zero errors, zero warnings Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
5 KiB
5 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
1.0.0 - 2026-04-25
Added
dew init
dew init <path>scaffolds a new project, generating.project/dew.yamlwith sensible defaults and running all module init hooks (kanban directory layout, etc.).
Kanban CLI (dew kanban)
Full set of kanban subcommands, each also registered as an MCP tool automatically:
| Subcommand | Description |
|---|---|
create |
Create a new ticket with title, type, column, body, labels, and milestones |
list |
List tickets filtered by column, type, label, milestone, or archived state |
get |
Fetch a single ticket by ID |
update |
Update any field on a ticket (title, type, column, body, labels, milestones) |
delete |
Permanently delete a ticket |
move |
Move a ticket to a different column (validates column transition rules) |
search |
Full-text search across ticket titles, bodies, and comments |
comment |
Append a comment to a ticket |
archive |
Soft-delete a ticket by moving it to the archive column |
unarchive |
Restore an archived ticket to a column |
link |
Create a typed bidirectional link between two tickets |
unlink |
Remove a link between two tickets |
stats |
Display ticket counts grouped by column and type |
board |
Print an ASCII representation of the board |
config |
Print the current kanban configuration |
tui |
Launch the interactive terminal UI |
- File-based storage: each ticket is a Markdown file with YAML frontmatter for
metadata and inline
---separators for comments. Column is derived from the containing subdirectory — not duplicated in the file. - Typed, bidirectional ticket links:
blocks/is_blocked_by,relates_to,duplicates/is_duplicated_by,parent_of/child_of. Writing one side automatically writes the inverse on the target ticket. - Labels and milestones as first-class ticket fields.
- Column transition validation: enforces allowed moves between configured columns.
--include-archivedflag onlistandsearchto include soft-deleted tickets.
Interactive TUI (dew kanban tui)
- Full Trello-style terminal board rendered with ANSI box-drawing characters.
- Board mode: pill/tab column headers, scrollable ticket list per column,
live
?filter/search overlay,ncreate,eedit,aarchive,Ddelete,ccomment,Llink,</>move ticket between columns, Enter open detail. - Detail mode: scrollable ticket detail view with formatted body and comments.
- Editor modal: in-terminal overlay for editing all ticket fields — title,
type (picker), column (picker), labels, milestones, and body. Arrow keys cycle
selector values; Enter edits text fields or opens
$VISUAL/$EDITORfor body. - F1 help overlay in every mode showing context-sensitive keybindings.
- Auto-refresh via filesystem watching: board reloads live when ticket files change on disk (e.g. from another terminal or AI agent).
- SIGWINCH handling for correct redraws on terminal resize.
MCP Server (dew mcp serve)
dew mcp servestarts an MCP-compliant stdio server.- All kanban commands that implement the
DewToolCommandmixin are automatically exposed as MCP tools — no separate registration required. - JSON Schema for each tool's input is derived directly from the command's
ArgParser, so argument definitions are written exactly once. - Compiled CLI binary at
.project/toolchain/bin/dewused by the MCP server to avoid stdin conflicts.
Core Architecture
DewToolCommandmixin: mix into anyDewCommandto register it simultaneously as a CLI subcommand and an MCP tool.CommandRegistry: central registry collected at startup; MCP server reads from this registry to enumerate available tools.DewConfigwith typed extension pattern:coreholds the raw YAML map; feature packages (kanban,mcp) add typed accessors via Dart extensions, keeping feature-specific config out ofcore.ProjectDirswith injectable filesystem abstraction (package:file) for testable path resolution.