Web: make note, move to note, mentions and renames on the #9 jobs #81

Closed
kayg wants to merge 0 commits from issue/9-web-2 into dev
Owner

Supersedes #79 (same branch history plus fixes from review). Wires the #9 server work (PR #78) into apps/web.

Fixed after review of #79

  • The Info sheet's "Linked from" was broken: an old summary-chip style (a 36 px tinted flex row) still matched the new section, squeezing the header into one row and drawing the rows over the rest of the sheet. That style is gone. The section is a normal block: header with a count pill, rows, then "Show N more"; the sheet scrolls when tall.
  • Snippets read as plain words: no list, task or heading marks, links as their text, no emphasis marks. This note's link (or the plain mention) is highlighted.
  • Day notes are named like everywhere else ("Wednesday, 30 September", with the year when it isn't this year).
  • e2e/info.spec.ts: 14 day notes link to one note, at 1440 and 390 (Chromium and WebKit). The sheet's parts must stack without overlapping, rows must stay inside their section, titles and snippets must read right, and it saves light and dark screenshots. It fails on the #79 layout.

From #79

  • → Make note (margin arrow, bar, block menu) → notes.make-note; Move to note… → notes.move-block. Each is one server job across both notes, with one toast whose Undo calls notes.undo and only says "Undone" if the server confirms. A heading folds its section into itself first (the mockup's motion).
  • Both wait until the server has every change typed here, then send line numbers, and poll notes.job while a job runs. Known gap, filed as #80: a concurrent edit from another device could still shift lines in between.
  • Info: "Linked from" and "Mentions" from notes.backlinks, re-read whenever a note changes. Link turns a plain mention into a link with one small notes.patch edit. A mention opens its note at the line.
  • Renames: the list follows notes.renamed; the URL keeps the id.
  • Version history: not done. The server has no action to read a note's history yet (notes.job reads one job).

Locally: full browser suite 75 passed / 22 skipped; svelte-check 0 errors. Screenshots are in the first comment.

🤖 Generated with Claude Code

https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T

Supersedes #79 (same branch history plus fixes from review). Wires the #9 server work (PR #78) into apps/web. **Fixed after review of #79** - The Info sheet's "Linked from" was broken: an old summary-chip style (a 36 px tinted flex row) still matched the new section, squeezing the header into one row and drawing the rows over the rest of the sheet. That style is gone. The section is a normal block: header with a count pill, rows, then "Show N more"; the sheet scrolls when tall. - Snippets read as plain words: no list, task or heading marks, links as their text, no emphasis marks. This note's link (or the plain mention) is highlighted. - Day notes are named like everywhere else ("Wednesday, 30 September", with the year when it isn't this year). - `e2e/info.spec.ts`: 14 day notes link to one note, at 1440 and 390 (Chromium and WebKit). The sheet's parts must stack without overlapping, rows must stay inside their section, titles and snippets must read right, and it saves light and dark screenshots. It fails on the #79 layout. **From #79** - **→ Make note** (margin arrow, bar, block menu) → `notes.make-note`; **Move to note…** → `notes.move-block`. Each is one server job across both notes, with one toast whose Undo calls `notes.undo` and only says "Undone" if the server confirms. A heading folds its section into itself first (the mockup's motion). - Both wait until the server has every change typed here, then send line numbers, and poll `notes.job` while a job runs. **Known gap**, filed as https://git.kayg.org/kayg/calternal/issues/80: a concurrent edit from another device could still shift lines in between. - **Info:** "Linked from" and "Mentions" from `notes.backlinks`, re-read whenever a note changes. **Link** turns a plain mention into a link with one small `notes.patch` edit. A mention opens its note at the line. - **Renames:** the list follows `notes.renamed`; the URL keeps the id. - **Version history:** not done. The server has no action to read a note's history yet (`notes.job` reads one job). Locally: full browser suite 75 passed / 22 skipped; svelte-check 0 errors. Screenshots are in the first comment. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Web: make note, move to note, mentions and renames on the #9 jobs
All checks were successful
CI / rust (pull_request) Successful in 1m26s
CI / web (pull_request) Successful in 2m48s
a7d7bc1166
- → make note (margin arrow, bar, menu) runs notes.make-note: both notes
  change in one server job, the new note opens, and one toast offers
  Undo through notes.undo, saying Undone only when the server did. A
  heading folds its section into itself first (the mockup's motion).
- Move to note… runs notes.move-block with the same toast and Undo.
- Both wait until the server has every change typed here, so line
  numbers match, and poll notes.job while a job is still running.
- Info: "Linked from" and "Mentions" from notes.backlinks, re-read
  whenever a note changes. Link turns a plain mention into a link with a
  small notes.patch edit to the mentioning note. A mention opens its note
  at the line.
- Renames: the list follows notes.renamed; the URL keeps the note's id.
- e2e/links.spec.ts covers all four against the real server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Web: Info mentions sit in the flow, read plainly, name days by date
All checks were successful
CI / rust (pull_request) Successful in 1m9s
CI / web (pull_request) Successful in 2m28s
eabb64a3f4
- An old summary-chip style (a 36 px tinted flex row) still matched the
  new mentions section and squeezed it into one row with the rest drawn
  over the sheet. It's gone; the section is a normal block: header with a
  count pill, rows, then "Show N more".
- Snippets read as plain words: no list, task or heading marks, links as
  their text, no emphasis marks; the link (or plain mention) of this note
  is highlighted.
- Day notes are named like everywhere else ("Wednesday, 30 September").
- e2e/info.spec.ts: 14 day notes linking to one note, at 1440 and 390:
  the sheet's parts stack without overlapping, rows stay inside their
  section, snippets and titles read right, and it keeps screenshots.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Author
Owner

Info sheet with 14 day notes linking to one note, from e2e/info.spec.ts (local run, after "Show 11 more").

1440, Chromium (dark)
info 1440 chromium

1440, WebKit
info 1440 webkit

390, Chromium
info 390 chromium

Info sheet with 14 day notes linking to one note, from `e2e/info.spec.ts` (local run, after "Show 11 more"). **1440, Chromium (dark)** ![info 1440 chromium](https://git.kayg.org/attachments/9b7d85eb-3569-47e8-a6dc-2e7959beee80) **1440, WebKit** ![info 1440 webkit](https://git.kayg.org/attachments/3a624d63-44ec-48a9-ac2e-f3c2bcdec7e5) **390, Chromium** ![info 390 chromium](https://git.kayg.org/attachments/067c5e17-d9ac-40ff-8fa6-c02a6fe20459)
Author
Owner

Verified by Claude with own screenshots (Info sheet with 14 backlinks at 1440, phone sheet at 390). CI green. Merging and deploying next.

Verified by Claude with own screenshots (Info sheet with 14 backlinks at 1440, phone sheet at 390). CI green. Merging and deploying next.
Author
Owner

Closing: this branch is already fully contained in dev (it landed through a merge train). Branch cleanup, 2026-10-15.

Closing: this branch is already fully contained in `dev` (it landed through a merge train). Branch cleanup, 2026-10-15.
kayg closed this pull request 2026-10-15 08:35:19 +00:00
All checks were successful
CI / rust (pull_request) Successful in 1m9s
CI / web (pull_request) Successful in 2m28s

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