Skip to content

fix(server): Pi Auto defaults fall back to Auto-accept edits - #33331

Closed
StiensWout wants to merge 4 commits into
pingdotgg:mainfrom
StiensWout:t3/pi-runtime-mode-fallback
Closed

StiensWout wants to merge 4 commits into
pingdotgg:mainfrom
StiensWout:t3/pi-runtime-mode-fallback

Conversation

@StiensWout

Copy link
Copy Markdown
Contributor

New Pi threads with an Auto default fell back to Supervised and asked on every command. They now fall back to Auto-accept edits through one shared descending capability policy used by web, mobile, server execution, and delegated launches.

Supported selections stay unchanged. An unsupported selection resolves to the broadest supported mode below it, never above it. Explicit unsupported delegation requests still fail, and managed ceilings remain authoritative. Existing Pi and Antigravity threads stored as Auto also use Auto-accept edits; fx threads stored as Full access use Auto. No provider settings or controls were added.

Standard size: a shared policy interface and its consumers change together. Rebased onto upstream main; range-diff confirmed unchanged patches.

Validation

  • Deterministic server red/green: Auto resolved to approval-required before the fix and auto-accept-edits afterward.
  • Shared resolver cases cover Pi fallback, preserved supported choices, no escalation, reversed provider order, and unreported/empty capabilities.
  • Focused server policy, launch/delegation, contracts, and mobile helper tests pass.
  • pnpm exec vp run check:changed passes. Full suites, build, and release smoke remain with CI.
  • Mutation proof: restoring the old fallback fails the Pi/fx table, mobile helper, and inherited launch assertions; corrupting the refusal message fails its phrase assertion. Both pass after restoration.
  • Runtime fixture transcript through Pi's actual generated tool hook: requested Auto, resolved auto-accept-edits; edit/write allowed without confirmation; bash asked Allow bash? and was blocked when declined. Server policy also refused stored Auto above a managed ceiling before fallback.
  • Recovery evidence ran 143 focused tests, 63 service/launch tests, and final check:changed, all passing.
  • Integrated Pi picker remains unproven: isolated Pi discovery returned no usable models, so the provider stayed disabled. Blocker screenshot documents the limitation, not successful fallback. Native mobile and an installed Pi model turn were not exercised. No paid model turn was started.
  • Second proof audit: all five code-proof gaps closed, no remaining policy-logic gap. Integrated picker/native mobile/installed Pi turn and full CI remain the explicit limits above.

Review dispositions

Local cubic: stale fx permission guidance fixed. Its remaining P3 rank-table duplication is preexisting. The proposed removal of delegation's early capability check would accept explicit unsupported Supervised requests when a provider only advertises broader modes, so the check stays.

The mobile managed-ceiling clamping suggestion was declined: compatibility reports provider capability, while the server rejects an above-ceiling stored mode before fallback. Hiding disabled choices would display a mode the server does not run. All three reviewers accepted this disposition in round 2.

Follow-ups outside this issue: web ChatComposer.tsx:892 checks the compatible mode for its ceiling notice while the server checks the stored mode; the MCP rank tables in delegatedTaskModes.ts:14 and McpInvocationContext.ts:65 could reuse contracts comparisons. Pi's defensive mcpInjection.ts:310 mapping remains separate, and AntigravityProvider.test.ts:351 still has an old fallback title. Mixed-version remote clients were not verified.

Council review

Rounds: 2

Delegate Round 1 Round 2
Claude Opus 5.5 9/10 9/10
GPT 6.1 Sol 9/10 9/10
Grok 4.7 (Grok) 8/10 9/10

Built and simplified by Claude Opus 5.5; coordinated and audited by GPT 6.1 Sol; reviewed by Claude Opus 5.5, GPT 6.1 Sol, and Grok 4.7 (Grok); evidence by Grok 4.7 (Grok) and GPT 6.1 Sol, using T3 Code and the Codex, Claude, and Grok harnesses. GPT 6.1 Sol recovered evidence after Grok's Pi discovery harness could not open the picker; discovery still blocked integrated Pi proof.

Closes #30538

StiensWout and others added 4 commits November 9, 2026 12:33
A thread whose mode its provider does not offer fell back to Supervised on
the server and to the first listed mode on web and mobile. It now runs in
the broadest supported mode below the one asked for, through one shared
resolveSupportedRuntimeMode in contracts that the server runtime policy,
the web and mobile composers and delegated launches all use.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…licate tests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: GPT 6.1 Sol <codex@openai.com>

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

Co-authored-by: Grok 4.7 (Grok) <noreply@x.ai>
Co-authored-by: GPT 6.1 Sol <codex@openai.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Nov 9, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — Unsupported permission modes now fall back to the broadest supported mode below them, including Auto-accept edits for Pi threads inheriting Auto. This changes effective defaults and removes previously required edit approvals, requiring human confirmation of the intended permission behavior.

You can add or adjust custom eligibility rules. Learn more.

Copy link
Copy Markdown
Member

Thanks, @StiensWout, for fixing the Pi permission fallback and documenting the validation. #30552 by @juliusmarminge already addresses the same step-down across server, web, mobile, and delegation, with a real Pi runtime reproduction. Closing this as a duplicate; please continue the discussion there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: New Pi threads fall back to Supervised when the default permission mode is Auto

2 participants