Three more from the Deck: a setting wired to nothing, a grid missing its last row, and a bar put down wherever there was room #275
Merged
enricobuehler
merged 1 commits from 2026-08-16 22:12:29 +00:00
worktree-console-ui-followups into main
1
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
08142744a1 |
fix(console): the collections setting was wired to nothing, the grid lost its last row, and the sort bar was put down wherever there was room
ci / bun-nix (pull_request) Successful in 29s
ci / docs-site (pull_request) Successful in 1m18s
ci / rust-arm64 (pull_request) Successful in 1m28s
ci / web (pull_request) Successful in 4m22s
windows-client / client (x64, , x86_64-pc-windows-msvc, C:\t) (pull_request) Successful in 7m4s
windows-client / client (arm64, --no-default-features, aarch64-pc-windows-msvc, C:\t-a64) (pull_request) Successful in 3m1s
android / android (pull_request) Successful in 14m41s
ci / rust (pull_request) Successful in 18m42s
Three more from the Deck. "Even if I have the collections enabled in the settings, they don't actually get shown when opening the library." `LibraryScreen::collections_upgrade` was written, documented, and unit-tested for its DECISION — and then nothing ever called it. It carried an `#[allow(dead_code)]`, which is exactly what stopped the compiler from saying so, and its own tests passed throughout because they called it directly. The setting was on, the shelf agreed it should stand aside, and the library opened on the shelf anyway. The call belongs in the shell's per-frame sync and nowhere else: a screen cannot replace ITSELF. The shelf can answer the question, because it holds the library and the settings; only the shell owns the stack. It is guarded on a settled transition, because mid-flight the stack's top is not yet what the user is looking at, and swapping under a push they have already reversed with B would land them on the collections of a host they just backed out of. The new test drives `Shell::sync` and asserts on the STACK — the shelf was never the broken part, so a test that asked the shelf would have gone on passing. "The grid view is cut off at the bottom." The mirror of the top inset fixed one commit ago, and that fix is what made it visible. The content ended at the last row's card bottom, so at maximum scroll that card sat exactly flush with the viewport's clip and lost its focus scale, its shadow and its label. The air has to be part of `content_h` rather than of the viewport, because `content_h` is the only thing the scroll clamp knows about. "I don't like the top bar for switching the sorting & view type, please redesign it — one of the worst parts is the not centered view switch, the ugly looking focus indicator (dark bg, border)." The arrangement group used to START at the band's midpoint. That is neither centred nor trailing: it read as a control that had been put down wherever there was room. Both groups are now anchored to the edge they belong to — the sort leads at the heading's inset, the arrangement trails at the controller chip's, and the shoulders that change it are the trailing pair of buttons, so the hand and the eye agree. The band is the same two-anchor structure as the row above it. The focus indicator was a glass panel, a brand hairline and a halo — the console's recipe for a floating SURFACE, applied to a strip that sits flat in the field. Hence the dark slab with a line round it, worse on the six pale palettes where the glass turns to frost over an already-light field. It is an accent wash now and nothing else: no border, no halo, no glass. The accent is palette-derived, so 14 % reads at both poles without the strip ever becoming an object. One defect introduced and caught in the same pass, by looking rather than by testing: the gap between a caption and its pills was never explicit. It came from `TabStrip`'s leading inset, which only appears when the rect it is handed has slack — and a trailing group's rect is exactly as wide as its pills, so the gap silently vanished and "VIEW" ended up touching the first pill, while the leading group kept a gap by accident. Both groups now space their caption themselves and both are handed exactly-sized rects, so neither depends on that side effect for its position. |