fix(#2356): enable built-in bash for choom by dropping it from managed-settings deny
This commit is contained in:
parent
0fc4600d07
commit
3e2565d355
2 changed files with 19 additions and 7 deletions
|
|
@ -185,14 +185,26 @@ status hint moved to the wake prompt + UI header.
|
||||||
- Allowed built-ins: `Edit`, `Glob`, `Grep`, `Read`, `Write`.
|
- Allowed built-ins: `Edit`, `Glob`, `Grep`, `Read`, `Write`.
|
||||||
- Tool-group-gated built-ins: `WebFetch`, `WebSearch` (added when the
|
- Tool-group-gated built-ins: `WebFetch`, `WebSearch` (added when the
|
||||||
`web_tools` tool group is enabled — see P3RM1SS10NS tab).
|
`web_tools` tool group is enabled — see P3RM1SS10NS tab).
|
||||||
- Denied by omission or the managed-settings deny list
|
- Denied by omission (absent from the harness `--tools` /
|
||||||
(`/etc/claude-code/managed-settings.json`): `Bash`, `Task`,
|
`--allowedTools`, so they "literally don't exist" in a harness turn):
|
||||||
`NotebookEdit`, `TodoWrite`.
|
`Bash`, `Task`, `NotebookEdit`, `TodoWrite`.
|
||||||
|
- Additionally in the managed-settings deny list
|
||||||
|
(`/etc/claude-code/managed-settings.json`, un-overridable): `Task`,
|
||||||
|
`TodoWrite`. `Bash` is **not** in the managed deny — see below.
|
||||||
- Allowed MCP tools: as listed above (by tool group).
|
- Allowed MCP tools: as listed above (by tool group).
|
||||||
|
|
||||||
`Bash` is disallowed — shell execution goes through
|
`Bash` is disallowed for the autonomous harness — shell execution goes
|
||||||
`mcp__bash__run` (background tasks with structured output +
|
through `mcp__bash__run` (background tasks with structured output +
|
||||||
task-id tracking) instead of an interactive shell. The bash MCP server
|
task-id tracking) instead of an interactive shell. The harness gate is
|
||||||
|
`--tools` / `--allowedTools` (Bash absent from `ALLOWED_BUILTIN_TOOLS`),
|
||||||
|
so Bash never exists in a harness turn regardless of managed settings.
|
||||||
|
`Bash` is deliberately **not** in the managed-settings deny so that the
|
||||||
|
operator-driven `hivectl choom` session — which passes neither `--tools`
|
||||||
|
nor `--allowedTools` — gets claude's built-in synchronous `Bash` tool
|
||||||
|
(inline, human-approved). That sidesteps the async `mcp__bash__run`
|
||||||
|
completion wake landing in the wrong session (the harness inbox) for a
|
||||||
|
choom-started task (#2356); `choom` is an operator (root) action, so
|
||||||
|
built-in shell there stays within the existing trust boundary. The bash MCP server
|
||||||
(`run` / `status` / `kill`) uses `allowedTools = ["*"]` so all
|
(`run` / `status` / `kill`) uses `allowedTools = ["*"]` so all
|
||||||
`mcp__bash__*` tools are always available regardless of tool groups.
|
`mcp__bash__*` tools are always available regardless of tool groups.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,6 @@
|
||||||
"autoCompactEnabled": false,
|
"autoCompactEnabled": false,
|
||||||
"autoMemoryEnabled": false,
|
"autoMemoryEnabled": false,
|
||||||
"permissions": {
|
"permissions": {
|
||||||
"deny": ["Bash", "Task", "TodoWrite"]
|
"deny": ["Task", "TodoWrite"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue