refactor(web): composer mode controls and footer actions live in ComposerFooterControls#22720

merged1
refactor/chat-composer-resting-previews
refactor/chat-composer-footer-controls
opened3d agobyJJulius Marminge
View on GitHubTwo-way sync enabledPR last imported 3d ago

Continues the ChatComposer split.

ComposerFooterModeControls (the runtime mode select and the plan/build toggle) and ComposerFooterPrimaryActions (the context meter and send actions) move unchanged into ComposerFooterControls.tsx. The runtime mode option list ChatComposer filters stays in ChatComposer.

beforethis PR
ChatComposer.tsx lines6,9236,700
ComposerFooterControls.tsx linesn/a227
Renders, 20 typed chars678678

Renders measured with the shared fiber counter (rc-init.js) on a seeded dev server: typing 20 characters into an existing thread's composer, median of 3 runs. This is a move only; it does not change renders.

Tests run: vp lint and vp fmt --check on the changed files, tsc-rs --noEmit for apps/web, and reactCompilerCoverage.test.ts for the changed files (0 bailouts).

🤖 Generated with Claude Code

Checks

All checks passed

Added 1 commit

  • refactor(web): composer mode controls and footer actions live in ComposerFooterControls8c483f8
Synced from GitHub

Approvability

Verdict: Approved at 8c483f8

Macroscope's review found this PR approvable — This PR relocates existing composer mode controls and footer actions into a dedicated module without changing their implementation, inputs, or render sites. It is a contained structural refactor with no product-default, schema, or production-infrastructure changes.

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. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Team
  • Run ID: cbcd8dc5-d1d1-455a-8316-b16a231e8be4
📥 Commits

Reviewing files that changed from the base of the PR and between 7ccabf41dd3ddd91da2f990c070845d79e4a9e6f and 8c483f867955bff4383fe6014589cab135984d68.

📒 Files selected for processing: 2
  • apps/web/src/components/chat/ChatComposer.tsx
  • apps/web/src/components/chat/ComposerFooterControls.tsx

Limit details: You’ve used all 10 included reviews currently available.

📝 Walkthrough

Footer mode controls and primary actions moved from ChatComposer.tsx to ComposerFooterControls.tsx. ChatComposer.tsx imports the controls and removes the local implementations and unused imports.

Changes: Composer footer controls

Layer / File(s)Summary
Footer control implementations
apps/web/src/components/chat/ComposerFooterControls.tsx
Adds runtime-mode and interaction-mode controls. Adds primary actions that render context-window status and pass composer state and handlers to ComposerPrimaryActions.
ChatComposer integration
apps/web/src/components/chat/ChatComposer.tsx
Imports the footer controls and removes their local implementations and associated unused imports.

Priority: ⬇️ Low

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

Change: Refactor

Suggested reviewers: t3dotgg

Merge Risk: ⚪ Minimal · up to 8c483

The footer controls appear to behave as before, with no identified issue blocking merge after normal checks.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check nameStatusExplanationResolution
Description checkWarningThe description explains the refactor and reports focused verification, but it omits the required Problem and Scope and approval sections. It does not explain why the change is needed or provide a tri…Add a Problem section that states the need for this split. Add a Scope and approval section that links the triaged issue or maintainer approval, or explains why this focused refactor qualifies to proceed without prior approval.
Passed Passed checks: 3 passed
Check nameStatusExplanation
Title checkPassedThe title clearly and specifically describes moving composer mode controls and footer actions into ComposerFooterControls.
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 refactor and reports focused verification, but it omits the required Problem and Scope and approval sections. It does not explain why the change is needed or provide a triaged issue, maintainer approval, or justification for proceeding without one.

Resolution

Add a Problem section that states the need for this split. Add a Scope and approval section that links the triaged issue or maintainer approval, or explains why this focused refactor qualifies to proceed without prior approval.

✨ 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

Usage-based review receipt

Note

This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. View usage-based billing.

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