- docs: consolidate v1.7 highlights (a713a2e)
- chore(release): prepare v1.7.1 (6a16a61)
- docs: keep product intro above sponsorship (9f19459)
- docs: retain Kimi open source partner banners (ac77642)
- docs: add Kimi sponsorship banners (6c6574f)
- test(core): use shared timeout for root import (d3f6ae7)
- fix(core): restore direct terminal tool cards (eb6c8f8)
- docs: document narrative forecast workflow (6ac708a)
- feat(studio): compare narrative forecasts in book chat (b98252b)
- docs: design Studio narrative forecast comparison (b38f603)
- fix(core): fingerprint every context input the narrative forecast reads (7dce957)
- test(core): keep narrative forecast tools available while a production task runs (7dd07f4)
- feat(cli): add inkos forecast create/show/select commands (148b158)
- feat(core): add narrative forecast agent tools (9e49397)
- feat(core): add narrative forecast agent, prompts, renderers and runner (7b009ea)
- feat(core): add narrative forecast context builder with content fingerprint (28a04c0)
- feat(core): add narrative forecast schema and store (4daa7b8)
- feat(cli): whole-book backup and restore (1420040)
- feat(core): delete the latest chapter with state rollback (e25848f)
- fix(core): update index word count on chapter patch edits (9bc68fb)
- feat(studio): retry the last failed chat message (e1eb12f)
- feat(core): gate book-mutating tools while a production task runs (a975fb5)
- fix(studio): route id-less and compression events away from background task cards (bfae2d3)
- fix(studio): stop appending transcript messages to deleted sessions (29b6af4)
- fix(studio): find running tasks in memory before the disk snapshot when deleting or aborting (0091c3c)
- fix(studio): reclassify a chat turn as a production task when the server starts one (28f2923)
- feat(studio): tag pipeline progress events with the task execution id (8073aaa)
- fix(core): align short-fiction length validation between confirmation and runner (550bdf2)
- fix(studio): persist the production instruction to the transcript at task start (fc6babc)
- fix(studio): reserve the single-task slot atomically (790aace)
- fix(studio): don't close a streaming chat when a terminal task snapshot lands (ea9bce5)
- fix(studio): abort the production task when its session is deleted (a995e6a)
- feat(studio): run write_next through the background task system (766c28e)
- feat(studio): send messages alongside a running production task (39d2edf)
- feat(studio): keep production tasks running while the user chats (c81272f)
- fix(core): let short-fiction output language follow the user's request instead of the session language (a662224)
- fix(studio): rewrite zombie running task snapshots after server restart (26e659d)
- fix(studio): ignore stale terminal task snapshots replayed onto new streams (80140e3)
- fix(short): honor English language in Studio and CLI (fa20ad7)
- fix(core): update Xiaomi MiMo API endpoint (d7c3f03)
- fix(studio): stop reviving stale Play choices (d619934)
- fix(studio): persist long-task progress across refresh (2e7985c)
- docs: replace keaiapi references with kkaiapi (7ac8d53)
- docs: simplify project title (0bca0e6)
- docs: present v1.7 translation workflows (1ecce46)
Full Changelog: v1.7.0...v1.7.1