Skip to content

3.3 RC3 Release Notes

Frédéric Clavert edited this page Jul 24, 2026 · 7 revisions

v1.0.0-rc.3 — 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.


1. A new editor

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.


2. Books are written in chapters

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.


3. Presentations joined the same editor

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).


4. One assistant, one conversation

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.


5. The assistant can read your manuscript

Two long-standing gaps closed:

  • context.md finally 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.

6. Security

  • 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 ~/.ssh or 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.

7. Fixes worth naming

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.

8. Under the hood

  • 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.

Upgrading

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.md exists in a project, it is still read, in addition to context.md.

Known limitations

  • 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 author field — 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).

See also

Clone this wiki locally