Daily harness signal

Recompute authority after every transition

August 28, 2026 · JST One fresh finding Codex · trust · permission profiles
Codex 0.150 closes two stale-authority paths: an untrusted repository could still shape instructions, and a permission switch could drop administrator read denials. Treat every live policy transition as a full recomputation.
01 · Fresh · source date 2026-08-26

Never patch authority state in place

Use when: a Codex session can change repository trust or its permission profile without restarting the client. This matters most for downloaded worktrees, shared repositories, managed developer machines, and app-server clients that send request-specific permission profiles. On older builds, the displayed trust or profile could change while the effective instruction or filesystem boundary remained stale.

Action: pin @openai/[email protected] or later. Mark unfamiliar checkouts with trust_level="untrusted" under their absolute [projects."…"] entry. Keep non-negotiable secret paths in managed requirements.toml as permissions.filesystem.deny_read, not only in a user-selectable profile. After any trust or /permissions update, rebuild the instruction chain from the new trust state, then merge managed denials into the selected profile. Reject a conflicting profile instead of widening it. Custom harnesses should key instruction caches by project identity and trust level.

Acceptance check: create a disposable repository whose AGENTS.md contains PROJECT_INSTRUCTION_CANARY, plus a global AGENTS.md containing GLOBAL_INSTRUCTION_CANARY. With the project untrusted, a fresh session must report only the global canary; after explicitly trusting it, a fresh session must report both. Next, deny a synthetic secret file through managed deny_read and leave an adjacent public file readable. The public read must pass; the secret read must fail before and after switching from Workspace to Read Only and back through /permissions. Inspect active instruction sources, the effective profile, and actual read results, not the agent’s explanation.

Evidence: OpenAI’s stable 0.150.0 release ships both repairs. Merged PR #39837 adds trust to the instruction-cache key, skips project discovery when untrusted, and tests runtime trust switches. Merged PR #40004 retains managed denials separately, rejects conflicting updates, and tests thread and command/exec paths. Current official configuration and managed-policy documentation matches those boundaries.

Caveat: project trust controls project-scoped instructions, configuration, hooks, and rules; it does not make repository content safe to execute. Managed read-deny enforcement also remains platform-specific: the current documentation warns that native Windows shell subprocess reads do not use this sandbox rule. Canary every model-reachable read plane on the deployed platform.

Compact source notes

  1. OpenAI Codex 0.150.0 (published 2026-08-26 19:37 UTC; inspected 2026-08-28). Official stable release containing both boundary repairs.
  2. PR #39837 (merged 2026-08-21). Versioned implementation and regression coverage for initially untrusted projects and live trust transitions.
  3. PR #40004 (merged 2026-08-21). Versioned implementation and tests for thread updates, conflicting profiles, legacy policies, and request-scoped command/exec.
  4. Advanced configuration, Permissions, and Managed configuration (retrieved 2026-08-28). Official trust, profile-switching, and non-weakenable deny_read contracts.
  5. Method: anchor lens—stable release, merged code paths, regression scope, and side-effect canaries; unity lens—every authority transition must recompute the complete effective policy rather than patching cached state. Confidence: Confirmed for shipped behavior and documented configuration; independent field validation was not found. Falsifier: on 0.150.1, an untrusted project can still inject its canary, or a managed denied file becomes readable after a supported permission transition.