pi-session-mcp 0.6.2 → 0.6.3

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.
@@ -104,8 +104,15 @@ export async function runDoctor(dependencies = {}) {
104
104
  const packageMtime = (await fs.stat(join(root, "package.json"))).mtimeMs;
105
105
  const lockMtime = await lockfileMtime(fs, root);
106
106
  const inputMtimes = [packageMtime, lockMtime].filter((value) => value !== undefined);
107
- if (!dependencies.fileSystem)
108
- inputMtimes.push(...await productionBuildInputMtimes(root));
107
+ if (!dependencies.fileSystem) {
108
+ const buildInputMtimes = await productionBuildInputMtimes(root);
109
+ // npm writes an installed package at extraction time in archive order, so without
110
+ // build inputs the manifest times say nothing about the freshness of the build.
111
+ if (buildInputMtimes.length === 0)
112
+ inputMtimes.length = 0;
113
+ else
114
+ inputMtimes.push(...buildInputMtimes);
115
+ }
109
116
  if (inputMtimes.some((mtime) => mtime > buildMtime))
110
117
  checks.push(warning("build_stale", "build output", "run the production build"));
111
118
  else
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.6.3 — 2026-10-10
6
+
7
+ - Doctor no longer reports a false `build_stale` warning right after
8
+ `npm install` with npm 12. npm 12 writes extracted files with the extraction
9
+ time, and the package lists `dist/` before `package.json`, so the installed
10
+ manifest was always newer than the build. An installation without build
11
+ configuration or TypeScript sources no longer compares manifest times; a
12
+ source checkout still does.
13
+ - `setup` was re-recorded against Claude Code `2.1.296`; its `mcp` command
14
+ contract is unchanged.
15
+
5
16
  ## 0.6.2 — 2026-10-09
6
17
 
7
18
  - The server now shuts down when the MCP client closes its stdin. Previously
package/README.md CHANGED
@@ -29,7 +29,7 @@ It is not the right tool when:
29
29
 
30
30
  ## Status
31
31
 
32
- The package version is **0.6.2**.
32
+ The package version is **0.6.3**.
33
33
 
34
34
  - **Pre-1.0.** The public tool contract is stable within a minor line: a change to tools, fields, states or error codes needs a new minor release.
35
35
  - **Linux only**, Node.js 22.19.0 or newer.
package/dist/doctor.js CHANGED
@@ -104,8 +104,15 @@ export async function runDoctor(dependencies = {}) {
104
104
  const packageMtime = (await fs.stat(join(root, "package.json"))).mtimeMs;
105
105
  const lockMtime = await lockfileMtime(fs, root);
106
106
  const inputMtimes = [packageMtime, lockMtime].filter((value) => value !== undefined);
107
- if (!dependencies.fileSystem)
108
- inputMtimes.push(...await productionBuildInputMtimes(root));
107
+ if (!dependencies.fileSystem) {
108
+ const buildInputMtimes = await productionBuildInputMtimes(root);
109
+ // npm writes an installed package at extraction time in archive order, so without
110
+ // build inputs the manifest times say nothing about the freshness of the build.
111
+ if (buildInputMtimes.length === 0)
112
+ inputMtimes.length = 0;
113
+ else
114
+ inputMtimes.push(...buildInputMtimes);
115
+ }
109
116
  if (inputMtimes.some((mtime) => mtime > buildMtime))
110
117
  checks.push(warning("build_stale", "build output", "run the production build"));
111
118
  else
@@ -225,3 +225,18 @@ Release notes state which levels were run for a release and what was not
225
225
  covered. Pi Session MCP has passed all three levels in earlier private cycles. The
226
226
  live two-client acceptance has not yet been repeated on a build with Pi SDK
227
227
  `1.x`.
228
+
229
+ `v0.6.2` passed Level 1 on a fresh clone of its tag. It passed Level 2 in all
230
+ three variants: working tree, published release, and published npm package.
231
+ The clients were Codex CLI `0.162.0` (`user`) and Claude Code `2.1.295`
232
+ (`user`, `project`, `local`), on 2026-10-09 and 2026-10-10. It had no Level 3
233
+ cycle.
234
+
235
+ Before its release, `v0.6.3` passed Level 1 and the working-tree Level 2 on its
236
+ release candidate, with Claude Code `2.1.296`. On 2026-10-10 the same candidate
237
+ also passed a narrower live check:
238
+ - Scope: Claude Code `2.1.296` as the only client, with Pi SDK `1.1.0` on a
239
+ local `qwen3.6-35b-a3b-splash` model served by LM Studio.
240
+ - All five tasks of the matrix reached their intended outcome in three
241
+ sequential invocations, and every pre-registered check passed.
242
+ - It covered no Codex task and does not count as a ten-task cycle.
@@ -20,7 +20,7 @@ and owners are:
20
20
  | `node_version_unsupported` | Runtime does not satisfy `package.json#engines.node` | `Node.js` |
21
21
  | `package_metadata_unreadable` | Package metadata is missing, unreadable or malformed, or a lockfile is present but malformed | `package metadata` |
22
22
  | `build_missing` | `dist/main.js` is absent, inaccessible, or not a regular file | `build output` |
23
- | `build_stale` | Package, lock, build configuration, or production TypeScript input is newer than the build output, or freshness cannot be established. Inputs that an npm installation does not contain are skipped | `build output` |
23
+ | `build_stale` | Package, lock, build configuration, or production TypeScript input is newer than the build output, or freshness cannot be established. Inputs that an npm installation does not contain are skipped. Without any build configuration or TypeScript input, as in an npm installation, the package and lock times are not compared either, because npm writes extracted files with the extraction time | `build output` |
24
24
  | `version_mismatch` | Package and lock versions differ; this is a warning and does not apply to an npm installation, which has no lockfile | `package version` |
25
25
  | `config_missing` | `PI_SESSION_MCP_CONFIG` is not set, or the file it names is absent | `configuration` |
26
26
  | `config_unreadable` | The supported configuration path cannot be read | `configuration` |
@@ -47,7 +47,7 @@ the same arguments.
47
47
  - Codex CLI or Claude Code. `setup` does not pin client versions. It accepts a
48
48
  client whose public `mcp` command output matches the expected contract and
49
49
  reports `unsupported` otherwise. The contract was last recorded with Codex CLI
50
- `0.162.0` and Claude Code `2.1.295`. Manual registration, described in the
50
+ `0.162.0` and Claude Code `2.1.296`. Manual registration, described in the
51
51
  [client setup reference](client-setup.md), works independently of `setup`.
52
52
  - For real prompts only: local Pi authentication and a provider and model pair
53
53
  that the local Pi configuration knows. Installation, Doctor and `setup` need
@@ -22,7 +22,7 @@ There are exactly eight tools. No `pi_turn_wait` tool or live provider/model inv
22
22
  ```json
23
23
  {
24
24
  "ok": true,
25
- "server": { "name": "pi-session-mcp", "version": "0.6.2" },
25
+ "server": { "name": "pi-session-mcp", "version": "0.6.3" },
26
26
  "configuration": {
27
27
  "fingerprint": "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
28
28
  "reloadPolicy": "restart-required"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-session-mcp",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "description": "Local stdio MCP server for controlled Pi coding-agent sessions",
5
5
  "license": "MIT",
6
6
  "keywords": [