feat(agent): improve Agent Mode sidebar behavior - #745
Conversation
Deploying maple with
|
| Latest commit: |
1d65c16
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b3a6bb11.maple-ca8.pages.dev |
| Branch Preview URL: | https://codex-agent-mode-sidebar-map.maple-ca8.pages.dev |
Independent code-review summaryI ran three independent read-only reviews of the latest local follow-up diff from different angles: functional/state correctness, simplicity and scope, and UI interaction/accessibility.
Validated and fixed locally
Validated behavior
Accepted limitationRadix Hover Card makes descendants non-tabbable, so the folder shortcut inside a card is pointer-only. The project menu retains the same keyboard-accessible Open Project Folder action. Replacing the primitive would be substantially more invasive for no functional gain. Verification
No blocker remains in the reviewed local diff. |
|
I would request changes before merging PR #745. Findings
Reconciled assessmentThe overall feature implementation is coherent and appropriately scoped to the desired behavior. The persistence, unread-race handling, aggregate status, folder opener permission, and failure handling look correct. I found no added code comments or clearly low-value tests worth removing. The remaining code fixes are narrow:
The documentation fix is to update issue #738 to match the implemented and desired interaction design. Validation completed:
|
|
Addressed all four findings in
Also refreshed the PR description and QA notes to reflect these changes. Validation after the fixes:
The branch is pushed and the worktree is clean. |
|
Performed manual QA on latest macOS build from the artifacts. Build is good.
|
|
ready for review |
74eb3d3 to
51382ce
Compare
AnthonyRonning
left a comment
There was a problem hiding this comment.
Reviewed this closely and smoke-tested it pretty thoroughly. The sidebar changes feel clean, fluid, and well scoped, and I didn’t find any blockers or high-severity concerns.
The review surfaced a couple of medium-level edge cases around menu/drag interaction and temporary keyboard access during loading. Neither needs to hold this PR or necessarily be addressed here. I also looked at how local sidebar preferences behave after account deletion, but that seems like a product-behavior decision we should make deliberately rather than changing it as a presumed bug.
Nice work—approving.
51382ce to
1d65c16
Compare
Changelog
Scope and behavior
This is a UI-focused Agent Mode change with one desktop capability update for the existing Tauri opener plugin and one new Radix UI dependency. It adds no Rust commands and does not change backend services, the Agent runtime, database schemas, or remote APIs. There are no intentional Chat Mode behavior changes; the shared tooltip primitive now portals its content, so its existing consumers remain part of regression review.
Project disclosure and naming
localStorage. Newly discovered projects default to expanded, malformed or stale data is ignored safely, and preferences remain local to the current device.Status popovers and folder paths
Running and unread status
localStorageor Goose SQLite and resets when Agent Mode remounts or the app restarts. This PR improves its presentation and closes a race that could leave a newly selected task marked unread after an asynchronous load.Code review focus
agentSidebarPreferences.ts: versioned account isolation, safe malformed-data handling, canonical-path identity, and no writes during startup projection.AgentMode.tsx: disclosure versus drag/action event boundaries, status aggregation, unread clearing, and hover-card state across project/task selection.AgentSidebarInfoCard.tsxandutils/path.ts: in-progress presentation, path shortening, exact-path accessibility text, and folder-action propagation.agentSidebarPresentation.tsandSidebar.tsx: count grammar, accessible labels, visible-session filtering, and running-over-unread visual priority.ui/hover-card.tsxandui/tooltip.tsx: portal layering, collision handling, dismissal, and regressions on other shared tooltip consumers.agentProjectFolder.tsand the Tauri capability change: opener permission scope, exact path forwarding, and error handling.Manual QA
Validation
bun run typecheckbun run lint— 0 errors; 13 existing warningsbun test— 584 passedgit diff --checkFixes #738