Fix board selector label overlap
This commit is contained in:
parent
e6be01c4dd
commit
9d6eb5f0df
5 changed files with 35 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
BIN
docs/images/pr-2458-board-selector-after.png
Normal file
BIN
docs/images/pr-2458-board-selector-after.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
BIN
docs/images/pr-2458-board-selector-before.png
Normal file
BIN
docs/images/pr-2458-board-selector-before.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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."""
|
||||
|
|
|
|||
Loading…
Reference in a new issue