One dialog per thing, and rows dragged into a chapter

A separator had three menu entries — rename, colour, line — plus an input
that appeared in the row itself: three shapes of interaction for one small
thing, and none of them showed the result. Choosing "dotted" from a list
of words is a guess. It is one Edit now, and the dialog draws the line as
it will look with every shape drawn beside its name, from the very rules
the list draws with: a sample that can disagree with the result is worse
than none.

A chapter goes the same way — name, mark and colour in one dialog, the
same one whether it is being made or changed, with the row drawn at the
top. Asked from three entries, getting a new chapter to look right took
three visits. The name dialog it used is gone.

A row is put into a chapter by dragging it onto it: the chapter lights
up and takes what is dropped rather than growing a line above it, since
a chapter is a place and not a neighbour. Notes and separators both, and
the "+ Separator" inside a chapter goes with it — a second way to make
the same thing in a second place is a second thing to keep straight.

A link now wears the mark of the note it points at, in the text and in
the @ menu. It travels when the note's mark changes, as the label
already did.

Two alignment faults: a task list's checkbox was nudged down by a fixed
0.35em measured once against one font, so it floated above the line it
belonged to — it is centred in a box one line tall now. And the title
bar's mark was spaced like the buttons at the far end and grew with its
contents, so picking an emoji shifted the title sideways.

Fourteen suites green: 374 browser checks, 241 unit tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-08-17 00:23:26 +02:00
1 parent 59844046c4
commit d68b0775c2
20 files changed
+1185 -594

No files matched your search

+25 -18
View File
@@ -439,8 +439,8 @@ docker compose -f docker-compose.dev.yml up -d --build # must be running
| `attachments-lifecycle` | 10 | a picture is kept while any version shows it, and freed once none does |
| `conflict` | 10 | a late write wins but the state it buries survives as a version |
| `export` | 21 | the downloaded bytes are real Markdown, ZIP and PNG, unpacked and read back |
| `organise` | 60 | a hand-made order survives a search; separators hold their place; a note exported and imported comes back whole |
| `chapters` | 46 | a filed note stays filed across a sync; the notebook's separators survive a chapter being opened; handles appear only while rearranging |
| `organise` | 64 | a hand-made order survives a search; separators hold their place; a note exported and imported comes back whole |
| `chapters` | 51 | a filed note stays filed across a sync; the notebook's separators survive a chapter being opened; handles appear only while rearranging |
| `offline` | 17 | a cold page load with the network off still opens notes and searches them — and a note made, written and drawn on offline arrives whole once there is a connection |
| `tables` | 8 | a long table is broken between its rows, with none left lying across the gap, and no page furniture reaches the stored note |
| `sync` | 7 | a PDF written on one device — document, drawing and pinned notes — reaches a second one, which can find it by its contents without opening it |
@@ -1010,12 +1010,15 @@ Three rules that keep the two levels honest:
the others back untouched.
A note made while a chapter is open is filed there without being moved. A chapter
is **named and coloured when it is created**, unlike a separator: a separator is a
line and reads perfectly well unnamed, while an unnamed chapter is a row nobody
can tell from the next one. The colour is in the same dialog because it is the
same decision — the point of having chapters is that they are different places,
and eight named colours tell them apart where twenty near-identical blues would
not. Both can be changed later from the chapter's own menu.
is **named, marked and coloured in one dialog** — the same dialog whether it is
being made or changed, with the row drawn at the top as the list will draw it.
Asked one at a time from three menu entries, getting a new chapter to look right
took three visits. Its menu therefore holds one *Edit* and one *Remove*.
**A row is put into a chapter by dragging it onto it.** While rearranging is on,
a chapter row takes what is dropped on it and lights up to say so, rather than
growing a drop line above it: a chapter is a place, not a neighbour. Notes and
separators both go in this way.
A chapter shows even when the notebook holds nothing else. "Nothing here" is
asked of every row, not of the notes alone — asked of the notes, a notebook whose
@@ -1113,8 +1116,9 @@ name — chosen from a short searchable list rather than the system emoji keyboa
which is a different thing on every machine and offers three thousand pictures
for a decision that is "which of these is the invoice notebook". The list is
searched by what a thing is *for* ("invoice", "house", "travel"), because nobody
hunts a pictogram grid by shape. The same glyph shows in the list and above the
editor, so a note is recognised by one sign in both places. A note's mark takes a
hunts a pictogram grid by shape. The same glyph shows in the list, above the
editor **and in every link pointing at the note**, so it is recognised by one sign
everywhere. A note's mark takes a
colour too; a chapter's uses the colour the chapter already has.
**Separators** are lines drawn between notes, optionally named, stored on the
@@ -1127,14 +1131,17 @@ divider that cannot move with what it divides is worse than none — and their
position is recorded as "how many notes come before me", so they stay put as the
notes around them are renamed, edited or opened.
One press draws the line; it is named afterwards from its own menu, the same way
it is renamed. A line reads perfectly well unnamed, so nothing is asked first.
From that menu it also takes **its own colour and one of five shapes** — solid,
dashed, dotted, double or a thick band. Three lines through one notebook are
easier to tell apart when they differ; grey-on-grey they read as the same line
repeated. **A chapter can be divided the same way**: its lines carry its id and
stay in it, and both places a chapter is shown draw them from one component, so
it cannot be divisible in the column and not in the unfolded block.
One press draws the line. Everything about it — name, colour, and one of five
shapes — is then set in **one dialog** reached by right-click, which draws the
line as it will look and draws each shape beside its name. It used to be three
menu entries and an input inside the row: three shapes of interaction for one
small thing, none of them showing the result. The preview is built from the very
rules the list draws with, because a sample that can disagree with the result is
worse than none.
**A chapter can be divided the same way**, and a line is put into one by dragging
it there — there is no second "+ Separator" inside a chapter, because a second
way to make the same thing in a second place is a second thing to keep straight.
They are shown only in the manual order: in "newest first" the notes would slide
past the line on every edit — and **the button that draws one is only there in