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.
- package/.pi-session-mcp-cli/doctor.js +9 -2
- package/CHANGELOG.md +11 -0
- package/README.md +1 -1
- package/dist/doctor.js +9 -2
- package/docs/acceptance.md +15 -0
- package/docs/doctor-design.md +1 -1
- package/docs/installation.md +1 -1
- package/docs/tool-contracts.md +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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.
|
|
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
|
-
|
|
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/docs/acceptance.md
CHANGED
|
@@ -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.
|
package/docs/doctor-design.md
CHANGED
|
@@ -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` |
|
package/docs/installation.md
CHANGED
|
@@ -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.
|
|
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
|
package/docs/tool-contracts.md
CHANGED
|
@@ -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.
|
|
25
|
+
"server": { "name": "pi-session-mcp", "version": "0.6.3" },
|
|
26
26
|
"configuration": {
|
|
27
27
|
"fingerprint": "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
|
|
28
28
|
"reloadPolicy": "restart-required"
|