Fix #223: fit columns, drop type + header row #224

Merged
crueber merged 2 commits from fix/issue-223 into main 2026-09-09 01:56:00 +00:00
Owner

Implements #223 plus the follow-up comment (ditch the header row entirely).

Change (4 files, +22/-35):

  • web/src/pages/Tree.jsx: thead removed; type column cell removed (mode lead char + file icons carry the kind). Size + datetime stay right-aligned.
  • web/src/ui.css: new .tree-table content-fit rules — every column but the name gets w-px + nowrap (collapses to widest cell, no fixed widths); size num/unit share a sliver of inner padding so they read as one column.
  • web/src/lib/format.js + web/test/unit/format.test.js: entryKind removed — dead with its column gone (pre-1.0: delete the old shape in the same change, no shim).
  • No new deps. No doc updates needed (no doc references the tree table columns).

Deviations/notes:

  • web/css/repo.css still carries stale .tree-table rules but is NOT bundled (only src/ui.css ships since D-WEB-6) — deliberately left untouched as out of scope. A first pass that edited it demonstrably did nothing (verified via CDP computed styles); the live rules above are what the browser check measured.
  • Headless screenshots show tofu boxes for the file icons — missing emoji font in the headless-Chrome environment, not a product change (icon cell kept as-is per #211).

Tests:

  • node --test: every unit file passes individually (incl. updated format.test.js, 11/11); full-glob run: 418 ok / 0 not-ok before the sandbox watchdog cut the slow single-process tail (remaining files verified individually green); 3/3 smoke.test.js pass against a live instance of this build. Note: a foreign server squatting on :8080 in this sandbox stalls the default smoke target — unrelated to this change.
  • Browser (hub chrome-cdp :9222, real build + isolated server on :22331, seeded repo): repo root AND subdir, wide 1440x900 + narrow 390x844, dark + light — 0 thead, 0 .entry-type cells, mode/date white-space nowrap at identical content widths in all viewports, zero console/page errors. Screenshots eyeballed.
Implements #223 plus the follow-up comment (ditch the header row entirely). **Change** (4 files, +22/-35): - web/src/pages/Tree.jsx: thead removed; type column cell removed (mode lead char + file icons carry the kind). Size + datetime stay right-aligned. - web/src/ui.css: new .tree-table content-fit rules — every column but the name gets w-px + nowrap (collapses to widest cell, no fixed widths); size num/unit share a sliver of inner padding so they read as one column. - web/src/lib/format.js + web/test/unit/format.test.js: entryKind removed — dead with its column gone (pre-1.0: delete the old shape in the same change, no shim). - No new deps. No doc updates needed (no doc references the tree table columns). **Deviations/notes:** - web/css/repo.css still carries stale .tree-table rules but is NOT bundled (only src/ui.css ships since D-WEB-6) — deliberately left untouched as out of scope. A first pass that edited it demonstrably did nothing (verified via CDP computed styles); the live rules above are what the browser check measured. - Headless screenshots show tofu boxes for the file icons — missing emoji font in the headless-Chrome environment, not a product change (icon cell kept as-is per #211). **Tests:** - node --test: every unit file passes individually (incl. updated format.test.js, 11/11); full-glob run: 418 ok / 0 not-ok before the sandbox watchdog cut the slow single-process tail (remaining files verified individually green); 3/3 smoke.test.js pass against a live instance of this build. Note: a foreign server squatting on :8080 in this sandbox stalls the default smoke target — unrelated to this change. - Browser (hub chrome-cdp :9222, real build + isolated server on :22331, seeded repo): repo root AND subdir, wide 1440x900 + narrow 390x844, dark + light — 0 thead, 0 .entry-type cells, mode/date white-space nowrap at identical content widths in all viewports, zero console/page errors. Screenshots eyeballed.
Tree.jsx: remove the thead row entirely (columns are self-evident) and drop
the type column (mode lead char + icons already carry the kind). Size and
datetime stay right-aligned.

src/ui.css: .tree-table content-fit rules — every column but the name gets
w-px + nowrap (collapses to widest cell); the size num/unit pair shares one
sliver of inner padding so it reads as a single column.

format.js/format.test.js: remove entryKind, dead with its column gone
(pre-1.0: delete the old shape in the same change, no shim).

Note: web/css/repo.css carries stale .tree-table rules but is NOT bundled
(only src/ui.css ships) — deliberately left untouched, out of scope.

Browser-verified (CDP, real build+server): repo root + subdir, wide
1440x900 + narrow 390x844, dark + light — 0 thead, 0 type cells, mode/date
nowrap at content width, zero console/page errors.
Sign in to join this conversation.
No description provided.