Skip to content

v0.3.0 — Novel OS became a studio

Latest

Choose a tag to compare

@mrigankad mrigankad released this 09 Aug 06:09
· 4 commits to dev since this release

Novel OS became a studio

v0.2.0 was a multi-agent CLI with a dashboard. This release adds the writing
surface, the world model behind it, and a way to get a finished book out the
other end.

Revise mode: continuity findings with a This is intentional dismissal


✍️ A real manuscript editor

Final is now a ProseMirror document — inline images, and comments anchored to
positions that survive edits. Agents still read a markdown projection, so not
one agent prompt changed.

Track changes ships with it: suggest mode turns typing into proposals and
deleting into struck text, with per-change or bulk accept/reject. A pending
suggestion is never exported or handed to an agent as accepted prose — the
projection is the reject-all view, enforced in storage rather than in the UI.

🧭 Three modes, not four stages

Writers move between planning, writing and revising constantly, and rarely in
order. ⌘1 ⌘2 ⌘3 re-lay out the studio around whichever you're in. The
pipeline's four stages remain, as provenance rather than a workflow.

Write mode gets out of the way: both rails collapse, continuity runs
silently, nothing volunteers itself, and there is no token meter anywhere near
the page. Select a passage and one bar offers the only four things worth doing.

🛡️ The continuity engine grew teeth

Twelve deterministic checks now, including relationship integrity,
since-anachronisms, contradictory bonds, and dead characters reappearing.

Two additions matter more than the count:

  • "This is intentional." A checker cannot tell an unreliable narrator from a
    mistake, so every finding can be dismissed with a reason that persists — keyed
    to the fact, not the wording. The Guardian reads those exemptions too, so the
    AI never re-litigates a call you've already made.
  • The stall detector. Sagging middles decompose into things the state already
    records; three consecutive chapters that change nothing get reported as a
    reactive protagonist, and the shape-of-the-book strip shows it at a glance.
    No model is asked whether your book drags.

✨ Import a manuscript, keep your afternoon

Codex auto-extract proposes your cast, places and world entries from the prose
itself
— deterministic, instant, and never written without confirmation. The
worst hour in this category is re-typing what's already in your draft.

📤 Compile: DOCX · EPUB · HTML · Markdown

Named styles drive the output — change what "Block Quote" means once and the
whole book follows.

Both binary formats are written directly, with no new dependencies. DOCX and
EPUB are ZIP-of-XML, so a writer who exports twice a year carries no document
library to do it.


🐛 Fixed — one of these was eating prose

  • Scene breaks were destroyed on save. The house-style pass collapsed a ---
    thematic break into " - " and ate the newlines around it, welding two scenes
    into one paragraph.
  • Saving re-parsed the document's own markdown, which would have discarded
    every pending track change on the first save.
  • Continuity checks could report on the wrong chapter — arity was chosen by
    catching TypeError, so a TypeError raised inside a check silently re-ran
    it against the default chapter.
  • CORS allowed exactly one hardcoded origin; Write mode didn't collapse its rails
    on a fresh load; 39 lint errors and a broken production build.

⚡ Faster

Opening a chapter no longer downloads the editor before anything paints —
593 kB → 166 kB for the chapter route.


374 Python tests · 70 TypeScript tests · production build and lint clean.

Full detail in CHANGELOG.md.
Design reasoning in the author's-workflow spec.

Full changelog: v0.2.0...v0.3.0