fix(sessions): board folder indent parity with list view (#3909) - #3922
Conversation
The board/kanban column folder body used border-l ml-2 pl-1 while the list view folder body uses border-l ml-4 with no pl, so nested session rows sat offset from the connector line in board view only. Both views render rows through the same renderSessionRow, so the container class list is the only divergence. Drop pl-1 and widen ml-2 to ml-4 to match the list view's flush-connector treatment. Closes #3909
GPT 5.6 Review — ✅ no blocking findingsGPT 5.6 completed its review of This comment is updated in place on each push. Review detailsNo findings. False positive or not applicable? A repository writer can comment: |
UX Review (Fable 5) — ✅ PASSAdvisory UX-level review of UX-Verdict: PASS Three-line class tweak that removes a visible list/board nesting mismatch; after-board screenshot matches the list view's flush-connector geometry exactly, and truncation absorbs the deeper indent. [UX-REVIEWED] c62add5 |
Opus 4.8 Review — ✅ no blocking findingsReviewed Verdict parsed from the review's SHA-scoped output markers for commit False positive or not applicable? A repository writer can comment: |
Design Review (Fable 5) — 🟡 CONCERNSAdvisory design-level review of Design-Verdict: CONCERNS One-line CSS fix is sound; the PR also commits four binary screenshots under Watch
Suggestions
[DESIGN-REVIEWED] c62add5 |
First Principles Review (Fable 5) — ✅ PASSAdvisory premise-level review of Both files read. The change is a one-line Tailwind class edit in First-Principles-Verdict: PASS A named defect (#3909, prior advisory follow-up) fixed at the divergent class list itself; every rider is declared and conventional. What this change shipsIntent: make nested folder rows in board view indent and hug the connector exactly as in list view — a FIX.
WatchThe description names the cause as "two divergent class lists instead of one", but the lists stay divergent by Subtractions
[FIRST-PRINCIPLES-REVIEWED] c62add5 |
|
Disposition for Design Review (CONCERNS on c62add5) -- one item per finding: Watch: four PNGs committed under Suggestion: No code change; both dispositions are prose-only on the reviewed head. |
bolichen97
left a comment
There was a problem hiding this comment.
Tier 1 auto-approve: cosmetic-UI (5 files). Criteria: no conflict, no requested changes, security path denylist clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: cosmetic-UI — board folder indent parity with list view, CSS alignment only (4 screenshots + 1 component).
bolichen97
left a comment
There was a problem hiding this comment.
Tier 1 auto-approve: cosmetic-UI (5 files). Criteria: no conflict, no requested changes, security path denylist clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: cosmetic-UI — board folder indent parity with list view (ml-2 pl-1 → ml-4 class change).
…3909) (kirodotdev#3922) The board/kanban column folder body used border-l ml-2 pl-1 while the list view folder body uses border-l ml-4 with no pl, so nested session rows sat offset from the connector line in board view only. Both views render rows through the same renderSessionRow, so the container class list is the only divergence. Drop pl-1 and widen ml-2 to ml-4 to match the list view's flush-connector treatment. Closes kirodotdev#3909
Problem / Motivation
The sidebar's two views render nested folder bodies with different connector treatments even though both draw session rows through the same
renderSessionRow. The list view's folder body usesml-4(16px margin + 1px connector border) with no left padding, so nested session rows sit flush against the connector line. The board/kanban column folder body inChatSidebar.tsxstill usedborder-l border-border ml-2 pl-1, so in board view the same rows sat visibly offset from the connector at a shallower indent. Follow-up from the First Principles advisory on PR #3903.Why it matters
Users who switch between the list and board views see the same folders drawn with two different nesting geometries. The inconsistency reads as sloppiness in the dashboard's primary navigation surface, and every future visual pass on folder nesting has to reconcile two divergent class lists instead of one.
What changed (motivation -> approach -> change)
Symptom: nested session rows sit flush against the connector in list view but offset in board view. Root cause: the board-view folder body wrapper carries its own divergent class list (
ml-2 pl-1) rather than the list view's flush-connector treatment (ml-4, nopl). Change: droppl-1and widenml-2toml-4on the board-view folder body so both views share the same connector geometry. Verified visually that board columns (min-w-[220px] flex-1) absorb the extra 8px without clipping -- session rows are flex children withtruncate, so text compresses rather than overflows.Scope note: the list view's folder body also carries
mb-1 rounded-bl-md(bottom spacing + rounded connector tail). Those are not indentation and were left out deliberately to keep this change exactly what the issue names; they can ride with a future board-view visual pass.Tests
No test changes: no existing component or snapshot test asserts on the board-view folder body class list (the existing geometry guard
website/src/test/ChatSidebar.folderAlignment.test.tsxpins the list-view folder body toml-4present /pl-1absent -- this change moves board view toward that same contract). Full ChatSidebar vitest set (43 files, 329 tests) passes.Manual verification
Ran an isolated gateway + Vite dev server from this branch, seeded a folder ("Radar work", 3 sessions) with a nested subfolder ("Deep dives", 1 session) plus a tagged board column, and captured before/after screenshots of both views (scripted Playwright, headless Chromium). Board view now renders nested rows flush against the connector at the same 16px step as the list view; the list view is byte-identical before vs after (untouched, identical PNG hashes).
Screenshots / video
Board view -- before (ml-2 + pl-1, rows offset from connector):
Board view -- after (ml-4, rows flush against connector, matching list view):
List view (unchanged control -- before and after are byte-identical)
Related Issues
Closes #3909
Checklist
feat|fix|docs|refactor|perf|test|chore|ci|build|revert: ...)