Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
373e8c0949 Release 0.2.0 2026-05-02 14:02:39 -04:00
20 changed files with 75 additions and 64 deletions

View file

@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [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 ## [0.1.0] - 2026-04-25
### Added ### 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 - `ProjectDirs` with injectable filesystem abstraction (`package:file`) for
testable path resolution. 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 [0.1.0]: https://github.com/artificerchris/dew/releases/tag/v0.1.0

View file

@ -55,7 +55,7 @@ dew kanban tui
## Configuration ## 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 ## Documentation

View file

@ -14,10 +14,6 @@ your-project/
```yaml ```yaml
dew: dew:
mcp:
host: "localhost" # Hostname the MCP server binds to
port: 8080 # Port the MCP server listens on
kanban: kanban:
prefix: "PROJ" # Short prefix used for ticket IDs (e.g. PROJ-42) prefix: "PROJ" # Short prefix used for ticket IDs (e.g. PROJ-42)
@ -47,12 +43,8 @@ dew:
## Reference ## Reference
### `dew.mcp` 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).
| Field | Type | Default | Description |
| ------ | ------- | ------------- | --------------------------------- |
| `host` | string | `"localhost"` | Hostname the MCP server binds to. |
| `port` | integer | `8080` | Port the MCP server listens on. |
### `dew.kanban` ### `dew.kanban`

View file

@ -15,16 +15,8 @@ The MCP feature is split across two packages to keep concerns separate:
## Configuration ## Configuration
The MCP server is configured under the `mcp` key in `.project/dew.yaml`. By default it runs on `localhost` at port `8080`. The MCP server currently has no `.project/dew.yaml` settings. Configure your MCP
client to launch `dew mcp serve`; the server communicates over stdio.
```yaml
dew:
mcp:
host: "localhost"
port: 8080
```
See the [Configuration documentation](../config.md) for full details.
## Running the server ## Running the server

View file

@ -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: `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_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`.

View file

@ -1,5 +1,10 @@
# Changelog # 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 ## 0.1.0 — 2026-04-25
Initial release. Initial release.

View file

@ -1,18 +1,21 @@
name: dew name: dew
description: Command-line interface for the Dew project management tool. description: Command-line interface for the Dew project management tool.
version: 0.1.0 version: 0.2.0
repository: https://github.com/artificerchris/dew repository: https://github.com/artificerchris/dew
issue_tracker: https://github.com/artificerchris/dew/issues issue_tracker: https://github.com/artificerchris/dew/issues
resolution: workspace resolution: workspace
executables:
dew: dew
environment: environment:
sdk: ^3.11.4 sdk: ^3.11.4
dependencies: dependencies:
args: ^2.7.0 args: ^2.7.0
dew_core: ^0.1.0 dew_core: ^0.2.0
dew_kanban: ^0.1.0 dew_kanban: ^0.2.0
dew_mcp: ^0.1.0 dew_mcp: ^0.2.0
dev_dependencies: dev_dependencies:
lints: ^6.0.0 lints: ^6.0.0

View file

@ -1,5 +1,10 @@
# Changelog # 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 ## 0.1.0 — 2026-04-25
Initial release. Initial release.

View file

@ -6,7 +6,7 @@ import 'package:yaml/yaml.dart';
/// Thin wrapper around the raw project YAML. /// Thin wrapper around the raw project YAML.
/// ///
/// Feature packages extend this class via Dart extension methods to expose /// 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. /// This keeps feature-specific config classes out of core.
class DewConfig { class DewConfig {
final YamlMap raw; final YamlMap raw;

View file

@ -31,10 +31,6 @@ abstract interface class DewInitHook {
const _defaultDewYaml = ''' const _defaultDewYaml = '''
dew: dew:
mcp:
host: "localhost"
port: 8080
kanban: kanban:
prefix: "PROJ" prefix: "PROJ"
ticket_types: ticket_types:

View file

@ -1,6 +1,6 @@
name: dew_core name: dew_core
description: Core shared types, interfaces, and configuration for the Dew project management tool. 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 repository: https://github.com/artificerchris/dew
issue_tracker: https://github.com/artificerchris/dew/issues issue_tracker: https://github.com/artificerchris/dew/issues
resolution: workspace resolution: workspace

View file

@ -1,3 +1,4 @@
import 'package:args/command_runner.dart';
import 'package:dew_core/dew_core.dart'; import 'package:dew_core/dew_core.dart';
import 'package:file/memory.dart'; import 'package:file/memory.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
@ -37,9 +38,6 @@ void main() {
group('ProjectContext', () { group('ProjectContext', () {
const configYaml = ''' const configYaml = '''
dew: dew:
mcp:
host: localhost
port: 9090
kanban: kanban:
prefix: TEST prefix: TEST
ticket_types: ticket_types:
@ -59,8 +57,7 @@ dew:
final ctx = await ProjectContext.find(fs: fs); final ctx = await ProjectContext.find(fs: fs);
final dew = ctx.config.raw['dew']; final dew = ctx.config.raw['dew'];
expect(dew['kanban']['prefix'], 'TEST'); expect(dew['kanban']['prefix'], 'TEST');
expect(dew['mcp']['host'], 'localhost'); expect(dew.containsKey('mcp'), isFalse);
expect(dew['mcp']['port'], 9090);
}); });
test('find() locates config from a subdirectory', () async { test('find() locates config from a subdirectory', () async {
@ -73,4 +70,21 @@ dew:
expect(ctx.root, '/'); expect(ctx.root, '/');
}); });
}); });
group('InitCommand', () {
test('generates dew.yaml without MCP host or port config', () async {
final fs = MemoryFileSystem();
final runner = CommandRunner<void>('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:')));
});
});
} }

View file

@ -1,5 +1,11 @@
# Changelog # 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 ## 0.1.0 — 2026-04-25
Initial release. Initial release.

View file

@ -1,6 +1,6 @@
name: dew_kanban name: dew_kanban
description: Kanban board feature for the Dew project management tool. Implements McpToolProvider to expose board tools to the MCP server. 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 repository: https://github.com/artificerchris/dew
issue_tracker: https://github.com/artificerchris/dew/issues issue_tracker: https://github.com/artificerchris/dew/issues
resolution: workspace resolution: workspace
@ -10,7 +10,7 @@ environment:
# Add regular dependencies here. # Add regular dependencies here.
dependencies: dependencies:
dew_core: ^0.1.0 dew_core: ^0.2.0
dart_console: ^4.1.2 dart_console: ^4.1.2
file: ^7.0.1 file: ^7.0.1
path: ^1.9.0 path: ^1.9.0

View file

@ -5,9 +5,6 @@ import 'package:test/test.dart';
const _testConfig = ''' const _testConfig = '''
dew: dew:
mcp:
host: localhost
port: 9090
kanban: kanban:
prefix: T prefix: T
ticket_types: ticket_types:
@ -165,9 +162,6 @@ void main() {
fs.directory('/.project/kanban').createSync(recursive: true); fs.directory('/.project/kanban').createSync(recursive: true);
fs.file('/.project/dew.yaml').writeAsStringSync(''' fs.file('/.project/dew.yaml').writeAsStringSync('''
dew: dew:
mcp:
host: localhost
port: 9090
kanban: kanban:
prefix: T prefix: T
ticket_types: ticket_types:

View file

@ -4,9 +4,6 @@ import 'package:test/test.dart';
const _testConfig = ''' const _testConfig = '''
dew: dew:
mcp:
host: localhost
port: 9090
kanban: kanban:
prefix: T prefix: T
ticket_types: ticket_types:

View file

@ -1,5 +1,11 @@
# Changelog # 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 ## 0.1.0 — 2026-04-25
Initial release. Initial release.

View file

@ -1,19 +1,11 @@
import 'package:dew_core/dew_core.dart'; import 'package:dew_core/dew_core.dart';
import 'package:yaml/yaml.dart';
class McpConfig { class McpConfig {
final String host; McpConfig();
final int port;
const McpConfig({required this.host, required this.port});
} }
extension McpDewConfig on DewConfig { extension McpDewConfig on DewConfig {
McpConfig get mcp { McpConfig get mcp {
final mcpYaml = (raw['dew'] as YamlMap)['mcp'] as YamlMap; return McpConfig();
return McpConfig(
host: mcpYaml['host'] as String,
port: mcpYaml['port'] as int,
);
} }
} }

View file

@ -1,6 +1,6 @@
name: dew_mcp name: dew_mcp
description: MCP server for the Dew project management tool. Collects and serves tools registered by feature packages via the McpToolProvider interface. 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 repository: https://github.com/artificerchris/dew
issue_tracker: https://github.com/artificerchris/dew/issues issue_tracker: https://github.com/artificerchris/dew/issues
resolution: workspace resolution: workspace
@ -10,11 +10,11 @@ environment:
# Add regular dependencies here. # Add regular dependencies here.
dependencies: dependencies:
dew_core: ^0.1.0 dew_core: ^0.2.0
dart_mcp: ^0.5.0 dart_mcp: ^0.5.0
yaml: ^3.1.0 yaml: ^3.1.0
dev_dependencies: dev_dependencies:
lints: ^6.0.0 lints: ^6.0.0
test: ^1.25.6 test: ^1.25.6
dew_kanban: ^0.1.0 dew_kanban: ^0.2.0

View file

@ -1,6 +1,6 @@
name: dew_workspace name: dew_workspace
description: A Dart workspace for the dew project management tool. description: A Dart workspace for the dew project management tool.
version: 0.1.0 version: 0.2.0
repository: https://github.com/artificerchris/dew repository: https://github.com/artificerchris/dew
publish_to: none publish_to: none