---
summary: "Framework bump classifies an upstream 5xx as retryable and a mid-call disconnect as a cancellation rather than an internal error; MCP_SESSION_MODE is now stateless everywhere, matching the container."
breaking: false
security: false
---

# 0.4.1 — 2026-09-02

## Changed

- **`@cyanheads/mcp-ts-core`** `^0.12.3` → `^0.12.5` — an upstream 5xx now classifies as `ServiceUnavailable` (inside the retry policy) instead of `InternalError`; a caller disconnecting mid-call reports as `RequestCancelled` (-32011) instead of an internal error; the server's advertised name/version/description and a relative `LOGS_DIR` now resolve from the served package rather than the launching process's working directory.
- **`MCP_SESSION_MODE`** set explicitly to `stateless` in `.env.example` and documented in the README env table, matching the `Dockerfile` default — partially addresses [#34](https://github.com/cyanheads/gdelt-mcp-server/issues/34).
- Shipped skills: `add-tool`, `api-config`, `api-context`, `api-errors`, `api-linter`, `api-utils`, `design-mcp-server`, `maintenance`, `release-and-publish`, `setup` synced to their latest framework versions.

## Fixed

- **`CLAUDE.md`** corrected the framework version, `Zod` version, and the `ctx.log` row, which had described the logger as server-only when it also mirrors to the client.

## Dependencies

- `@cyanheads/mcp-ts-core` `^0.12.3` → `^0.12.5`
- `zod` `^4.4.3` → `^4.5.4`
- `ignore` (dev) `^7.0.6` → `^7.0.7`
