- Add _EditorField enum and _EditorState class for mutable field tracking
- Add _Mode.editor and wire 'e' key in board+detail modes
- Editor supports: title (inline text edit), type (◀/▶ selector),
column (◀/▶ selector), labels (chips + add/delete), milestones (same),
body (preview + launches $VISUAL/$EDITOR/vi in raw terminal)
- j/k and arrow keys navigate between fields
- h/l cycle selector values and move item cursor in multi-value lists
- d removes selected label/milestone
- s saves all fields via store.update(), returns to board with focus on ticket
- Esc/q discards, returns to board
- _renderEditor: centered modal overlay (max 76 wide), dim background,
double-line border in column accent colour, 'unsaved' indicator when dirty
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- ArchiveCommand (kanban archive --id <id>): moves ticket file from its
current column dir to .project/kanban/archive/; attachments stay put
(under attachments/<id>/); registered as 'kanban_archive_ticket' MCP tool
- TicketStore.list() gains includeArchived param (default false);
archive/ dir skipped unless includeArchived=true
- ListCommand: --include-archived flag
- SearchCommand: --include-archived flag
- Test: list excludes/includes archive correctly
- 14 MCP tools; 'archive' added to expected subcommands list
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- ListCommand: when no --column filter, groups output by column with counts;
with --column filter, returns flat list (no redundant column header)
- BoardCommand (kanban board): ASCII box per column in config order,
self-sizing to longest ticket line; supports --type/--label/--milestone filters
registered as 'kanban_board' MCP tool
- Test counts updated: 13 MCP tools, 'board' in subcommands list
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- index.md: rewrite architecture section to reflect DewToolCommand mixin,
CommandRegistry, and per-package config extension pattern
- config.md: update default columns to backlog/doing/done
- features/mcp.md: replace McpToolProvider references with DewToolCommand,
add all 12 tools to the table, add link types table
- features/kanban.md: replace stub with full docs covering storage layout,
ticket format, CLI command reference, link types, and config
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
DewConfig in core is now a thin YamlMap wrapper. Feature-specific config
classes live in their own packages and expose themselves via Dart extensions:
- KanbanConfig, ColumnConfig, TicketTypeConfig + KanbanDewConfig extension
moved to packages/kanban/lib/src/kanban_config.dart
- McpConfig + McpDewConfig extension added to
packages/mcp/lib/src/mcp_config.dart
- DewConfig.fromYaml() now trivially wraps the raw YamlMap
- All call sites unchanged: context.config.kanban.* / context.config.mcp.*
- Added yaml dependency to dew_mcp pubspec
- Updated core test to validate raw yaml instead of typed fields
- Fixed cross-suite Directory.current isolation (existing issue, not introduced)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>