Settings: hover on a Backdrop tile repaints only the tile (#494) #507

Closed
kayg wants to merge 0 commits from issue/494-sidebar-edge into dev
Owner

Refs #494 (first step; not the whole edge model). Not merged.

What this does. Each Backdrop tile in Settings gets contain: paint, so a hover repaints only the tile and its damage never reaches the live backdrop blur of the sections sidebar beside the card. This is the minimal isolation fix.

What it does not do. The decided edge model (pane glass from a pre-blurred backdrop copy, no full-height live blur) is not in this PR. The #445 agent is building the renderer (apps/web/src/lib/soft-picture.ts and a .soft layer in Backdrop.svelte, photos only so far); the pane side should reuse that, not a second copy. issue/445-no-bleed is not pushed yet.

Test. sidebar-edge.spec (Chromium screencast): hovers the tiles in and out three times and asserts the pixels along the sidebar's trailing edge never change, and that every tile is isolated. The pixel check passes on dev too: the flash does not reproduce on this machine (software GL), it is a GPU effect seen on kayg's Mac. So the pixel part is a guard, and the isolation assertion is what fails before and passes after. kayg needs to confirm on the Mac.

🤖 Generated with Claude Code

https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b

Refs #494 (first step; not the whole edge model). Not merged. **What this does.** Each Backdrop tile in Settings gets `contain: paint`, so a hover repaints only the tile and its damage never reaches the live backdrop blur of the sections sidebar beside the card. This is the minimal isolation fix. **What it does not do.** The decided edge model (pane glass from a pre-blurred backdrop copy, no full-height live blur) is not in this PR. The #445 agent is building the renderer (`apps/web/src/lib/soft-picture.ts` and a `.soft` layer in `Backdrop.svelte`, photos only so far); the pane side should reuse that, not a second copy. `issue/445-no-bleed` is not pushed yet. **Test.** `sidebar-edge.spec` (Chromium screencast): hovers the tiles in and out three times and asserts the pixels along the sidebar's trailing edge never change, and that every tile is isolated. The pixel check passes on dev too: the flash does not reproduce on this machine (software GL), it is a GPU effect seen on kayg's Mac. So the pixel part is a guard, and the isolation assertion is what fails before and passes after. kayg needs to confirm on the Mac. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Settings: a hover on a Backdrop tile repaints only the tile; guard for the sidebar edge (#494)
Some checks failed
CI / server (pull_request) Successful in 27s
CI / rust (pull_request) Successful in 2m11s
CI / web (pull_request) Failing after 48m15s
856dda052c
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Author
Owner

Landed in train u3, #520.

Train u3 ran the full suite per project (11 projects), plus fmt, clippy, workspace tests and the build.

  • Passed: chromium-390, chromium-1440, throttled-390, throttled-1440 (rerun after a session restart cut it off), flow, passkeys, prefs-chromium, prefs-webkit and contrast.
  • webkit-390: one tooltips failure, which passed 9 of 9 on the rerun.
  • webkit-1440:
    • opacity.spec:62 fails the same way on plain origin/dev (bisect: dev 1 failed out of 14), so it's a pre-existing flake;
    • missing-links:37 and the links specs are the dev race fixed in #518;
    • the other failures were the browser closing under load.
  • Workspace tests: one Rust flake (missing::a_path_tells_here_trash_and_gone), which is a dev race and is fixed in #519.

Contents:

  • #503: Places ghosting;
  • #506: font weight parity, with no global antialiased smoothing;
  • #507: sidebar hover edge;
  • #483: client ADRs 0040–0048.

All of these were approved by kayg. Merging.

Landed in train u3, #520. Train u3 ran the full suite per project (11 projects), plus fmt, clippy, workspace tests and the build. - **Passed:** chromium-390, chromium-1440, throttled-390, throttled-1440 (rerun after a session restart cut it off), flow, passkeys, prefs-chromium, prefs-webkit and contrast. - **webkit-390:** one tooltips failure, which passed 9 of 9 on the rerun. - **webkit-1440:** - `opacity.spec:62` fails the same way on plain origin/dev (bisect: dev 1 failed out of 14), so it's a pre-existing flake; - `missing-links:37` and the links specs are the dev race fixed in #518; - the other failures were the browser closing under load. - **Workspace tests:** one Rust flake (`missing::a_path_tells_here_trash_and_gone`), which is a dev race and is fixed in #519. Contents: - #503: Places ghosting; - #506: font weight parity, with no global antialiased smoothing; - #507: sidebar hover edge; - #483: client ADRs 0040–0048. All of these were approved by kayg. Merging.
kayg closed this pull request 2026-10-17 04:25:47 +00:00
Some checks failed
CI / server (pull_request) Successful in 27s
CI / rust (pull_request) Successful in 2m11s
CI / web (pull_request) Failing after 48m15s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal!507
No description provided.