Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
| 373e8c0949 |
20 changed files with 75 additions and 64 deletions
11
CHANGELOG.md
11
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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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`.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -31,10 +31,6 @@ abstract interface class DewInitHook {
|
|||
|
||||
const _defaultDewYaml = '''
|
||||
dew:
|
||||
mcp:
|
||||
host: "localhost"
|
||||
port: 8080
|
||||
|
||||
kanban:
|
||||
prefix: "PROJ"
|
||||
ticket_types:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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<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:')));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -4,9 +4,6 @@ import 'package:test/test.dart';
|
|||
|
||||
const _testConfig = '''
|
||||
dew:
|
||||
mcp:
|
||||
host: localhost
|
||||
port: 9090
|
||||
kanban:
|
||||
prefix: T
|
||||
ticket_types:
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue