Skip to content

feat(web): Build/Plan toggle moves beside the attach button - #27258

Closed
m1trenv0 wants to merge 1 commit into
pingdotgg:mainfrom
m1trenv0:t3/compact-build-plan-near-gear
Closed

m1trenv0 wants to merge 1 commit into
pingdotgg:mainfrom
m1trenv0:t3/compact-build-plan-near-gear

Conversation

@m1trenv0

Copy link
Copy Markdown

With legacy Plan mode on, the Build/Plan toggle sat at the far right of the composer footer next to the model and effort, and always took a labelled chip, even in the default Build mode.

The toggle now sits on the left next to the attach button. Build shows only its icon. Plan keeps its label, so you can still see at a glance that you're not in the default mode. The collapsed mobile composer has no attach slot there, so it keeps the toggle in its controls row as before. The toggle's markup moved into a small ComposerInteractionModeToggle component that both places use.

Before After
Build before build after build
Plan before plan after plan

Checked with vp run check:changed (format, lint, knip, typecheck, react compiler, nearby tests), plus a manual pass in the web dev build with Settings → Labs → Plan mode (legacy) turned on.

Made with Claude Opus 5.5 in Claude Code (T3 Code).

Build shows only its icon; Plan keeps its label so the non-default mode stays visible.
The collapsed mobile row keeps the toggle in its controls, since it has no attach slot.
@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Oct 29, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7495180

Macroscope's review found this PR approvable — Repositions the existing Build/Plan toggle and shares its rendering across expanded and collapsed layouts. Mode defaults and behavior remain unchanged; the impact is limited to presentation.

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

@coderabbitai

coderabbitai Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Walkthrough

The PR adds a shared interaction-mode toggle and updates its rendering in the expanded composer footer and collapsed controls bar. The toggle displays mode-specific controls and invokes the supplied callback when clicked.

Changes: Composer interaction-mode toggle

Layer / File(s) Summary
Shared toggle component and footer integration
apps/web/src/components/chat/ComposerInteractionModeToggle.tsx, apps/web/src/components/chat/ComposerFooterControls.tsx
The new shared component renders mode-specific icons, labels, tooltip text, and accessible text. The footer passes the current interaction mode and toggle callback to it.
Expanded and collapsed composer placement
apps/web/src/components/chat/ChatComposer.tsx, apps/web/src/components/chat/ComposerControlsBar.tsx
The expanded footer places the toggle beside attachments when Plan UI is enabled. In collapsed controls, the controls bar owns and displays the toggle under the updated visibility conditions.

Priority: Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Possibly related PRs

Suggested reviewers: juliusmarminge, macroscopeapp

Merge Risk: Minimal · up to 74951

The toggle moves beside attachments while remaining in the compact controls on mobile. No merge-blocking risk was identified.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title clearly and concisely describes the primary change: moving the Build/Plan toggle beside the attach button.
Description check Passed The description explains the problem and change, includes before/after screenshots, and documents focused checks and manual verification. It does not include a separate Scope and approval section, but…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the problem and change, includes before/after screenshots, and documents focused checks and manual verification. It does not include a separate Scope and approval section, but the description is otherwise sufficiently complete and directly related to the changes.

Finishing Touches
🧪 Generate unit tests (beta)
  • 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.

@maria-rcks

Copy link
Copy Markdown
Collaborator

Note

Written by gpt-6.1-sol on behalf of Maria

This intentional composer design change needs prior approval. The diff moves the Build/Plan toggle beside Attach and removes the visible Build label; the description explains the preferred layout but establishes no broken behavior and links no maintainer approval. Please obtain approval of the placement and labeling direction and scope, link it, and request reconsideration. The screenshots and checks establish the proposed appearance but do not replace approval.

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

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants