fix(web): sidebar reveal survives drawer remounts and late rows

The reveal state lived in the sidebar, which the narrow drawer and Settings
unmount without a route change, so reopening the drawer widened a manually
picked project scope. AppSidebarLayout now owns it, and only a route change
requests a reveal. The legacy sidebar also keeps its reveal pending until the
active row renders, so a thread whose environment shells arrive late still
scrolls into view once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
32099f62b3Julius Marminge committed on 10/22/2026, 1:13:33 AMparenta39cce2
4 files changedLine totals unavailable