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

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

Wires the #9 server work (PR #78) into apps/web. Server prefs (#73) were already wired in by that PR.

  • → Make note: the margin arrow, the bar button and the block menu all call notes.make-note with the block's lines (a heading takes its section, a list item its children). Both notes change in one server job, and the new note opens. One toast offers Undo, which calls notes.undo and only says "Undone" if the server confirms it. A heading folds its section up into itself first (the mockup's motion; skipped with reduced motion), and unfolds again if the server says no.
  • Move to note…: the block menu → note picker → notes.move-block, with the same toast and Undo.
  • Both wait (a few seconds at most) until the server has every change typed here, so line numbers match, and poll notes.job while a job is still running.
  • Info sheet: "Linked from" and "Mentions" come from notes.backlinks, re-read whenever any note changes (debounced). The first 3 linked and 2 unlinked show, then "Show N more". Link turns a plain mention into [Title](<path.md>) with one small notes.patch edit to the mentioning note (skipping text already inside links or code). Clicking a mention opens that note at its line (?line=).
  • Renames: the list follows notes.renamed (the paged list re-reads), and the URL keeps the note's id, so deep links survive.
  • Version history: not done. The server has no action to read a note's history yet (notes.job reads one job only). The Info sheet keeps its placeholder, with a TODO saying what's missing.
  • Tests: e2e/links.spec.ts against the real server (Chromium and WebKit, 1440): make note + Undo, move to note + Undo, Info mentions + Link, and renaming the file after a new H1 with the URL still opening the note after a reload.

Locally: full browser suite 71 passed / 22 skipped; svelte-check 0 errors.

🤖 Generated with Claude Code

https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T

Wires the #9 server work (PR #78) into apps/web. Server prefs (#73) were already wired in by that PR. - **→ Make note:** the margin arrow, the bar button and the block menu all call `notes.make-note` with the block's lines (a heading takes its section, a list item its children). Both notes change in one server job, and the new note opens. One toast offers Undo, which calls `notes.undo` and only says "Undone" if the server confirms it. A heading folds its section up into itself first (the mockup's motion; skipped with reduced motion), and unfolds again if the server says no. - **Move to note…:** the block menu → note picker → `notes.move-block`, with the same toast and Undo. - Both wait (a few seconds at most) until the server has every change typed here, so line numbers match, and poll `notes.job` while a job is still running. - **Info sheet:** "Linked from" and "Mentions" come from `notes.backlinks`, re-read whenever any note changes (debounced). The first 3 linked and 2 unlinked show, then "Show N more". **Link** turns a plain mention into `[Title](<path.md>)` with one small `notes.patch` edit to the mentioning note (skipping text already inside links or code). Clicking a mention opens that note at its line (`?line=`). - **Renames:** the list follows `notes.renamed` (the paged list re-reads), and the URL keeps the note's id, so deep links survive. - **Version history:** not done. The server has no action to read a note's history yet (`notes.job` reads one job only). The Info sheet keeps its placeholder, with a TODO saying what's missing. - **Tests:** `e2e/links.spec.ts` against the real server (Chromium and WebKit, 1440): make note + Undo, move to note + Undo, Info mentions + Link, and renaming the file after a new H1 with the URL still opening the note after a reload. Locally: full browser suite 71 passed / 22 skipped; svelte-check 0 errors. 🤖 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
Author
Owner

Superseded by #81: fixes the Info sheet layout, plain snippets and day titles, with a layout test.

Superseded by https://git.kayg.org/kayg/calternal/pulls/81: fixes the Info sheet layout, plain snippets and day titles, with a layout test.
kayg closed this pull request 2026-10-13 21:41:28 +00:00
All checks were successful
CI / rust (pull_request) Successful in 1m26s
CI / web (pull_request) Successful in 2m48s

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