Skip to content

Comments

feat(acp-client): toolbar row with settings, plan, and always-visible cancel#169

Merged
raphaeltm merged 1 commit intomainfrom
feat/chat-toolbar
Feb 23, 2026
Merged

feat(acp-client): toolbar row with settings, plan, and always-visible cancel#169
raphaeltm merged 1 commit intomainfrom
feat/chat-toolbar

Conversation

@raphaeltm
Copy link
Owner

Summary

  • Refactors the chat input area to add a toolbar row above the textarea containing the settings button (left), plan button (center-left), and cancel button (far right).
  • The cancel button is now always visible — not just when prompting. ACP status reporting can be unreliable with subagents, so users need a way to force-cancel at any time.
  • Settings button restyled as a compact pill to match the plan button height.

Validation

  • pnpm lint
  • pnpm typecheck (via pnpm build)
  • pnpm test — 233 tests pass (6 new)
  • Mobile and desktop verification: toolbar pills are compact, flex-wrap friendly

UI Compliance Checklist (Required for UI changes)

  • Mobile-first layout verified — toolbar uses flex with gap, wraps naturally
  • Accessibility checks completed — aria-labels on all toolbar buttons
  • Shared UI components used or exception documented — reuses StickyPlanButton, matches pill styling

Exceptions (If any)

N/A

Agent Preflight (Required)

  • Preflight completed before code changes

Classification

  • external-api-change
  • cross-component-change
  • business-logic-change
  • public-surface-change
  • docs-sync-change
  • security-sensitive-change
  • ui-change
  • infra-change

External References

N/A: Frontend-only layout refactor within acp-client package.

Codebase Impact Analysis

  • packages/acp-client/src/components/AgentPanel.tsx — toolbar layout refactor
  • packages/acp-client/src/components/StickyPlanButton.tsx — remove margin class
  • packages/acp-client/src/components/AgentPanel.test.tsx — 6 new tests

Documentation & Specs

N/A: No API or behavioral changes requiring doc updates.

Constitution & Risk Check

  • Principle XI: No hardcoded values introduced. All styling uses Tailwind utility classes.
  • No security implications — layout-only change.

Refactor the chat input area to place the settings button, plan button,
and cancel button in a unified toolbar row above the text input. The
cancel button is now always visible so users can force-cancel even when
ACP status reporting is unreliable (e.g., with subagents).

- Move settings gear from form row into toolbar with pill styling
- Move cancel from conditional form button to always-visible toolbar item
- Cancel is red when prompting, muted gray otherwise, always clickable
- Remove mb-2 from StickyPlanButton (parent toolbar handles spacing)
- Add 6 tests for toolbar layout, cancel behavior, and styling states

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@raphaeltm raphaeltm merged commit e131b78 into main Feb 23, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant