Repository navigation
feat(reborn): unify visible dropdown menus - #5940
Conversation
🔎 IronLoop Review StatusHead: Current reviewers:
Reviewer summaries
Recent activity
Available commands
Run metadataAdmission: webhook accepted the request and IronLoop persisted reviewer state before this projection. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
📝 WalkthroughSummary by CodeRabbit
WalkthroughReborn dropdowns in Slack, administration, and provider settings now use the shared ChangesSelectMenu migration
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Admin as Admin user
participant ProviderDialog
participant SelectMenu
participant FormState
Admin->>ProviderDialog: Open provider dialog
ProviderDialog->>SelectMenu: Render adapter and model options
Admin->>SelectMenu: Choose an option
SelectMenu->>FormState: Return selected value
FormState->>ProviderDialog: Update form.adapter or form.model
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@claude review |
There was a problem hiding this comment.
Code Review
This pull request replaces standard HTML <select> elements and custom <Select> wrappers with a new <SelectMenu> component across several frontend components, including the Slack channel picker, user detail panel, user creation form, and LLM provider dialog. Feedback focuses on improving the user experience and accessibility: first, by dynamically appending custom model values to the SelectMenu options in the provider dialog to prevent UI mismatches; second, by appending the channel ID to the ariaLabel of each dropdown in the Slack channel picker list to improve screen reader accessibility.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
This comment was marked as resolved.
This comment was marked as resolved.
Coverage ratchetReborn integration-tier coverageLine coverage (Reborn crates): 85.26% — 292830 / 343446 lines Per-crate breakdown (63 crates, lowest-covered first)
This table itself is informational and never gates the PR on its own — not the percentage, not the per-crate holes, not the 0-coverage callout. A separate coverage ratchet (dry-run until enforce=true; see tests/integration/coverage-floor.toml) can fail the build on specific configured floors. Exemptions (3 entry/entries excluded from the accounting above)
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@crates/ironclaw_webui_v2/frontend/src/pages/admin/components/user-detail.tsx`:
- Around line 30-35: Move the duplicated buildRoleOptions function from
user-detail.tsx and users-tab.tsx into the shared admin-presenters module
alongside formatUserRole and roleTone, export it there, and update both
components to import and use the shared helper. Remove both local definitions.
In `@tests/e2e/scenarios/test_reborn_webui_v2_legacy_settings_search.py`:
- Line 327: Add the missing -> None return type annotation to the
_choose_select_menu_option function, matching the existing annotation style such
as _mock_llm_state and satisfying Ruff ANN202.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: ffe16109-7d50-4dd5-b5b8-042d983d8d78
📒 Files selected for processing (9)
crates/ironclaw_webui_v2/frontend/src/components/slack-channel-picker.test.tscrates/ironclaw_webui_v2/frontend/src/components/slack-channel-picker.tsxcrates/ironclaw_webui_v2/frontend/src/pages/admin/components/user-detail.tsxcrates/ironclaw_webui_v2/frontend/src/pages/admin/components/users-tab.tsxcrates/ironclaw_webui_v2/frontend/src/pages/settings/components/provider-dialog.tsxcrates/ironclaw_webui_v2/frontend/src/pages/settings/hooks/useProviderDialogForm.tscrates/ironclaw_webui_v2/frontend/src/pages/settings/lib/llm-providers.test.tscrates/ironclaw_webui_v2/frontend/src/pages/settings/lib/llm-providers.tstests/e2e/scenarios/test_reborn_webui_v2_legacy_settings_search.py
|
🚅 Deployed to the ironclaw-pr-5940 environment in ironclaw-ci-preview
|
Summary
SelectMenuin Slack channel routing, LLM provider configuration, and admin user role controls.Linked Issue
Closes #5938
Validation
pnpm run typecheckpnpm vitest run src/design-system/select-menu.test.ts src/components/slack-channel-picker.test.ts src/pages/settings/components/provider-components.test.ts src/pages/settings/components/inference-tab.test.ts src/pages/settings/lib/llm-providers.test.tsTZ=UTC pnpm testpnpm run buildgit diff --checkSecurity Impact
No. This is a client-side UI component migration only.
Database Impact
No schema or persistence changes.
Blast Radius
Limited to visible Reborn dropdown controls in Extensions channel setup, Settings LLM provider configuration, and Admin user role management.
Rollback Plan
Revert this PR to restore the previous native dropdown controls for these visible surfaces.