Fix board selector label overlap

This commit is contained in:
Frank Song 2026-05-17 18:28:43 +08:00
parent e6be01c4dd
commit 9d6eb5f0df
5 changed files with 35 additions and 1 deletions

View file

@ -2,6 +2,10 @@
## [Unreleased]
### Fixed
- Board selector menu labels no longer overlap board titles when board metadata uses a longer text label in the icon/color slot.
## [v0.51.89] — 2026-05-18 — Release BM (stage-382 — 6-PR full sweep batch — runtime adapter approval/clarify seam + SOUL.md memory panel + #1855 resolve_model_provider fast-path + PWA sidebar spinner fix + /model active-provider preference + contributor contract docs index)
### Changed
@ -71,6 +75,7 @@
- **PR #2479** by @Michaelyklam (refs #1925) — Route Stop Generation through the default-off `RuntimeAdapter.cancel_run(...)` seam when `HERMES_WEBUI_RUNTIME_ADAPTER=legacy-journal` is enabled. Implements the first code slice of the Slice 3a cancel-control gate accepted in #2469 / v0.51.85. The default `legacy-direct` path still calls `cancel_stream(...)` directly; the adapter branch preserves the existing `{ok, cancelled, stream_id}` JSON response contract. No new cancellation registry, runner, sidecar, approval/clarify, queue/goal, or cached-agent state is introduced — adapter remains a pure protocol translator.
## [v0.51.85] — 2026-05-17 — Release BI (stage-378 — 3-PR batch — workspace-prefix display leakage fix + release-tag update banner + Slice 3a cancel-control gate RFC)
### Fixed

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -3817,7 +3817,14 @@ main.main.showing-insights > #mainInsights{display:flex;overflow-y:auto;}
.kanban-board-switcher-item:hover,
.kanban-board-switcher-item:focus{background:var(--accent-bg);outline:none;}
.kanban-board-switcher-item.is-current{font-weight:650;}
.kanban-board-switcher-item-icon{font-size:14px;line-height:1;flex-shrink:0;width:18px;text-align:center;}
.kanban-board-switcher-item-icon{
display:block;
font-size:14px;line-height:1.15;
flex:0 1 auto;
min-width:18px;max-width:7.5rem;
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
text-align:center;
}
.kanban-board-switcher-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kanban-board-switcher-item-count{
flex-shrink:0;font-size:10px;color:var(--muted);

View file

@ -874,6 +874,28 @@ def test_kanban_board_switcher_handlers_in_panels():
assert fn in PANELS, f"Missing handler: {fn}"
def test_kanban_board_switcher_icon_column_clamps_long_labels():
"""Regression for #2458: board metadata may use a short text label in the
icon/color slot. The menu must keep that label inside its own column instead
of letting it overlap the board title and count badge.
"""
rule = re.search(
r"\.kanban-board-switcher-item-icon\{(?P<body>.*?)\}",
STYLE,
flags=re.S,
)
assert rule, "missing .kanban-board-switcher-item-icon CSS rule"
compact = re.sub(r"\s+", "", rule.group("body"))
for required in (
"overflow:hidden",
"text-overflow:ellipsis",
"white-space:nowrap",
"max-width:7.5rem",
"min-width:18px",
):
assert required in compact
def test_kanban_board_switcher_calls_correct_endpoints():
"""The switcher must hit the right REST verbs to round-trip with the
bridge's multi-board contract."""