A dot on the loaded model, and a new chat that matches its model

The model menu asks each connection's /v1/models for the load state
llama-swap reports there and marks the loaded model; endpoints that state
nothing (a hosted API) get no dot. The new-chat screen offered the generic
three efforts whatever the model took, so Bonsai's xhigh default showed as
off. The composer was as wide as its widest hint. And the Doors of Durin are
a riddle: Speak friend and enter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-28 08:48:58 +00:00
co-authored by Claude Opus 5.5
parent dfd8418d95
commit cb8a223fa4
18 changed files with 493 additions and 8 deletions
+13
View File
@@ -219,6 +219,19 @@ def test_the_tab_bar_edge_fade_is_covered_when_nothing_overflows():
assert solid >= float(shadow.group(1)) == float(sizes.group(2))
def test_the_composer_is_as_wide_as_its_column_not_its_hint():
"""With `max-width` and auto margins alone, the box was as wide as its
widest content inside a flex column, so the vision hint under it decided:
768px for GPT-OSS ("has no vision, so images will not be sent") and 538px
for a model that sees images. Reported from the live instance with four
screenshots."""
chat = (ROOT / "web/static/css/chat.css").read_text(encoding="utf-8")
start = chat.index(".composer__inner {")
rule = chat[start : chat.index("}", start)]
assert "width: 100%" in rule
assert "max-width: var(--thread-max-width)" in rule
def test_the_two_ends_of_the_shell_stay_level():
"""The sidebar footer and the composer sit either side of the same vertical
edge and are both content-sized, so without a common floor they end at