cyberine
UsageRun recipes

Claude prompt answering — --permission-prompts none (k7hha)

A claude build worker is spawned with stdin CLOSED and with neither an SDK host nor --permission-prompt-tool. Claude Code's --permission-prompts flag (v2.1.259) defaults to host, which routes any prompt to that non-existent answerer — so a prompt can only stall the worker to its own timeout with no exit code. makeClaudeAdapter now passes --permission-prompts none on every spawn: "anything that would prompt is denied automatically; the permission mode still decides everything else". Deny-and-fail-fast beats a 30-minute hang.

--dangerously-skip-permissions (already passed) covers only what the permission MODE decides. The residual prompts this flag catches are the ones it does not: a folder trust dialog — which the v2.1.238 MCP headersHelper change can raise under claude -p, in a throwaway worktree no operator has ever trusted — or an MCP elicitation.

Run recipe — nothing to enable; the flag is applied automatically. To see it in the built argv without dispatching a real task:

npm run selftest:permission-prompts

Known limitations and deferred work:

  • No opt-out, on purpose. Unlike the session-persistence flag above, there is no env knob: an operator who wants the old behaviour wants a hang. The smoke asserts the absence of a disable hint so a future edit cannot quietly add one.
  • Adoption was gated on a live probe against the installed v2.1.260, not on the help text alone (T627's precedent): a plain turn and a tool-USING turn both completed with is_error: false and permission_denials: [], proving the flag does not turn skip-permissions' auto-allow into an auto-deny. Full record in docs/providers/claude-code-cli.md.
  • --restricted (v2.1.248) was evaluated in the same pass and DECLINED: it removes the command/code tools a build worker exists to use, and the only read-only claude posture that could have wanted it (makeClaudeCodeAdapter) was deleted as dead code by T622. Its settings-ignoring half is already covered by --safe-mode.
  • The deny is not observable in Cyberine's own run record beyond the worker's failure: the CLI reports denials in its permission_denials field, which parseClaudeStreamJson does not read.