diff --git a/.changeset/ingress-wait.md b/.changeset/ingress-wait.md deleted file mode 100644 index 20cc5569..00000000 --- a/.changeset/ingress-wait.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"sql-fs-api": patch ---- - -Add `SQL_FS_MAX_INGRESS_WAIT_MS`, the time a request or MCP listener waits for ingress capacity before it gets a 503 `EWORKER_BUSY`. The default stays 250 ms, the previous fixed value. Like the other ingress settings, an empty value uses the default. With workers on, any other invalid value, including a wait above 2147483647 ms, stops startup. `SQL_FS_WORKER_QUEUE_WAIT_MS` now rejects values above 2147483647 ms too, because Node would run such a timer after 1 ms. diff --git a/.changeset/mcp-shutdown.md b/.changeset/mcp-shutdown.md deleted file mode 100644 index 37b8ec36..00000000 --- a/.changeset/mcp-shutdown.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"sql-fs-api": patch ---- - -Shut down promptly when MCP clients hold a `GET /mcp` listener stream open. The server waited for those streams before it drained workers, so every such shutdown ran into the 60 s force exit and exited with code 1. It now ends listener streams first and lets in-flight MCP tool calls finish. diff --git a/.changeset/workers-default.md b/.changeset/workers-default.md deleted file mode 100644 index f506fabe..00000000 --- a/.changeset/workers-default.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"sql-fs-api": minor ---- - -Run scripts in worker threads by default. Set `SQL_FS_WORKERS_ENABLED=false` to keep inline mode. Any value other than `true` or `false` now stops startup. - -Inline mode now caps exec output at `SQL_FS_WORKER_OUTPUT_BYTES` (default 64 MiB), down from 256 MiB, so both modes share one limit. The default `SQL_FS_WORKER_MESSAGE_BYTES` grows with the output cap: 65 MiB, or the output cap plus 1 MiB if that is larger. An explicit value still wins. - -To upgrade replicas that run with workers off, deploy with `SQL_FS_WORKERS_ENABLED=false` first, then remove the setting once no older replica remains. docs/CONFIGURATION.md describes the two-stage rollout. diff --git a/CHANGELOG.md b/CHANGELOG.md index 20230fc2..c75a3489 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 1.2.0 + +### Minor Changes + +- [#268](https://github.com/Hazzng/sql-fs/pull/268) Thanks [@Hazzng](https://github.com/Hazzng)! - Run scripts in worker threads by default. Set `SQL_FS_WORKERS_ENABLED=false` to keep inline mode. Any value other than `true` or `false` now stops startup. + + Inline mode now caps exec output at `SQL_FS_WORKER_OUTPUT_BYTES` (default 64 MiB), down from 256 MiB, so both modes share one limit. The default `SQL_FS_WORKER_MESSAGE_BYTES` grows with the output cap: 65 MiB, or the output cap plus 1 MiB if that is larger. An explicit value still wins. + + To upgrade replicas that run with workers off, deploy with `SQL_FS_WORKERS_ENABLED=false` first, then remove the setting once no older replica remains. docs/CONFIGURATION.md describes the two-stage rollout. + +### Patch Changes + +- [#270](https://github.com/Hazzng/sql-fs/pull/270) Thanks [@Hazzng](https://github.com/Hazzng)! - Add `SQL_FS_MAX_INGRESS_WAIT_MS`, the time a request or MCP listener waits for ingress capacity before it gets a 503 `EWORKER_BUSY`. The default stays 250 ms, the previous fixed value. Like the other ingress settings, an empty value uses the default. With workers on, any other invalid value, including a wait above 2147483647 ms, stops startup. `SQL_FS_WORKER_QUEUE_WAIT_MS` now rejects values above 2147483647 ms too, because Node would run such a timer after 1 ms. + +- [#270](https://github.com/Hazzng/sql-fs/pull/270) Thanks [@Hazzng](https://github.com/Hazzng)! - Shut down promptly when MCP clients hold a `GET /mcp` listener stream open. The server waited for those streams before it drained workers, so every such shutdown ran into the 60 s force exit and exited with code 1. It now ends listener streams first and lets in-flight MCP tool calls finish. + ## 1.1.1 ### Patch Changes diff --git a/README.md b/README.md index 1c57bf7c..911ea842 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

- Version + Version Node.js TypeScript just-bash diff --git a/package.json b/package.json index 2e69d84e..118cd670 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sql-fs-api", - "version": "1.1.1", + "version": "1.2.0", "description": "Persistent filesystem backend (Postgres) + HTTP/MCP API for just-bash sandboxes", "type": "module", "license": "MIT", diff --git a/src/api/openapi-spec.ts b/src/api/openapi-spec.ts index ce1cfb43..8277e534 100644 --- a/src/api/openapi-spec.ts +++ b/src/api/openapi-spec.ts @@ -107,7 +107,7 @@ export const openapiSpec = { openapi: "3.0.0", info: { title: "SQL-FS API", - version: "1.1.1", + version: "1.2.0", description: "Persistent filesystem backend + HTTP/MCP API for just-bash sandboxes. Backed by Postgres.", }, servers: [{ url: "/v1", description: "API v1" }],