Replace fragile 'as String'/'as String?' casts in callAsTool() with
string interpolation so that numeric values sent by MCP JSON clients
(double instead of String) no longer throw a type cast error.
Fixes: type 'double' is not a subtype of type 'String' in type cast
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- core: Add ProjectDirs helper class on ProjectContext (context.dirs)
with project getter for .project/ dir; feature packages extend it
via extension methods to expose their own dirs
- kanban: Add KanbanDirs extension on ProjectDirs exposing .kanban;
replace all 14 p.join(context.root, '.project', 'kanban') call
sites with context.dirs.kanban; drop now-unused path imports
- kanban: Add clock: DateTime Function() field to TicketStore
(defaults to DateTime.now); use clock().toUtc() in create() for
deterministic timestamps in tests
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace dart:io File/Directory with package:file abstractions so that
tests can use MemoryFileSystem instead of mutating the process-global
Directory.current.
- Add file: ^7.0.1 to core and kanban dependencies
- ProjectContext.find() accepts FileSystem fs parameter
- TicketStore, KanbanInitHook, InitCommand, all kanban commands accept
FileSystem fs (defaulting to LocalFileSystem())
- KanbanCommand and registerCommands() thread fs to subcommands
- Tests rewritten to use MemoryFileSystem() — no Directory.current mutation
- Remove dart_test.yaml (concurrency: 1 no longer needed)
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>