Rename, links and the bulk-edit job #9

Closed
opened 2026-10-13 15:01:15 +00:00 by kayg · 2 comments
Owner

Rename, links and the bulk-edit job (ADR 0015, 0024).

  • Links on disk are [title](<relative/path.md>) only; [[ and @ are input sugar.
  • One journaled bulk-edit job (plan, batches, resume after crash, undo), very fast. Rename = one bulk edit that rewrites links.
  • Collisions get " 2", case-only renames via temp name, Unicode-normalised names.
Rename, links and the bulk-edit job (ADR 0015, 0024). - Links on disk are `[title](<relative/path.md>)` only; `[[` and `@` are input sugar. - One journaled bulk-edit job (plan, batches, resume after crash, undo), very fast. Rename = one bulk edit that rewrites links. - Collisions get " 2", case-only renames via temp name, Unicode-normalised names.
Author
Owner

Progress: PR #74 is open. It covers the bulk-edit job (plan, batches, resume after a crash, undo), rename with link repointing, the backlinks API (linked plus unlinked through search), and make note / move to note as one job each. 254 workspace tests pass, including a crash mid-job that resumes exactly once.

Local perf at 10k notes with 1k links: rename takes 1.2 to 2.2 s, and backlinks p95 is under 1 ms. The perf VM was busy with #44, so a perf-VM run is still to come. The API shape for the UI is in the PR body.

Progress: PR #74 is open. It covers the bulk-edit job (plan, batches, resume after a crash, undo), rename with link repointing, the backlinks API (linked plus unlinked through search), and make note / move to note as one job each. 254 workspace tests pass, including a crash mid-job that resumes exactly once. Local perf at 10k notes with 1k links: rename takes 1.2 to 2.2 s, and backlinks p95 is under 1 ms. The perf VM was busy with #44, so a perf-VM run is still to come. The API shape for the UI is in the PR body.
Author
Owner

PR #78 is green on both jobs (it replaces #74–#77, which the forge stopped syncing). Since the first post:

  • Undo fix: undo now removes a made note even after the server's own first save has added its properties. Only someone else's typing keeps the note.
  • e2e fix: seeded notes are named after their H1, and outside reads and writes ask the server where the file is. The file now follows the title, so a test note was being renamed under the test.
  • Flaky test fixed: notes_live saves 20 ms after a change, and could save before the websocket join. The test now types at the end of whatever text it synced.

The perf-VM run is still to do; the VM was busy with #44's 100k run the whole time.

PR #78 is green on both jobs (it replaces #74–#77, which the forge stopped syncing). Since the first post: - **Undo fix:** undo now removes a made note even after the server's own first save has added its properties. Only someone else's typing keeps the note. - **e2e fix:** seeded notes are named after their H1, and outside reads and writes ask the server where the file is. The file now follows the title, so a test note was being renamed under the test. - **Flaky test fixed:** `notes_live` saves 20 ms after a change, and could save before the websocket join. The test now types at the end of whatever text it synced. The perf-VM run is still to do; the VM was busy with #44's 100k run the whole time.
kayg closed this issue 2026-10-13 21:23:06 +00:00
Sign in to join this conversation.
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#9
No description provided.