@gotgenes/pi-permission-system 26.3.0 → 26.3.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 +10 -0
- package/README.md +35 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,16 @@ 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
|
+
## [26.3.1](https://github.com/gotgenes/pi-packages/compare/pi-permission-system-v26.3.0...pi-permission-system-v26.3.1) (2026-08-19)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Documentation
|
|
12
|
+
|
|
13
|
+
* condense scope sections and move them below the usage material ([#775](https://github.com/gotgenes/pi-packages/issues/775)) ([99f5829](https://github.com/gotgenes/pi-packages/commit/99f58298962baac5bdfe5d3cc02dca0ca9b32395))
|
|
14
|
+
* **pi-permission-system:** document scope and non-goals ([#775](https://github.com/gotgenes/pi-packages/issues/775)) ([5fa3960](https://github.com/gotgenes/pi-packages/commit/5fa39609953ad8bf370a0e304a73fdf67df6dae5))
|
|
15
|
+
* **retro:** add retro notes for issue [#610](https://github.com/gotgenes/pi-packages/issues/610) ([2333e6a](https://github.com/gotgenes/pi-packages/commit/2333e6ae57fe77c64e322e520918404995ef1dda))
|
|
16
|
+
* route model-assisted judging to the seam, not to one link ([#775](https://github.com/gotgenes/pi-packages/issues/775)) ([3f30984](https://github.com/gotgenes/pi-packages/commit/3f30984b53eb0a14217cf70ecb05ac1daab48abb))
|
|
17
|
+
|
|
8
18
|
## [26.3.0](https://github.com/gotgenes/pi-packages/compare/pi-permission-system-v26.2.2...pi-permission-system-v26.3.0) (2026-08-18)
|
|
9
19
|
|
|
10
20
|
|
package/README.md
CHANGED
|
@@ -137,6 +137,41 @@ Commands that previously slipped through silently on the error or empty-parse pa
|
|
|
137
137
|
|
|
138
138
|
If you relied on the old permissive behavior for bash, set an explicit permissive bash policy — `"bash": { "*": "allow" }` — which also suppresses the new startup warning emitted when a top-level `"*": "allow"` leaves bash ungated.
|
|
139
139
|
|
|
140
|
+
## Scope and non-goals
|
|
141
|
+
|
|
142
|
+
**Purpose.**
|
|
143
|
+
An agent takes many actions, most of them benign, but some of which need a human to confirm they are safe or correct.
|
|
144
|
+
This package routes your attention to those, and turns each ruling into deterministic, reusable policy — enforced at the host level rather than by asking the model to police itself.
|
|
145
|
+
|
|
146
|
+
**In scope.**
|
|
147
|
+
Hardening the gates against bypass, fail-closed corrections (breaking ones included), named opt-in extension seams for downstream packages, and structural work backed by a written decision record.
|
|
148
|
+
|
|
149
|
+
**Non-goals.**
|
|
150
|
+
|
|
151
|
+
- _Sandboxing._
|
|
152
|
+
This is a decision layer, not a sandbox — it decides and records, it does not isolate.
|
|
153
|
+
If a dangerous action is reachable through an allowed tool, policy has to restrict it explicitly.
|
|
154
|
+
- _Deciding project trust._
|
|
155
|
+
A policy enforcer, not a trust oracle: whether a project is trusted is Pi's decision and yours, and this package observes it.
|
|
156
|
+
- _Permissive defaults, trust profiles, or workflow presets._
|
|
157
|
+
Your risk profile is not knowable from here, so defaults are least-privilege and common policies ship as documented recipes rather than preset keywords.
|
|
158
|
+
- _Guessing what is sensitive._
|
|
159
|
+
No built-in secret denylist, and log redaction is key-name-structural rather than predictive — a redactor that silently misses a key invites treating the log as safe to share.
|
|
160
|
+
- _Model judgment in the core._
|
|
161
|
+
This package makes no LLM call and holds no model config; model-assisted judging attaches as a chain link over the authorizer seam instead.
|
|
162
|
+
A link decides nothing until you name it in `authorizerChain`, and its `allow` on an excluded surface is downgraded to `defer`.
|
|
163
|
+
|
|
164
|
+
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
|
+
**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
|
+
Several requested widenings are parked on it rather than declined, durable persistence of an approval among them.
|
|
169
|
+
|
|
170
|
+
**Where adjacent requests belong.**
|
|
171
|
+
True isolation of a permitted action → an agent sandbox.
|
|
172
|
+
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
|
+
Approve-and-steer, edit diffs, and risk explanations → a downstream package over the `permissions:decision` event and the presentation seams.
|
|
174
|
+
|
|
140
175
|
## Documentation
|
|
141
176
|
|
|
142
177
|
| Document | Contents |
|