@erichll/pi-sandbox 0.8.4 → 0.8.6

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,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.6 - 2026-08-21
4
+
5
+ - Update the exact `@erichll/pi-auto-review` dependency to `0.8.1`, inheriting
6
+ permission-system 26.x compatibility: pi-auto-review now requires
7
+ `@gotgenes/pi-permission-system` `^26.0.0` and restores TUI auto-confirm for
8
+ capped `path` / `external_directory` allows (binding the live dialog via
9
+ `requestId` plus `request.value`). No pi-sandbox runtime or public API
10
+ changes.
11
+
12
+ ## 0.8.5 - 2026-08-21
13
+
14
+ - Update the exact `@erichll/pi-auto-review` dependency to `0.8.0`, inheriting
15
+ the break-glass recovery feature: deny results now carry a `denialSource` and
16
+ a `recoveryCommand` naming `/auto-review-approve` or
17
+ `/auto-review-break-glass`, or stating that a local hard deny cannot be
18
+ overridden.
19
+
3
20
  ## 0.8.4 - 2026-08-20
4
21
 
5
22
  - Update the dev-only `pi-subagents` compatibility baseline to `0.53.0`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@erichll/pi-sandbox",
3
- "version": "0.8.4",
3
+ "version": "0.8.6",
4
4
  "description": "Sandbox Runtime-backed Linux and macOS sandbox with pi-auto-review approval",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -51,7 +51,7 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@anthropic-ai/sandbox-runtime": "0.0.73",
54
- "@erichll/pi-auto-review": "0.7.0"
54
+ "@erichll/pi-auto-review": "0.8.1"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@earendil-works/pi-coding-agent": "^0.84.1",
package/src/approval.ts CHANGED
@@ -124,10 +124,17 @@ async function approveBoundaryRequest(
124
124
  }
125
125
 
126
126
  if (decision.kind === "deny") {
127
+ const recoveryCommand =
128
+ decision.recoveryCommand ?? "/auto-review-approve";
129
+ const recovery =
130
+ recoveryCommand === false
131
+ ? " This local safety denial cannot be overridden."
132
+ : ` Use ${recoveryCommand} for one exact retry.`;
127
133
  return {
128
134
  action: "deny",
129
- source: "reviewer",
130
- reason: decision.review.rationale,
135
+ source:
136
+ decision.denialSource === "hard-deny" ? "hard-deny" : "reviewer",
137
+ reason: `${decision.review.rationale}${recovery}`,
131
138
  };
132
139
  }
133
140
  if (decision.kind === "defer") {