Skip to content

[codex] Polish slash commands, PlayBooks labels, and sidebar menu layering#769

Merged
jeffscottward merged 5 commits intoRunMaestro:mainfrom
jeffscottward:codex/feedback-ui-polish
Apr 9, 2026
Merged

[codex] Polish slash commands, PlayBooks labels, and sidebar menu layering#769
jeffscottward merged 5 commits intoRunMaestro:mainfrom
jeffscottward:codex/feedback-ui-polish

Conversation

@jeffscottward
Copy link
Copy Markdown
Contributor

@jeffscottward jeffscottward commented Apr 9, 2026

Summary

  • make the slash command picker denser and taller so more commands fit without scrolling
  • rename the Auto Run Exchange buttons to PlayBooks
  • raise the left sidebar hamburger menu overlay above the chat title bar

Issues

Validation

  • targeted eslint on touched files
  • git diff --check
  • note: repo-wide tsc -p tsconfig.lint.json --noEmit previously failed on missing generated prompts before unrelated regeneration work

Summary by CodeRabbit

  • Style

    • Renamed marketplace controls from "Playbook Exchange"/"Exchange" to "PlayBooks"
    • Refined autocomplete dropdown UI: increased max height, tightened spacing and typography, reduced command padding
    • Adjusted header and menu layering and overlay placement via z-index and positioning tweaks
  • Tests

    • Updated slash-command autocomplete test selectors and event targeting for more reliable assertions and interactions

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 9, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: dff24fd8-bb46-446f-85d6-e4085ea0d548

📥 Commits

Reviewing files that changed from the base of the PR and between 4d01c32 and 349bd77.

📒 Files selected for processing (1)
  • src/renderer/components/InputArea.tsx
✅ Files skipped from review due to trivial changes (1)
  • src/renderer/components/InputArea.tsx

📝 Walkthrough

Walkthrough

Updated slash-command autocomplete layout and tests, renamed marketplace UI labels from "Exchange" to "PlayBooks", adjusted sidebar hamburger menu dropdown z-index/overlay positioning, and removed a header z-index class in MainPanel.

Changes

Cohort / File(s) Summary
Slash Command UI & Tests
src/renderer/components/InputArea.tsx, src/__tests__/renderer/components/InputArea.test.tsx
Autocomplete panel max height increased (max-h-64max-h-96), command button padding reduced (px-4 py-3px-3 py-1), leading-tight added to lines, description font changed (text-xstext-[11px]); tests updated to locate command items using closest('button') instead of closest('.px-4').
PlayBooks Label Rename
src/renderer/components/AutoRun.tsx, src/renderer/components/AutoRunExpandedModal.tsx
UI text/labels changed from "Exchange"/"Playbook Exchange" to "PlayBooks" (comment, title/tooltip, visible button text). No handler or logic changes.
Z-Index & Header Adjustments
src/renderer/components/SessionList/SessionList.tsx, src/renderer/components/MainPanel.tsx
Hamburger menu wrapper z-index increased (z-10z-30), overlay z-index changed (z-50z-[100]) and margin adjusted (mt-2-mt-px); MainPanel header container had relative z-20 removed.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐇 I hopped through code both neat and plucky,
Tucked rows in tight and made lists lucky,
"Exchange" now reads as friendly PlayBooks,
Menus float up where the header looks,
A carrot-cheering rabbit, quick and plucky! 🥕✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and clearly summarizes the three main changes: slash command polish (denser/taller), PlayBooks label rename, and sidebar menu z-index layering fixes.
Linked Issues check ✅ Passed All three linked issues (#761, #764, #767) are fully addressed: slash commands densified with tighter padding and increased height, Exchange labels renamed to PlayBooks, and sidebar menu layering fixed with z-index adjustments and seam offset.
Out of Scope Changes check ✅ Passed All changes are directly scoped to the three linked issues; no unrelated modifications detected in the test updates, UI labels, styling, or z-index adjustments.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

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

@jeffscottward jeffscottward force-pushed the codex/feedback-ui-polish branch from 27cda1b to 1e5e8d9 Compare April 9, 2026 19:28
@jeffscottward jeffscottward marked this pull request as ready for review April 9, 2026 22:04
@greptile-apps
Copy link
Copy Markdown

greptile-apps bot commented Apr 9, 2026

Greptile Summary

Three focused UI polish changes: the slash-command picker is made denser and taller (px-3 py-2, max-h-80, tighter typography); the Auto Run marketplace button is relabeled from "Exchange" to "PlayBooks" in both AutoRun.tsx and AutoRunExpandedModal.tsx; and the left-sidebar hamburger menu container is raised from z-10 to z-30 with its dropdown bumped to z-[100] so it clears the chat title bar. Tests are updated in sync with the padding-class change.

Confidence Score: 5/5

Safe to merge — all changes are targeted UI polish with no logic or data-flow impact.

Every finding is P2 (a stale test comment); no correctness, data-integrity, or reliability issues are present. All three linked issues are addressed, tests travel with the component change, and the z-index fix follows the correct CSS stacking-context pattern.

No files require special attention.

Vulnerabilities

No security concerns identified.

Important Files Changed

Filename Overview
src/tests/renderer/components/InputArea.test.tsx Test selectors updated from .closest('.px-4') to .closest('button') to match the padding class change in InputArea; one inline comment still references the old class name.
src/renderer/components/InputArea.tsx Slash-command picker made denser (px-3 py-2, max-h-80, leading-tight, 11px description) — straightforward UI polish, no logic changes.
src/renderer/components/AutoRun.tsx Button label and title renamed from "Exchange" / "Playbook Exchange" to "PlayBooks" / "Browse PlayBooks"; comment updated accordingly.
src/renderer/components/AutoRunExpandedModal.tsx Same "Exchange" → "PlayBooks" rename as AutoRun.tsx; no logic changes.
src/renderer/components/SessionList/SessionList.tsx Hamburger menu container bumped from z-10 to z-30 (both expanded and collapsed variants); overlay bumped from z-50 to z-[100] to clear the chat title bar.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User types / in InputArea] --> B{slashCommandOpen?}
    B -- yes --> C[Render dropdown\nmax-h-80 · px-3 py-2\nleading-tight · 11px desc]
    C --> D{User interaction}
    D -- mouseEnter --> E[setSelectedSlashCommandIndex]
    D -- single click --> E
    D -- double click --> F[Fill input & close picker]

    G[Left Bar header] --> H{Sidebar expanded?}
    H -- yes --> I[Hamburger button\ncontainer z-30]
    H -- no --> J[Wand button\ncontainer z-30]
    I & J --> K{menuOpen?}
    K -- yes --> L[Dropdown overlay\nz-100 above title bar]

    M[AutoRun / AutoRunExpandedModal] --> N{onOpenMarketplace?}
    N -- yes --> O[PlayBooks button\nformerly Exchange]
Loading

Reviews (1): Last reviewed commit: "test: fix slash autocomplete selectors" | Re-trigger Greptile

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
src/renderer/components/SessionList/SessionList.tsx (1)

733-767: Consider extracting the shared dropdown class/style to avoid drift.

Both menu overlays use the same panel class/style block; extracting a shared constant/component would reduce future mismatch risk.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/renderer/components/SessionList/SessionList.tsx` around lines 733 - 767,
The two menu overlay blocks in SessionList (the dropdown divs rendered when
!collapsed and when collapsed using menuOpen) duplicate the same className and
style; extract that shared markup into a single reusable piece (e.g., a small
DropdownPanel component or a DROPDOWN_PANEL_PROPS constant) and replace both
inline divs with the shared component/props to ensure a single source for
className/style (refer to SessionList, the divs that render the overlay
containing HamburgerMenuContent and the collapsed overlay controlled by
menuOpen).
src/__tests__/renderer/components/InputArea.test.tsx (1)

698-699: Update stale inline test comment to reflect the new selector.

Line 698 still describes the old class-based lookup (px-4 py-3 on a div), but Line 699 now targets the command button.

📝 Suggested comment-only cleanup
-			// Find the parent div that has the background style (px-4 py-3 class)
+			// Find the parent slash-command button and verify selected background style
			const helpCmd = screen.getByText('/help').closest('button');
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/__tests__/renderer/components/InputArea.test.tsx` around lines 698 - 699,
The inline test comment is stale: update the comment near the assertion that
uses screen.getByText('/help').closest('button') to describe that we now select
the command button by its text and then find its closest button element (instead
of referencing the old div with "px-4 py-3"); locate the line containing
getByText('/help').closest('button') in InputArea.test.tsx and replace the old
class-based description with a short note like "Find the command button by its
text and get its closest button element."
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@src/__tests__/renderer/components/InputArea.test.tsx`:
- Around line 698-699: The inline test comment is stale: update the comment near
the assertion that uses screen.getByText('/help').closest('button') to describe
that we now select the command button by its text and then find its closest
button element (instead of referencing the old div with "px-4 py-3"); locate the
line containing getByText('/help').closest('button') in InputArea.test.tsx and
replace the old class-based description with a short note like "Find the command
button by its text and get its closest button element."

In `@src/renderer/components/SessionList/SessionList.tsx`:
- Around line 733-767: The two menu overlay blocks in SessionList (the dropdown
divs rendered when !collapsed and when collapsed using menuOpen) duplicate the
same className and style; extract that shared markup into a single reusable
piece (e.g., a small DropdownPanel component or a DROPDOWN_PANEL_PROPS constant)
and replace both inline divs with the shared component/props to ensure a single
source for className/style (refer to SessionList, the divs that render the
overlay containing HamburgerMenuContent and the collapsed overlay controlled by
menuOpen).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: da236324-ee39-4909-be24-16e3db0ccf2c

📥 Commits

Reviewing files that changed from the base of the PR and between 0d3c6fc and 1e5e8d9.

📒 Files selected for processing (5)
  • src/__tests__/renderer/components/InputArea.test.tsx
  • src/renderer/components/AutoRun.tsx
  • src/renderer/components/AutoRunExpandedModal.tsx
  • src/renderer/components/InputArea.tsx
  • src/renderer/components/SessionList/SessionList.tsx

@@ -696,7 +696,7 @@ describe('InputArea', () => {

// The second command (/help) should have accent background
// Find the parent div that has the background style (px-4 py-3 class)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Stale inline comment

The comment still references the old px-4 py-3 class name, which was changed to px-3 py-2 in InputArea.tsx. The selector was correctly updated to closest('button'), but the comment describing it was not.

Suggested change
// Find the parent div that has the background style (px-4 py-3 class)
// The second command (/help) should have accent background
// Find the button element directly (px-3 py-2 class)
const helpCmd = screen.getByText('/help').closest('button');

@jeffscottward
Copy link
Copy Markdown
Contributor Author

Review pass completed on April 9, 2026.

No blocking issues found in the changed surfaces I exercised.

Validated:

  • slash command picker density / height
  • PlayBooks label in Auto Run
  • left sidebar hamburger overlay layering
  • npx vitest run src/__tests__/renderer/components/InputArea.test.tsx

Screenshots:

Slash command picker

PR 769 slash command picker

PlayBooks button

PR 769 PlayBooks button

Sidebar menu overlay

PR 769 sidebar menu overlay

@jeffscottward
Copy link
Copy Markdown
Contributor Author

Addressed the remaining sidebar seam.

Change pushed:

  • dae723033 fix: align sidebar menu overlay seam

What changed:

  • moved the hamburger overlay up by one border pixel so it overlaps the header seam instead of leaving the sidebar border exposed behind the rounded corner
  • applied the same offset to both expanded and collapsed sidebar menu overlays in src/renderer/components/SessionList/SessionList.tsx
  • verified with git diff --check

Updated verification screenshot:

PR 769 sidebar menu overlay fixed

@jeffscottward
Copy link
Copy Markdown
Contributor Author

Updated verification screenshot for the latest fix (4d01c32ec, removed MainPanel header z-20):

PR 769 sidebar menu overlay final

@jeffscottward
Copy link
Copy Markdown
Contributor Author

Updated slash command picker verification for the latest density change (349bd7730, tighten slash command picker):

PR 769 slash command picker final

@jeffscottward jeffscottward merged commit a1447a3 into RunMaestro:main Apr 9, 2026
3 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

1 participant