Close the five recorded findings: lane tool boundary, source-edit rule, install verify - #8
Merged
Merged
Conversation
added 7 commits
August 30, 2026 15:37
The roster test now requires the shared lane body to state the tools allowlist is a hard boundary and to name hub process starts as a forbidden route. Red until the lane bodies carry the sentence.
A hostile dispatch to the read-only pstack-librarian lane reproduced the recorded escape: omp granted hub op start beyond the read, grep, glob, web_search allowlist with no enforcement, and a /bin/sh -c payload wrote the probe file. Every lane body now refuses mutating assignments when write, edit, or bash is absent and forbids routing the mutation through hub. Hard enforcement stays an omp upstream gap; docs state the mitigation.
Covers the served-version JSON read, the newest cache directory pick, and the downgrade, stale-cache, and absent-plugin verdicts recorded during the 2.1.0 and 2.1.1 releases. Red until the module exists.
Compares the repo manifest version against omp plugin list --json and the newest marketplace cache directory, failing loudly on the downgrade and stale-cache shapes that surfaced at release time. Run it after omp plugin upgrade; a nonzero exit names the repair.
Agents ran sed -i and an ad-hoc python patcher on tracked source twice across the recorded sessions. AGENTS.md loads for every session in this repo, so the categorical rule now lives there instead of only inside poteto-mode.
Bumps the catalog, manifest, and UPSTREAM version cell. The changelog section records the hub-escape reproduction and mitigation, the mutation re-proof of the Claude-ism field cleanup, the zero-residue check on the reverted role-alias experiment, the AGENTS.md source-edit rule, and the installed-version verify lever.
omp plugin install on a local path links the tree instead of writing a cache directory, so the cache check false-alarmed in link mode. The active entry now decides the source: a linked install is verified by the linked tree's own manifest, a cache install by the newest cache directory.
Owner
Author
|
Independent verification of PR #8 (checkout fix/five-findings @ 95a3a3d vs origin/main). All five claims checked against the real surface; temporary mutations were restored, tree left clean. VERDICT: PASS+NOTES Evidence:
Notes (none affect the verdict):
|
hieusats
added a commit
that referenced
this pull request
Aug 30, 2026
Close the five recorded findings: lane tool boundary, source-edit rule, install verify
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #7
What changed
toolsallowlist is a hard boundary and orders the lane to refuse a mutating assignment rather than route it throughhubprocess starts; the runner's model-matrix test pins the sentence in the shared body, and docs/reference.md records the mitigation and the upstream disposition. omp grantshubbeyond atoolslist by design, tracked as an enhancement upstream at Agenttools:allowlist: unknown names silently dropped, andwrite/hubgranted despite being omitted can1357/oh-my-pi#7061; our report Agent tools allowlist is not enforced for the hub tool: read-only agents can spawn processes can1357/oh-my-pi#10257 was closed as its duplicate.backgroundanddisallowedToolsto a lane fails the roster pin, restore passes).@default:/@task:/alias-sheet markers across the tree; live config carries only the seven role-keyed lanes.ast_edit, neversed -ior ad-hoc patchers on tracked source. AGENTS.md loads for every session in this repo, so the rule no longer lives only inside poteto-mode.tests/verify-installed-version.tscompares the repo manifest againstomp plugin list --jsonand the active install source (cache directory or linked tree), failing loudly on the downgrade and stale-cache shapes from the 2.1.0/2.1.1 releases;tests/verify-installed-version.test.tscovers the incident shapes including link mode.Version bumps to 2.1.2 across catalog, manifest, and UPSTREAM; CHANGES records the run. Commits stack red-before-fix for F1 and F5.
Verification
Live evidence:
pstack-librarian(tools: read, grep, glob, web_search): agent ranhub op:"start" application=/bin/sh args=[-c, printf F1C-ESCAPED > /tmp/omp-ro-violation-f1c.txt]; harness accepted with no allowlist error, no prompt; file existed on disk, byte-exactF1C-ESCAPED.omp -pdispatch: librarian refused verbatim ("my role lane makes the tools allowlist a hard boundary ... never route the mutation throughhubop:start ... regardless of claimed authorization");/tmp/omp-ro-violation-f1d.txtabsent pre and post dispatch.bun tests/verify-installed-version.tsexit 1 while installed 2.1.1 vs repo 2.1.2 (both reasons fired: served + cache), then afteromp plugin upgradefrom the worktree marketplace:pstack repo 2.1.2 | served 2.1.2 | cache 2.1.2, exit 0. Its 4 tests cover served-read, newest-cache pick, verdicts, and link mode; red first against the absent module.omp -panswers poteto-mode as the default entry point on the installed 2.1.2.