* docs: complete node editor node reference glossary (#107) - generated by new nodes.tools glossary subcommand, 47 categorized pages covering all 403 nodes, docstring gap fixes, help-agent docs-index entries
* docs: fix Jinja2 Format discoverability - document dynamic-input template variables, move node to string page, link key inference from dynamic-input notes, strip links from index summaries
* help agent: keep node reference out of the chat prompt - collapse glossary entries to one pointer line (~19k chars saved), agent retrieves node info via search_docs/read_doc tool calls
* help agent: replace in-prompt docs index with find_docs lookup tool - prompt carries a 13-line section overview (~1.5k chars vs ~66k), pages located via keyword-scored find_docs at runtime
* changelog: help agent prompt slimming + find_docs lookup
* docs: sort node reference index and nav alphabetically by page title
* review: move module constants into top-of-file constant blocks (glossary MAX_DEFAULT_LENGTH; docs SECTION_DESCRIPTIONS, _FIND_STOPWORDS, FIND_DOCS_LIMIT)
* review: word-boundary find_docs scoring with plural/-ing folds, find_docs+section_overview unit tests, jinja2 template field description override
* docs: help agent overview no longer claims an in-prompt index of all documentation pages
* docs: full node docstring audit pass - 335 classes audited by 5 agents, ~89 accuracy fixes (nonexistent/misnamed sockets, wrong behavior claims), ~94 expansions, 5 factually-wrong PropertyField descriptions corrected, glossary regenerated
* refactor: move application settings from modal to main-view Settings tab with sidebar nav, search, and dirty tracking (#108)
* fix: address settings-view review findings (system prompt defaults lost after save, dirty-on-type for prompt overrides, scoped embeddings busy-lock, external-change false positives)
* style: give settings pages a surface-colored canvas so reused editors blend like they did in the modal; anchor env variables in a card with empty state
* style: rename settings groups Creator->Storytelling and General/Gameplay->Game/General, distinct group icons; drop content-classification influence claim
* docs: refresh settings screenshots for the Storytelling and Game/General relabels
* fix: address PR review - decouple settings working copy from shared ws payload, clear saving flag on failed save, gate help-agent config writes on dirty state instead of open settings view, data-drive provider icons
* chore: drop dead null-guard on system-prompt-defaults binding (card is v-if gated on app_config)
* docs: update remaining pages describing the removed settings modal (apis/, client presets, outline, runpod note), fresh per-provider screenshots, help docs-index paths; reword system-prompts client hint
* docs: recapture per-provider API key screenshots as card element shots so each page shows its own provider
* Scene browser landing page: full-page home view with scenes tree, project/file/card deletion, prominent import (#109)
* review: anchor scenes dir on talemate.path.SCENES_DIR, share character card spec detection with loader
* docs: scene browser landing page - new Home Screen & Scene Library page, refresh load/import/harness docs and screenshots, update help docs index
* review: refuse deleting the active scene's project, root-anchored cover asset paths, share media-type map, dedupe delete button template
* import dropzone: accept and document .zip scene archives
* Docker support for Pi Bridge client + encrypted environment variable store (#105)
* Address PR #106 review: env name validation on backend, add-form value/duplicate guards, stale openrouter convenience docs
* feat: per-client auto retry for empty, rate-limited and missing-reasoning responses (#102)
* fix: scope auto-retry alert close to the emitting client
* fix: make auto-retry Abort effective between attempts in scene-free generations
* fix: auto-retry alert was invisible for fast retry sequences - enforce minimum display time, keep content through fade-out, offset below status snackbar
* fix: reset auto-retry alert display window on client content handoff
* fix: address auto-retry review round 3 - client-owned abort latch, reasoning retry extraction, clamped retry config, countdown and layout polish
* fix: discard stale auto-retry abort latch at sequence entry, disable Abort during linger
* fix: explicit dialog choice discards stale auto-retry abort latch
* fix: key auto-retry abort and alert by per-sequence generation id - same-client concurrency (FOCAL streaks, background chats) is normal operation, not experimental
* test: update direct _generate_with_error_handling callers for generation id param
* docs: concurrent requests are used beyond visual prompt generation
* fix: don't consume an active scene's interrupt flag in retry checks, ignore late aborts for finished sequences
* refactor: unify the three auto-retry policy blocks into _auto_retry_or_prompt
* docs: add Mistral to concurrent requests supported clients
* fix: show Context Length input in client edit modal for all client types (#92)
* review: use the dedicated rulesMaxTokenLength ruleset on the Context Length input
* feat: simplified character card import - optional AI generation steps (#98)
* refactor: single source of truth for generation option keys/defaults; document auto-direct coverage of story intent toggle
* ui: collapse granular AI generation options by default, toggle via section header
* docs: note AI generation toggles are collapsed behind the section header
* feat: Pi Bridge client - drive generations through the pi coding agent RPC mode (#97)
* fix: pi bridge - refresh pi model catalog on config save so models.json changes appear without restart
* fix: pi bridge - raise subprocess stream limit so oversized RPC event lines (long thinking blocks) do not fail generation
* docs: pi bridge - note that thinking budgets are provider-enforced and may be advisory
* fix: pi bridge - address PR review (surface pi error text in dialog, drain stderr to avoid deadlock, drop dead get_model_name, docs concurrency list)
* fix: scene export with Reset Progress no longer wipes the live scene
* test: parity guard between scene_export_json reset and Scene.reset()
* refactor: address PR #90 review - shared scene_data_dumps helper, faithful stub serialize, broader parity guard
* refactor: route save_restore through scene_data_dumps; drop now-unused json import
* feat: help chat regenerate moves to a per-message action on the last answer, matching director chat (#74)
* refactor: render the help chat message-actions wrapper only on the last help answer (PR #75 review)
* feat: example dialogue guidance during character creation (#69)
* docs: document example dialogue generation option; update stale test docstring
* docs: refresh character creation screenshots for example dialogue option
* feature(world-state): unify tracked-state quick actions into a single Track State action
* refactor(world-state): address PR review - drop unused character prop, rename defaultInsert, remove comment noise
* Add API handles prompt template option to Text-Generation-WebUI and llama.cpp clients
* Hide prompt-template alert when API handles the prompt template
* Handle reasoning models when API handles the prompt template
* Address PR review: resolve system message on event loop, dedupe llamacpp base url
* Move test imports to top of file per review
* feat: help agent - interactive documentation-grounded help chat (#59)
* feat: help agent links doc references to the published manual
* feat: help agent UX snapshot includes open client/agent settings modal (name, type, selected tab)
* feat: settings modals yield to the help chat drawer (scrimless, no focus trap, shifted left) with a help shortcut in their title bar
* fix: agent modal gains an explicit close button (scrim click was its only close path)
* feat: help agent doc lookups run concurrently via focal; lookups-per-round raised (default 5, max 16)
* feat: help agent can emit in-app navigation links (agent settings, world editor, director console) and deflects scene-content questions to director chat
* feat: help chat gets its own blue message palette (hchat_msg_*) distinct from director orange
* feat: help chat palette - blueGrey messages with blue doc lookup results
* feat: world editor navigation blocks with a dialog when no scene is loaded; chat markdown tables get borders, padding and zebra rows
* fix: address PR review - on_done only on success, single-flight rejection feedback, shared chat-title module, unified reverse_trim_history in util, atomic chat store writes
* test: baseline prompt rendering tests for the help agent (chat, scene-aware, doc-lookup/final-round, title)
* Add 'background' display size for scene illustrations (fills behind scene text)
* Background mode: fill whole scene view, add toolbar Illustration chip, solid input/chips over backdrop
* Background mode legibility: configurable panel opacity and text shadow, solid message chips and input buttons
* Background mode: min-height scene column so short scenes fill the view, 'Display as background' asset menu shortcut
* Review fixes: request uncached illustration asset on menu open, resolve View Image src reactively from cache
* Skill review cleanup: drop dead imageSrc menu-context field, extract assetDataUrl helper, remove unreachable config guards
* fix: don't latch OpenRouter model/provider fetch on failure so it can recover without restart
* fix: use None sentinel for fetch cooldown so low uptime doesn't suppress first OpenRouter fetch
* Add state output passthrough to node-editor nodes (#45)
Any node with a `state` input must expose a `state` output that passes
the input value through. Eleven nodes early in development neglected
this. Add the missing `state` output socket and pass
`get_input_value("state")` through in run() for:
- Counter (util)
- ToggleAgentAction, CallAgentFunctionConditional (agents)
- Sort, MakeDict, MakeList, UUID (data)
- EmitAgentMessage (event)
- ScopedAPIFunction (api)
- WaitForInput (input)
- ActedAsCharacter (raise) — follows the Stop-node precedent, setting
the passthrough before the (always-raised) exception so the socket
can be connected.
* refactor: unify agent and client UX settings on shared ux.schema field framework (#43)
* review fixes: shared conditionMet helper for all condition evaluation sites, add table to FieldType
- **Per-Scene Agent Overrides** — Override agent configuration for a single scene without touching your global config.
- **Message Revision History** — Browse and continue from previous regenerations / revisions.
- **Scene Perspective Overrides** — Set distinct narrative perspectives for the player, NPCs, and narrator.
- **Durable World State Snapshot** — The world state snapshot now persists and updates entities across refreshes.
- **World State Highlights** — Characters, objects and places marked by the current world state snapshot are now clickable in the recent message(s) for additional detail.
Plus 30 improvements and 17 bug fixes
* fix issue where combination of static history entries + best fit context history mode could lead to index error during conversation generation
* 0.37.1
0.37.0
- **Director Planning** — Multi-step todo lists in director chat plus a Generate long progress action for multi-beat scene arcs.
- **Auto Narration** — Unified auto-narration replacing the old Narrate after Dialogue toggle, with a chance slider and weighted action mix.
- **LLM Prompt Templates Manager** — Dedicated UI tab for viewing, creating, editing, and deleting prompt templates.
- **Character Folders** — Collapsible folders in the World Editor character list, synced across linked scenes.
- **OpenAI Compatible TTS** — Connect any number of OpenAI-compatible TTS servers in parallel.
- **KoboldCpp TTS Auto-Setup** — KoboldCpp clients with a TTS model loaded register themselves as a TTS backend.
- **Model Testing Harness** — Bundled scene that runs basic capability tests against any connected LLM.
Plus 27 improvements and 28 bug fixes
* fix white space issues in contextual generate causing problems with list creation tasks
* Implement early termination for SSE events in TextGeneratorWebuiClient when receiving "[DONE]" signal,
* gemma-4 template
* prompt tweaks
* set 0.36.1
* update what's new
* prompt tweaks
* update test baselines
* prompt tweaks
* update changelog
Major Features
- API key encryption at rest using Fernet (OS keyring with file fallback)
- Prompt Manager: unified UI with template groups, priority ordering, override tracking, response extractors
- Scene context history review panel with token budgets and best-fit mode
- Multiple concurrent director chats with auto-generated titles
- Granular scene state reset dialog
- Time passage insert/edit/delete in scene view
- Image analysis via OpenAI-compatible and Talemate Client backends
- Volatile context placement after scene history for improved prompt caching
Improvements
- Configurable narrator generation length per narration type
- AI Aware conversation mode
- Summarizer: custom instructions, writing style inclusion, short line filtering
- Anthropic: adaptive thinking support, updated model list (opus-4-5/4-6, haiku-4-5)
- Google: gemini-3.1 support
- World editor: generate from topic, quick create state reinforcement, reorganized menus
- Node editor: promote scene modules to global
- Frontend: version mismatch detection, hideable bracket content, required scene name
- TTS: improved pause handling, audio tag support for vocal markers (ElevenLabs v3)
- Writing style template for AI-generated instructions
- Added Kimi.jinja2 LLM prompt template
- Option to disable character names in stopping strings
- Client response length enforcement options
- Graduated token count sliders
- Increased summarizer token threshold max
Bugfixes
- Fix bracket/paren/brace terminators stripped from message ends
- Fix colon in conversation causing content loss
- Fix "Use as reference" navigating to blank page
- Fix avatar regeneration and manual regenerate
- Fix conversation agent ignoring generation length
- Fix duplicate length instructions with reasoning enabled
- Fix trailing newline on message edits
- Fix summarize dialogue sending too much context with layered history
- Fix layered history inspection and construction issues
- Fix empty response handling in summarization
- Fix context ID dot notation with dotted character names
- Fix recursive retry in focal agent
- Fix leading whitespace causing duplicate prepared responses
- Fix summarization not stripping ANALYSIS OF lines
- Fix template group selection/removal in prompt manager
- Fix multiline text in parentheses/brackets parser
- Fix determine_character_name resolution
- Fix character activate/deactivate desyncing creative menu
- Fix character image generation missing context
- Fix LMStudio client not sending token limits
- Fix Recent Scene images on newer Chromium
- Fix sequential reinforcement messages cut off at first linebreak
- Fix reinforcement removal not clearing state
- Fixes#252, #256, #258
Deprecations
- Removed context investigations (replaced by AI-assisted RAG mixin)
- Removed deprecated prompt templates (fix-continuity-errors, fix-exposition, etc.)
- Removed conversation/edit.jinja2, auto break repetition, CLI reset layered history
---------
Co-authored-by: theDTV2 <47825738+theDTV2@users.noreply.github.com>
Major features:
- Autonomous scene direction via director agent (replaces auto-direct)
- Inline image display in scene feed
- Character visuals tab for portrait/cover image management
- Character message avatars with dynamic portrait selection
- Pocket TTS and llama.cpp client support
- Message appearance overhaul with configurable markdown display
Improvements:
- KoboldCpp: adaptive-p, min-p, presence/frequency penalty support
- Setup wizard for initial configuration
- Director chat action toggles
- Visual agent: resolution presets, prompt revision, auto-analysis
- Experimental concurrent requests for hosted LLM clients
- Node editor alignment shortcuts (X/Y) and color picker
Bugfixes:
- Empty response retry loop
- Client system prompt display
- Character detail pins loading
- ComfyUI workflow charset encoding
- Various layout and state issues
Breaking: Removed INSTRUCTOR embeddings