Train AB: selection tint, no sideways scroll, swipe rows, link pill padding, faster saves #580

Closed
kayg wants to merge 0 commits from train/2026-10-18ab into dev
Owner

Train AB ran the full suite: fmt, clippy, workspace tests (502 passed, 0 failed), the build, svelte-check, and every Playwright project in parallel shards.

  • First run discarded: the Rust steps hadn't compiled (a broken shared environment file), so e2e had used an old binary. The train script now stops at the first failing Rust step.
  • Rerun: every shard passed except two tests that failed under load:
    • swipe-rows:116 passed 60 of 60 repeated alone;
    • missing-links:155 (page closed) passed 54 of 54.
  • webkit-390 shard 3/3: it collided on a port, was rerun alone, and passed 94 of 94.

Contents:

  • #576: the block-selection tint covers exactly its block;
  • #578: the phone layout never scrolls sideways;
  • #575: swipe rows;
  • #573: narrow handle and link pill padding;
  • #574: saves no longer copy the whole note, with the independent review's crash tests.

Replaces #576, #578, #575, #573 and #574.

🤖 Generated with Claude Code

https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk

Train AB ran the full suite: fmt, clippy, workspace tests (502 passed, 0 failed), the build, svelte-check, and every Playwright project in parallel shards. - **First run discarded:** the Rust steps hadn't compiled (a broken shared environment file), so e2e had used an old binary. The train script now stops at the first failing Rust step. - **Rerun:** every shard passed except two tests that failed under load: - `swipe-rows:116` passed 60 of 60 repeated alone; - `missing-links:155` (page closed) passed 54 of 54. - **webkit-390 shard 3/3:** it collided on a port, was rerun alone, and passed 94 of 94. Contents: - #576: the block-selection tint covers exactly its block; - #578: the phone layout never scrolls sideways; - #575: swipe rows; - #573: narrow handle and link pill padding; - #574: saves no longer copy the whole note, with the independent review's crash tests. Replaces #576, #578, #575, #573 and #574. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
kayg added 18 commits 2026-10-18 12:07:36 +00:00
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
Regenerate actions.gen.ts: dev's check was failing on the attachments actions
Some checks failed
CI / server (pull_request) Successful in 26s
CI / web (pull_request) Failing after 40s
CI / rust (pull_request) Successful in 2m2s
498a482dfa
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Link parity: pill padding .1em .45em on kayg's request (#469)
Some checks failed
CI / web (pull_request) Failing after 11s
CI / server (pull_request) Successful in 28s
CI / rust (pull_request) Successful in 2m41s
9918aba7e9
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Avoid reconstructing saved notes to sync titles (#570)
Some checks failed
CI / web (pull_request) Failing after 9s
CI / server (pull_request) Successful in 24s
CI / rust (pull_request) Successful in 2m33s
b97d6b4909
The independent review of #574 compared the old and new save paths over 2,424
random saves with restarts, and killed the server right after an acknowledged
save. Those tests now guard the save path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Block selection tint covers exactly its block (#397)
Some checks failed
CI / web (pull_request) Failing after 9s
CI / server (pull_request) Successful in 20s
CI / rust (pull_request) Successful in 1m48s
76e5912e4c
The tint was laid out from CodeMirror's height map, which does not know a block
widget's margin (the tag chips row under a title, a day's date heading). Everything
below such a widget sat lower on screen than the map said, so the tint landed above
its block. One function (blocks/box.ts) now measures the block's own lines as drawn,
for the phone's picked look and the desktop's Esc / Vim V look, and measures again
when the page lays out differently (resize, fonts, wrapping, the picked slide).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Phone layout never scrolls sideways (#445)
Some checks failed
CI / web (pull_request) Failing after 9s
CI / server (pull_request) Successful in 25s
CI / rust (pull_request) Successful in 2m12s
51de6a8915
The block hover pill sat at the end of the text column, past the editor scroller's right edge on a
phone-width window, so the scroller was wider than its box and a sideways wheel moved it ~47px.
The pill now stays inside the scroller, the scroller and the document-scroll root clip sideways
overflow, and an e2e test checks scrollWidth and a sideways wheel.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Merge remote-tracking branch 'origin/issue/445-no-hscroll' into train/2026-10-18ab
Some checks failed
CI / server (pull_request) Successful in 21s
CI / web (pull_request) Failing after 42s
CI / rust (pull_request) Successful in 3m56s
3c877e97a2
Author
Owner

This PR's commits are on dev (landed). Forgejo kept it open and its merge endpoint answers 405, so it is closed by hand.

This PR's commits are on dev (landed). Forgejo kept it open and its merge endpoint answers 405, so it is closed by hand.
kayg closed this pull request 2026-10-21 11:32:48 +00:00
Some checks failed
CI / server (pull_request) Successful in 21s
CI / web (pull_request) Failing after 42s
CI / rust (pull_request) Successful in 3m56s

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!580
No description provided.