Added
- The built-in Guide is now a real manual rather than a feature tour. Thirteen new pages cover the journeys people actually arrive with — bringing an existing Logseq graph in, where things are, capturing and planning a day, finding and revisiting, researching a document, keeping context visible, structuring repeated information, extending Tine, and what platforms exist — alongside precise reference pages for journals/tasks/scheduling, pages/links/references/search, files/external edits/backups, troubleshooting and recovery, and platforms and mobile. The index is grouped into Start, Workflows, Feature reference and Feature showcase, and every page is a read-only page in your own graph that you can copy into it. Every claim was reread against the shipped UI at the end, which is where several long-standing wrong labels and one round-trip overclaim were found and corrected.
- Sheet table columns can now be resized and reset from their header edges. Widths persist on the table's real block or tag/schema page by field identity, so they survive reloads and column reordering without moving to another field; wide columns scroll horizontally instead of crushing their text (GH #316).
- Journal Settings now includes the
E, dd.MM.yyyy,EEE, dd.MM.yyyy, andEEEE, dd.MM.yyyytitle formats already supported by Tine's date engine (GH #317). - Opening a graph now tells you what Tine is doing, and offers a way out when it cannot finish. A progress card names the current phase and elapsed time once startup takes longer than a moment. If the open genuinely cannot complete, it becomes a recovery dialog with Retry lookup, Open another graph, Copy details, and — for a graph enrolled in experimental managed storage — Return this graph to Direct Files. It states plainly that no managed-storage data has been discarded. Previously a startup that stalled showed nothing and offered nothing.
Changed
- The retired v1 managed-storage prototype has been removed. v1 was a pre-release format that never shipped enabled; its recovery paths, activation fence, lifecycle API and model path were already inert. Leftover v1 bytes in a graph directory are now simply ignored and can no longer cause a Direct Files open to be refused. Direct files, the default, is unaffected.
Fixed
- Direct Files can create a page or journal immediately after opening a graph. A cold parsed-page cache was treated as evidence that the requested name already existed, so ordinary creation could be refused until background warming happened to finish. Creation now joins one bounded, generation-coherent identity build and proceeds only from its published evidence; malformed owners, generation drift, aliases, links, symlinks, and an external creator of the same file still fail closed without overwriting bytes (GH #318).
- Experimental managed storage now refuses oversized bulk insertions before changing the page. Multiline and structured paste, file drop, template expansion and quick capture are planned against the exact active runtime's page limits before anything is inserted; a stale, unavailable, or mismatched storage binding fails closed instead of allowing a partial edit that the native writer cannot save. Pasting a large CSV or structural selection directly into a Sheet's cells is not admitted this way yet (GH #320).
- Heading commands and bullet dragging now act on the active block selection even when the pointer is on another block. Multi-block heading changes and drags are atomic, undo together, preserve subtree order, and keep cross-page moves destination-first on disk (GH #240).
- Indenting, outdenting and moving a multi-block selection no longer floods the undo history or the store. Indent and outdent now apply as one shared-store command instead of one per block, and a run of Up/Down moves collapses into a single undo unit that closes on an idle pause, a three-second maximum, a change of selection, any other edit, or a reload — so one Undo reverses the move you just made rather than one block of it. A feed-spanning selection that includes a read-only day is still refused without dirtying either page.
- Pasting a large selection that carries preserved block IDs is no longer quadratic. Each pasted candidate used to scan the whole loaded document for an ID collision; 200+ candidates now share one pass, and the cost of the incoming check stops growing with the size of the page you paste into.
- A managed-storage graph whose cold start failed can no longer trap you in it. Malformed retained scratch left over from an interrupted run refused the open permanently instead of being recovered; the exact cold-start slot is now recovered, the recovered runtime is proven to accept saves again, and an escape back to Direct Files stays available and actionable throughout. Managed storage remains experimental and off by default.
- Creating a page in Direct Files no longer stalls and then refuses the save on a large graph (part of GH #249, GH #266 and GH #267). The creation path ran the managed-storage shadow-import capture twice, retaining and parsing every graph file before it could answer whether one filename was safe. On affected graphs that ended in
precheck.limit, stranded the new edit, and made graph transitions or close wait behind repeated failed flushes. Creation now checks one non-retaining streaming census—without applying the retained-shadow cumulative-byte ceiling—against the already parsed, generation-current Direct Files index and passes that single proof to the no-replace publisher. Creation still refuses an existing target, portable case/NFC aliases of that target (including ancestor directories), semantic owners, hard links, symlinks, and an external creator of the same file without overwriting their bytes; existing exact-target saves retain their prior path-local traversal behavior. A conflicting different path created by another process inside the final publication window is still not detected, which is long-standing behaviour rather than new here (GH #321).
Download an installer for your platform below. Windows and Linux ship both x64 and ARM64 builds (match your CPU). Windows users who prefer no installer can grab the portable Tine_*-portable.zip for their architecture. macOS and Windows builds are currently unsigned, so their operating systems may show a warning on first launch. On macOS, if Tine repeatedly asks to access Documents, see the workaround in the README.