pr explain: add pi as a third, API-metered runner #150
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/tools#150
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
allod pr explainaccepts exactly two runners,--codexand--claude, both subscription CLIs. Tonight both were throttled at once while the operator needed a report to clear a deploy-blocking review (allod/archetypes#39), and the tool had no answer. Pi is already installed fleet-wide and meters a different budget — API credits — so it is the natural third runner: not a preference, a fallback that works precisely when the other two are exhausted together.The design keeps every property the two-runner allowlist was protecting:
HOME(verified empirically: a print-mode run answers with every*_API_KEYand auth-token variable stripped from the environment). Unlike codex (CODEX_HOME,CODEX_ACCESS_TOKEN) and claude (ANTHROPIC_CONFIG_DIR, OAuth tokens), the pi runner needs no credential passthrough at all — the sanitized-environment list applies to it unweakened.pi -p --no-session --no-extensions --no-skills --no-prompt-templates --no-context-files --no-approveis pi's spelling of codex's--ignore-user-config --ignore-rules: nothing project-local in the untrusted caged checkout is loaded or trusted, and no session state persists.codex subscription CLI,claude subscription CLI,pi API CLI. The provenance validator enforces the same label.--thinkingaccepts the tool's fulllow..maxvocabulary), the model defaults to pi's configured default, the prompt arrives on stdin, and all cage postconditions, call budgets, and validation are runner-independent. The job directory reaches pi only through theALLOD_PR_EXPLAIN_JOB_DIRcontract, since pi has no--add-dir.Tests mirror the claude coverage: exact hardened argv, environment deny-list plus the two other runners' credentials explicitly absent, 0700 job directory, three-call clean run, and the API-metered disclosure line.
completed