Repository navigation
fix(client-runtime): Pi subagents show their thinking level - #33346
StiensWout wants to merge 4 commits into
Conversation
Pi states its reasoning as a `thinking` select, which the shared effort list left out, so subagent labels dropped it. Add it to the list (effort readers take only select descriptors and string values, so Claude's boolean `thinking` is still never effort) and drop the two copies that appended it by hand. Add `subagentModelSelection` so clients label a delegated child by its own saved selection, never the parent's. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…hinking level Web hover and mobile Agents metadata now read one shared selection resolver: an app-owned child's saved selection first, then the selection reported for the subagent, on the subagent's own provider instance, never the parent's. Both format the level with the shared catalog formatter, which keeps a stated level as raw text before the catalog loads or when the catalog model has no option descriptors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…changes 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 <noreply@x.ai>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Subagent metadata on web and mobile now shows Pi thinking levels using the appropriate child selection. The changes are confined to metadata presentation and preserve provider-instance matching without changing execution defaults. You can add or adjust custom eligibility rules. Learn more. |
|
Thanks, @StiensWout, for the thorough fix and evidence! #30489 by @juliusmarminge already addresses the same Pi subagent thinking-level issue, so we’re keeping that PR. Please share any remaining mobile or selection-precedence gaps there. |
|
Reopening this as the keeper: it merges cleanly with main and includes the Pi thinking-level fix plus child-selection and mobile coverage. Thank you, @StiensWout! |
Pi delegates can save a different thinking level from their parent, but subagent metadata omitted it. The existing web hover and mobile Agents model lines now show the child's stated level.
Both clients share child-selection precedence and effort formatting. A saved app-owned child selection takes precedence over its own reported selection; unknown effort stays absent, boolean thinking stays excluded, and known values survive a missing or stale catalog. Existing layouts and provider-fetch behavior are unchanged.
Validation: deterministic red/green tests cover Pi thinking, child selection and provider-instance fallback, boolean thinking, absent OpenCode variant, and stale catalog values.
pnpm exec vp run check:changedpasses. Local cubic found no issues.Standard change: shared selection behavior and web/mobile consumers.
UI evidence: before, raw fallback after, catalog label and saved-child precedence, 390px web.
The before capture removes
thinkingfrom the shared list. Catalog/precedence captures use sanitized browser projection fixtures feeding the real mounted consumer: saved child High, reported Max, parent Max. They prove client rendering given projected data, not transport or provider discovery. Twelve additional public-helper runtime assertions cover instance/model rejection, catalog transition, ordering and mobile workflow catalog labels. Final proof audit found no remaining code gaps. Native mobile and packaged Electron rendering were not run.Council review
Rounds: 2
Created with GPT 6.1 Sol in the Codex harness, Claude Opus 5.5 in the Claude harness, and Grok 4.7 in the Grok harness through T3 Code. Sol completed evidence recovery after Grok's client fixture failed.
Closes #30442