Skip to content

Make console sidebar controls scrollable - #1688

Merged
gjkim42 merged 1 commit into
mainfrom
feature/scrollable-console-sidebar
Aug 24, 2026
Merged

gjkim42 merged 1 commit into
mainfrom
feature/scrollable-console-sidebar

Conversation

@gjkim42

@gjkim42 gjkim42 commented Aug 24, 2026 •

Copy link
Copy Markdown
Collaborator

What type of PR is this?

/kind feature

What this PR does / why we need it:

Moves New session, the namespace switcher, console navigation, and the conversation list into one scrollable sidebar region. The Kelos brand and Refresh/Sign out footer remain fixed, allowing long Session lists to use the space currently reserved by the controls after scrolling.

Before                              After
+----------------------+            +----------------------+
| Kelos                | fixed      | Kelos                | fixed
+----------------------+            +----------------------+
| New session          | fixed      | +------------------+ |
| Namespace            | fixed      | | New session      | |
| Overview             | fixed      | | Namespace        | |
| Sessions             | fixed      | | Overview         | | scrolls
| Resources            | fixed      | | Sessions         | |
+----------------------+            | | Resources        | |
| Conversations        | scrolls    | | Conversations    | |
| ...                  |            | | ...              | |
+----------------------+            | +------------------+ |
| Refresh | Sign out   | fixed      | Refresh | Sign out   | fixed
+----------------------+            +----------------------+

Adds a UI structure assertion covering every control expected inside the shared scroll region.

Which issue(s) this PR is related to:

N/A

Special notes for your reviewer:

  • make verify passes.
  • The internal/consoleserver unit tests pass as part of make test.
  • The full make test run has two unrelated failures in internal/controller because the local Codex environment injects config.toml content and does not provide the test skill reference at the expected temporary path.

Does this PR introduce a user-facing change?

Console sidebar controls now scroll with the Session list, leaving more space for conversations while keeping the brand and footer fixed.

Summary by cubic

Makes the console sidebar controls scroll with the Session list so they no longer reserve fixed space. Previously these controls were fixed above the list; now they scroll together, while the brand/header and footer remain fixed. Scrolling the sidebar now dismisses the session actions menu.

  • HTML: Groups New session, namespace switcher, console navigation, and the conversation list inside a .sidebar-scroll container placed before .sidebar-footer.
  • CSS: Adds .sidebar-scroll { flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: thin }, sets .new-session-button to width: 100%, and removes the separate scroller from .session-list (and related .session-sidebar flex rules).
  • JS/TS: Selects sidebarScroll and moves the scroll listener from elements.list to elements.sidebarScroll to close the session actions menu on scroll.
  • Tests: Extends TestSessionUIAdaptsToPhoneViewport to assert the scroll region exists with expected contents, that the .sidebar-scroll CSS rule is present, and that the updated sidebar scroll listener is wired in the compiled JS.

Written for commit a37d00b. Summary will update on new commits.

Review in cubic

@github-actions github-actions Bot added kind/feature Categorizes issue or PR as related to a new feature needs-triage needs-priority needs-actor release-note labels Aug 24, 2026
@gjkim42

gjkim42 commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator Author

/kelos claude-review

@kelos-bot

kelos-bot Bot commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor

🤖 Kelos Task Status

Task kelos-claude-reviewer-issue-comment-63b13ce814ae has succeeded. ✅

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

All reported issues were addressed across 3 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread internal/consoleserver/web/styles.css
@kelos-bot

kelos-bot Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

🤖 Kelos Claude Reviewer Agent @gjkim42

Review Summary

Verdict: APPROVE
Overall correctness: patch is correct
Scope: Moves the console sidebar controls (New session, namespace switcher, console navigation, conversation list) into a single scrollable region so long session lists can use the full sidebar height, keeping the brand header and footer fixed.

Findings Overview

Priority Count File:Line Summary
P0 0 — none
P1 0 — none
P2 0 — none
P3 1 internal/consoleserver/web/styles.css:56 .session-sidebar[hidden] rule is now redundant

Findings

Code quality

  • [P3] internal/consoleserver/web/styles.css:56 — .session-sidebar[hidden] { display: none; } is now dead. It existed to override the removed .session-sidebar { ...; display: flex; ... } declaration; with no author display rule on .session-sidebar anymore, the browser's default [hidden] handling already hides the element, so the rule can be dropped.

Key takeaways

  • The flex/scroll restructure is sound: .sidebar was already a flex-direction: column container with min-height: 0, so .sidebar-scroll { flex: 1; min-height: 0; overflow-y: auto } correctly becomes the single scroller while .sidebar-footer (margin-top: auto, outside the scroll region) stays pinned. This holds in the phone overlay layout too, since the mobile media query only overrides positioning, not the flex layout.
  • No JavaScript depends on #session-list being the scroll container — all scrollTop/scrollTo usage in app.js targets the messages pane — and .session-actions-menu is position: fixed, so nothing gets clipped by the new overflow-y: auto ancestor. width: 100% on .new-session-button correctly compensates for the button no longer being stretched by a flex parent.
  • The new test assertions (server_test.go:1519) verify both the region ordering (scroll region before the fixed footer) and that each control lives inside it, matching the existing structural-assertion style of TestSessionUIAdaptsToPhoneViewport.

@gjkim42
gjkim42 added this pull request to the merge queue Aug 24, 2026
@gjkim42
gjkim42 removed this pull request from the merge queue due to a manual request Aug 24, 2026
@gjkim42
gjkim42 force-pushed the feature/scrollable-console-sidebar branch from 3ab991a to a37d00b Compare August 24, 2026 22:48
@gjkim42

gjkim42 commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator Author

Addressed the current review findings in squashed commit a37d00b:

  • Cubic P2: moved session action-menu scroll dismissal from #session-list to the shared .sidebar-scroll container and added coverage.
  • Claude reviewer P3: removed the redundant .session-sidebar[hidden] CSS override.

Validation: make verify passes. make test passes internal/consoleserver; the full local run still reproduces only the two documented Codex-home fixture failures in internal/controller.

@gjkim42
gjkim42 enabled auto-merge August 24, 2026 22:59
@gjkim42
gjkim42 added this pull request to the merge queue Aug 24, 2026
Merged via the queue into main with commit 3bc20a6 Aug 24, 2026
26 checks passed
@gjkim42
gjkim42 deleted the feature/scrollable-console-sidebar branch August 24, 2026 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/feature Categorizes issue or PR as related to a new feature needs-actor needs-priority needs-triage release-note

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant