From 373e8c09492f0e99b1d928c8957a76af4037a510 Mon Sep 17 00:00:00 2001 From: Chris Hendrickson Date: Sat, 2 May 2026 14:02:39 -0400 Subject: [PATCH] Release 0.2.0 --- CHANGELOG.md | 11 +++++++++- README.md | 2 +- docs/config.md | 12 ++--------- docs/features/mcp.md | 12 ++--------- docs/index.md | 4 ++-- packages/cli/CHANGELOG.md | 5 +++++ packages/cli/pubspec.yaml | 11 ++++++---- packages/core/CHANGELOG.md | 5 +++++ packages/core/lib/src/config.dart | 2 +- packages/core/lib/src/init.dart | 4 ---- packages/core/pubspec.yaml | 2 +- packages/core/test/dew_core_test.dart | 24 +++++++++++++++++----- packages/kanban/CHANGELOG.md | 6 ++++++ packages/kanban/pubspec.yaml | 4 ++-- packages/kanban/test/dew_kanban_test.dart | 6 ------ packages/kanban/test/integration_test.dart | 3 --- packages/mcp/CHANGELOG.md | 6 ++++++ packages/mcp/lib/src/mcp_config.dart | 12 ++--------- packages/mcp/pubspec.yaml | 6 +++--- pubspec.yaml | 2 +- 20 files changed, 75 insertions(+), 64 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10763f8..5359596 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.0] - 2026-05-02 + +### Changed + +- Removed unsupported MCP `host` and `port` settings from generated `dew.yaml`. +- Updated MCP configuration docs to reflect stdio-only client setup. +- Added the `dew` executable mapping for pub activation. + ## [0.1.0] - 2026-04-25 ### Added @@ -86,5 +94,6 @@ Full set of kanban subcommands, each also registered as an MCP tool automaticall - `ProjectDirs` with injectable filesystem abstraction (`package:file`) for testable path resolution. -[Unreleased]: https://github.com/artificerchris/dew/compare/v0.1.0...HEAD +[Unreleased]: https://github.com/artificerchris/dew/compare/v0.2.0...HEAD +[0.2.0]: https://github.com/artificerchris/dew/compare/v0.1.0...v0.2.0 [0.1.0]: https://github.com/artificerchris/dew/releases/tag/v0.1.0 diff --git a/README.md b/README.md index 9d85594..29a4982 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ dew kanban tui ## Configuration -Dew reads `.project/dew.yaml` for board columns, ticket types, ID prefix, and MCP server settings. Running `dew init .` generates this file with defaults. See the [Configuration documentation](./docs/config.md) for the full schema reference. +Dew reads `.project/dew.yaml` for board columns, ticket types, and ID prefix. Running `dew init .` generates this file with defaults. See the [Configuration documentation](./docs/config.md) for the full schema reference. ## Documentation diff --git a/docs/config.md b/docs/config.md index 09c0d19..815768e 100644 --- a/docs/config.md +++ b/docs/config.md @@ -14,10 +14,6 @@ your-project/ ```yaml dew: - mcp: - host: "localhost" # Hostname the MCP server binds to - port: 8080 # Port the MCP server listens on - kanban: prefix: "PROJ" # Short prefix used for ticket IDs (e.g. PROJ-42) @@ -47,12 +43,8 @@ dew: ## Reference -### `dew.mcp` - -| Field | Type | Default | Description | -| ------ | ------- | ------------- | --------------------------------- | -| `host` | string | `"localhost"` | Hostname the MCP server binds to. | -| `port` | integer | `8080` | Port the MCP server listens on. | +The MCP server currently has no project-level `dew.yaml` configuration. Configure +your MCP client to run `dew mcp serve`; see the [MCP documentation](./features/mcp.md). ### `dew.kanban` diff --git a/docs/features/mcp.md b/docs/features/mcp.md index 2e1e114..545d0f4 100644 --- a/docs/features/mcp.md +++ b/docs/features/mcp.md @@ -15,16 +15,8 @@ The MCP feature is split across two packages to keep concerns separate: ## Configuration -The MCP server is configured under the `mcp` key in `.project/dew.yaml`. By default it runs on `localhost` at port `8080`. - -```yaml -dew: - mcp: - host: "localhost" - port: 8080 -``` - -See the [Configuration documentation](../config.md) for full details. +The MCP server currently has no `.project/dew.yaml` settings. Configure your MCP +client to launch `dew mcp serve`; the server communicates over stdio. ## Running the server diff --git a/docs/index.md b/docs/index.md index 487cd1a..fb18da2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -38,6 +38,6 @@ ArgParser definition `DewConfig` in `core` is a thin wrapper around the raw YAML map. Feature packages add typed accessors via Dart extensions: - `dew_kanban` defines `KanbanDewConfig` — exposes `context.config.kanban` -- `dew_mcp` defines `McpDewConfig` — exposes `context.config.mcp` +- `dew_mcp` currently has no project-level config values -This keeps feature-specific config classes out of `core` while leaving all call sites unchanged. +This keeps feature-specific config classes out of `core`. diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index c9fa684..cb45f0a 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.2.0 — 2026-05-02 + +- Added the `dew` executable mapping for pub activation. +- Bumped Dew package dependency constraints to `^0.2.0`. + ## 0.1.0 — 2026-04-25 Initial release. diff --git a/packages/cli/pubspec.yaml b/packages/cli/pubspec.yaml index e825305..ca55613 100644 --- a/packages/cli/pubspec.yaml +++ b/packages/cli/pubspec.yaml @@ -1,18 +1,21 @@ name: dew description: Command-line interface for the Dew project management tool. -version: 0.1.0 +version: 0.2.0 repository: https://github.com/artificerchris/dew issue_tracker: https://github.com/artificerchris/dew/issues resolution: workspace +executables: + dew: dew + environment: sdk: ^3.11.4 dependencies: args: ^2.7.0 - dew_core: ^0.1.0 - dew_kanban: ^0.1.0 - dew_mcp: ^0.1.0 + dew_core: ^0.2.0 + dew_kanban: ^0.2.0 + dew_mcp: ^0.2.0 dev_dependencies: lints: ^6.0.0 diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index e0fe8f6..9bd30a9 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.2.0 — 2026-05-02 + +- Removed stale MCP config references from core config documentation. +- Updated `dew init` defaults to generate only supported project config. + ## 0.1.0 — 2026-04-25 Initial release. diff --git a/packages/core/lib/src/config.dart b/packages/core/lib/src/config.dart index 7dc9b0d..f10b6d3 100644 --- a/packages/core/lib/src/config.dart +++ b/packages/core/lib/src/config.dart @@ -6,7 +6,7 @@ import 'package:yaml/yaml.dart'; /// Thin wrapper around the raw project YAML. /// /// Feature packages extend this class via Dart extension methods to expose -/// typed configuration (e.g. [KanbanDewConfig.kanban], [McpDewConfig.mcp]). +/// typed configuration (e.g. [KanbanDewConfig.kanban]). /// This keeps feature-specific config classes out of core. class DewConfig { final YamlMap raw; diff --git a/packages/core/lib/src/init.dart b/packages/core/lib/src/init.dart index 014d53b..7b97d21 100644 --- a/packages/core/lib/src/init.dart +++ b/packages/core/lib/src/init.dart @@ -31,10 +31,6 @@ abstract interface class DewInitHook { const _defaultDewYaml = ''' dew: - mcp: - host: "localhost" - port: 8080 - kanban: prefix: "PROJ" ticket_types: diff --git a/packages/core/pubspec.yaml b/packages/core/pubspec.yaml index 0fa0a55..56a8425 100644 --- a/packages/core/pubspec.yaml +++ b/packages/core/pubspec.yaml @@ -1,6 +1,6 @@ name: dew_core description: Core shared types, interfaces, and configuration for the Dew project management tool. -version: 0.1.0 +version: 0.2.0 repository: https://github.com/artificerchris/dew issue_tracker: https://github.com/artificerchris/dew/issues resolution: workspace diff --git a/packages/core/test/dew_core_test.dart b/packages/core/test/dew_core_test.dart index 574854f..82e744c 100644 --- a/packages/core/test/dew_core_test.dart +++ b/packages/core/test/dew_core_test.dart @@ -1,3 +1,4 @@ +import 'package:args/command_runner.dart'; import 'package:dew_core/dew_core.dart'; import 'package:file/memory.dart'; import 'package:test/test.dart'; @@ -37,9 +38,6 @@ void main() { group('ProjectContext', () { const configYaml = ''' dew: - mcp: - host: localhost - port: 9090 kanban: prefix: TEST ticket_types: @@ -59,8 +57,7 @@ dew: final ctx = await ProjectContext.find(fs: fs); final dew = ctx.config.raw['dew']; expect(dew['kanban']['prefix'], 'TEST'); - expect(dew['mcp']['host'], 'localhost'); - expect(dew['mcp']['port'], 9090); + expect(dew.containsKey('mcp'), isFalse); }); test('find() locates config from a subdirectory', () async { @@ -73,4 +70,21 @@ dew: expect(ctx.root, '/'); }); }); + + group('InitCommand', () { + test('generates dew.yaml without MCP host or port config', () async { + final fs = MemoryFileSystem(); + final runner = CommandRunner('dew', 'test'); + runner.addCommand(InitCommand(const [], fs: fs)); + + await runner.run(['init', '--path', '/project']); + + final config = fs.file('/project/.project/dew.yaml').readAsStringSync(); + expect(config, contains('dew:')); + expect(config, contains('kanban:')); + expect(config, isNot(contains('mcp:'))); + expect(config, isNot(contains('host:'))); + expect(config, isNot(contains('port:'))); + }); + }); } diff --git a/packages/kanban/CHANGELOG.md b/packages/kanban/CHANGELOG.md index 11fda1c..ea4a238 100644 --- a/packages/kanban/CHANGELOG.md +++ b/packages/kanban/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.2.0 — 2026-05-02 + +- Updated tests and fixtures for the generated config without unsupported MCP + `host` and `port` fields. +- Bumped the `dew_core` dependency constraint to `^0.2.0`. + ## 0.1.0 — 2026-04-25 Initial release. diff --git a/packages/kanban/pubspec.yaml b/packages/kanban/pubspec.yaml index d035b52..0fd6667 100644 --- a/packages/kanban/pubspec.yaml +++ b/packages/kanban/pubspec.yaml @@ -1,6 +1,6 @@ name: dew_kanban description: Kanban board feature for the Dew project management tool. Implements McpToolProvider to expose board tools to the MCP server. -version: 0.1.0 +version: 0.2.0 repository: https://github.com/artificerchris/dew issue_tracker: https://github.com/artificerchris/dew/issues resolution: workspace @@ -10,7 +10,7 @@ environment: # Add regular dependencies here. dependencies: - dew_core: ^0.1.0 + dew_core: ^0.2.0 dart_console: ^4.1.2 file: ^7.0.1 path: ^1.9.0 diff --git a/packages/kanban/test/dew_kanban_test.dart b/packages/kanban/test/dew_kanban_test.dart index 93b5d3a..e49a482 100644 --- a/packages/kanban/test/dew_kanban_test.dart +++ b/packages/kanban/test/dew_kanban_test.dart @@ -5,9 +5,6 @@ import 'package:test/test.dart'; const _testConfig = ''' dew: - mcp: - host: localhost - port: 9090 kanban: prefix: T ticket_types: @@ -165,9 +162,6 @@ void main() { fs.directory('/.project/kanban').createSync(recursive: true); fs.file('/.project/dew.yaml').writeAsStringSync(''' dew: - mcp: - host: localhost - port: 9090 kanban: prefix: T ticket_types: diff --git a/packages/kanban/test/integration_test.dart b/packages/kanban/test/integration_test.dart index 60bec7f..3f3dde9 100644 --- a/packages/kanban/test/integration_test.dart +++ b/packages/kanban/test/integration_test.dart @@ -4,9 +4,6 @@ import 'package:test/test.dart'; const _testConfig = ''' dew: - mcp: - host: localhost - port: 9090 kanban: prefix: T ticket_types: diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index fbbbfd5..dff8f49 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.2.0 — 2026-05-02 + +- Removed unsupported project-level MCP `host` and `port` config handling. +- Clarified that `dew mcp serve` is configured by the MCP client over stdio. +- Bumped Dew package dependency constraints to `^0.2.0`. + ## 0.1.0 — 2026-04-25 Initial release. diff --git a/packages/mcp/lib/src/mcp_config.dart b/packages/mcp/lib/src/mcp_config.dart index d4e91fa..e2396c5 100644 --- a/packages/mcp/lib/src/mcp_config.dart +++ b/packages/mcp/lib/src/mcp_config.dart @@ -1,19 +1,11 @@ import 'package:dew_core/dew_core.dart'; -import 'package:yaml/yaml.dart'; class McpConfig { - final String host; - final int port; - - const McpConfig({required this.host, required this.port}); + McpConfig(); } extension McpDewConfig on DewConfig { McpConfig get mcp { - final mcpYaml = (raw['dew'] as YamlMap)['mcp'] as YamlMap; - return McpConfig( - host: mcpYaml['host'] as String, - port: mcpYaml['port'] as int, - ); + return McpConfig(); } } diff --git a/packages/mcp/pubspec.yaml b/packages/mcp/pubspec.yaml index db5cc44..633c1f2 100644 --- a/packages/mcp/pubspec.yaml +++ b/packages/mcp/pubspec.yaml @@ -1,6 +1,6 @@ name: dew_mcp description: MCP server for the Dew project management tool. Collects and serves tools registered by feature packages via the McpToolProvider interface. -version: 0.1.0 +version: 0.2.0 repository: https://github.com/artificerchris/dew issue_tracker: https://github.com/artificerchris/dew/issues resolution: workspace @@ -10,11 +10,11 @@ environment: # Add regular dependencies here. dependencies: - dew_core: ^0.1.0 + dew_core: ^0.2.0 dart_mcp: ^0.5.0 yaml: ^3.1.0 dev_dependencies: lints: ^6.0.0 test: ^1.25.6 - dew_kanban: ^0.1.0 + dew_kanban: ^0.2.0 diff --git a/pubspec.yaml b/pubspec.yaml index 74409a0..f2edc9a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: dew_workspace description: A Dart workspace for the dew project management tool. -version: 0.1.0 +version: 0.2.0 repository: https://github.com/artificerchris/dew publish_to: none