From b473b21a2f3f0620b316f6342b5ecc3bbfa2d219 Mon Sep 17 00:00:00 2001 From: Michael Lam Date: Mon, 18 May 2026 18:37:24 -0700 Subject: [PATCH] fix: align workspace tree file icons --- CHANGELOG.md | 4 ++ docs/pr-media/2554/tree-indent-after.png | Bin 0 -> 19860 bytes docs/pr-media/2554/tree-indent-before.png | Bin 0 -> 19447 bytes static/style.css | 1 + static/ui.js | 7 ++++ ...st_issue2554_workspace_tree_file_indent.py | 39 ++++++++++++++++++ 6 files changed, 51 insertions(+) create mode 100644 docs/pr-media/2554/tree-indent-after.png create mode 100644 docs/pr-media/2554/tree-indent-before.png create mode 100644 tests/test_issue2554_workspace_tree_file_indent.py diff --git a/CHANGELOG.md b/CHANGELOG.md index ed15eec3..b848962b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- **PR #2563** by @Michaelyklam (closes #2554) — Align workspace-tree file rows with sibling directory rows by reserving the same expand/collapse toggle slot for files. Expanded directories now show child files stepped in at the same icon column as child folders, while directory toggles and file interactions stay unchanged. + ## [v0.51.91] — 2026-05-18 — Release BO (stage-384 — 5-PR full sweep batch — reasoning-replay history fix + archive-extract per-session inbox + fallback streaming warnings + sanitized custom-provider env hints + Slice 3c queue/goal adapter routing) ### Fixed diff --git a/docs/pr-media/2554/tree-indent-after.png b/docs/pr-media/2554/tree-indent-after.png new file mode 100644 index 0000000000000000000000000000000000000000..8137b93c51815d118ff85cde8e0147d20010fa7d GIT binary patch literal 19860 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

uc~+;Z))&O*sQpl3XxPGA!fTzf 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 literal 0 HcmV?d00001 diff --git a/docs/pr-media/2554/tree-indent-before.png b/docs/pr-media/2554/tree-indent-before.png new file mode 100644 index 0000000000000000000000000000000000000000..13173d805a933a46b1ff52d98ba0907d7d767218 GIT binary patch literal 19447 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 z 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 str: + start = UI_JS.index("if(item.type==='dir'){\n // Toggle arrow for directories") + end = UI_JS.index("\n\n // Icon", start) + return UI_JS[start:end] + + +def test_file_rows_get_toggle_placeholder_before_icon(): + block = _render_tree_item_toggle_block() + + assert "spacer=document.createElement('span')" in block + assert "spacer.className='file-tree-toggle-placeholder'" in block + assert "spacer.setAttribute('aria-hidden','true')" in block + assert "el.appendChild(spacer);" in block + + spacer_idx = UI_JS.index("spacer.className='file-tree-toggle-placeholder'") + icon_idx = UI_JS.index("const iconEl=document.createElement('span');", spacer_idx) + assert spacer_idx < icon_idx, "file-row spacer must be appended before the file icon" + + +def test_placeholder_matches_directory_toggle_slot_width(): + assert ".file-tree-toggle{" in STYLE_CSS + assert ".file-tree-toggle-placeholder{" in STYLE_CSS + placeholder_start = STYLE_CSS.index(".file-tree-toggle-placeholder{") + placeholder_end = STYLE_CSS.index("}", placeholder_start) + placeholder = STYLE_CSS[placeholder_start:placeholder_end] + + assert "width:10px" in placeholder + assert "flex:0 0 10px" in placeholder + assert "display:inline-block" in placeholder