Skip to content

Commit 98ae0ea

Browse files
committed
Document list-free listings and dump-locked secret reads in auto mode
1 parent c3aeb9a commit 98ae0ea

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

‎docs/IMPLEMENTATION.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,17 @@ When auto is on, the gate auto-allows workspace file tools in `AUTO_ALLOWED_TOOL
185185

186186
Unmatched shell auto-allows, including contained non-force `git worktree add`/`remove`/`prune` and read-only `list`. Path-arg tools that escape the workspace are denied at authorize time (the same sandbox path-escape enforces at execution). Writes under the in-workspace session state root (legacy `.agent-state`), mutating MCP, and unknown built-ins still prompt. Authorization hard-denies (catastrophic commands, open-ended shell search) remain independent of auto mode.
187187

188+
Listings are list-free, dumps are dump-locked: a bounded `ls`/`tree` prints names only, so it auto-allows even in a directory containing a secret file — but the secret check runs before the listing exemption, so naming the secret itself still asks. Anything that dumps file contents never auto-allows in auto mode; shell references stay ask (not deny) so legitimate uses proceed after an explicit yes, while path-keyed tools hard-deny.
189+
190+
| Command | Verdict |
191+
| ----------------------------------------- | ------------------------------------------------------- |
192+
| `ls` in a directory containing `.env` | auto-allow (names only, no secret named) |
193+
| `ls .env` | ask (secret check beats the listing exemption) |
194+
| `cat .env`, `head .corbits/settings.json` | ask, never auto-allow |
195+
| `bun --env-file=.env run …` | ask; runs after an explicit yes |
196+
| `read_file` on `.env` | hard deny via secret-guard, even under skip-permissions |
197+
| `cat README.md` in the workspace | auto-allow under the existing contained-read rules |
198+
188199
### Reasoning Effort
189200

190201
**Shift+Tab** in the TUI cycles reasoning effort for the live model (`cycleReasoningEffort` in `src/provider/reasoning-effort.ts`); the runner rebuilds inference sources and the prompt-border `profile · model · effort` label so the next turn picks it up. Plain Tab still toggles focus.

0 commit comments

Comments
 (0)