Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a103e30
Pre-trust folder access at spawn so a fresh worktree needs no keystroke
Oct 2, 2026
e960bc8
no-mistakes(review): Fix Codex trust registration and live guard isol…
kesslerio Oct 2, 2026
3fdac71
no-mistakes(review): Enforce pooled folder trust and ordered runtime …
kesslerio Oct 2, 2026
93e64dc
no-mistakes(review): Harden isolated folder trust verification and sa…
kesslerio Oct 2, 2026
2601866
no-mistakes(review): Merge concurrent Codex trust decisions and refus…
kesslerio Oct 2, 2026
5fc076a
no-mistakes(review): Align raw Codex trust stores and remove source a…
kesslerio Oct 2, 2026
0d30bb0
no-mistakes(document): Align folder-trust documentation with final sp…
kesslerio Oct 2, 2026
2645160
no-mistakes(lint): Use explicit case-local Codex store paths in asser…
kesslerio Oct 2, 2026
6afd3c6
no-mistakes(review): Apply scoped Pi approval to raw worker launches
kesslerio Oct 2, 2026
1939ec9
no-mistakes(review): Assert Pi dispatch arguments independently of fl…
kesslerio Oct 2, 2026
931554a
no-mistakes(document): Document Pi approval for canonical and raw lau…
kesslerio Oct 2, 2026
b8d9ec9
no-mistakes(review): Honor custom Codex stores in live guard credenti…
kesslerio Oct 2, 2026
a51b4e1
no-mistakes(review): Pin mocked live guard to fixture Codex store
kesslerio Oct 2, 2026
629acc9
no-mistakes(document): Confirm folder trust documentation accuracy
kesslerio Oct 2, 2026
3bd8955
no-mistakes(ci): Captain, fixed the missing ShellCheck source annotat…
kesslerio Oct 2, 2026
52eb6f6
no-mistakes(ci): Captain, added per-runtime credential skips with rec…
kesslerio Oct 2, 2026
c77b26d
no-mistakes(ci): Captain, fixed the flaky Herdr recovery test to veri…
kesslerio Oct 2, 2026
864e160
no-mistakes(ci): Captain, rebased onto 87fa81b8 and resolved conflict…
kesslerio Oct 2, 2026
8e109f0
no-mistakes(review): Shell-quote runtime store paths in folder trust …
kesslerio Oct 2, 2026
4223d08
no-mistakes(document): Correct folder trust guidance and live guard d…
kesslerio Oct 2, 2026
e4ddfc9
ci: re-roll checks after a provider-cancelled shard (no code change)
kesslerio Oct 2, 2026
ed25e1f
no-mistakes(document): Correct Python prerequisite and trust verifica…
kesslerio Oct 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ For Claude, load `references/harness/claude.md`; its workspace-trust section own
agy gates every fresh worktree too; the spawn pre-registers it in agy's own store the same way, and a strict post-launch gate answers any dialog that still renders before the spawn reports success.
Cursor suppresses its dialog with launch-time `--trust`, and Muse suppresses its own with `--yolo`.
Grok renders a folder-trust gate in a linked worktree, and `references/harness/grok.md` owns how to verify the worker's real location, answer it, and where the decision persists; the project picker is a separate dialog that stays absent when the spawn starts in a git root.
Pi gates the fresh-worktree case too, but unlike Claude its dialog is answered with Enter, and `references/harness/pi.md` owns that recipe and where the decision persists.
Codex shows a directory-trust dialog on the first run for a repository root.
For Pi and Codex, `references/harness/pi.md` and `references/harness/codex.md` own automatic folder approval and the attended-checkout boundary.

Use the tool's exact skill form, or natural language only when no separate command is verified or the form remains uncertain.
A successful send or key return is not proof of submission; require the tool-specific postcondition.
Expand Down
10 changes: 7 additions & 3 deletions .agents/skills/harness-adapters/references/harness/codex.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,13 @@ Verified on 2026-06-11 with codex-cli 0.139.0 unless a fact gives a newer versio
| Model discovery | Open the current interactive session's `/model` picker. |
| Marker | None; identity comes from ancestry, and `../../../bin/fm-harness.sh` is what keeps a retained foreign `CLAUDECODE` from renaming it. Verified on 2026-09-01 with codex-cli 0.152.0: the pane process is the `node` npm shim and the native `codex` binary runs as its foreground child, so a tool subprocess reaches the native name directly while the shim itself is identified from its script path. |

A directory trust dialog appears on the first run for a repository root: "Do you trust the contents of this directory?"
Accept it with Enter and verify the instructions begin processing.
The decision persists for the repository, so later worktrees of the same project skip it.
A directory trust dialog appears on the first run for a repository root: "Folder access … Trust this folder?", with "Trust and continue" already selected and "Quit" second.
Saved folder approval covers the canonical repository root and its worktrees; `../../../bin/fm-codex-trust.sh` owns the store format and registration safeguards.
For a qualifying linked pool worktree, `../../../bin/fm-spawn.sh` requires successful registration through `../../../bin/fm-codex-trust.sh` before launching Codex, so registration failure stops the launch and successful registration removes the folder prompt.
Secondmate seed markers do not grant folder trust: both registration modes require a linked pool worktree, while standalone and other attended checkouts keep manual folder approval.
For an attended checkout, accept the selected "Trust and continue" option with Enter and verify the instructions begin processing.
Bounded read-to-replace race: an independent writer can still add a distinct project's trusted entry after the final read and before replacement; losing that entry causes a recoverable folder re-prompt, without losing project data or granting trust to another project.
The [maintainer verification record](../../../../../docs/verification/runtime-backends.md#folder-and-project-trust-on-a-fresh-worktree) owns versioned vendor observations and the live refresh command.

## Hook trust

Expand Down
12 changes: 8 additions & 4 deletions .agents/skills/harness-adapters/references/harness/pi.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,14 @@ The router's Detection section owns how launch markers and ancestry select betwe
Keep the instructions as one positional argument.
Multiple positional arguments become separate queued messages; the spawn template already preserves the one-argument shape.

A project trust dialog can appear on the first Pi run in any not-yet-trusted directory that holds a trust-requiring resource such as `.pi/extensions/`, including a clean worktree and a freshly seeded secondmate home.
Accept it with Enter and verify the instructions begin processing.
The decision persists per path in `~/.pi/agent/trust.json`, or in the pinned root's `trust.json` under a worker account pin, so later spawns in the same pooled slot under that root skip it.
For unattended seeded-secondmate launches, `../../../bin/fm-spawn.sh --help` owns the capability-gated project-trust approval mechanics; [runtime verification](../../../../../docs/verification/runtime-backends.md#pi-seeded-secondmate-project-trust) owns the regression evidence.
A project trust dialog can appear on the first Pi run in any not-yet-trusted directory, including a clean worktree: "Trust project folder?", offering Trust, Trust parent folder, Trust (this session only), Do not trust, and Do not trust (this session only), with the cursor on Trust.
Saved decisions are keyed per canonical directory with a walk up through the parents, the closest one winning, in `<$PI_CODING_AGENT_DIR or ~/.pi/agent>/trust.json`.
For a qualifying linked pool worktree, both canonical and raw launch commands for ships, scouts, and local secondmates carry Pi's own `--approve`, a per-run decision consulted before saved decisions that persists nothing.
Secondmate seed markers do not grant folder trust: both Pi identities require a linked pool worktree for `--approve`, while standalone and other attended checkouts keep manual folder approval.
For an attended checkout, accept the selected Trust option with Enter and verify the instructions begin processing.
Approval loads the directory's `.pi` resources and project extensions for that run.
The [maintainer verification record](../../../../../docs/verification/runtime-backends.md#folder-and-project-trust-on-a-fresh-worktree) owns versioned vendor observations and the live refresh command.
The store's per-directory scope is why a launch flag is the right shape here rather than a pre-registered entry: a pooled worktree path would otherwise add one store entry per slot, and a worker account pin relocates that store, so a writer would have to resolve the pin first.

## Worker turn-end extension

Expand Down
Loading
Loading