What's Changed
- fix(frontend): follow-redirects 1.16.2 (GHSA-mrwp-f3q8-3g9p) by @alexanderwanyoike in #463
- refactor(cli): one api transport that keeps the server's error message by @alexanderwanyoike in #465
- refactor(cli): commands return errors and the CLI exits in one place by @alexanderwanyoike in #466
- refactor(cli): one Docker build runner for every builder and vendor by @alexanderwanyoike in #470
- fix(cli): no-Docker hints stop suggesting a pre-build that deploy ignores by @alexanderwanyoike in #471
- feat(frontend): one catch-all api proxy route by @alexanderwanyoike in #464
- refactor(frontend): one HTTP client for browser code by @alexanderwanyoike in #467
- refactor(frontend): stop re-verifying JWTs in the proxy by @alexanderwanyoike in #469
- refactor(sdk-react): one definition of the dashboard contract by @alexanderwanyoike in #472
- refactor(frontend): import the dashboard contract from the0-react by @alexanderwanyoike in #474
- feat(api): one typed error and its HTTP mapper, starting with /bot by @alexanderwanyoike in #468
- feat(api): custom bots fail with the typed error by @alexanderwanyoike in #473
- feat(api): logs, queries, bot state and API keys fail with the typed error by @alexanderwanyoike in #475
- feat(api): structured MCP tool errors and DTO-validated tool arguments by @alexanderwanyoike in #476
- refactor(api): Catalogue lookups by name and version, one Bot type parser by @alexanderwanyoike in #477
- refactor(api): Custom bot publish rules in CustomBotService, aliases gone by @alexanderwanyoike in #478
- fix(api): redact the x-api-key header in request logs by @alexanderwanyoike in #479
- Release v1.23.0 by @alexanderwanyoike in #480
Full Changelog: v1.22.0...v1.23.0