feat(settings): follow-ups steer the running turn by default#24718

merged1
main
t3/default-steer-t3code
opened16d agobyMmaria
View on GitHubTwo-way sync enabledPR last imported 16d ago

Sending a message while the agent is working used to queue it for the next turn by default. It now steers the running turn by default on web, desktop, and mobile.

The contracts default for followUpBehavior and the mobile DEFAULT_FOLLOW_UP_BEHAVIOR both flip from queue to steer. mod+Enter still queues for one message. Web and desktop persist the full client settings object, so anyone who has saved any client setting keeps the stored queue; new installs and mobile users who never picked a value get steer.

Verified with vp run check:changed (format, lint, knip, typecheck of 30 packages, tests). The composer and Settings were not exercised in a running client.

Opus 5.5 via Claude Code in T3 Code.

🤖 Generated with Claude Code

Checks

23 successful · 11 skipped · 1 neutral
All checks passed
3f0e318

Added 1 commit

  • feat(settings): follow-ups steer the running turn by default3f0e318
Synced from GitHub

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — This changes the default follow-up action from queuing to steering in both mobile fallback logic and shared settings decoding, altering normal user-facing behavior for users without an explicit preference. The product-default change warrants human review.

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

Synced from GitHub

Review in Change Stack →

No actionable comments were generated in the recent review.

External image Recent review info
External image Run configuration
External image Commits

Reviewing files that changed from the base of the PR and between 90c455ff8fceef426bafc64c0b755ef864a353ab and 3f0e31802487612d5fcf1836fb5f3b1377c825dd.

External image Files selected for processing: 2
  • apps/mobile/src/lib/followUpBehavior.ts
  • packages/contracts/src/settings.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

Walkthrough

The mobile default and settings-schema default for follow-up behavior change from queue to steer. Explicitly supplied queue and steer values remain accepted by the schema.

Changes: Follow-up behavior

Layer / File(s)Summary
Align follow-up defaults
apps/mobile/src/lib/followUpBehavior.ts, packages/contracts/src/settings.ts
Both the mobile default and the default used when the setting is omitted change from queue to steer. The schema continues to accept explicitly supplied queue and steer values.

Priority: External image Normal

Estimated code review effort: 1 (Trivial) | ~3 minutes

Change: Feature

Possibly related PRs

  • pingdotgg/t3code#22802: Defines rejection reasons for queued commands that cannot be steered and disables their Steer controls.
  • pingdotgg/t3code#23981: Fixes OpenCode steering to preserve the selected agent, reasoning variant, and system instructions.

Suggested reviewers: macroscopeapp, juliusmarminge

Merge Risk: External image Minimal · up to 3f0e3

The follow-up behavior default changes consistently to steering without affecting saved preferences.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check nameStatusExplanationResolution
Description checkWarningThe description explains the previous behavior, the new defaults, persistence behavior, the mod+Enter exception, verification results, and untested client areas. It does not include the required Scope…Add a Scope and approval section. Link the triaged issue or maintainer approval with the approval comment, or explain why this focused change qualifies for an exemption. Keep the existing verification details and state the client testing li…
Passed Passed checks: 3 passed
Check nameStatusExplanation
Title checkPassedThe title clearly and concisely describes the primary change: follow-up messages now steer the running turn by default.
Linked Issues checkPassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes checkPassedCheck skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the previous behavior, the new defaults, persistence behavior, the mod+Enter exception, verification results, and untested client areas. It does not include the required Scope and approval information for this broader workflow behavior change.

Resolution

Add a Scope and approval section. Link the triaged issue or maintainer approval with the approval comment, or explain why this focused change qualifies for an exemption. Keep the existing verification details and state the client testing limitation explicitly under Verification; use the template section headings for clarity when updating the description。该响应不应包含中文。

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Synced from GitHub

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ The exact PR base did not have a successful artifact. Baseline uses the latest successful main measurement shown below.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire5.0 KiB4.9 KiB−23 B (−0.5%)6.8 KiB✅
CodexThread snapshot wire3.8 KiB3.8 KiB0 B (0.0%)4.9 KiB✅
CodexLive turn WebSocket wire1.2 KiB1.2 KiB−23 B (−1.9%)2.0 KiB✅
CodexLive turn WebSocket decoded20.9 KiB20.8 KiB−41 B (−0.2%)29.3 KiB✅
CodexLive turn messages21−1 (−50.0%)8✅
ClaudeTotal thread wire5.0 KiB5.0 KiB0 B (0.0%)6.8 KiB✅
ClaudeThread snapshot wire3.8 KiB3.8 KiB0 B (0.0%)4.9 KiB✅
ClaudeLive turn WebSocket wire1.2 KiB1.2 KiB0 B (0.0%)2.0 KiB✅
ClaudeLive turn WebSocket decoded21.2 KiB21.2 KiB0 B (0.0%)29.3 KiB✅
ClaudeLive turn messages220 (0.0%)8✅

Baseline: e666c01 · PR result: 3f0e318 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.