diff --git a/release-notes/0.3.3.md b/release-notes/0.3.3.md new file mode 100644 index 0000000..b962e05 --- /dev/null +++ b/release-notes/0.3.3.md @@ -0,0 +1,10 @@ +# 0.3.3 + +MCP server +- `create_timesheet` works again. It was rejected by TimePro because the tool never sent a sell price; it now runs through the same create logic as `tp ts create` (rate and sell price, category discovery, location defaults, iteration) and returns the saved entry instead of `null`. If the client has no active rate it returns an error with the `tp rate create` recovery command and never creates a rate itself. +- `get_projects_for_client` no longer returns the blank "Empty - Please add the project" placeholder row, matching `tp project list`. +- Project and rate lookups are shared between the CLI and the MCP server, so both surfaces read the same data. + +Behind the scenes +- A regression harness now snapshots the MCP tool list and every tool's output, and runs the CLI and MCP tool against the same fake server to keep them in step. It caught the `create_timesheet` failure above on its first staging run. +- `TIMEPRO_CLI_CONFIG_DIR` overrides the config directory (used by tests; handy for running a second isolated profile). diff --git a/release-notes/latest.md b/release-notes/latest.md index 53ba2e2..890773e 120000 --- a/release-notes/latest.md +++ b/release-notes/latest.md @@ -1 +1 @@ -0.3.2.md \ No newline at end of file +0.3.3.md \ No newline at end of file diff --git a/tests/SSW.TimePro.Cli.Tests/Features/Updates/ReleaseNotesCatalogTests.cs b/tests/SSW.TimePro.Cli.Tests/Features/Updates/ReleaseNotesCatalogTests.cs index 435ec27..fd72a37 100644 --- a/tests/SSW.TimePro.Cli.Tests/Features/Updates/ReleaseNotesCatalogTests.cs +++ b/tests/SSW.TimePro.Cli.Tests/Features/Updates/ReleaseNotesCatalogTests.cs @@ -50,7 +50,7 @@ public void LoadEmbedded_FindsBackfilledReleaseNotes() { var catalog = ReleaseNotesCatalog.LoadEmbedded(); - catalog.LatestKnown()!.VersionText.Should().Be("0.3.2"); + catalog.LatestKnown()!.VersionText.Should().Be("0.3.3"); } private static ReleaseNotesCatalog Catalog() =>