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-promptsKnown 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: falseandpermission_denials: [], proving the flag does not turn skip-permissions' auto-allow into an auto-deny. Full record indocs/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-onlyclaudeposture 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_denialsfield, whichparseClaudeStreamJsondoes not read.
Claude cold-spawn session-persistence suppression (T627)
Every cold-spawn claude build-worker dispatch left a resumable session transcript on disk under the operator's own ~/.claude session store, even though Cyberine never resumes a cold-spawn worker —...
A non-success result subtype is a failed run (kq5rd)
parseClaudeStreamJson used to take the last type:'result' event and read its result field without looking at subtype. An error subtype carries no result (Claude Code puts errors[] there instead),...