70 KiB
Changelog
中文 | English
v1.8.0
Release Focus
Unified Pi Agent Harness and professional creation kernel. Studio Chat, TUI, external agents, and every production worker now share the same pi-agent tool loop, typed action/result boundary, Skill binding, retrieval, and run observation. Pipelines remain deterministic production capabilities instead of forming a parallel natural-language decision system.
Agent Harness And Skills
- Added one production harness for long fiction, short fiction, scripts, storyboards, interactive film, Play, and translation, with shared run snapshots, observations, cancellation, recovery, and atomic commit semantics
- Shipped 15 standard
SKILL.mdexpertise packages for long-form writing/review, commercial shorts, Play, scripts, storyboards, interactive film, translation, analysis, market research, import, covers, and semantic de-slopping - Production workers bind medium-specific Skills inside the pi-agent harness. Formats share the Skill architecture and execution foundation without mechanically reusing long-form prompts
- Added standard run, tool, and model trajectory metadata for observing kkaiapi and other model calls, tool results, and evidence-backed completion
Context, Retrieval, And Persistence
- Added one SQLite FTS5 / BM25 local retrieval kernel for story memory, archived materials, and Skill references. Indexes are rebuildable and source files remain authoritative
- Added book-bound references so imported material can declare intended uses and be retrieved by Planner, Composer, Writer, and other task contexts
- Added safe chapter workspaces and atomic file-set commits. Prose, state, hooks, and run snapshots are persisted together only after validation
- Improved stale chapter-state recovery, governed long-form context, and inactive-stream handling to keep old state and old tool results out of current production
Production And Workbench
- Multi-chapter writing now runs sequentially as one background task with cancellation, progress, and recovery rather than bypassing the per-book lock with concurrent writes
- Short, script, storyboard, interactive-film, Play, and translation runs now share Skill binding, length observations, run snapshots, and long-output completion strategies
- Studio adds a safe chapter rewrite workspace with candidate text, review issues, and persistence status, plus wider chapter previews, external canon import, and persistent dynamic model catalogs
- Added LM Studio, user-added model IDs, custom cover Base URLs, and more reliable first-token / stream-idle deadlines
- TUI adds explicit
/new,/short,/play,/cover, and/writesurfaces, structured/confirm//cancel, session-level/model, and adaptive terminal colors while leaving ordinary free text to the Agent - The minimum runtime is now Node.js 22; CI and Release matrices now cover Node 22 / 24
v1.7.2
Release Focus
Agent Skills compatibility and a single Skill runtime. InkOS now consumes standard SKILL.md packages directly. The Chat Agent can activate a Skill from user intent, while users can force one from the composer + button or with @skill-id. The former InkOS-private Skill protocol, keyword triggers, and parallel context planner have been removed instead of being layered beside the new system.
Agent Skills
- Added the typed
use_skilltool to the pi-agent loop: the model sees available Skill names and descriptions, then activates professional guidance through a structured tool call - Studio can import a complete folder containing
SKILL.md; static references are preserved under the project's.agents/skills/, while external scripts are never executed automatically - Added standard project discovery from
skills/and.agents/skills/, plus user discovery from~/.agents/skills/and~/.openclaw/skills/ - Users can select and force a Skill in the Chat composer; one-turn intent activation expires instead of leaking into later turns or another book
- Project Settings shows each Skill's source and can delete project imports; deletion immediately removes the Skill from both the Agent catalog and composer
Compatibility
- Removed the legacy
.inkos/skillsloader and InkOS-only fields such aswhenToUse,promptPacks,toolHints, andcontextNeeds - Prompt packs remain a separate, Studio-editable subsystem under Project Settings instead of masquerading as Skills
- Migrate old Skills to a standard folder containing
SKILL.mdand static references, then import it in Studio or place it under.agents/skills/
v1.7.1
Release Focus
Narrative forecasting and non-blocking Studio collaboration. Long-form authors can generate, compare, and re-check multiple non-canonical futures before committing to the next chapter. Selecting a branch saves a candidate plan only; it does not change prose, outlines, or canon. Production work such as chapter writing now runs as a background task, so users can keep chatting, restore progress after refresh, retry failed messages, and rely on clearer task and data boundaries.
Major Features
- Added long-form narrative forecasts: generate 2-5 isolated futures from current canon and compare chapter beats, character decisions, projected changes, risks, author-intent alignment, and uncertainties
- Added an inline Studio Chat comparison card with branch selection and stale-forecast re-checking. Selection writes only
selected-branch-plan.md; prose, foundations, outlines, and runtime canon remain unchanged - Added
inkos forecast create / show / selectto the CLI, sharing the same forecast schema, store, context fingerprints, agent, runner, and non-canonical boundary as Core - Added whole-book backup / restore and safe latest-chapter deletion with chapter-state rollback, preventing prose and runtime state from drifting apart
Collaboration And Task Reliability
- Moved
write_nextonto Studio's background-task system, allowing conversation to continue while production work runs instead of occupying the entire Chat request - Tagged and persisted task progress by execution id, restored the correct task card after refresh, and prevented terminal task snapshots from closing a still-streaming chat response
- Added failed-message retry, production-task abort when its session is deleted, and cleanup of zombie running snapshots after server restart
- Reserved the single production slot atomically and blocked conflicting book mutations while still allowing read-only tools and narrative forecasts
- Fixed direct terminal tool calls disappearing from restored sessions; completion remains derived from real tool results
Data Safety And Compatibility
- Chapter patch edits now update index word counts so persisted prose and statistics stay aligned
- Aligned short-fiction length validation between confirmation and runner, and made output language follow the user's current request
- Fixed stale Play choices reviving during task switching or replay and stopped deleted sessions from receiving new transcript messages
- Updated the Xiaomi MiMo API endpoint and improved Studio event classification so id-less or compaction events do not pollute background task cards
v1.7.0
Release Focus
Major multilingual creation and long-task reliability release. InkOS gains a complete long-form translation and localization workflow, while English support now extends through short fiction, scripts, storyboards, interactive film, Studio, and the CLI. Chat-driven novel import, configurable review and revision, automatic write-lock recovery, and abort propagation make long-form collaboration and cross-platform use more reliable.
Major Features
- Added a translation and localization workflow for EPUB, text-based PDF, TXT, and Markdown sources, with chapter-aware semantic segmentation, glossary management, chapter review, and TXT / Markdown / EPUB export
- Added the Studio Translation workbench for human-readable source and target languages, project creation, translation runs, side-by-side source and translated text review, review reports, and complete-file export
- Added
inkos translate init / run / exportto the CLI. Studio Chat can also propose a confirmed translation action without requiring users to know language codes such aszhoren - Added English prompt branches for short fiction, scripts, storyboards, and interactive film, plus bilingual dynamic Studio copy and corrected CLI environment-language fallback
- Added the Chat
import_chapterstool: existing novels from local files, directories, or chat attachments can become real book chapters, with settings reverse-engineered and chapter state replayed. This is distinct fromingest_material, which only stores reference material (#324)
Collaboration And Control
- Added configurable
writing.revisionGatepolicies: strict, lenient, and always, with project-level and per-book overrides. Rejected revisions now report before/after review metrics and remaining issues (#326) - The CLI now respects per-book
writing.reviewMode; newinkos auto [book-id] <target-chapter>writes continuously to a target chapter (#307) - Notification channels support plain text, and
write next / write rewrite / auto / revise / auditcan send completion or failure notifications with--notify(#308) - Studio can expand action details by default, including read / grep tool results, making completed work directly inspectable (#306)
Reliability And Compatibility
- Replaced fragile write-lock files with owned, heartbeating cross-process leases. Locks left by the same process, dead processes, or expired leases recover automatically; active conflicts return
BOOK_BUSYinstead of asking users to delete.write.lockmanually (#337) - Studio abort actions now propagate through pi-agent, the writing pipeline, and model requests, preventing background writes after the UI has stopped a task
- Dynamic model services such as OpenRouter, NewAPI, kkaiapi, PPIO, and SiliconCloud no longer reject user models through static allowlists; OpenRouter probing now uses the long-lived
openrouter/automodel (#300) - MiniMax responses use reasoning separation by default, with a shared fallback that removes complete leading think blocks before they enter chapters or chat prose (#329)
- Uploaded attachments and translation sources now return portable POSIX project-relative paths across Windows and Unix systems
v1.6.3
Hotfix
- Fixed
@actalk/inkos@1.6.2/@actalk/inkos-studio@1.6.2leakingworkspace:*into the registry manifest when published to npm; for Windows / npm global upgrades, install1.6.3directly or update tolatest - Release validation now rejects
workspace:dependencies in publishable manifests, preventing this class of install failure from recurring - The MiniMax official OpenAI-compatible integration adds a
MiniMax-M3model card and sendsthinking: { "type": "disabled" }by default forMiniMax-M3*, reducing the API's default behavior of returning thinking content
v1.6.2
Release Focus
Chat collaboration and tunable prompt hot-updates: building on v1.6.0's interactive film / Skill system, this release adds user file uploads, image attachments, long-task interruption, material archiving and retrieval, and Studio prompt pack editing. The core goal is to make Chat feel like a real creation workbench: it can read the materials the user provides, stop long tasks, turn external references into retrievable material, and let users adjust key prompts directly.
Improvements
- Studio Chat supports uploading text / Markdown / image attachments; text materials enter the LLM context, and images are passed as multimodal input to vision-capable models
- Added long-task interruption: users can actively stop the current agent turn from Chat, no longer forced to refresh when a long task stalls
- Added material archiving and retrieval tools: external materials can be saved to the project material library and retrieved with evidence traces in later writing / discussion
- Added the Studio prompt pack editor: inspect and adjust built-in prompt packs such as longform, Play, and interactive film under "Project Settings → Prompts"; edits are saved as project-level override files without changing built-in defaults
- Runtime Skills can still provide prompt packs, context needs, and professional rules; the prompt pack editor makes those rules directly inspectable and tunable by humans
- Fixed Studio Chat losing the current conversation's requirements when revising an old chapter:
sub_agent(reviser)now passes the user's "rewrite / re-revise / change direction" message from this turn into the long-form pipeline as a one-off revision brief - When a revision is not saved to disk, the result now returns more specific verdict information: it shows before/after blocking / critical / AI-tell metrics, the applied gate, and remaining issues, instead of only returning a vague "kept original chapter"
- Adjusted the fallback for "chapter prose suspected not saved": it no longer defaults to suggesting "write the next chapter", and avoids misclassifying "chapter N revision instructions / rewrite plans" as prose
Verification Notes
- Real-model verification:
kkaiapi / deepseek-v4-flashcan return the unique code word from an uploaded Markdown file in its answer, proving that document content enters the LLM context - Real-model verification:
kkaiapi / gpt-5.5can identify the dominant color of an uploaded PNG, proving that image attachments enter the multimodal input chain
v1.6.0
Release Focus
Major interactive film and Skill system release: extends InkOS creation entries from "novels + Play" to interactive film/games, scripts, storyboards, and pluggable professional capabilities. Studio Chat can now invoke external / built-in skills based on user intent, and generate traceable research reports when real facts are needed; this release also fixes several stability issues affecting long-task continuation and collaborative user editing.
Major Features
- Added interactive film/game creation and workbench capabilities: branching plots, variables / flags, character relationships, endings, node images, and exportable interactive project packages
- Added the runtime Skill system: built-in / external skills can be auto-matched or explicitly forced by the user, injecting professional rules, prompt packs, and context needs into Chat / creation entries
- Added the web research tool
research_web: usable for worldbuilding, eras, professions, regions, markets, and fact checks, producing Markdown reference reports with sources / queryLog / unknowns / confidence - The Studio Skill UI supports selecting, forcing, and adding external skills, so professional capabilities no longer have to be hard-coded into the system prompt
- Script, storyboard, and interactive-film entries are aligned with the Chat action surface: heavy actions still go through confirmation cards, and generated results can be viewed and exported inside Studio
Reliability And Fixes
- Fixed
patch_chapter_textonly matching exact text; slightly paraphrased target passages can now be located with a high-confidence paragraph fallback, and it still fails explicitly when the target cannot be confirmed, avoiding wrong edits - Fixed audit / multi-chapter operation failures possibly writing
chapters/index.jsonas an empty array; the save layer now rebuilds the index from on-disk chapter files, preventing existing chapters from disappearing in the UI - Fixed the regression risk of sessions losing the bookId after switching to the same model on a different channel, and added tests locking down session-bound bookId passing
- Research reports are saved as reference material under
.inkos/research/, and do not directly contaminate story truth, character cards, or prose
v1.5.0
Release Focus
Major InkOS Play and creation workbench release: pushes InkOS from a "write the next chapter automatically" pipeline tool toward a more complete Story Creation AI Agent. Long-form novels, short fiction, fanfic, spinoffs, style imitation, continuation, covers, and open-world interaction now share the same Studio Chat / CLI / TUI interaction core, with systematic work on instruction following, context management, and the visual experience.
Major Features
- Added the InkOS Play open-world / branching interaction entry: free-form actions, clickable choices, world contracts, non-fixed time advancement, character agents, item / evidence / relationship state, HUD, and automatic illustration
- Studio creation entries reorganized as first-class entries: long-form novel, short fiction, fan fiction, spinoff, style imitation, continuation, branching interactive, and open world can all be launched directly from the workbench
- Play world-state visualization upgraded: the side HUD shows world time, current location, who you are facing, inventory, relationships, and illustrations; generated images enter the conversation stream and can be scrolled back through
- Added / improved the spinoff, style imitation, and continuation creation chains, so existing IPs, settings, and writing styles can keep spawning new content
- Studio Chat, TUI, and CLI unified onto the action surface: plain discussion, confirmed book creation, short fiction, covers, Play, long-form chapter writing, and rewrite/continuation no longer race on scattered keywords
Context And Reliability
- Long-form context now uses protected / compressible layering: high-priority content such as author intent, the current focus, and active hooks is never silently compressed away; old history and low-relevance background only get semantic compression when over budget
- The Composer adds outline section-level selection, so whole foundation files no longer blow up the context window
- Session restore switched to summary + recent messages, reducing old tool results and history drowning out the current instruction
- Context-window guards added at the provider / Studio main Chat network boundary: over-limit requests now fail with a clear error instead of waiting for an upstream 400
- Weak-model format robustness improved: the Planner / Architect model output protocol moved from fragile YAML front matter to more tolerant Markdown / host-side extraction, reducing hard aborts caused by format drift on models like MiniMax
- Review, revision, and failure states lean toward exposing real problems, no longer treating the model's verbal claims as completed results
Studio UX
- The Studio left navigation, Play conversation area, view-world panel, illustration buttons, artifact previews, and font sizes were reorganized as a whole
- Play illustration supports characters, items, evidence, moments, and other objects; images render inside the conversation context instead of only appearing in a fixed panel preview
- Model settings, cover services, aggregator API entries, and error messages are further separated: InkOS execution errors, model provider errors, and image generation errors are no longer mixed together
- The README and Skill docs were updated to the Story Creation AI Agent positioning, showing real v1.5.0 Studio Play screenshots
Bug Fixes
- Fixed inconsistent execution caused by TUI / Studio / Chat natural-language entries each interpreting user intent on their own
- Fixed incomplete book creation possibly being treated as a successful creation downstream; completion is now derived from real artifacts and tool results
- Fixed Play HUD issues with inventory, relationship edges, state-value localization, image display, and duplicated choice buttons
- Fixed the long-form writer / reviewer / reviser possibly mistaking a format-parsing failure for a prose problem and continuing to revise the draft
- Fixed several UI screenshots, README architecture diagrams, the Kimi partnership banner, and the 1.5.0 release image rendering incorrectly in the GitHub README
v1.4.1
Release Focus
Windows / provider hotfix plus configurable long-form writing speed: fixes the unreachable MiniMax default endpoint, keeps the speed benefit of the default single automatic revision pass for long-form writing, and allows projects to configure automatic revision passes back to 3.
Improvements
- Long-form chapter writing gains the
writing.reviewRetriesproject setting for automatic review/revision passes; the default remains 1, and you can runinkos config set writing.reviewRetries 3when stronger revision is needed - The Studio chapter-writing chain reads the same project setting, keeping CLI and Studio behavior consistent
- README / development notes updated for the v1.4.1 MiniMax and long-form writing configuration changes
Bug Fixes
- Fixed the MiniMax default provider still pointing at a no-longer-available Anthropic endpoint, which made connection tests fail in native Windows environments
- Fixed MiniMax endpoint metadata overrides being too broad, potentially affecting routing decisions for other services
v1.4.0
Release Focus
Major short-fiction and Studio Chat collaboration release: adds a public short-fiction production chain, cover-making tools, persistent plain-chat sessions and artifact previews, and fixes long-form length normalization possibly being truncated by the output limit.
Improvements
- Added a standalone short-fiction writing chain: Studio Chat and the CLI can generate the complete short manuscript, outline records, review records, synopsis / selling points, and a cover prompt
- Added cover-making capability: covers can be generated / regenerated on their own, with the generated cover image previewed directly in Studio messages
- Studio plain chat supports project-level persistent sessions; after a refresh or restart you can keep viewing, switching, renaming, and deleting sessions
- Chat can directly edit generated text artifacts inside the project, which is handy for adjusting chapters, cover prompts, synopses, and other files before continuing with the InkOS writing chain
- The service settings page adds a cover-generation section, separating the cover text model and image model more clearly
Bug Fixes
- Fixed image paths in short-fiction / cover tool results only showing as text without rendering a preview
- Fixed Studio tool-call details being lost after message restore
- Fixed
LengthNormalizerAgentexplicitly settingmaxTokens, which could truncate long-chapter compression / expansion output
v1.3.12
Release Focus
Small Studio service-settings UX release: moves the aggregator service entries to a handier position, adds quick access to official sites / docs / model pages, and unifies the service group label as "Aggregator API".
Improvements
- The Studio service list and service detail pages add external quick links for key aggregator services, so you can open the official site, docs, and model list before configuring
- The aggregator service group heading is unified as "Aggregator API", avoiding misleading wording
v1.3.11
Release Focus
Studio service and aggregator model integration update: adds the kkaiapi service option; fixes custom/local OpenAI-compatible service tests wrongly using the fallback model, connection crashes caused by Chinese characters in API keys, and the missing service-config deletion entry; also completes radar history, genre-management refresh, and long-form multi-thread ratios being reflected in structure.
Improvements
- Added the kkaiapi aggregator model service option; Studio / CLI service settings can select and test it directly
- Studio new-book creation now goes through the shared conversation interaction core, avoiding behavior divergence between the book-creation entry and the real creation chain
- Radar scan results are persisted as history records; Studio can browse existing scan results
- Long-form outlines / chapter outlines now more explicitly carry the user-specified multi-thread ratios, reducing cases where "the ratio was written down but the structure doesn't reflect it"
Bug Fixes
- Fixed custom service connection tests wrongly using the global fallback model or the wrong protocol, causing llama.cpp / local OpenAI-compatible services to be misjudged as unavailable
- Fixed ByteString conversion exceptions triggered when the API key or request headers contain Chinese or other non-ASCII characters
- Fixed Studio missing an entry to delete custom service / model configurations
- Fixed genre management: after saving, the file was generated but the Studio list did not refresh
- Fixed hook ids in
hooks.jsonpossibly containing duplicated hyphens or abnormal punctuation
v1.3.10
Release Focus
Book-creation platform hotfix: fixes the sub_agent.platform parameter possibly failing schema validation on Chinese/alias inputs during web and CLI book creation, and funnels the new-book creation chain into legal platform values.
Bug Fixes
- Fixed tool calls during book creation failing with
Validation failed for tool "sub_agent": - platform: must be equal to constant, which prevented book files from being generated - Unified platform alias normalization across the Studio, CLI, TUI, and agent create-book chains; inputs like
番茄/fanqie/番茄小说now resolve to a legal enum value - Unknown platform values degrade to
other, preventing a wrong platform id from being written into the book config and affecting later flows - Updated the README WeChat group QR code to group 13
v1.3.9
Release Focus
Studio book creation and book settings hotfix: fixes the new-book creation chain being hijacked by an existing book's session, and restores a visible entry to the book settings page.
Bug Fixes
- Fixed Studio new-book creation
/new,/createnot binding an independent orphan session, which let book-creation requests be taken over by the current book workbench session - Fixed unreliable navigation to the new book's Chat workbench after creation completes
- Restored the book settings route:
#/book/:idremains the Chat workbench, and#/book/:id/settingsis for editing book configuration - Fixed "Book Settings" in the Dashboard book menu actually opening the Chat workbench
v1.3.8
Release Focus
Local model hotfix: fixes the post-1.3.7 configuration regressions for Ollama / local OpenAI-compatible endpoints in the book-creation and continuation chains, ensuring both Studio and CLI can keep using local models with no API key.
Bug Fixes
- Fixed Studio service tests, model lists, and the book-creation chain requiring an API key, which made Ollama / local endpoints unusable
- Fixed the Studio new-book page's actual
/agentcreation path not correctly passing the empty-key local model client - Fixed dynamic Ollama model names in the CLI / Studio being wrongly blocked by the built-in model table
- Fixed
write next --contextnot actually reaching the chapter-planning and prose-writing prompts
v1.3.7
Release Focus
Tightened long-form writing quality: recently validated web-fiction writing rules are wired into the Writer, Planner, Architect, and post-write validation, focusing on gripping openings, chapter density, hook payoff, paragraph rhythm, and foundation completeness.
Improvements
- Web-fiction writing rules in the chain: the Writer prompt adds constraints on highlight density, mobile-friendly paragraphs, the opening first screen, chapter cliffhangers, and character action motivation, so the model writes less idle build-up and report-style prose
- Planner / Architect aligned with writing goals: chapter planning and the book foundation more explicitly carry the golden opening, chapter goals, hook ledger, and paragraph-style foundation output requirements
- More concrete hook payoff: the hook ledger requires advance / resolve items to have locatable actions, objects, dialogue, or events in the prose, reducing the gap of "in the ledger but not in the text"
- Tighter paragraph density rules: density must come from meaning and scene advancement, not from chopping prose into telegraph style; consecutive short paragraphs are caught by post-write rules
Bug Fixes
- Fixed the Architect possibly dropping the 5 foundation SECTION blocks when extending output
- Fixed the hook ledger payoff check being too lenient, which let indirect hints be misjudged as payoff
- Fixed the writing prompt describing paragraph size too vaguely, causing the model to over-fragment paragraphs under the "1-3 beats of density" rule
v1.3.6
Release Focus
v13 book-creation flow migration: creation output upgraded to a paragraph-style foundation draft, a volume-level map, and a one-card-per-character role directory, with an upgrade path for old books.
Improvements
- Paragraph-style foundation: the Architect generates
outline/story_frame.md,outline/volume_map.md, androles/character cards, keeping a legacy shim compatible with old read paths - Old-book upgrade path: agent architect supports
revise=true, converting old bullet-style foundations to the Phase 5 layout; the original foundation is backed up before upgrade, and runtime state files are not reset during upgrade - Truth file injection: the agent injects the current book's truth files into context; books on the old layout get a hint that they can upgrade to the paragraph-style foundation
- Foundation output budget fix: separated the
maxTokensfallback from themaxTokensCaphard limit, so large Architect outputs are no longer clipped by the default config - README stats: added the Skills Download History chart, synced across the Chinese, English, and Japanese READMEs
Bug Fixes
- Fixed information loss caused by reading the shim during a second Phase 5 upgrade
- Fixed reviseFoundation resetting
current_state/pending_hooks/ runtime logs - Fixed stale role cards remaining after characters are renamed or deleted
v1.3.5
Improvements
- Session / sidebar experience refactor: Studio introduces a per-session runtime;
pendingBookArgsmoved down to session level; session SSE listening extracted fromApp.tsx; the sidebar supports per-book collapsing, deferred display of draft sessions, and the session list no longer reorders on click - Simplified session titles: session titles are no longer LLM-generated; the first user message directly becomes the session title, with lazy migration for existing sessions
- Draft session workflow: new sessions are only persisted at the first message; draft sessions with no sent message are not written to disk and do not appear in the sidebar
- Session list performance:
listBookSessionsnow reads concurrently and returns lightweight summaries, avoiding the sidebar loading many full session files at once
Bug Fixes
- Model list cache fix: the cache key for
/services/:service/modelsnow includesresolvedBaseUrl; custom services no longer wrongly reuse the old model list after switching endpoints - Session delete confirmation dialog positioning:
ConfirmDialognow renders through a portal, so it is no longer locked inside the sidebar's containing block - Test cleanup: removed the obsolete
updateSessionTitlemock leftovers inserver.test.ts
v1.3.4
Bug Fixes
- Dependency pinning: pinned
@mariozechner/pi-ai/pi-agent-coreto0.67.1, lowering the chance of global-install failures caused by npm mirror lag - Faster service probing and model lists:
GET /modelsis back on the fast path;knownModelsservices no longer run the slow probe; when/modelsis unavailable, the service's ownknownModelsare returned - More reliable service validation:
/modelsreturning401/403now short-circuits directly; the service detail page validates the key with/testbefore saving, and page load also uses/testto verify the real connection state - Full model list returned: the service test endpoint no longer trims the list to 50 models by default
Improvements
- Restored the agent's general file tool surface:
editis back on the normal tool surface, and a newwritetool creates/overwrites files, with paths still restricted tobooks/ sub_agentminimal control-surface extension: addedwriter.chapterWordCount,reviser.mode,exporter.format,exporter.approvedOnly- Unified revision entry: in book mode, whole-chapter revision converges on
sub_agent(reviser), reducing the model wavering betweenrevise_chapterandsub_agent
v1.3.3
Bug Fixes
- Explicit titles for chat book creation: agent book creation now requires an explicit
title;initBook/book.jsonconsume the structured title directly, and initialization with an empty title is no longer allowed - Unified real EPUB export: the CLI, Studio downloads, the shared interaction layer, and the agent exporter all reuse the same real EPUB implementation, ending the split state of one real EPUB, one fake HTML, and one unimplemented path
- High-risk writing actions funneled: the book-mode agent prefers deterministic tools for setting changes, renames, partial text fixes, and chapter rewrite/polish, no longer defaulting back to the fragile general-purpose
edit
Improvements
- TUI plain chat aligned with agent/session: plain TUI input now goes through a local agent session, keeping a few local control-command fast-paths, moving further toward Studio's interaction model
- Clearer writing control surface: the agent prompt explicitly distinguishes heavy-action subagents from high-risk deterministic writing tools, reducing gaps where "the model understood, but no tool could execute it"
v1.3.2
Bug Fixes
- Restored the
architectfoundation output budget: re-pinnedmaxTokens: 16384, lowering the chance of local models and LM Studio truncating output and losing foundation sections during book creation - Restored the old OpenAI-compatible path:
provider=openai + custom compatible baseUrlis no longer wrongly routed into the more aggressivecustom fetchpath; legacy compatibility scenarios like Google/Gemma work again - Native Anthropic-compatible transport for custom services:
service=customwithprovider=anthropicalso uses the native request chain, no longer hard-bound to the SDK - Windows Studio startup fix:
inkos studiono longer crashes on Windows because the absolute-path loader was treated as an invalid ESM URL - Bootstrap projects fall back to env config: Studio projects auto-initialized in an empty directory fall back to the global
.inkos/.envwhen no service is configured;book createno longer dies immediately on a missing key - Unified service routing truth:
config-loader,service-resolver, Studio service probing, anddoctorall read provider/api/chatBaseUrl/modelsBaseUrl from the sameservice-presets, reducing each chain guessing the same service on its own
Improvements
- Start directly from an empty directory:
inkos/inkos studionow auto-initialize a minimal project skeleton and start Studio, no longer requiring an explicitinitfirst - Studio auto-detects transports: service tests automatically try combinations of candidate models,
chat/responses, and streaming toggles to match a working configuration doctorenhanced: no longer fixates on the current single model/combination; supports multi-model, multi-protocol, multi-streaming probes- Fresh session for book-creation chat: re-entering "Create book" clears the old conversation instead of reusing the previous creation chat history
- Chat model picker search: the Studio model picker supports search filtering
- More restrained sidebar refreshes: read operations no longer trigger pointless sidebar refreshes; refresh only happens after write operations
- More realistic service save flow: saving an API key runs a real
/testprobe instead of relying only on/models
v1.3.1
Bug Fixes
- MiniMax baseUrl corrected: from
api.minimax.chattoapi.minimaxi.com(the current OpenAI-compatible endpoint) - Multi-service baseUrl isolation: choosing a non-default service in agent chat no longer leaks the default service's baseUrl (e.g. the moonshot URL being wrongly used for minimax requests)
- resolveServiceModel always uses the preset: no longer uses the pi-ai built-in model object directly (which may point to international endpoints or the wrong API format); models are always constructed with the preset's baseUrl and api format
- Sidebar refresh after agent book creation: the sidebar book list refreshes automatically after a book is created through agent chat (previously only POST /books/create broadcast
book:created) pnpm devparallel startup: added--parallel, fixing core tsc --watch blocking studio startup
Improvements
- MiniMax knownModels: MiniMax does not support
GET /models, so 7 models are hard-coded instead (M2.7/M2.5/M2.1 plus their highspeed variants + M2) - Connection tests no longer send messages: removed the chat-completion test; validation goes through
/models+ fallback only and returns instantly - Custom service URLs auto-append /v1:
https://example.com,https://example.com/, andhttps://example.com/v1are equivalent - Agent system prompt: bans emoji, requires lists/tables for structured content, adds chapter-index management guidance
Tests
- Added regression tests: service-presets (MiniMax baseUrl + knownModels), service-resolver (preset overrides pi-ai), normalizeBaseUrl
v1.3.0
Release Focus
Studio 2.0 official release. inkos now starts Studio directly by default; the local web workbench becomes the main entry, and the TUI is kept as inkos tui.
New Features
- Studio 2.0 as the default entry:
inkosstarts Studio directly; the home page, provider management, and writing workbench are unified as the new main interaction entry - Custom OpenAI-compatible services: Studio now supports a custom
baseUrl, protocol type (chat/responses), and streaming toggle, compatible with more proxies and aggregation gateways - Config source switching: Studio adds an explicit switch between
.envand Studio configuration, no longer passively overridden byINKOS_LLM_*in the directory - Native custom transport: a native fetch request chain for
customservices, reducing single-point dependence on the SDK path and improving compatibility
Improvements
- More realistic service tests: the service page test no longer only checks
/models; it also runs a minimal generation probe, avoiding false positives where "connection test passes but chat fails" - Improved service save flow: after a successful save, Studio returns to the provider management page automatically; the top home and back entries are more prominent
- Key backfill: the service detail page reloads the saved key, so reopening the page no longer looks like the key was lost
- Better error visibility: Studio chat no longer masks empty replies with
Acknowledged.; the real upstream error is shown directly
Bug Fixes
- Fixed
llm.services + defaultModel + secretsbeing inconsistent with the runtime loading contract - Fixed inconsistent chains for
custom:*services across connection tests, model lists, and/api/v1/agent - Fixed
inkosstarting Studio throwing thellm.modelvalidation error directly when no default model was set - Fixed non-streaming / SSE responses from custom services being wrongly parsed as plain JSON
v1.2.0
Release Focus
Unified interaction core — the TUI, Studio, inkos interact, and the OpenClaw Skill share the same natural-language understanding and execution runtime.
New Features
- Shared interaction runtime (
packages/core/src/interaction/): natural-language router (15+ intents), session management, edit transaction controller, event tracing, stage telemetry - Ink TUI dashboard:
inkosopens a full-screen Ink + React dashboard directly, with conversational creation, slash-command Tab completion, themed animations (writing/auditing/revising/planning each with their own), and bilingual Chinese/English i18n - Studio assistant panel: the right-side AI assistant connects to the shared interaction core, operating books in natural language (write chapters, rename, audit, export), with SSE real-time status push and execution stage icons
- Conversational book creation: brainstorm the book concept, setting, and target chapter count step by step through the Studio assistant, then create with one click once the draft is ready
- Whole-book entity rename:
把林烬改成张三//rename 林烬 => 张三, a full scan of chapters + truth files replaced in one pass - Single-chapter text replacement:
/replace 5 old-text => new-text, precise patching of a specific chapter inkos interact --json: the shared interaction JSON entry, returning request / response / session / events, callable directly by OpenClaw and external agents- Thinking-model temperature clamping (PR #174): thinking models like kimi-k2.5 automatically get temperature=1, compatible with per-call temperature tuning, warning once per model
Improvements
- Studio ChatBar dedup:
executeCommand()extracts the shared logic, removing 80 duplicated lines between handleSubmit/handleQuickCommand - The Studio ChatBar SSE effect uses
loadingRefinstead of a stale closure - Studio dropdown z-index fix: removed the paper-sheet transform (eliminating the stacking context); the card is raised to z-50 while the menu is open
- Studio agent response fix: uses
result.responseTextinstead ofsession.messages.at(-1) - TUI theme extension: semantic colors (success/error/active/idle) + role colors (user/assistant/system)
- TUI status badges: ✓ done / ✗ failed / ✎ writing / ◇ planning / ◈ awaiting decision
- TUI i18n fix:
stageLabelsmoved into TuiCopy, removing hardcoded status strings - Studio dead-code cleanup (PR #176): removed unused shadcn components,
dotenv,shadcn,tw-animate-css,class-variance-authority, -2800 lines
Bug Fixes
- Studio ChatBar assistant replies lost: a session-history overwrite silently dropped the response
- Studio BookMenu dropdown hidden behind lower cards: the fadeIn animation's transform created a stacking context
- Studio GenreManager
window.confirmreplaced withConfirmDialog - Studio BookDetail Nav
toTruthtype-assertion hack fixed - Studio ChapterReader/Dashboard approve/reject missing error handling
- ChatBar curly-quote encoding breaking esbuild parsing
v1.1.1
Release Focus
- Rolled back to the stable
v6 + bugfixmainline, replacing the unstable latestv8
Bug Fixes
- #151 — Architect section parsing tolerates heading drift like
book-rules/Book Rules/ full-width colons; creation no longer fails because abook_rulessection is slightly deformed - #152 — The state validator is now fail-closed: empty responses raise an error directly, and multi-line JSON balanced extraction is restored, so a missing
passedfield is no longer misjudged - #154 — Post-write rules add detection of chapter-number references in prose, blocking narration like
第33章/Chapter 33 - #155 —
repair-statesupports same-chapter recomputation of the lateststate-degradedchapter, no longer failing withdelta chapter N goes backwards
Improvements
ai-tells/sensitive-wordsadd bilingual Chinese/English rule paths; the revision chain for English books no longer mixes in Chinese issues- Prompts and language passing for import / continuation / series were completed; foundation reviewer results now feed back more reliably
- The reviser revision chain re-attaches
hookDebtBlock, so partial revisions can see hook-debt evidence
v1.1.0
Full writing-pipeline upgrade. Driven by multiple rounds of autoresearch experiments under the Meta-Harness methodology, from-scratch mode quality rose from 75 to 92, and fanfic mode from 39 to 82+.
New Features
- Foundation Reviewer: an independent review agent added at book creation, scoring 5 dimensions on a 100-point scale (original-work DNA preservation, new narrative space, core conflict, opening pacing, pacing feasibility); below 80 it rejects automatically and feeds the review comments back to the Architect for regeneration
- New-timeline requirement: fanfic modes (canon/au/ooc/cp) must design an original divergence point; retelling the original plot is not allowed
- Hook Seed Excerpt: at hook payoff time, the Composer extracts the original seed scene's text from chapter_summaries and injects it into the Writer context, replacing the complex lifecycle pressure system
- Review Reject rollback:
inkos review rejectrolls state back to the snapshot before the rejected chapter, discarding downstream chapters and memory indexes - State Validation Recovery: failed state validation automatically retries the settler; if it still fails, the state is saved in degraded mode, with
inkos write repair-statefor manual repair - Audit drift isolation: audit corrections are written to a standalone
audit_drift.md, no longer appended tocurrent_state.md - Title collapse fix: detects theme clustering in recent titles and regenerates titles from new keywords extracted from the prose
- Hook budget hint: a budget warning is shown at ≥10 active hooks, steering toward paying off old debt first
- Chapter-ending summaries: the ending sentences of the last 3 chapters are extracted into context, preventing structural repetition
- Mood/pacing detection: mood-monotony and title-clustering detection; sequence-level warnings do not count toward the revision blockingCount
- Fanfic style extraction:
fanfic initandimport chaptersautomatically generate style_guide.md + style_profile.json - Governed path completion: parent_canon.md and fanfic_canon.md for continuation/fanfic are injected into the Writer through the governed path
- Custom HTTP headers: the
INKOS_LLM_HEADERSenvironment variable injects custom HTTP headers
Bug Fixes
- Chapter-number contamination fix: numbers in narrative text are no longer misparsed as chapter progress
- Hook ordering fix: mustAdvance corrected from descending to ascending (choosing the least recently advanced)
- Outline matching fix: supports chapter-range formats, preventing Chapter 1 from wrongly matching Chapter 10
- approve no longer overwrites snapshots, style extraction degrades gracefully, Studio hot-reloads LLM config, theme persistence
v1.0.2
Bug Fixes
- #127 — Fixed false failure reports when creating books from Studio Web: while background creation is still running asynchronously, the frontend extends its waiting window and no longer prematurely reports
Book not found - Paragraph fragment detection ignores pure dialogue lines, reducing false positives
v1.0.0
InkOS Studio + stability hardening. Upgraded from a CLI tool to CLI + web workbench.
InkOS Studio
inkos studiostarts the local web workbench (Vite + React + Hono, default port 4567)- Book management: create, delete, export (TXT/MD/EPUB), configure
- Chapter review and editing: approve/reject, inline editing, multi-mode revision (polish/spot-fix/rewrite/anti-detect)
- Real-time writing progress: SSE-pushed generation status
- Market radar: AI-driven platform/genre trend analysis
- Analytics: word counts, audit pass rate, chapter ranking, token usage
- AI detection: scan chapters for AI-generation traces
- Style analysis and import: analyze reference text, inject writing style
- Genre management: create/customize genres (fatigue words, pacing rules, audit dimensions)
- Daemon control: start/stop background writing, view event logs
- Truth file editor: view and edit the knowledge base per book
- Config editor: LLM providers, model routing, notifications
Bug Fixes
- Unknown hooks no longer throw on resolve/defer; they are skipped instead
- Studio waits for completion before route navigation after creating a book
- Async creation failures in Studio are exposed to the user
- Validator false positives: fail only on hard contradictions, reducing noise
Chore
- Cleaned up unrelated files brought in by the studio merge (.playwright-cli/, .superpowers/, promo docs)
- Untracked docs/ and autoresearch/, added them to .gitignore
- SKILL.md upgraded to v2.2.0 with a new Studio workflow section
- Trilingual READMEs updated with the Studio release announcement and roadmap
v0.6.3
Bug Fixes
- #113/#109 — StateValidator JSON parsing switched from a greedy regex to a balanced-bracket parser; markdown appended by the LLM no longer breaks parsing
- #114 — The status command counts actual chapter files, no longer affected by poisoned runtime state
- #110 — Book creation is now atomic (temp directory → rename); failures leave no half-created books
- #92/#93 — Agent execution-layer hard limits: write_draft validates sequential writes, revise_chapter validates that the target chapter exists, write_truth_file blocks progress tampering, import_chapters requires ≥2 chapters
- #90 — Paragraph-shape detection moved before persistence (covering the final content after normalize + auto revise)
- #94 — Title dedup: writer prompt constraint + post-write validator detection + automatic renaming
Improvements
- #111 — SKILL.md adds 13 missing commands (eval, consolidate, write rewrite, book update/delete, plan/compose, studio, fanfic show/refresh, genre create/copy)
- #95 — The doctor command adds version migration detection (identifying pre-v0.6 legacy-format books)
- #103 — Added an end-to-end rewrite regression test (rewrite 2 → next should be 3)
- Added the
inkos evalcommand — structured quality evaluation report - SKILL.md version bumped to 2.1.0
v0.6.2
Bug Fixes
- Hook crash (#99/#101/#104) — duplicate active hook families no longer crash; they are absorbed and merged automatically, and a new hook arbitration mechanism reduces duplication frequency
- Local LLM (#100) — local/self-hosted OpenAI-compatible endpoints (Ollama etc.) no longer require an API key
- Zero-character chapters (#105) — truth rebuild no longer overwrites final chapter content
- Wrong chapter numbers (#108/#98) — poisoned manifests are automatically normalized to real progress at bootstrap
- Bad chapter writes (#88) — the state validator errors directly on empty responses, and chapter file saving moved to after validation passes
- Provider 400 (#91) — improved error message for the streaming provider fallback
Improvements
- Paragraph quality (#90) — added short-paragraph detection and paragraph-density drift warnings
- Agent tool constraints (#92/#93) — strengthened boundary constraints in agent tool descriptions, added prohibitive rules to the system prompt
- Windows compatibility: tar commands get --force-local
- README description updated; the OpenClaw link points to the skill page
v0.6.1
- Fixed emphasized hook id normalization
- Fixed poisoned runtime state recovery
v0.6
Structured state + hook governance + length governance.
Focuses on three systemic long-form writing problems: context bloat after 20+ chapters slowing writing down or even causing 400 errors, hooks only being added and never paid off, with a payoff rate near 0%, and 50%+ word-count drift with a normalizer that could destroy chapters.
Architecture
- The pipeline is upgraded to 10 agents: added Planner, Composer, Observer, Reflector, Normalizer
- Truth files migrated to
story/state/*.json(Zod-validated); the Settler outputs a JSON delta instead of full markdown; old books migrate automatically - The SQLite temporal memory database (
story/memory.db) is enabled on Node 22+, retrieving historical facts by relevance createRequirefixes node:sqlite loading under ESM
Hook Governance
- The Planner generates a
hookAgenda(mustAdvance / eligibleResolve / staleDebt), scheduling hook advancement and payoff - The Settler working set expands to
selected ∪ recent ∪ agenda ∪ dormant debt, closing the retrieval blind spot - hookOps adds
mentionsemantics — "merely being mentioned" no longer updateslastAdvancedChapter, preventing fake advancement analyzeHookHealth: active count over the cap / consecutive no-advance / stale unhandled / new hooks without payoff → audit warningsevaluateHookAdmission: duplicate hook families are intercepted automatically, preventing hook bloat
Length Governance
LengthSpec(target / softMin-softMax / hardMin-hardMax) +countingMode(zh_chars / en_words)- One normalization opportunity before audit + one after revision, no brutal truncation
- Safety nets: normalization output under 25% of the original is rejected directly;
stripCommonWrappersremoving more than 50% falls back to the original
Quality
- Cross-chapter repetition detection (Chinese 6-character ngrams / English 3-word phrases)
- Dialogue-driven guidance (interactive scenes prefer dialogue exchanges)
- English variance brief (anti-repetition phrase/opening/ending injection)
- Multi-character scene resistance requirement (at least one direct exchange with resistance)
Bug Fixes
- The user's
INKOS_LLM_MAX_TOKENSnow takes effect as the global cap (#87) stripReservedKeyspreventsllm.extrafrom overriding max_tokens / temperature- Chapter summary dedup: dedup before append + dedup on bootstrap load + JSON auto-repair
- The
consolidateregex supports full-width bracket volume-boundary formats - Bilingual CLI output and logs
- Runtime state poisoning recovery
v0.5.0
Native English writing + system stability fixes.
English Novel Writing
- 10 English genres (LitRPG, Progression Fantasy, Isekai, Romantasy, Sci-Fi, Cozy Fantasy, Tower Climber, Dungeon Core, System Apocalypse, Cultivation)
--lang enflows through the whole pipeline: the Architect generates English foundations, the Writer writes English prose, the Settler produces English truth files, the Auditor audits in English, and the Reviser revises in English- English post-write validator: AI-tell word detection (delve/tapestry/testament etc.), paragraph length, fatigue words
- Automatic chapter title switching:
Chapter X:vs第X章 - EPUB export lang tag adaptation
System Stability
- Atomic write lock:
acquireBookLockswitched from stat+write toopen("wx")exclusive creation, eliminating the race - Scheduler re-entrancy guard: new ticks are skipped while the previous writing/radar round is still running
- Revision consistency: the revision chain uses
finalContentinstead of the original content; spot-fix results are no longer lost - Agent override client isolation: agents with different API keys no longer share connections
- Daemon pid cleanup: stale pid files are removed automatically when startup fails
- Studio startup fix: built JS starts with node instead of tsx
- Import resume count fix:
--resume-fromreports the actual number processed
CLI Enhancements
inkos book delete <id>: delete a book and all its data (--forceskips confirmation)inkos status --chapters: shows per-chapter status and critical issues for failed chapters- Audit JSON parsing tolerance (#51)
write_truth_fileagent tool (#53)- Audit drift corrections auto-injected into the state card (#52)
v0.4.6
Logging system + streaming compatibility + local model tolerance + CLI enhancements.
Structured Logging
- New Logger module: ANSI-colored output (INFO=cyan, WARN=yellow, ERROR=red), JSON Lines file logging
inkos upautomatically writesinkos.log; daemon restarts are traceablewrite next,draft, andupsupport the-q, --quietquiet mode- LLM streaming heartbeat: progress is reported every 30 seconds while the model is thinking (characters received, Chinese character count)
- 17
process.stderr.writecalls in the pipeline replaced with the structured logger
Streaming Compatibility
- Stream auto-fallback: failed streaming automatically retries with sync, so proxies without SSE support still work
- Partial-content recovery on stream interruption: with ≥500 characters already received, the truncated content is returned instead of an error (#21)
- Improved error diagnostics: 400/401/403/429/Connection errors include baseUrl, model context, and troubleshooting hints
inkos doctorprovides targeted hints on failure (check the baseUrl, try stream:false, check the API key)
Bug Fixes
rewritesnapshot restore:particle_ledger.mdchanged from required to optional; non-numeric genres no longer error (#37)rewritefor chapter 1:initBookgenerates snapshot-0 at the end, so chapter 1 can be restored correctly (#34)- Empty chapters from small local models:
parseCreativeOutputgains a 3-level fallback (markdown heading → prose tag → longest prose block); Qwen/Ollama no longer return empty content (#13)
CLI Enhancements
book create --brief <file>: pass in a creative brief; the Architect generates the foundation from your ideas (#43)write rewritefor chapter 1 correctly restores snapshot-0 (previously restore was skipped)
v0.4 (v0.4.0 – v0.4.5)
Continuation + spinoff writing + style imitation + multi-provider routing + post-write validator + hardened audit loop.
Continue an Existing Work
Import an existing novel (single file or a chapter directory) into InkOS; the system splits chapters automatically and reverse-engineers the full set of truth files (world state, hooks, character matrix, etc.), after which write next continues directly.
inkos import chapters 我的小说 --from 已有章节/ # import from a directory
inkos import chapters 我的小说 --from 全书.txt # import from a single file (auto-split on "第X章")
inkos import chapters 我的小说 --from 全书.txt --split "Chapter\\s+\\d+" # custom chapter-split regex
inkos write next 我的小说 # continue seamlessly
Single-file mode splits chapters on 第X章 automatically, and --split <regex> supports custom patterns. Interrupted imports can resume with --resume-from <n>.
Spinoff Writing
Create a prequel, sequel, side story, or what-if line based on an existing book. The spinoff and the parent share the worldview and characters but have an independent plot line.
inkos import canon 烈焰前传 --from 吞天魔帝 # import the parent canon into the spinoff
inkos write next 烈焰前传 # the writer automatically reads the canon constraints
Import generates story/parent_canon.md, containing the parent's world rules, character snapshots (with information boundaries), key-event timeline, and hook status. The writer consults the canon before writing, and the auditor automatically activates 4 spinoff-specific dimensions:
| Dimension | What it checks |
|---|---|
| Parent event conflicts | Whether spinoff events contradict the canon constraint table |
| Future information leaks | Whether characters reference information revealed only after the divergence point |
| Cross-book world-rule consistency | Whether the spinoff violates the parent's world rules (power system, geography, factions) |
| Spinoff hook isolation | Whether the spinoff oversteps and resolves parent hooks |
Activated automatically when parent_canon.md is detected — no extra configuration needed.
Style Imitation
Feed in excerpts from a human-written novel; the system extracts a statistical fingerprint + generates a style guide, automatically injected into the writer prompt for every subsequent chapter.
inkos style analyze 参考小说.txt # analyze: sentence length, TTR, rhetorical features
inkos style import 参考小说.txt 吞天魔帝 --name 某作者 # import the style into a book
Two files are produced:
style_profile.json— statistical fingerprint (sentence-length distribution, paragraph length, lexical diversity, rhetorical density)style_guide.md— an LLM-generated qualitative style guide (rhythm, tone, word preferences, taboos)
The writer reads the style guide for every chapter, and the auditor cross-checks against it in the style dimension.
Post-Write Validator
11 deterministic rules, zero LLM cost, triggered immediately after each chapter is written:
| Rule | Description |
|---|---|
| Banned sentence pattern | 「不是……而是……」 |
| Banned dash | 「——」 |
| Transition-word density | 仿佛/忽然/竟然 etc., ≤1 occurrence per 3,000 characters |
| High-fatigue words | genre fatigue words, ≤1 occurrence per word per chapter |
| Meta-narrative | screenwriter-style narration |
| Report jargon | analysis-framework terms must not enter prose |
| Authorial preaching | 显然/不言而喻 and the like |
| Collective reactions | boilerplate like 「全场震惊」 |
| Consecutive 「了」 | ≥6 consecutive sentences containing 「了」 |
| Overlong paragraphs | ≥2 paragraphs over 300 characters |
| Book-specific taboos | prohibitions from book_rules.md |
When the validator finds an error-level violation, it automatically triggers spot-fix mode for a targeted repair, without waiting for the LLM audit.
Hardened Audit-Revision Loop
Real-world testing found that rewrite mode introduced 6x more AI marker words, so now:
- The automatic revision mode changed from
rewritetospot-fix(only the problem sentences are changed, the rest of the prose untouched) - After revision, AI marker counts are compared; if the revision actually adds AI traces, it is discarded and the original kept
- Re-audit temperature locked at 0 (removing audit randomness; the same chapter no longer fluctuates between 0 and 6 criticals)
polishmode boundaries hardened (no adding/removing paragraphs, no renaming characters, no new plot)
Multi-Provider Routing
Different agents can use different API providers — not just different model names, but entirely different API endpoints and keys. For example, the writer can use a cheap model for fast drafting while the auditor uses a strong model for careful review:
inkos config set-model writer gpt-4o-mini # simple model override
inkos config set-model auditor gemini-2.5-flash \
--base-url https://generativelanguage.googleapis.com/v1beta/openai \
--provider openai \
--api-key-env GEMINI_API_KEY # route through the Gemini API
inkos config set-model reviser claude-sonnet-4-20250514 \
--base-url https://api.anthropic.com \
--provider anthropic \
--api-key-env ANTHROPIC_API_KEY # route through the Anthropic API
inkos config show-models # view the full routing picture
Each agent independently configures --base-url, --provider, --api-key-env, --no-stream. Agents without overrides use the project's default model.
Analytics
inkos analytics 吞天魔帝 # audit pass rate, most frequent issue categories, chapters with the most issues
inkos analytics 吞天魔帝 --json # structured output
Other v0.4 Changes
- Audit dimensions expanded from 26 to 33 (+4 spinoff dimensions + dim 27 sensitive words + dim 32 reader-expectation management + dim 33 outline-deviation detection)
- Auditor web search: era-research genres can verify real events/people/geography online (native search capability)
- Scheduler rewritten: AI pacing (one round every 15 minutes by default), parallel book processing, immediate retry, daily caps
- The reviser gains
spot-fixmode (targeted repair) additionalAuditDimensionsinbook_rules.mdsupports Chinese-name matching- All 5 genres activate dims 24-26 (subplot stagnation / flat arcs / monotonous pacing)
inkos exportsupports--format md,--output <path>,--approved-only- The post-write validator's "consecutive 了" threshold raised from 4 sentences to 6 (fewer false positives in Chinese narration)
- Security hardening: overwrite-protection checks for
init/book create/import chapters, type inference + key validation forconfig set, downgrade protection forupdate,doctorcan test the API outside a project, status display consistency,genre showrejects invalid IDs
v0.3
Three-layer creative rule separation + cross-chapter memory + AIGC detection + Webhook.
Cross-Chapter Memory and Writing Quality
The Writer automatically generates a summary for each chapter and updates the subplot/emotion/character matrices, all appended to the truth files. Later chapters load the full context, so long-running hooks are no longer lost.
| Truth file | Purpose |
|---|---|
chapter_summaries.md |
Per-chapter summaries: characters present, key events, state changes, hook dynamics |
subplot_board.md |
Subplot progress board: A/B/C line status tracking |
emotional_arcs.md |
Emotional arcs: per-character emotions, trigger events, arc direction |
character_matrix.md |
Character interaction matrix: encounter records, information boundaries |
AIGC Detection
| Feature | Description |
|---|---|
| AI-trace audit | Pure rule-based detection (no LLM): equal-length paragraphs, boilerplate density, formulaic transitions, list-style structure, automatically merged into audit results |
| AIGC detection API | External API integration (GPTZero / Originality / custom endpoints), the inkos detect command |
| Style fingerprint learning | Extracts a StyleProfile from reference text (sentence length, TTR, rhetorical features), injected into the Writer prompt |
| Anti-detection rewriting | ReviserAgent anti-detect mode: detect → rewrite → re-detect loop |
| Detection feedback loop | detection_history.json records every detection/rewrite result; inkos detect --stats shows statistics |
inkos style analyze reference.txt # analyze the reference text's style
inkos style import reference.txt 吞天魔帝 # import the style into a book
inkos detect 吞天魔帝 --all # whole-book AIGC detection
inkos detect --stats # detection statistics
Webhook + Smart Scheduling
Pipeline events are POSTed as JSON to a configured URL (HMAC-SHA256 signed), with event filtering (chapter-complete, audit-failed, pipeline-error, etc.). The daemon gains quality gating: failed audits are retried automatically (with raised temperature), and books with consecutive failures are paused.
Genre Customization
5 built-in genres, each with a complete set of creative rules: chapter types, taboo lists, fatigue words, iron language rules, audit dimensions.
| Genre | Built-in rules |
|---|---|
| Xuanhuan | Numerical system, power hierarchy, homogeneous-devour decay formula, face-slap/level-up/reward pacing |
| Xianxia | Cultivation/enlightenment pacing, artifact system, heavenly-dao rules |
| Urban | Era research, business/social-driven plots, era-matched legal terminology, no numerical system |
| Horror | Atmospheric escalation, fear hierarchy, restrained narration, no power audit |
| General | Minimal fallback |
Specify the genre at book creation, and the corresponding rules take effect automatically:
inkos book create --title "吞天魔帝" --genre xuanhuan
Genre rules can be inspected, copied into a project for editing, or created from scratch:
inkos genre list # view all genres
inkos genre show xuanhuan # view the complete xuanhuan rules
inkos genre copy xuanhuan # copy into the project; edit freely
inkos genre create wuxia --name 武侠 # create a new genre from scratch
After copying into a project, add or remove taboos, adjust fatigue words, change pacing rules, or customize the iron language rules — the changes take effect automatically on the next chapter.
Each genre has its own iron language rules (with ✗→✓ examples), enforced by both the writer and the auditor:
- Xuanhuan: ✗ "火元从12缕增加到24缕" → ✓ "手臂比先前有力了,握拳时指骨发紧"
- Urban: ✗ "迅速分析了当前的债务状况" → ✓ "把那叠皱巴巴的白条翻了三遍"
- Horror: ✗ "感到一阵恐惧" → ✓ "后颈的汗毛一根根立起来"
Per-Book Rules
Every book has its own book_rules.md, generated automatically by the architect agent at book creation and editable by hand at any time. Rules written here are injected into every chapter's prompt:
protagonist:
name: 林烬
personalityLock: ["强势冷静", "能忍能杀", "有脑子不是疯狗"]
behavioralConstraints: ["不圣母不留手", "对盟友有温度但不煽情"]
numericalSystemOverrides:
hardCap: 840000000
resourceTypes: ["微粒", "血脉浓度", "灵石"]
prohibitions:
- 主角关键时刻心软
- 无意义后宫暧昧拖剧情
- 配角戏份喧宾夺主
fatigueWordsOverride: ["瞳孔骤缩", "不可置信"] # overrides the genre default
Protagonist personality lock, numerical caps, custom prohibitions, fatigue-word overrides — each book's rules are tuned independently without touching the genre template.
33-Dimension Audit
The audit is refined into 33 dimensions, with the relevant subset enabled automatically per genre:
OOC checks, timeline, setting conflicts, power-scaling collapse, numerical checks, hooks, pacing, style, information overreach, lexical fatigue, broken benefit chains, era research, side-character dumbing-down, side-character tool-ification, diluted payoff, unrealistic dialogue, event-log prose, knowledge-base contamination, POV consistency, equal-length paragraphs, boilerplate density, formulaic transitions, list-style structure, subplot stagnation, flat arcs, monotonous pacing, sensitive-word checks, parent event conflicts, future information leaks, cross-book world-rule consistency, spinoff hook isolation, reader-expectation management, outline-deviation detection
Dims 20-23 (AI traces) + dim 27 (sensitive words) are detected by the pure rule engine with no LLM calls. Dims 28-31 (spinoff dimensions) activate automatically when parent_canon.md is detected. Dim 32 (reader-expectation management) and dim 33 (outline-deviation detection) are always on.
De-AI-ification
5 universal rules + genre-specific language rules control AI marker-word density and narration habits:
- AI marker-word frequency cap: 仿佛/忽然/竟然/不禁/宛如/猛地, ≤1 occurrence per 3,000 characters
- The narrator does not draw conclusions for the reader; write actions only
- No analysis-report language ("核心动机", "信息落差" must not enter prose)
- The same imagery is not rendered more than twice
- Methodology jargon must not enter prose
Lexical-fatigue audit + AI-trace audit (dims 20-23) provide double detection. Style fingerprint injection further reduces AI text characteristics.
Other v0.3 Changes
- Supports OpenAI + native Anthropic + all OpenAI-compatible endpoints
- The reviser supports five modes: polish / rewrite / rework / anti-detect / spot-fix
- Genres without a numerical system do not generate a resource ledger
- All commands support
--jsonstructured output, directly parseable by OpenClaw / external agents - book-id auto-detection: the book-id can be omitted when the project has only one book
inkos updatefor one-command updates,inkos initsupports initializing the current directory- API errors come with Chinese diagnostic hints, and
inkos doctorincludes an API connectivity test