-
Notifications
You must be signed in to change notification settings - Fork 0
3.3 RC3 Release Notes
Tag: v1.0.0-rc.3
RC3 is the release candidate for version 1. Three things define it: the writing surface was rebuilt, book projects became real, and the whole application went through three audits (security, interface, code coherence) whose findings are fixed in this candidate.
The previous pair of editors — a WYSIWYG one (Milkdown) and a "source" one (Monaco), with a toggle between them — is gone. In its place: a single editor built on CodeMirror 6, rendering markdown live.
- Your file is the source of truth. Open a document, save it without touching it, and the file is byte-for-byte identical — line endings and trailing whitespace included. A test corpus enforces this.
- Footnotes are first-class: superscript references, hover tooltips, in-place editing popup, jump to definition and back, deliberate renumbering.
-
Citations render as pills, resolve against Zotero on hover,
autocomplete on
@, and unresolved keys are flagged without blocking. - Front matter is folded out of the way.
See The Editor.
Side effect worth knowing: the application ships roughly 4.7 MB less JavaScript, and starts faster.
The book project type was, until now, a label on a single file. It is now
a manuscript in several files, with:
- a chapter navigator (create, rename, reorder, attach, remove without deleting);
- an outline of headings inside each chapter;
- search across the whole manuscript;
- book-wide footnote renumbering and citation checking;
-
book settings: footnotes or endnotes (per chapter or at the end),
continuous or per-chapter numbering, one bibliography or one per chapter,
chapter numbering — the data model and export logic for all four exist,
but as of this writing none of them have a UI control yet; every book
silently gets the defaults (footnotes, continuous, one bibliography,
numbered) unless you hand-edit
project.json. See Books and Chapters and issue #24; - a PDF export with real chapters, table of contents, front and back matter — and a single-chapter export for a working proof.
See Books and Chapters.
A presentation project no longer opens a separate editing surface. Slide separators appear as numbered boundaries in the text, the slide navigator and the preview sit alongside, and the preview follows your cursor. The YAML front matter of a deck now configures the reveal.js export (title, author, theme, transition).
The "AI Assistant" panel and the Brainstorm chat were two shells over the same engine, with unequal features. They are now a single component. The side panel gained what only the centre one had: source traceability, MCP tool badges, entity highlighting — and "send to the document", which turns a reply into an adjudicable proposal right where you are writing.
Two long-standing gaps closed:
-
context.mdfinally works. Every article and book project is created with this file, saying it will be used to improve the assistant's answers. Nothing read it. It is now sent to the assistant at the start of every conversation. A never-edited file sends nothing. - Your manuscript is indexed as a fourth corpus, next to your PDFs, Tropy archives and Obsidian vault. You can ask what you have already written about a subject. Manuscript excerpts are labelled distinctly from sources, and the assistant is told explicitly that it is reading your own text and must not cite it as evidence.
- MCP tool results are inspected before reaching the model, and bounded in size. A hostile third-party MCP server could previously inject instructions into an agent holding real tools.
-
Document paths are constrained: a compromised renderer can no longer
read
~/.sshor write outside the project. Opening a file elsewhere still works — through a consent route the main process controls. - Cloud consent is enforced by the main process, not by the interface alone. Without a window to ask, the answer is no.
- Temporary export directories are cleaned up on failure too: a failed
PDF export used to leave your whole assembled manuscript in
/tmp. - One command injection removed from the reveal.js export.
Several of these affected articles, not only books:
- Switching files destroyed the destination file. Typing in one document then clicking another overwrote the second with the first one's content, and lost the keystrokes. Fixed, with regression tests.
- Any document containing a code block failed to export to PDF.
- A citation could overwrite one of your manual footnotes, making your own note disappear from the exported document.
- Uniformly CRLF files were converted to LF on first save, against the editor's own fidelity contract.
- Export dialogs were entirely in hard-coded French for every user, whatever their language.
- The menu and the toolbar gave two different results for "Check citations".
- Eight test suites had been silently skipped for months, hiding a real weakness in workspace migration.
- The test suite went from 922 tests to over 1 270, and a CI workflow now runs it on every push — on the ABI where the SQLite suites actually execute.
-
src/editor/is a pure module (no Electron, no React): the Lezer extensions for footnotes and Pandoc citations are meant for separate publication under MIT. To our knowledge, no Lezer extension for Pandoc citations existed before.
Nothing to do: existing projects open as they are. Two notes:
- Book projects created before RC3 keep their
document.md; it is not converted automatically. Create chapters and attach files as you wish. - If a
.cliodeck/hints.mdexists in a project, it is still read, in addition tocontext.md.
- No index (
\index{}) or typed cross-references yet. - The Word export does not honour endnote settings (LaTeX/PDF only).
- Pending AI proposals expire when you switch chapters (the journal entry for that expiry can be attributed to the wrong chapter — issue #31).
- Code signing is not in place: macOS Gatekeeper warns on first launch (right-click → Open to bypass), and managed institutional machines may block the app outright.
- Tested on macOS and Linux (arm64 only for this release — build from source on x86_64). No Windows build is published; the code should work on Windows but has not been tested — reports welcome.
Found in this build since release (present at the v1.0.0-rc.3 tag
itself, confirmed by later auditing — not regressions from later work):
- Unlinking an Obsidian vault deletes the shared
brain.db— your PDF index, Tropy index and research journal too, not just the vault's own data (issue #27). - Switching projects while a Zotero sync is still running can write the wrong project's collections into whichever project you switched to (issue #33).
- BibTeX import silently drops any entry with no
authorfield — edited volumes and anonymous works vanish with only a console warning (issue #32). - Triggering a book export while "Renumber footnotes" is still running can assemble a manuscript with some chapters renumbered and others not (issue #30).
- Switching projects with unsaved editor changes silently discards them — the same guard that protects a chapter switch has no equivalent one level up, at the project switch (issue #37).
- Switching projects while a PDF is still being indexed can crash that indexing job (issue #38).