@gotgenes/pi-permission-system 27.0.0 → 27.0.1

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
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [27.0.1](https://github.com/gotgenes/pi-packages/compare/pi-permission-system-v27.0.0...pi-permission-system-v27.0.1) (2026-08-24)
9
+
10
+
11
+ ### Documentation
12
+
13
+ * **pi-permission-system:** reconcile architecture with ADR 0013 ([#639](https://github.com/gotgenes/pi-packages/issues/639)) ([8a899da](https://github.com/gotgenes/pi-packages/commit/8a899da1884b8c4657e689ab2d4c86406eaa1add))
14
+
8
15
  ## [27.0.0](https://github.com/gotgenes/pi-packages/compare/pi-permission-system-v26.3.1...pi-permission-system-v27.0.0) (2026-08-21)
9
16
 
10
17
 
package/README.md CHANGED
@@ -148,8 +148,9 @@ Hardening the gates against bypass, fail-closed corrections (breaking ones inclu
148
148
 
149
149
  **Non-goals.**
150
150
 
151
- - _Sandboxing._
152
- This is a decision layer, not a sandbox — it decides and records, it does not isolate.
151
+ - _Implementing isolation._
152
+ This is a decision layer — it decides and records; a sandbox contains.
153
+ The two are complementary: a sandbox settles which paths are in scope and in which direction, and this package decides whether a particular action on an in-scope path may proceed.
153
154
  If a dangerous action is reachable through an allowed tool, policy has to restrict it explicitly.
154
155
  - _Deciding project trust._
155
156
  A policy enforcer, not a trust oracle: whether a project is trusted is Pi's decision and yours, and this package observes it.
@@ -164,11 +165,12 @@ Hardening the gates against bypass, fail-closed corrections (breaking ones inclu
164
165
  The [architecture doc](https://github.com/gotgenes/pi-packages/blob/main/packages/pi-permission-system/docs/architecture/architecture.md#scope-and-non-goals) carries the full inventory, with the decision record behind each entry.
165
166
 
166
167
  **One decision is still open.**
167
- How policy may _enter_ the system — which channels are admissible, and with what precedence — is being worked out in [issue #639](https://github.com/gotgenes/pi-packages/issues/639), along with whether a capability model replaces the current surface list.
168
+ How policy may _enter_ the system — which channels are admissible, and with what precedence — is being worked out in [issue #799](https://github.com/gotgenes/pi-packages/issues/799).
168
169
  Several requested widenings are parked on it rather than declined, durable persistence of an approval among them.
170
+ The companion question — whether a capability model replaces the actor-keyed surface list — is settled: [ADR 0013](https://github.com/gotgenes/pi-packages/blob/main/packages/pi-permission-system/docs/decisions/0013-permission-policy-model.md) adds read/write as an axis beside the existing keys, so a policy can permit reading a path without also permitting writes to it.
169
171
 
170
172
  **Where adjacent requests belong.**
171
- True isolation of a permitted action → an agent sandbox.
173
+ True isolation of a permitted action → an agent sandbox, which this package's scope decisions are exported to rather than duplicated in.
172
174
  Model-assisted judging of an `ask` → a chain link over the authorizer seam; [@gotgenes/pi-permission-model-judge](https://www.npmjs.com/package/@gotgenes/pi-permission-model-judge) is the first-party one, and judges mistyped paths.
173
175
  Approve-and-steer, edit diffs, and risk explanations → a downstream package over the `permissions:decision` event and the presentation seams.
174
176
 
@@ -50,10 +50,13 @@ This makes it easy to verify which files the extension actually loaded:
50
50
  **Limitations:**
51
51
 
52
52
  - If a dangerous action is possible via an allowed tool, policy must explicitly restrict it
53
- - This is a permission decision layer, not a sandbox — for true isolation see [Agent Sandboxes](https://engine.build/lab/agent-sandboxes)
53
+ - This is a permission decision layer, not a sandbox — for true isolation see [Agent Sandboxes](https://engine.build/lab/agent-sandboxes).
54
+ The two are complementary rather than alternatives: a sandbox enforces which paths are in scope and in which direction, while this package decides whether a particular action on an in-scope path may proceed.
55
+ [ADR 0013] §8 records that division and the seam that exports this package's scope decisions to a sandbox launcher.
54
56
  - The review log records bash command strings unredacted.
55
57
  Log files are created owner-only (`0600`), and values bound to a sensitive key name (`authorization`, `token`, `password`, …) are masked — but a secret embedded in a command string is not.
56
58
  Review-log values are shortened at `reviewLogFieldMaxWidth` (1000 characters by default), which bounds the file's growth but is a length cap, not redaction.
57
59
  See [Log file sensitivity](configuration.md#log-file-sensitivity) and [ADR 0010].
58
60
 
59
61
  [ADR 0010]: https://github.com/gotgenes/pi-packages/blob/main/packages/pi-permission-system/docs/decisions/0010-permission-log-secret-exposure.md
62
+ [ADR 0013]: https://github.com/gotgenes/pi-packages/blob/main/packages/pi-permission-system/docs/decisions/0013-permission-policy-model.md
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gotgenes/pi-permission-system",
3
- "version": "27.0.0",
3
+ "version": "27.0.1",
4
4
  "description": "Permission enforcement extension for the Pi coding agent.",
5
5
  "type": "module",
6
6
  "exports": {