Codex background tasks keep their turn's permissions: paid Sume calls
Codex 0.161.0 background tasks retain the permissions of the turn that started them. What that means for a Sume render started from a background task.

A Codex background task inherits the permissions of the turn that created it, so a Sume render you approved in one turn can keep running paid calls later. The Codex changelog for 0.161.0, October 7, 2026, says background tasks retain originating turn permissions. Sume's tools hide write and paid tools until the session has mcp:write or an API key, so the permission you carried into the task was the one that mattered.
This is good news for predictability and a reason to be careful about what you approve first.
What carries over
Rows one and two are from the Codex changelog; the rest from Sume's gates.
| Layer | Behaviour | Your control |
|---|---|---|
| Codex turn permissions | Retained by the background task | Approve narrowly in the first turn |
| Sume OAuth scope | mcp:read hides paid tools; mcp:write shows them | Leave Write off for research tasks |
| idempotency_key | Required on write and paid tools | Give each intended job one key |
| max_spend_usd | Enforced only when sent | Set it on each paid call |
| Wallet admission | Final gate on spend | Keep the balance sized to the task |
Steps before you hand off a long task
Write the cap into the instruction: each paid Sume call needs an idempotency_key and a max_spend_usd, and the agent must call the preview first with dry_run=true. Then limit the batch: name the number of renders in the task. Finally, decide how you will check back. jobs_list shows jobs on your account, and balance_get shows what is left.
- Use an OAuth session without Write for the planning step, then reconnect with Write for the render step.
- Prefer a small test wallet when you try a new task shape.
- If a task is wrong, stop it and call
jobs_cancelon any job still queued; check Sume's docs for when a cancel is accepted.
Writing the first turn well
The first turn is where the risk is set. If you answer an approval prompt with a broad yes because you want to move fast, the background task keeps that yes. Prefer approving one named tool at a time, such as the preview call, and approve the paid call separately once you have read the estimate.
If you use an API key instead of OAuth, remember that the key itself carries the full tool set whatever the turn approved; the turn permissions are then your only brake on the Codex side. A key scoped to a small test wallet is the second brake.
What Sume does not do
Sume does not look at the Codex task or its permissions. A job already running is not undone by stopping the task. And because max_spend_usd applies only when you send it, a task that omits it has no per-call ceiling beyond your wallet.
Sources
Related posts
More in Agents
- Codex 0.161 defaults to GPT-6.1 Sol: recheck how it calls Sume tools
Codex 0.161.0 makes GPT-6.1 Sol the default model in bundled and Amazon Bedrock catalogs. Re-run a free Sume read and a dry run before trusting paid calls.
- dry_run or generation_admission_preview first for 12 Sume clips?
Use dry_run on a paid call for its estimate, and generation_admission_preview before a burst of 12 clips to check balance and queue room. Neither submits a job.
- Resume a Gemini CLI session after a Sume render: keep the job ids
Gemini CLI 0.64 preview stops deleting resumed session history. How to pick a Sume video job back up after a restart with jobs_list and jobs_wait.
- After generate_image on sume/auto, why can't the agent name the model?
Sume never discloses which family ran for sume/auto: job.model stays sume/auto and the model list omits it. To name a model, pin an id from image-models_list.
Written by Sume