- tools/mcp_client.dart: spawns the compiled dew binary, connects via
stdioChannel, initializes the MCP handshake, lists all tools, and calls
kanban_list_tickets — useful for verifying the server without a real client
- .vscode/mcp.json: proper VS Code MCP server config using ${workspaceFolder}
to point at the compiled binary with 'mcp serve' args
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Two bugs caused immediate connection close:
1. ProjectContext.find() at startup crashed if cwd wasn't a project root;
it's not needed here — each tool handler calls it on demand.
2. io.stdin.drain() added a second listener to stdin after stdioChannel
already subscribed, throwing StateError and killing the process.
The Dart event loop keeps the process alive while stdin has a listener.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
melos run pollutes stdout, breaking the MCP JSON-RPC channel.
The compiled binary has clean stdio and can be pointed at directly
by MCP clients.
- Add melos run compile script (output to .project/toolchain/bin/dew)
- Ignore .project/toolchain/ in .gitignore
- Update mcp.md with compile + client config instructions
- Remove workspace-root bin/ directory
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Flesh out docs/index.md, docs/config.md, docs/features/mcp.md,
docs/features/kanban.md with full content and aligned tables
- Fix .markdownlint-cli2.mjs config (rules were outside 'config' key)
- Add packages/mcp as a standalone MCP server package
- Update all pubspec descriptions
- Implement DewCommand + CommandRegistry in core
- Implement KanbanCommand and McpCommand stubs with registerCommands()
- Wire CLI entry point using CommandRunner + CommandRegistry
- Add 'melos run dew' script for running the CLI from workspace root
- Update tests across core, kanban, mcp packages
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>