You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Phase 3 of #270 (Make Pi the default agent). Flip the default so Pi is the first option, with Claude Code and Codex as secondaries — honoring the umbrella's locked decisions: default ≠ only, existing explicit selections never migrated, graceful fallback when pi is absent or gate-incompatible.
Depends on: #397 (do not flip while PI_CAPABILITIES still stubs thinking-level, image input, or context reporting — "a default that demotes UX ships never").
Current state (verified 2026-07-27)
src/lib/chatDefaults.ts falls back to "claudeCode" in both selectableLastAgentProvider and loadLastAgentProvider.
selectableNativeAgentBackends (src/lib/agentBackends.ts) appends Pi after Claude/Codex, and only when isCompatiblePiRpcVersion passes.
Quick-launch chips have no Pi-first default.
The certified gate pins 0.79.10 ≤ v ≤ 0.81 (TS + Rust, kept in sync per the Make Pi the default agent for PickForge #270 Phase 0 boundary-matrix test). Installed today: 0.81.1 (passes). Once Pi is the default, any Pi release beyond the pin silently drops new installs back to Claude until recertified — the stale-pin trap Make Pi the default agent for PickForge #270 Phase 0 already hit once.
Scope
Probe-order default: first-run/new-project default resolves pi → claude → codex; incompatible or missing pi falls back with a one-line hint, never a blocking prompt. Existing pickforge.lastAgentProvider values untouched.
Ordering: Pi listed first in selectable backends and pickers when the gate passes.
Quick-launch chips: Pi chip first, pinned to a cheap default model consistent with the chips policy in CLAUDE.md.
Gate recertification policy: write down the workflow (headless RPC contract probe + micro dogfood, as run for 0.81) and where it lives, so widening the pin per Pi release is a routine small PR, not an investigation. Decide whether an installed-Pi-newer-than-pin state surfaces a hint in Settings.
Phase 3 of #270 (Make Pi the default agent). Flip the default so Pi is the first option, with Claude Code and Codex as secondaries — honoring the umbrella's locked decisions: default ≠ only, existing explicit selections never migrated, graceful fallback when
piis absent or gate-incompatible.Depends on: #397 (do not flip while
PI_CAPABILITIESstill stubs thinking-level, image input, or context reporting — "a default that demotes UX ships never").Current state (verified 2026-07-27)
src/lib/chatDefaults.tsfalls back to"claudeCode"in bothselectableLastAgentProviderandloadLastAgentProvider.selectableNativeAgentBackends(src/lib/agentBackends.ts) appends Pi after Claude/Codex, and only whenisCompatiblePiRpcVersionpasses.Scope
pifalls back with a one-line hint, never a blocking prompt. Existingpickforge.lastAgentProvidervalues untouched.CLAUDE.md.Agent plan
Checklist:
Validation:
bun run build,bun run test:unit,bun run vrt(picker/chips order),cargo test --workspace --locked --all-targetspipresent, withpirenamed away (fallback + hint), and with a storedcodexselection (untouched)PR plan
Refs #270, #212
Current status: Planned (blocked on Phase 2)
Next action: wait for Phase 2, then PR 1