Repository navigation
Carbon v1.0.0
First stable release — notebooks, recipes, recovery, and polish
Folds what would have been v0.10.0 (never tagged) plus everything landed since then.
Notebooks & note rows
- Notes projects — the Active / Done / Dropped / Note pill now offers Notes on a
project. A notes project keeps its children as notes: new items default tonote
everywhere (quick add, outliner, sibling/subtask), and its editor shows only Colour
and Sharing. Switching back to Active restores the normal project controls; nothing
is cleared, and existing children keep whatever type they had. - Note rows are cards — every note row (in any project, not just a notes one) is
~2.5× the height of a task row and shows three lines: its first image, the title,
and the first two lines of the body. A note with no image and no body falls back
to the plain task-row height rather than reserving three blank rows. - Row thumbnails — the first image in a note is downscaled to a small JPEG and
stored as its own blob, referenced from the newitems.thumbfield. Lists render
from that, never from the full-size original. Existing notes get one on the next
sync that can see their image. Thumbnail regeneration re-queues overlapping work
instead of dropping newer needs, and clears orphan thumbs when images are removed. - Note expand UX — opening a note fullscreen closes the detail pane with a clear
Return path; TipTap failures fall back to source mode instead of the app-wide reload
screen.
Blob cache policy
- Three fetch modes (Settings → Sync server) — per device, choose how much is
pulled down ahead of time: On Load (nothing in advance), Thumbnails (the
default — note lists render complete and offline for kilobytes, full-size images
wait until opened), or All (a full offline copy). Anything not prefetched still
arrives on first display. The first two prune the cache to an MB budget,
least-recently-opened first. - Clear cached files frees space on demand, and now reports what it did. It never
drops a blob the server hasn't received yet (the device holds the only copy) and
keeps thumbnails under Thumbnails/All, where the next sync would just re-fetch
them — but under On Load it drops thumbnails too, so the button isn't a no-op
on a workspace whose cache is mostly previews.
Recipes
- Recipe notes — flip a note to Recipe mode for a scaled read view: servings
pills, ingredients beside procedure, and an Optimise path that rewrites messy
Markdown into a parseable recipe (longer LLM timeout so local reasoning models
aren't cancelled mid-thought). - Import prompt — a copy-able browser-assistant prompt turns a recipe page into
Markdown that pastes straight in and scales cleanly (cup convention from Settings →
Recipes). - Structured recipes — ingredient groups (
###under Ingredients), method stages
(###under Procedure), and a trailing Notes section stay out of the ingredient
parser so amounts in notes scale as prose without lighting the Optimise banner. - Long recipes no longer overlay the detail pane's later sections (Attachments, Tags,
Sharing).
Recovery & sharing
- Recently Deleted — after the undo snackbar (or a reload), restore a deleted task
or a whole cascade from a sidebar view of the last 30 days (gd). Restores are
ordinary edits, so they sync and join the undo stack. - Shared-item edits — owners keep write access under shared projects, including
collaborator-created children and recurring spawns; complete/edit gaps in that path
are closed. - Auth & federation hardening — soft-delete and admin password reset revoke sessions
(and API tokens on delete); deleted users cannot authenticate; federation write-scope
no longer accepts reparenting out-of-scope items in; debug flags default off; safe
fetch blocks more IPv4-mapped forms.