Skip to content

Windows & Linux: the chat's model list had room for less than one model - #363

Closed
shakibbinkabir wants to merge 1 commit into
Louis-CFM:mainfrom
shakibbinkabir:chat-model-list-room
Closed

shakibbinkabir wants to merge 1 commit into
Louis-CFM:mainfrom
shakibbinkabir:chat-model-list-room

Conversation

@shakibbinkabir

Copy link
Copy Markdown
Contributor

On Windows the chat's model picker shows less than one model at a time, and the list can only be moved with the arrows of a collapsed scrollbar. This gives the list room. It is not a redesign: the card, the chips, the rows, the fonts and the colours are untouched. Only the height the island takes while the picker is open changes.

Before (0.2.0) After

Both are the real app on Windows 11, captured the same way, with the same 14 Anthropic models loaded.

Cause

On macOS the picker is a popover, with .frame(height: 260) for the list. In the port it sits inside the island, in whatever the chat leaves. With an empty conversation the island is 240 px tall, which leaves the list 23 px for rows that are 28 px tall.

Fix

While the picker is open the island takes all the height the panel has (CHAT_PICKER_H = PANEL_H - 8, so 312 px), the same way the question view already grows for its options (QUESTION_PICKER_H). It returns to the chat's own height when the picker closes. The chat's height callback now picks the shrink curve or the grow spring by direction, since the chat can get shorter as well as taller.

Island height List height Models fully visible (of 14)
Before 240 px 23 px 0
After 312 px 95 px 3

What this does not do

It does not reach the Mac's 260 pt. That needs a taller window, and PANEL_H is also the desktop Mochi's home zone and the Linux window geometry, so I left it alone. If you want the full height, I can do that as a follow-up.

Tests

  • npm test: 326 pass, 2 new (the picker tells the island to make room and gives it back; only the chat's height changes). tsc --noEmit clean. No Rust change.
  • Run by hand on Windows 11 with a release build. Linux not run; it shares the code.

🤖 Generated with Claude Code

The model picker is a popover on macOS, with 260 pt for the list. Here it sits
inside the island, in whatever the chat leaves: with an empty conversation the
island is 240 px tall and the list had room for one model, scrolled with the
arrows of a collapsed scrollbar.

While the picker is open the island now takes all the height the panel has
(312 px), the way the question view already grows for its options, and comes
back to the chat's own height when it closes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@shakibbinkabir

Copy link
Copy Markdown
Contributor Author

Folded into #365, which has this as one of four separate commits you can take or leave on their own.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant