@erichll/pi-sandbox 0.18.1 → 0.19.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 CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.19.0 - 2026-09-20
4
+
5
+ - Require Pi `^0.86.0` for both the development and peer dependency of
6
+ `@earendil-works/pi-coding-agent`, and depend on `@erichll/pi-auto-review`
7
+ `^0.19.0` so the pair shares the same Pi floor. The `pi-subagents` runtime
8
+ peer stays `>=0.66.0`.
9
+ - Revalidated against Pi 0.86.0: the package test suite passes (88 pass, 1
10
+ skipped), the deterministic `gate:pi-subagents` preflight passes, and the
11
+ model-backed gate passes both phases (native baseline host-readable,
12
+ protected sandboxed Bash blocked from the host read) with native
13
+ acknowledgement `@erichll:pi-sandbox`.
14
+ - Recorded the Pi 0.86.0 floor in `README.md`, `docs/compat-notes.md`, and the
15
+ `pi-subagents-native.ts` compatibility notes: protected mode with
16
+ pi-subagents 0.68.0+ needs Pi 0.86.0 or newer.
17
+
18
+ ## 0.18.2 - 2026-09-20
19
+
20
+ - Pin the development `pi-subagents` baseline to `^0.69.0` and Pi to
21
+ `^0.85.1`. The runtime peer stays `>=0.66.0`.
22
+ - Revalidated protected native mode against published pi-subagents 0.69.0:
23
+ the `./capability-ceiling` export path, `SUBAGENT_CAPABILITY_CEILING_VERSION`
24
+ 1, `registerSubagentCapabilityCeiling`, discovery/canonical resolution, and
25
+ the config loader with `scheduledRuns` are unchanged. The deterministic gate
26
+ and the package test suite pass against 0.67.0 and 0.69.0.
27
+ - Recorded in `docs/compat-notes.md` that protected mode with pi-subagents
28
+ 0.68.0+ needs Pi 0.85.1 or newer: 0.85.0 does not ship
29
+ `@earendil-works/pi-server`, so background children fail to launch there.
30
+
3
31
  ## 0.18.1 - 2026-09-17
4
32
 
5
33
  - Trim redundant paths from default `denyWrite` policy (`settings.json`,
package/README.md CHANGED
@@ -9,7 +9,7 @@ also run complete process-backed subagent trees inside independent sandboxes.
9
9
  - [Security model](#security-model)
10
10
  - [Linux requirements](#linux-requirements)
11
11
  - [Subagent provider](#subagent-provider)
12
- - [`pi-subagents` 0.65.0 native-background tool boundary](#pi-subagents-0650-native-background-tool-boundary)
12
+ - [`pi-subagents` native-background tool boundary](#pi-subagents-native-background-tool-boundary)
13
13
  - [Network domain policy](#network-domain-policy)
14
14
  - [Optional host IPC fallback](#optional-host-ipc-fallback)
15
15
  - [Additional trusted read paths](#additional-trusted-read-paths)
@@ -90,14 +90,16 @@ Supported modes:
90
90
 
91
91
  - `builtin` (default): register the process-backed `subagent` tool and sandbox
92
92
  each complete worker process tree.
93
- - `pi-subagents`: let `pi-subagents 0.65.0` own orchestration under the required
93
+ - `pi-subagents`: let `pi-subagents >=0.66.0` own orchestration under the required
94
94
  native-background tool boundary described below.
95
95
  - `off`: protect Bash only.
96
96
 
97
- ### `pi-subagents` 0.65.0 native-background tool boundary
97
+ ### `pi-subagents` native-background tool boundary
98
98
 
99
- This provider is intentionally locked to exactly `pi-subagents 0.65.0` and
100
- fails closed if its public ceiling API or internal discovery layout drifts.
99
+ This provider supports the `pi-subagents >=0.66.0` line (validated through
100
+ 0.69.0) and fails closed if its public ceiling API or internal discovery layout
101
+ drifts. The peer dependency is a floor with no upper pin; the loader's explicit
102
+ export and layout checks are the real gate.
101
103
  Configure both the protection mode and a non-empty canonical whitelist:
102
104
 
103
105
  ```json
@@ -113,9 +115,9 @@ Configure both the protection mode and a non-empty canonical whitelist:
113
115
  The `pi-subagents` config at
114
116
  `~/.pi/agent/extensions/subagent/config.json` must also contain
115
117
  `"scheduledRuns": { "enabled": false }`. Every launch must explicitly set
116
- `async: true`. Only direct single-agent launches are supported. In 0.65.0,
117
- public `workflowScript` / `workflowScriptPath` children disable ambient
118
- extensions, so both are rejected along with named workflows, schedules,
118
+ `async: true`. Only direct single-agent launches are supported. Public
119
+ `workflowScript` / `workflowScriptPath` children disable ambient
120
+ extensions upstream, so both are rejected along with named workflows, schedules,
119
121
  configuration mutations, resume, nested subagents, and external runners.
120
122
 
121
123
  Every child is constrained by the upstream capability ceiling to `bash`,
@@ -124,7 +126,7 @@ acknowledge `@erichll:pi-sandbox`; writes can therefore occur only through the
124
126
  sandboxed Bash tool. `write`, `edit`, MCP, and other extension tools are not
125
127
  available.
126
128
 
127
- | Capability | `builtin` | `pi-subagents` 0.65.0 protected mode |
129
+ | Capability | `builtin` | `pi-subagents` protected mode |
128
130
  | --- | --- | --- |
129
131
  | Outer worker sandbox | Yes | No |
130
132
  | Bash sandbox | Yes | Yes |
@@ -276,11 +278,13 @@ npm test
276
278
  npm run gate:pi-subagents
277
279
  ```
278
280
 
279
- `gate:pi-subagents` verifies the pinned package layout, discovery behavior,
281
+ `gate:pi-subagents` verifies the pinned development dependency's package layout,
282
+ discovery behavior,
280
283
  capability ceiling, and protected launch policy in an isolated temporary agent
281
284
  directory. It never reads or updates production Pi configuration. Model-backed
282
285
  acceptance requires `PI_SUBAGENTS_GATE_MODEL` and an already-exported matching
283
- credential; missing prerequisites are reported as `SKIP`.
286
+ credential; missing prerequisites are reported as `SKIP`. Protected mode with
287
+ pi-subagents 0.68.0 or newer needs Pi 0.86.0 or newer.
284
288
 
285
289
  The test suite covers real Linux Sandbox Runtime enforcement when its native
286
290
  dependencies are installed, plus deterministic broker, network approval,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@erichll/pi-sandbox",
3
- "version": "0.18.1",
3
+ "version": "0.19.0",
4
4
  "description": "Linux (bubblewrap) and macOS (Seatbelt) process sandbox for Pi backed by Anthropic's @anthropic-ai/sandbox-runtime. Fail-closed static filesystem policy plus per-connection network approval from pi-auto-review; sandboxes main-agent Bash and built-in subagent process trees.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -51,11 +51,11 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@anthropic-ai/sandbox-runtime": "0.0.75",
54
- "@erichll/pi-auto-review": "^0.18.0",
54
+ "@erichll/pi-auto-review": "^0.19.0",
55
55
  "jiti": "2.7.0"
56
56
  },
57
57
  "peerDependencies": {
58
- "@earendil-works/pi-coding-agent": "^0.85.0",
58
+ "@earendil-works/pi-coding-agent": "^0.86.0",
59
59
  "pi-subagents": ">=0.66.0",
60
60
  "typebox": ">=1.0.0"
61
61
  },
@@ -65,10 +65,10 @@
65
65
  }
66
66
  },
67
67
  "devDependencies": {
68
- "@earendil-works/pi-coding-agent": "^0.85.0",
69
- "@earendil-works/pi-server": "^0.85.0",
68
+ "@earendil-works/pi-coding-agent": "^0.86.0",
69
+ "@earendil-works/pi-server": "^0.86.0",
70
70
  "@types/node": "^26.2.0",
71
- "pi-subagents": "^0.67.0",
71
+ "pi-subagents": "^0.69.0",
72
72
  "typescript": "^6.0.3"
73
73
  }
74
74
  }
@@ -7,9 +7,13 @@ import { createJiti } from "jiti";
7
7
  * Compatible pi-subagents line: 0.66.0 and above (no upper pin). Any new minor
8
8
  * is accepted, so the exports/ceiling checks below are the real compatibility
9
9
  * gate; this range only rejects old lines and guards against blind
10
- * accept-on-drift. Revalidated against 0.66.0: ceiling registry, discovery,
11
- * and config internals unchanged (verified 2026-09-06 against the published
12
- * 0.66.0 package).
10
+ * accept-on-drift. Revalidated against 0.69.0: ceiling registry
11
+ * (`SUBAGENT_CAPABILITY_CEILING_VERSION` 1), the `./capability-ceiling` export
12
+ * path, discovery/canonical resolution, and the config loader with
13
+ * `scheduledRuns` are unchanged since 0.66.0 (verified 2026-09-19 against the
14
+ * published 0.69.0 package). Protected mode needs Pi 0.86.0 or newer (the
15
+ * package peer floor) with pi-subagents 0.68.0+: 0.85.0 does not ship
16
+ * `@earendil-works/pi-server`, so background children fail to launch there.
13
17
  */
14
18
  export const PI_SUBAGENTS_COMPAT_RANGE = ">=0.66.0";
15
19
  export const NATIVE_CHILD_TOOLS = ["bash", "read", "grep", "find", "ls"] as const;