fix(web): reveal full composer command descriptions#27414
Long descriptions in the composer’s / menu were truncated even while hovering or navigating with the arrow keys. The existing tooltip now reveals the complete description for the highlighted suggestion, keeping menu rows and editor focus stable. The shared $ skill picker also benefits.
Fixes #26940. This is a small, focused visual fix under the obvious-bug exception: existing descriptions could not be read in full through the menu.
Verified in the real Chromium web client with isolated development state: hover, arrow keys, moving from a long row to the short row above it, Enter insertion, Escape dismissal, and $ skills. Row bounds remain identical across highlight changes. Packaged Electron was not run.
vp run check:changed upstream/main --concurrency 1 passed format, lint, Knip, affected typechecks, the adjacent test, and React Compiler coverage. Visual proof replaces a new UI test as required by AGENTS.md.
| Reproduction | Before | After |
|---|---|---|
| Keyboard, 1280 × 900 | Truncated highlighted description | Full description on keyboard highlight |
| Hover, 640 × 900 | Truncated hovered description | Full description on hover |
24-second interaction recording · Reproduction and verification details
Reviewed with sol-loop: 2 rounds with GPT-6.1 Sol on xhigh. Sol verdict: approved.
Created with GPT-6.1 Sol in the Codex harness through T3 Code.
Fixes pingdotgg/t3code#26940
Checks
Approvability
Verdict: Approved at ba2975a
Macroscope's review found this PR approvable — Active composer suggestions now show their full descriptions in a tooltip while retaining truncated inline text. The change is limited to presentation and leaves command selection and execution unchanged.
You can add or adjust custom eligibility rules. Learn more.
Note
Reviews paused
It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.
- Last reviewed commit: cc7cbc0428df6b229813fb316df12b2ac06f1989
- Latest commit, not reviewed: fad973034c5e011a1d1ec1af1c205184b2a6f419
Use the following commands to manage reviews:
@coderabbitai resumeto resume automatic reviews.@coderabbitai reviewto trigger a single review.
Use the checkboxes below for quick actions:
- Resume reviews
- Trigger review
No actionable comments were generated in the recent review.
Walkthrough
-
The composer command menu now shows an item’s full description in a tooltip when the item is active and its description is nonempty. The row description remains truncated.
Changes: Composer command descriptions
Layer / File(s) Summary Show full command descriptions
apps/web/src/components/chat/ComposerCommandMenu.tsxThe active item’s truncated description triggers a tooltip that displays the full description. The trigger is excluded from tab navigation. Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix · Severity of issue fixed: Low
Suggested reviewers:
scriptedalchemy,juliusmarminge
Merge Risk: External image Minimal · previous review cc7cb
-
Long command descriptions now appear in full in a tooltip when the item is highlighted. An extremely long description in a very short window could be partly cut off. This is an unlikely edge case and does not block merging.
Pre-merge checks: Passed 4
-
Check name Status Explanation Title check Passed The title names the fix (revealing full composer command descriptions) and the component it touches. It follows the conventional commit format from the template and matches the summary, which says the… Description check Passed The description follows the template sections: Problem, Change, Scope and approval, and Verification. The Problem section states the truncation bug and the expected behavior. The Change section explai… Linked Issues check Passed Issue #26940requires that hovering or highlighting a composer/menu row lets the user read the full description. The whole-PR diff against the merge base changes only `apps/web/src/components/chat…Out of Scope Changes check Passed The whole-PR diff touches one file. The change adds the tooltip import and wraps the existing description span in tooltip primitives. Every changed line serves the linked requirement to reveal full co… Full details: Title check
-
Explanation
The title names the fix (revealing full composer command descriptions) and the component it touches. It follows the conventional commit format from the template and matches the summary, which says the existing tooltip now displays the full description for the active command item.
Full details: Description check
-
Explanation
The description follows the template sections: Problem, Change, Scope and approval, and Verification. The Problem section states the truncation bug and the expected behavior. The Change section explains that the existing tooltip now reveals the full description. The Scope section links issue 26940 and explains the obvious-bug exception. The Verification section lists the manual checks, the before and after screenshots, the recording, and the check command results. Minor gaps: the Change section does not say why the shared $ picker needs no separate change, and the model line is present but not clearly marked. Overall the description is mostly complete.
Full details: Linked Issues check
-
Explanation
Issue
#26940requires that hovering or highlighting a composer/menu row lets the user read the full description. The whole-PR diff against the merge base changes onlyapps/web/src/components/chat/ComposerCommandMenu.tsx. InComposerCommandMenuItem, the description span is now aTooltipTriggerinsideTooltip open={props.isActive && props.item.description.length > 0}, andTooltipPopuprendersprops.item.descriptionin full.isActivefollows mouse highlight and keyboard highlight, so both paths from the issue reveal the text. The row keeps its truncated span, so row layout is unchanged. The issue allows a tooltip as a reveal method. The PR description reports browser verification of hover, arrow keys, Enter, Escape, and$skills. No automated test was added. The issue does not require one, and the PR cites AGENTS.md for visual proof. Limitation: this assessment reads the component diff. It does not inspect the$skill picker code path, so the shared-picker claim rests on the PR description and the previous review.
Full details: Out of Scope Changes check
-
Explanation
The whole-PR diff touches one file. The change adds the tooltip import and wraps the existing description span in tooltip primitives. Every changed line serves the linked requirement to reveal full command or skill descriptions in the shared menu item. No unrelated behavior, refactor, or unrelated file appears in the whole-PR file list or diff. The incremental review since the previous heads is covered by this whole-PR diff.
-
Finishing Touches
-
Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
External image Recent review info
-
External image Run configuration
-
- Source mode: Auto
- Repository: pingdotgg/t3code
- Branch: main
- File: .coderabbit.config.ts
- Commit: 6de770c
- Layers: Repository TS config
- Review profile: CHILL
- Plan: Advanced
- Run ID:
84e2d908-4d02-4d76-a7db-2190e56e233a
External image Commits
-
Reviewing files that changed from the base of the PR and between 0873ee1a0832aa7ab473847a8531948275752837 and cc7cbc0428df6b229813fb316df12b2ac06f1989.
External image Files selected for processing: 1
-
apps/web/src/components/chat/ComposerCommandMenu.tsx
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
External image Recent review info
-
External image Run configuration
-
- Source mode: Auto
- Repository: pingdotgg/t3code
- Branch: main
- File: .coderabbit.config.ts
- Commit: 6de770c
- Layers: Repository TS config
- Review profile: CHILL
- Plan: Advanced
- Run ID:
84e2d908-4d02-4d76-a7db-2190e56e233a
External image Commits
-
Reviewing files that changed from the base of the PR and between 0873ee1a0832aa7ab473847a8531948275752837 and cc7cbc0428df6b229813fb316df12b2ac06f1989.
External image Files selected for processing: 1
-
apps/web/src/components/chat/ComposerCommandMenu.tsx
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
-
Note
Written by gpt-6.1-sol on behalf of Maria
Verified in a real dev environment
verified as-is at 4e11d4e0d5f72c2fcfa61005634982d455495322 on this linux boat vm.
started github/main (5fe18d79ac) in a separate worktree after vp i, then stopped it before starting the exact pr head with vp run dev --home-dir /home/user/t3code/.t3. both servers ran in the background with isolated state. used repo playwright and /usr/bin/google-chrome.
on each version, added the real repository through the app, created a thread, selected codex gpt-6.1-sol, and sent a real provider turn. both returned slash description verification ready.. no mocks, fixtures, or demo data.
main truncated the existing contribution-triage skill description without revealing its full text on hover or keyboard highlight. the pr displays the complete description at 1280×900 and 640×900. editor focus and menu row bounds remain stable.
also exercised arrow navigation across provider commands, /goal insertion without sending, escape dismissal, $ skill tooltip and chip insertion, /model opening the model picker, and README file mention insertion. each passed.
runtime confirmation from read-only queries of each isolated database:
| 1 | main: Slash Description Verification | codex | gpt-6.1-sol |
| 2 | main provider turn: completed | codex |
| 3 | pr: Slash Description Verification | codex | gpt-6.1-sol |
| 4 | pr provider turn: completed | codex |
vp run check:changed 15fe2832727893cbdd2214383f9f971474849695 passed through blacksmith-check: format, lint, knip, affected typechecks, the existing adjacent test, and react compiler coverage. no source changes were needed.
before, main:
main: highlighted slash skill description remains truncated
after, exact pr head:
pr: keyboard highlight reveals the full slash skill description
Not verified
packaged electron, native ios/android, macos/windows, other providers, and remote/relay/tunnel connections were not exercised on this linux vm. screenshots and recording cover the light theme. provider commands were selected or inserted; goal execution, compaction, and external feedback submission were not invoked.
Added 3 commits
Evidence
Verified in the real web app using Chromium, 1280×800, light theme, fresh isolated databases and identical synthetic data. Both menus contain three rows: aaa has a short description; bbb and ccc have different long descriptions.
Steps on both commits: open the completed thread; type /proofcmd; hover middle row bbb; move the pointer into blank space; press ArrowDown to highlight ccc, ArrowUp to return to bbb, and ArrowUp to highlight short row aaa; hover aaa. Repeat with $proofskill.
Base leaves long descriptions truncated. Head reveals their complete text, moves the tooltip with keyboard highlighting, and keeps it closed for short descriptions. Composer focus is retained. The tooltip overlays preceding rows while the menu remains compact. The transcript and surrounding UI above the composer are pixel-identical across every matched pair.
scenarios:prove exited 0: six missing-tooltip checks failed on base and the scenario passed on head.
Recordings preserve the scripted interactions at original speed. Pairing/sign-in and cleanup were trimmed before upload; no pairing token is included.
Scenario and synthetic provider seed · Recording preparation script · Sanitized runner transcripts
AI-assisted; verified with the tests and tools listed above.
Not shown:
- Other shared picker entry types (files, threads, environments, models and pull requests) were not exercised; this reproduction covers provider commands and skills.