@gotgenes/pi-permission-system 40.0.2 → 40.1.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
|
@@ -5,6 +5,17 @@ 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
|
+
## [40.1.0](https://github.com/gotgenes/pi-packages/compare/pi-permission-system-v40.0.2...pi-permission-system-v40.1.0) (2026-10-08)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **pi-permission-system:** sudo -n true and other shell no-ops behind a wrapper resolve by their own rule ([a0889ee](https://github.com/gotgenes/pi-packages/commit/a0889ee49c3ea217bb534339c12dc6c470020429)), closes [#1039](https://github.com/gotgenes/pi-packages/issues/1039)
|
|
14
|
+
|
|
15
|
+
### Documentation
|
|
16
|
+
|
|
17
|
+
* **pi-permission-system:** document shell no-ops in the pure-reader core ([#1039](https://github.com/gotgenes/pi-packages/issues/1039)) ([de296e0](https://github.com/gotgenes/pi-packages/commit/de296e0306a022b19fc5a8584e7c74841a35e69f))
|
|
18
|
+
|
|
8
19
|
## [40.0.2](https://github.com/gotgenes/pi-packages/compare/pi-permission-system-v40.0.1...pi-permission-system-v40.0.2) (2026-10-06)
|
|
9
20
|
|
|
10
21
|
|
package/docs/configuration.md
CHANGED
|
@@ -1009,7 +1009,7 @@ A path token owned by one of them consults the `_read` surface alone:
|
|
|
1009
1009
|
|
|
1010
1010
|
<!-- BEGIN PURE_READER_CORE -->
|
|
1011
1011
|
|
|
1012
|
-
`awk`, `basename`, `cat`, `cd`, `diff`, `dirname`, `echo`, `egrep`, `fd`, `fgrep`, `find`, `grep`, `head`, `ls`, `pwd`, `realpath`, `rg`, `sed`, `sort`, `stat`, `tail`, `wc`, `which`
|
|
1012
|
+
`:`, `awk`, `basename`, `cat`, `cd`, `diff`, `dirname`, `echo`, `egrep`, `false`, `fd`, `fgrep`, `find`, `grep`, `head`, `ls`, `pwd`, `realpath`, `rg`, `sed`, `sort`, `stat`, `tail`, `true`, `wc`, `which`
|
|
1013
1013
|
|
|
1014
1014
|
<!-- END PURE_READER_CORE -->
|
|
1015
1015
|
|
|
@@ -1079,7 +1079,7 @@ All four of these must hold, and each is a way the floor's reason could still ap
|
|
|
1079
1079
|
4. The enclosing statement provably writes no file through a redirect.
|
|
1080
1080
|
A destination the parse cannot resolve — `> $OUT`, `> $(mktemp)` — counts against the exemption rather than for it.
|
|
1081
1081
|
|
|
1082
|
-
So `xargs grep -l foo`, `xargs wc -l`, `xargs sed -n 1p`,
|
|
1082
|
+
So `xargs grep -l foo`, `xargs wc -l`, `xargs sed -n 1p`, `find . -name '*.ts' -exec cat {} +`, and the no-op probe `sudo -n true` stop prompting under a matching `bash` allow, while `xargs rm`, `xargs sed -i`, and `find . -exec sh -c '…' \;` still prompt.
|
|
1083
1083
|
|
|
1084
1084
|
Three things this does **not** change:
|
|
1085
1085
|
|
package/package.json
CHANGED
|
@@ -155,6 +155,11 @@ function coreAdmissions(): readonly CoreAdmission[] {
|
|
|
155
155
|
reason:
|
|
156
156
|
"No filesystem write: `echo` writes to stdout (a redirect destination is the syntax proof's job, not `echo`'s); `cd` reads a directory to enter it",
|
|
157
157
|
},
|
|
158
|
+
{
|
|
159
|
+
words: ["true", "false", ":"],
|
|
160
|
+
reason:
|
|
161
|
+
"No-ops: ignore their operands and touch no file; GNU's `--help`/`--version` print to stdout only",
|
|
162
|
+
},
|
|
158
163
|
{
|
|
159
164
|
words: ["find", "fd", "sort"],
|
|
160
165
|
reason:
|