# Release notes

Per-release write-ups for every published Inkhaven version. Each
file walks through what changed at user-facing granularity — new
chords, new modals, new config knobs, new CLI subcommands — plus
migration notes when the on-disk shape moved.

The point of these is **continuity**: a writer coming back to the
TUI after a few months should be able to read one or two notes and
see what they missed without trawling the git log.

| Version  | Released   | Notes                                | Highlights |
| -------- | ---------- | ------------------------------------ | ---------- |
| **1.2.10** | 2026-05  | [`1.2.10.md`](1.2.10.md)            | **Standalone editors for `inkhaven.hjson` and `prompts.hjson`.**  `inkhaven config` — schema-aware TUI editor: auto-derived schema from `Config::default()`, build-time `///` doc-comment extraction so every field has docs, comment-preserving surgical save, `.config-backups/` rollback, per-field annotations (Ctrl+A) + comment inspector (Ctrl+I), map-entry add/delete for `llm.providers`, typed widgets (bool / int / float / string / colour with live preview / path / enum / list).  `inkhaven prompts-editor` — four-pane workbench (list + editor + AI response + AI prompt input) where the LLM acts as a prompt-engineering reviewer; Ctrl+B G lifts the response into the editor; Ctrl+R rollback to `.prompts-backups/`.  Both editors auto-populate from embedded defaults on first launch.  Two new tutorials (44 prompts-editor, 45 config-tui). |
| **1.2.9** | 2026-05   | [`1.2.9.md`](1.2.9.md)              | **Prose-craft tools for novelists.** Inline style-warning overlays (filter words, repeated phrases, show-don't-tell — all multilingual + Snowball-stemmed) under one `Ctrl+B Shift+F` toggle. New modals: project-wide concordance (`Ctrl+B Shift+L`), sentence-rhythm gauge (`Ctrl+B Shift+H`), writing-streak heatmap (`Ctrl+B Shift+G`). New status-bar POV / character chip (`Ctrl+B Shift+P`). Scene-break navigation (`Ctrl+B <` / `>`). TTS read-aloud (`Ctrl+B S`) + save-as-audio file (`Ctrl+B Shift+R`) on macOS. AI-driven show-don't-tell scan (`Ctrl+B Shift+T`). `inkhaven doctor` gains `--voices`, `--tts-test`, `--filter-words-snippet`. Six new tutorials (38-43). |
| **1.2.8** | 2026-05   | [`1.2.8.md`](1.2.8.md)              | **Shell, config editor, and the surface gets sharper.** Embedded nushell pane (`Ctrl+Z o`) running in-process. HJSON config editor (`Ctrl+B 0`) with syntax highlight + restart-required banner. Help book renders as markdown via pulldown-cmark. `inkhaven export-timeline` CLI (SVG / PNG / Typst). Scrivener `<CustomMeta>` date import. Mouse wheel everywhere. Ctrl+Q opt-in confirm. Multi-slot kill-ring + Shift-letter chord-matcher fix. |
| **1.2.7** | 2026-05    | [`1.2.7.md`](1.2.7.md)               | **Polish + plumbing.** Timeline gains two-level Tab/Enter navigation, Space track collapse, span-aware ↑/↓ event select, grid stripes, F12 full critique, per-book session persistence, book-slug prefix, and selection-aware `Ctrl+V Shift+E`. Around it: `Ctrl+B U` paragraph undelete (single-slot kill-ring), `Alt+←`/`Alt+→` visited-paragraph back/forward, `Ctrl+V Shift+P` recent-¶ picker, `Ctrl+Shift+M` mouse-capture toggle for native terminal copy, passive external-change auto-reload, snapshot dedupe, status-bar today widget gets colour, F8 from any pane. Internally: `src/tui/app.rs` refactor 26,605 → 13,939 LOC across 21 new sibling/child modules (zero behavioural delta). Fixes: Ctrl+S no longer jumps the cursor home; clippy clean. 4 new tutorials (32-34) plus 1.2.7 polish section on 31. |
| **1.2.6** | 2026-05   | [`1.2.6.md`](1.2.6.md)               | **Tools for the working novelist.** Tag triad (project-wide picker, rename, `export --tag`, tree pips, `ink.tag.*`, Scrivener keyword import). Diagnostic UX (gutter `●`, F8 list, Ctrl+V N/Shift+N, Ctrl+F12 AI explain, `hook.on_diagnostic`). AI as a partner (F12 critique, per-paragraph memory, diff modal). Snapshot annotations (F5 prompt, F6 picker `✎` rendering). Story view split (Ctrl+V w paragraph mini + Ctrl+V Shift+W book). Render preview live zoom. **Story timeline (1.2.6)** — calendar-aware events; `Ctrl+V e` picker; `Ctrl+V Shift+E` new event from any pane; `Ctrl+V Shift+T` swim lanes with auto-fit on open, scope nav, and Up/Down event-step navigation; `Ctrl+V Shift+I` edit timing; y/Y/Ctrl+Y AI critique; seven `ink.event.*` Bund words + 2 hooks. F11 → Ctrl+F12 (macOS workaround). Seven new tutorials (25 — 31). New **Book of Inkhaven** companion volume. |
| **1.2.5** | 2026-05   | [`1.2.5.md`](1.2.5.md)               | **Typst goes in-process** — `typst_compile.engine = "inprocess"` runs `typst::compile + typst-pdf` inside inkhaven (no shell-out, bundled fonts, `@preview` package fetch). Phase-1 `typst-syntax` parse diagnostics on save/idle; opt-in semantic diagnostics via full compile. `Ctrl+V R` renders the open paragraph to a floating PNG preview with page navigation (←/→) + save-current (S) + save-all (A). `Ctrl+V N` jumps the cursor to the next diagnostic. Esc cancels in-flight compiles; autosave fires before Ctrl+B A/B/O. New `inkhaven doctor` CLI. Embedded logo banners the credits pane. |
| **1.2.4** | 2026-05   | [`1.2.4.md`](1.2.4.md)               | Wiki-links + backlinks (Ctrl+V A/I/L/K), navigation pack (Ctrl+V P/B/M, AI Up history), snapshot diff (F6 V) + pre-restore safety snapshot, per-paragraph word targets + auto-promote, active-time tracking, per-book bar chart, `inkhaven export --status`, `inkhaven stats`, Scrivener importer, tree multi-select + bulk T/O, save-as picker, theme persistence, Bund stdlib gaps closed (`ink.fs.*`, `ink.editor.replace_all`, `ink.search.load`, `ink.ai.poll`, `ink.ai.send_blocking`), F-keys in keybind table, startup splash, Windows CI re-enabled. |
| **1.2.3** | 2026-05   | [`1.2.3.md`](1.2.3.md)               | Multi-format export (markdown / TeX via tylax / EPUB) + `--book-name`, writing-progress subsystem (Ctrl+V G modal, status-bar widget), similar-paragraph side-by-side mode (Ctrl+V S), Bund output pane + Ctrl+Z ? script picker + `ink.input`, dynamic Quick Help. |
| **1.2.1** | 2026-05   | [`1.2.1.md`](1.2.1.md)               | bdslib + tree-sitter-typst absorbed in-tree (crates.io-publishable), Bund scripting (`ink.*` stdlib, hook points, `.bund` Script nodes, Scripts system book), data-driven keymap with HJSON + Bund rebinding, `Ctrl+B M` cycle-type, dirty-flag sync. |
| **1.1**  | 2026-05    | [`1.1.md`](1.1.md)                   | Images first-class, Book assembly / build / take, HJSON-driven `settings.typ`, six LLM providers, AI full-screen + typewriter layouts, document-status workflow, HJSON data nodes, 1000+ commits of polish. |
| **1.0.3** | 2026-04    | (tag-only — see GitHub Releases)     | First public binary release: Linux x86_64 + macOS aarch64. |
| 1.0.2 / 1.0.1 / 1.0.0 | 2026-04 | (tag-only — release-pipeline iteration) | Build / matrix-shaping commits, no user-facing change between them. |

## Reading order

If you're upgrading from an earlier version, read the notes for
every version between the one you came from and the one you're on,
in order. Each release-notes file is self-contained but assumes
you've read the previous one's "Breaking changes" section, if any.

## What we *don't* put here

- Per-commit changelogs — `git log` is canonical for that.
- Internal refactors with no user-visible effect.
- Bugfixes that simply restore advertised behaviour (those land in
  point releases without notes; major behavioural changes get
  notes regardless of size).
