@procedures/mark 0.21.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/README.md +1 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -0
- package/dist/cli.js.map +1 -1
- package/dist/manifest.json +2 -2
- package/package.json +49 -49
- package/src/cli.ts +9 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# @procedures/mark
|
|
2
2
|
|
|
3
|
+
## 0.22.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 25822ee: The Streamable HTTP face of an MCP host keeps at most 256 sessions by default, and a task store keeps at most 1000 tasks (CLI-51). Before, the sessions had no limit by default. Thus one client could increase the memory of the host without a limit.
|
|
8
|
+
|
|
9
|
+
MINOR: a breaking change before 1.0. A new default limit changes a behavior that callers rely on (decision D13).
|
|
10
|
+
|
|
11
|
+
Changed:
|
|
12
|
+
|
|
13
|
+
- The default of `maxSessions` is 256, not `Infinity`. This default applies to `faces.http` of `createMcpHost()`, to `mcpFace()` and to `mark mcp --http`. `MCP_HTTP_LIMITS.maxSessions` is 256.
|
|
14
|
+
- A new session above the limit closes the session that was idle longest. When each session is busy, the new session gets 503 with a `Retry-After` header, as before with a limit.
|
|
15
|
+
- Each live client of the MCP SDK keeps its GET stream open, so the limit does not close its session. Thus the limit is much more than the clients of one host. Each live session also holds a socket, and 256 is much less than the usual limit of 1024 open files of a process.
|
|
16
|
+
- `maxSessions: Infinity` stays valid. It turns the limit off.
|
|
17
|
+
|
|
18
|
+
Added:
|
|
19
|
+
|
|
20
|
+
- The option `maxStored` of `McpTaskStore`, and of `tasks` of `createMcpHost()` and `mcpFace()`. It is the most tasks that the store keeps for all the sessions together. The default is 1000 (`MCP_TASK_LIMITS.maxStored`). Before, only the limit of 100 tasks for each session bounded the store.
|
|
21
|
+
- A new task removes the oldest task of its own session that ended. The store can be full, and the session can have no task that ended. Then the request of the new task gets the error `-32600` with the code `TASKS_FULL`. The store keeps nothing of that task. Thus a client cannot remove the results of another session. `maxStored: Infinity` turns the limit off.
|
|
22
|
+
- The flag `--max-sessions <n>` of `mark mcp`, and the variable `MCP_HTTP_MAX_SESSIONS` of `@procedures/mcp-dev-tools`. They set `maxSessions` of the HTTP face. `Infinity` turns the limit off.
|
|
23
|
+
|
|
24
|
+
Migration:
|
|
25
|
+
|
|
26
|
+
- A host with more than 256 clients at one time: give a larger `maxSessions`, or `maxSessions: Infinity` for no limit. Give it in `faces.http` of `createMcpHost()`, in `mcpFace()`, or with `mark mcp --http <port> --max-sessions <n>`.
|
|
27
|
+
- A host that keeps more than 1000 tasks: give a larger `maxStored`, or `maxStored: Infinity`, in `tasks` of the host or in `new McpTaskStore()`.
|
|
28
|
+
- The site and MiniMongo: no change. They have no MCP host.
|
|
29
|
+
- Graph: no change. Its `mcpFace()` on the procedures host gets the limit of 256 sessions, and its MCP host over stdio has no HTTP face. To keep no limit, give `mcpFace({ maxSessions: Infinity })`.
|
|
30
|
+
- jarvis: no change. Its MCP host has only stdio and SDK faces, and it has no tasks.
|
|
31
|
+
- polite-crawler-mcp: no change for the sessions, because it sets `maxSessions: 32`. Its `McpTaskStore` gets the limit of 1000 stored tasks. Before, 32 sessions of 100 tasks bounded the store at 3200 tasks. To keep that bound, give `new McpTaskStore({ maxStored: 3200 })`.
|
|
32
|
+
- polite-crawler-mcp also gives the deprecated option `mount: true`, which has no effect. Remove it when it moves to the new range.
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- Updated dependencies [25822ee]
|
|
37
|
+
- @procedures/mcp-dev-tools@0.22.0
|
|
38
|
+
- @procedures/peer@0.22.0
|
|
39
|
+
- @procedures/client@0.22.0
|
|
40
|
+
- @procedures/cli-run@0.22.0
|
|
41
|
+
- @procedures/lib@0.22.0
|
|
42
|
+
- @procedures/pnpm@0.22.0
|
|
43
|
+
- @procedures/procedure@0.22.0
|
|
44
|
+
- @procedures/shell@0.22.0
|
|
45
|
+
- @procedures/vitest@0.22.0
|
|
46
|
+
- @procedures/server@0.22.0
|
|
47
|
+
|
|
3
48
|
## 0.21.0
|
|
4
49
|
|
|
5
50
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -131,7 +131,7 @@ The package provides a `mark` binary for command-line usage.
|
|
|
131
131
|
```bash
|
|
132
132
|
mark [global options] <path...> [positional...] [--options]
|
|
133
133
|
mark serve [--procedures pkgs] [--port N] [--token T | --no-token] [--expose patterns] [--events topics] [--fs-root folder] [--probe-port N]
|
|
134
|
-
mark mcp [--bundles list] [--tool-timeout ms] [--read-only] [--http port] [--fs-root folder] [--debug]
|
|
134
|
+
mark mcp [--bundles list] [--tool-timeout ms] [--read-only] [--http port] [--max-sessions n] [--fs-root folder] [--debug]
|
|
135
135
|
mark --server [--port N] [--host H] [--transport http|websocket|both] [--events topics] [--probe-port N]
|
|
136
136
|
mark -i
|
|
137
137
|
mark --fs-root <folder> <command | --server | -i | serve | mcp>
|