179 lines
7.3 KiB
Markdown
179 lines
7.3 KiB
Markdown
# Changelog
|
|
|
|
What changed, newest first. One entry per round that went out as an image, with
|
|
the digests, so it stays possible to tell what is actually running on the server.
|
|
|
|
Digests are recorded from the registry (`docker buildx imagetools inspect`),
|
|
not from the output of `docker push`.
|
|
|
|
---
|
|
|
|
## 2026-08-11 — Writing on paper
|
|
|
|
**Images** — web `sha256:b764a9d8…`, server unchanged at `sha256:0832ee2b…`
|
|
|
|
**Added**
|
|
- **You write on paper.** Each page is a sheet of its own, centred, with a gap
|
|
after it — the same way the PDF reader draws its pages. The sheet used to
|
|
appear only once you started drawing, which left the writing mode looking like
|
|
text floating in an empty pane, and made the space either side of the column
|
|
read as a void rather than as a margin.
|
|
- Text is broken against those sheets, so no paragraph is ever cut in half by a
|
|
gap. The breaks are decorations: nothing enters the document, reaches the
|
|
server, or appears in an export.
|
|
|
|
**Fixed**
|
|
- **A note with a drawing could not be typed in at all.** The box wrapping each
|
|
page's ink layer lay over the text and swallowed every click meant for it. The
|
|
canvas inside was already deaf to the pointer; its wrapper was not. Introduced
|
|
the same day, with per-page drawing.
|
|
|
|
---
|
|
|
|
## 2026-08-11 — Drawing on every page, and PDFs findable everywhere
|
|
|
|
**Images** — web `sha256:dc804f7b…`, server `sha256:0832ee2b…`
|
|
|
|
The server image changed this round: it takes a new column and two routes.
|
|
`docker compose pull && docker compose up -d` — the column is added on start.
|
|
|
|
**Added**
|
|
- **A PDF is searchable on every device, not only on the one that opened it.**
|
|
The device that imports the file reads it there and then — the server still has
|
|
no PDF library and never opens one — and the extracted text is stored beside
|
|
the file, encrypted, so every other device can find the document without ever
|
|
downloading it. This is what makes an archive of scanned invoices work: they
|
|
are filed and then never opened, so waiting for someone to open one meant
|
|
waiting forever.
|
|
- **A drawing runs over as many pages as the note has.** The ink used to be stuck
|
|
on page one while the writing carried on without it. Pages are numbered the way
|
|
the PDF reader numbers them, and there is always one blank page past the end to
|
|
start a new one on. The bin clears the page being looked at; undo still works on
|
|
the drawing as a whole.
|
|
- A drawing that lives entirely on page one is still stored in the old shape, so
|
|
an ordinary note is written exactly as it always was and an older client still
|
|
shows it.
|
|
|
|
**Fixed**
|
|
- **A drawing exported in a ZIP was lost on re-import.** The exporter has written
|
|
`drawings/<note>.png` since the interface was put into English; the importer
|
|
was still looking for `zeichnungen/<note>.png` and found nothing. Both names
|
|
are read now, and so are the further pages of a drawing.
|
|
|
|
---
|
|
|
|
## 2026-08-11 — The writing column
|
|
|
|
**Images** — web `sha256:ed11f034…`, server unchanged at `sha256:1648498f…`
|
|
|
|
**Changed**
|
|
- The note column is centred again. It had been pinned to the left margin so the
|
|
start of every line would always be in the same place; on a wide window that
|
|
left the whole right half of the pane as one dead block.
|
|
- A page surface was drawn behind the text to give that block a meaning, and
|
|
reverted the same day: it made the sheet sit hard against the left edge, which
|
|
was worse than the problem it solved.
|
|
|
|
---
|
|
|
|
## 2026-08-11 — Pages, typefaces, alignment
|
|
|
|
**Images** — web `sha256:3b040d99…`, server `sha256:1648498f…`
|
|
|
|
**Added**
|
|
- **Page count while writing.** The toolbar says *Page 2 of 4*, in the same words
|
|
the PDF reader uses. Pages are counted, never stored: the note stays one
|
|
document, and a test asserts no page ever reaches the stored body.
|
|
- **The typeface is a per-account setting** — serif, sans or mono, chosen under
|
|
Account → Profile. On the account rather than in the browser, so it follows you
|
|
to the phone.
|
|
- **Text alignment**, with its own TipTap extension rather than the official one,
|
|
so the schema stays in files this project owns. Left is the default and is
|
|
never written into the document. In Markdown, non-left blocks travel as
|
|
`<div align="…">` — the one form most readers still honour — and the importer
|
|
reads it back onto the paragraphs.
|
|
|
|
**Fixed**
|
|
- The Markdown exporter did not put a blank line between top-level blocks, so
|
|
consecutive paragraphs ran together in other readers.
|
|
|
|
---
|
|
|
|
## 2026-08-11 — English throughout, and the PDF toolbar
|
|
|
|
**Added**
|
|
- **Search inside a notebook**, from the note list. The sidebar's global search
|
|
was removed: searching from inside a notebook should mean searching *that*
|
|
notebook.
|
|
- **New note / Upload PDF / Import Markdown** all live under the one `+` button.
|
|
|
|
**Changed**
|
|
- The interface is English throughout. It had drifted into two languages.
|
|
- The two visibility switches — drawing and margin notes — sit together at the
|
|
far right of the PDF toolbar, because they mean the same kind of thing.
|
|
- The drawing tools appear next to the *Draw* button, not past everything else.
|
|
- A separator is renamed and removed by right-click, with a confirmation for the
|
|
removal.
|
|
|
|
**Fixed**
|
|
- Hiding the drawing also hid the margin notes. Each switch now hides only its
|
|
own thing.
|
|
|
|
---
|
|
|
|
## 2026-08-10 — Notes on passages
|
|
|
|
**Added**
|
|
- **Pinned notes in a PDF.** A remark can be attached to a passage, and is shown
|
|
in the margin beside the page — not written on top of it. On a phone, where
|
|
there is no margin, the same notes open as a bottom sheet.
|
|
- **Margin notes can be linked from the notes panel**, so a pinned remark can be
|
|
written about at length and still lead back to the passage it came from.
|
|
|
|
**Fixed**
|
|
- A grey drag indicator stayed visible in the note list after a drag. It was a
|
|
`borderTop` sitting beside a `border` shorthand in one style object.
|
|
- The server stored an overlay holding only pinned notes as `NULL`, throwing
|
|
every one of them away, because it counted strokes and nothing else.
|
|
|
|
---
|
|
|
|
## 2026-08-09 — Arranging a notebook
|
|
|
|
**Added**
|
|
- **Sorting per notebook**, remembered on the notebook itself, including an
|
|
arrangement made by hand — which comes back intact after filtering.
|
|
- **Separators** to group notes inside a hand-made arrangement.
|
|
- **Markdown import**, single files or a ZIP this app exported.
|
|
- **Moving notes between notebooks.**
|
|
|
|
**Fixed**
|
|
- Switching to Draw shrank the page from 733px to 460px. The editor was a flex
|
|
item at the default `flex: 0 1 auto`, so it was only as wide as its widest row
|
|
— the toolbar, which loses a dozen buttons in Draw.
|
|
|
|
---
|
|
|
|
## 2026-08-08 — PDFs
|
|
|
|
**Added**
|
|
- Import a PDF, read it, select its text, draw on each page, and export it with
|
|
the drawings written in.
|
|
- Notes written beside a PDF.
|
|
- Uploaded files are encrypted at rest, like note bodies already were, and stored
|
|
as deduplicated, content-addressed attachments.
|
|
- Unused attachments are freed; versions are kept by count rather than by age.
|
|
- Export as Markdown or PDF; the browser suites moved into the repository.
|
|
|
|
**Changed**
|
|
- Vector clocks were never read. Replaced with a conflict check that works.
|
|
- Public sign-up removed — an administrator creates the accounts.
|
|
|
|
---
|
|
|
|
## Earlier
|
|
|
|
TipTap editor, version history, full-text search and attachments (2026-08-07);
|
|
drawing sync with WebP/JPEG support (2026-06-21); the first syncing alpha and PWA
|
|
(2026-02-18).
|