What's Changed
- docs(security): reconcile SEC-6/7/8 status drift with verified code by @qnbs in #182
- docs(adr): ADR-0009 XState hybrid orchestration + machine catalogue by @qnbs in #181
- feat(proforge): add XState machine for the pipeline (P4 core) by @qnbs in #180
- refactor(views): extract layout state + decompose ManuscriptView by @qnbs in #179
- refactor(project): split projectSlice into domain reducer modules by @qnbs in #177
- refactor(palette): extract useCommandPalette hook + virtualize listbox by @qnbs in #178
- fix(desktop): harden Tauri detection — accept TAURI_INTERNALS (T0) by @qnbs in #188
- feat(desktop): localized JS application menu via @tauri-apps/api/menu (T1) by @qnbs in #189
- feat(desktop): system tray + minimize-to-tray (T2) by @qnbs in #190
- feat(desktop): Tauri desktop UI/UX foundation + audit catalog (D0) by @qnbs in #183
- feat(desktop): content max-width primitive + Help reading cap (D1) by @qnbs in #184
- feat: UX hardening P0 — Plot Board DnD safety + Writer mode transparency by @qnbs in #191
- feat: UX hardening P1/P2 — Copilot/Voice, readability, Consistency Checker, AI context by @qnbs in #193
- feat(privacy): make the Privacy → Analytics toggle actually gate DuckDB + telemetry (SEC-6) by @qnbs in #194
- feat(ui): reusable Badge + Experimental/Beta labelling on flags & ProForge by @qnbs in #195
- test: cover collab-transport crypto, ProForge adapters, 5 copilot components by @qnbs in #196
- feat(voice): consent clarity — honest cloud-vs-on-device privacy + precise E2E follow-up docs by @qnbs in #197
- feat(ai): device-aware Ollama recommendation + one-click pull by @qnbs in #198
- chore: dependency hygiene + contributor onboarding + docs/README truth-up by @qnbs in #199
- release: v1.24.0 by @qnbs in #200
Full Changelog: v1.23.1...v1.24.0