Repository navigation
Conversation
Only show the active chat thread highlight when the current route is a chat route. Changes: - Compute a route-scoped sidebar active thread id in GatewayLayout. - Pass null to Sidebar on non-chat routes so old conversations are not visually active. - Let Sidebar accept an activeThreadId override while preserving the existing fallback. - Add caller-level tests for GatewayLayout -> Sidebar and Sidebar -> SidebarThreads. - Regenerate the committed WebUI v2 bundle. Verification: - node --test crates/ironclaw_webui_v2_static/static/js/layout/gateway-layout.test.mjs crates/ironclaw_webui_v2_static/static/js/components/sidebar.test.mjs - node --check for both new test files - node build.mjs - git diff --check Not run: - cargo test -p ironclaw_webui_v2_static, because cargo is not installed in this shell.
📝 WalkthroughWalkthrough
ChangesRoute-aware Sidebar active thread highlight
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the sidebar to only highlight the active thread when the user is on a chat-related route. It introduces an activeThreadId prop to the Sidebar component and conditionally passes it from GatewayLayout based on the current route. Additionally, comprehensive unit tests have been added for both components. The review feedback suggests using optional chaining (threadsState?.activeThreadId) in both files to defensively prevent potential runtime errors if threadsState is undefined.
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.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…t.js Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Review — closing as superseded/duplicate of #5592This fixes a real bug (the sidebar thread highlight persists on non-chat routes because it's driven by
The bug is not yet fixed on One thing worth carrying to #5592: this PR's tests are actually the better pattern — they render Closing this in favor of #5592. Thanks for the fix — the diagnosis and the test approach were both good. |
Summary
GatewayLayout -> SidebarandSidebar -> SidebarThreads.Change Type
Linked Issue
Fixes #5076
Validation
cargo fmt --all -- --checkcargo clippy --all --benches --tests --examples --all-features -- -D warningscargo buildnode --test crates/ironclaw_webui_v2_static/static/js/layout/gateway-layout.test.mjs crates/ironclaw_webui_v2_static/static/js/components/sidebar.test.mjsnode --check crates/ironclaw_webui_v2_static/static/js/layout/gateway-layout.test.mjsnode --check crates/ironclaw_webui_v2_static/static/js/components/sidebar.test.mjsnode build.mjsgit diff --checkcargo test --features integrationif database-backed or integration behavior changedreview-prorpr-shepherd --fixwas run before requesting reviewRust checks were not run because
cargois not installed in this shell.Security Impact
None.
Reborn Trust-Boundary Checklist
N/A. This is a WebUI-only presentational change that does not affect auth, secrets, prompts, runtime policy, sandboxing, DB, queues, or trust-bearing types.
Database Impact
None.
Blast Radius
WebUI v2 sidebar conversation highlighting only. The main risk is visual active-state regression in the sidebar on chat and non-chat routes.
Rollback Plan
Revert this PR/commit to restore the previous sidebar behavior.
Review Follow-Through
No known follow-up required. Local targeted tests passed; full Rust verification was unavailable because
cargois not installed in this shell.Review track: B