mirror of
https://github.com/vegu-ai/talemate.git
synced 2026-08-29 10:08:58 +02:00
* fix: repair force-mode dict artifacts in changelog list fields during reconstruction (#81) * fix: address review - move _LIST_FIELDS to constants block, cover game_state_watch_paths, strict index-key regex
372 lines
64 KiB
YAML
372 lines
64 KiB
YAML
0.39.0.dev:
|
||
features:
|
||
- "Timeline Rollback: A new timeline dialog provides a single restoration UX for returning a scene to any previous point. Drag a slider across the scene's automatic version history to preview the message history at any revision, then either roll the active scene back in place (a backup is written first, and the rollback itself is recorded as a new revision — so the timeline is never destroyed and you can scrub forward again) or fork the revision to a new save. Opened from the scene tools Save menu, from the Fork button on any changelog-backed message (which positions the timeline at that message's revision), or from the Quick Load card menu on the main screen — where it replaces the old Restore from Backup dialog and opens revisions as new, unsaved scenes without loading the scene first."
|
||
- "Character Creation Example Dialogue: AI-assisted character creation (World Editor → Characters → Create and the scene tools creative menu) gained a 'Generate example dialogue' option that generates a few example dialogue lines for the new character, with an optional guidance field to steer how the examples are written (tone, speech patterns, quirks). Off by default."
|
||
- "Scene Visual Manager: World Editor → Scene gained a Visuals tab mirroring the character visual manager, with Background Illustration and Scene Illustration sub-tabs to browse, upload, generate (new or as a variation of a reference image, single or batch), view, and delete scene images — plus per-image actions to set the scene cover image and set or unset the scene backdrop. A Prompt Finalization sub-tab edits the Visualizer agent's per-scene Prompt Finalization overrides directly from the world editor, creating the scene's agent-settings file with the default name when none is linked yet. The scene backdrop can now also be fully unset (not just toggled off), keeping the image in the scene assets."
|
||
- "Help Agent: A new Help agent provides an interactive help chat that answers questions about Talemate itself — settings, agents, clients, the world editor and more — grounded in the bundled documentation, which it can search and read before answering. Opened via the help icon in the app bar, it works with or without a loaded scene, supports multiple persistent multi-turn chats, and runs in the background so it never blocks the main Talemate loop. A per-chat Scene Aware toggle lets a conversation see (or stay unaware of) the currently loaded scene, and each question carries a small snapshot of what you are looking at in the interface so contextual questions like 'what does this setting do?' can be answered. The most recent answer can be regenerated via a button right on the message, matching the director chat. The help chat cannot change anything — scene changes remain the director chat's job."
|
||
- "Scene Backdrop: Any scene illustration can now be set as the scene backdrop — an image that fills the whole scene view behind the messages instead of rendering inline. The backdrop belongs to the scene and is saved with it, so it survives reloads and history edits. Set it via 'Set as scene backdrop' on any illustration's image menu, the 'Set backdrop' button in the Visual Library, or enable 'Auto Backdrop' per visual type (Settings → Appearance → Message Visuals) to have newly generated Scene Backgrounds ('Visualize Scene (Background)') and/or Scene Illustrations ('Visualize Moment') promoted automatically. An 'Immersive' quick-toggle chip in the scene tools turns the backdrop on and off without forgetting the chosen image. Message text sits on translucent panels with a drop shadow for legibility — panel opacity and the text shadow are configurable — and a small marker icon shows which message's image is the current backdrop (click it for the image menu, which stays reachable via an Illustration chip on the message hover toolbar)."
|
||
- "Visual Prompt Finalization: The Visualizer agent gained a Prompt Finalization settings tab defining post-processing actions (exact, fuzzy or regex match and replace, or an AI instruction) that rewrite image prompts right before they are sent to the image generation backend. Actions can target positive and/or negative prompts, be restricted to specific visual types, and be overridden per scene. Characters can define their own actions under World Editor → Characters → Visuals → Prompt Finalization, which run after the agent's. Reusable action sets are managed as a new 'Visual prompt finalizer' template type, including a shipped Ideogram JSON preset that converts the positive prompt into an Ideogram 4.0 structured JSON prompt. Prompt-only generation output is finalized as well, and a new FinalizePrompt node exposes the step to custom node graphs."
|
||
- "New Node Graph Events: Node graphs can now hook into more of this release's features. `agent.visual.prompt_finalize.before` / `.after` fire around visual prompt finalization (mutable prompts, and the `.before` finalizer list can be modified — they fire even with the agent setting disabled, so a graph can act as its own finalizer). `agent.creator.dialogue_examples.before` / `.after` fire around character example dialogue generation (inject instructions, or rewrite the generated examples). `agent.help.chat.before` / `.after` fire around help chat responses. Scene asset mutations gained `asset_deleted`, `scene.backdrop_changed`, `scene.cover_image_changed` and `character.cover_image_changed` alongside the existing `asset_saved`. All are documented in the node editor's Events reference."
|
||
improvements:
|
||
- "Uniform Settings Framework: Agent settings and client settings now share one field-definition schema on the backend and one field renderer on the frontend. Client-specific settings gain the full widget set previously exclusive to agents (sliders, autocompletes, selects with rich choices, per-value notes) plus conditional visibility, and choice lists are delivered to the frontend in a single normalized shape."
|
||
- "MistralAI Client: Added a Concurrent Inference toggle so batch operations can dispatch multiple requests in parallel. Off by default."
|
||
- "Text-Generation-WebUI Client: Added an 'API handles prompt template' toggle. When enabled, requests go to the chat/completions API and text-generation-webui applies the model's prompt template; response pre-filling (coercion) keeps working via the API's continue_ mechanism, and reasoning-model thinking is captured automatically without needing a reasoning pattern. Off by default."
|
||
- "llama.cpp Client: Added an 'API handles prompt template' toggle. When enabled, prompts are rendered through the server's /apply-template endpoint using the model's built-in chat template; response pre-filling (coercion) and reasoning keep working, and thinking-capable templates are asked not to think when reasoning is disabled. Off by default."
|
||
- "Track State: The World State scene tool menu's two separate 'Add tracked world state' and 'Add tracked character state' actions are now a single 'Track state' action. The modal itself lets you choose the target — the world or a specific character — before describing what to track, and the context attachment default and 'Require character active' option adapt to the choice."
|
||
fixes:
|
||
- "OpenRouter Client: A failed model/provider list fetch at startup no longer sticks until the server is restarted — later config saves and client status refreshes now retry it. Setting the API key for the first time during initial setup also correctly triggers the provider fetch."
|
||
- "Generation Error Dialog: When several generations failed at the same time (e.g. an API throttle hitting both a summarization and a background task), only the most recent error could be answered — the earlier generation was never resumed and its result (such as a scene summary) was silently lost. Error dialogs are now queued and answered one after another, and pending dialogs are cancelled cleanly when the scene is unloaded or the frontend disconnects."
|
||
- "Timeline Rollback: Previewing a revision could fail with an 'unhashable type' error when the scene's changelog contained deltas that diverged from the base snapshot — reconstruction now repairs the affected message history (and other list data) instead of crashing the timeline."
|
||
|
||
0.38.0:
|
||
features:
|
||
- "Event Module Auto-Register: Event Modules gained an `auto_register` toggle so a module subscribes to its event as soon as it's registered with the scene, without having to be placed in the scene loop graph."
|
||
- "Per-Scene Agent Overrides: Agent configuration can now be overridden per scene without changing the global config. The Agent Modal gains a Global / Scene mode switch for toggling and editing overrides; choose, swap, or opt out of the override file under World Editor → Scene → Settings."
|
||
- "Player Character Toggle: Added a Make Player Character / Unmark as Player action to the character editor. Promoting a character makes them the player and demotes the previous player to an AI actor; unmarking flips the current player to AI."
|
||
- "Message Revision History: Regenerated AI messages now show a paginator above the message body to browse previous regenerations. The version you're viewing becomes the one the AI continues from."
|
||
- "Scene Perspective Overrides: The scene outline perspective now supports per-speaker overrides for the player, NPCs, and narrator, each falling back to the default when empty. Presets are managed under Settings → Creator → Perspective Presets."
|
||
- "Per-Action Reasoning Override: Force reasoning off for specific agent actions without changing the client's global setting, via the brain icon in the prompt log."
|
||
- "Entity Highlights: Notable characters, items, and places in the most recent scene message are now highlighted as clickable entities — click for a short description of each."
|
||
- "Visualize Context Investigations: Context-investigation messages (entity look-ups, Look at Scene / Character) gained a Visualize action that generates an image into the message, matched to the subject."
|
||
improvements:
|
||
- "Settings UX: Renamed the Creator sub-tab from 'Content Context' to 'Content Classification' to match the field label used in the scene outline editor."
|
||
- "Message Revision History: Continuing a character or narrator message now creates a navigable revision entry tagged 'Continued'. Narrator messages also gain the Continue action on the hover toolbar."
|
||
- "Pydantic Migration: Internal data models across the codebase converted to pydantic for stricter validation. No user-visible behavior changes."
|
||
- "Character Sheet: Removed the read-only Character Sheet dialog and its button from the World State panel — the Manage character button already covers viewing and editing character details."
|
||
- "Message Toolbar: The revision chip on the message hover toolbar now shows the editor's configured revision method (e.g. Dedupe, Unslop, or Targeted Rewrite) instead of the generic 'Editor Revision' label."
|
||
- "Editor Revision Feedback: Triggering a revision from a message now shows a 'Revising' spinner, which clears whether the revision changes the text, produces no changes, fails, or is cancelled."
|
||
- "Editor Revision: Added a Repetition handling setting (Remove / Attempt rewrite) for AI-assisted revision. Remove (default) deletes flagged repetitions; Attempt rewrite asks the model to substitute genuinely different content, falling back to removal only when no meaningful rewrite is possible."
|
||
- "Editor Revision: Context-investigation messages (Look at, Investigate, Query) now support revision, both automatically via a new opt-in target (off by default) and manually via the Revise chip. They also contribute to the repetition corpus so nearby messages dedupe against them."
|
||
- "Frontend Tooling: Migrated the frontend from npm to pnpm for supply-chain hardening, provisioned automatically through Corepack. A 7-day minimum-release-age cooldown blocks brand-new dependency versions, and dependency install/build scripts are blocked unless allowlisted. pnpm 11 requires Node.js 22, now provisioned automatically by the install, update, and Docker build scripts."
|
||
- "Scene Message List: Long scenes render more smoothly when the message history changes. Operations that remove or rearrange messages now re-render only the affected slot instead of every message after the change point."
|
||
- "OpenAI Compatible Client: Added a Parameters config tab with individual toggles for `temperature`, `top_p`, and `presence_penalty`. Toggling a parameter off omits it from the request entirely, for backends that hard-error on unsupported parameters. All three default to on."
|
||
- "llama.cpp Client: Added a Concurrent Inference toggle so batch operations can dispatch multiple requests in parallel against a single `llama-server`. Off by default."
|
||
- "Autocomplete Hints: Autocomplete now accepts a free-form `{...}` hint block at the end of the input to steer the continuation (tone, beats, sensory detail, etc.); the brace block is stripped from the field when the suggestion is accepted. Toggle via the new `Enable Hints` setting on the Creator agent's Autocomplete config (default on)."
|
||
- "Autocomplete Redo/Undo: After an autocomplete suggestion is applied, a chip appears beside the field with Redo and Undo actions. Redo re-runs autocomplete from your original input (including any hint) so you can iterate without retyping; Undo restores the original input."
|
||
- "Contextual Generation Instructions: Instructions you provide when generating field content (character attributes, world entries, history entries, etc.) are now presented to the model as user-given instruction or seed material that must be reflected in the result, so they're followed more reliably. Static history entries in particular now treat your instruction as the seed for the entry, expanding on it instead of occasionally ignoring it."
|
||
- "Node Editor Log: Log entries now show a right-aligned `HH:MM:SS.mmm` timestamp, making it easier to correlate them with scene activity."
|
||
- "World State Snapshot: The Entity Highlights prompt now sees the full scene context rather than just the last 10 dialogue lines, and the analyzed 'current moment' is tightened to the most recent lines so highlights stay anchored to the active beat."
|
||
- "Durable World State Snapshot: The world state snapshot now carries entities forward across refreshes instead of regenerating wholesale, updating what changed and dropping entities that are no longer relevant. Stale entries are auto-evicted after several untouched updates. Ctrl/Cmd-click the refresh button to wipe on demand, or disable durability in the world state agent config."
|
||
- "World State Snapshot Context Pinning: The world state snapshot can now be pinned into the conversation, narrator, and scene-analysis prompts so its tracked entities inform dialogue, narration, and planning. Off by default."
|
||
- "World State Snapshot Custom Instructions: Added a Custom instructions field to the world state agent config to steer what the snapshot focuses on. Empty by default."
|
||
- "World State Snapshot Memory Recall: The world state agent now pulls relevant long-term memory into snapshot generation, so the snapshot can build on established lore and earlier scene history. Semantic recall is on by default."
|
||
- "World State Snapshot Background Generation: When the world state agent's client supports concurrent inference, the snapshot now generates in the background instead of locking the scene input. Manual refreshes work the same way and can be cancelled mid-generation."
|
||
- "HuggingFace Token: Added a HuggingFace access token to the application settings for downloading gated model weights such as the Pocket TTS voice-cloning model. It can also be set directly in the Pocket TTS agent config."
|
||
- "Inference Presets: Added an 'Apply to all' action to the inference parameter editor that copies the current preset's values to every other preset in the group. The Reset action now asks for confirmation as well."
|
||
- "Inference Presets: Widened the adjustable range and refined the step increments on several inference parameter sliders so presets can be tuned more precisely."
|
||
- "More Autocomplete Fields: The character actor's Add Dialogue Example field and the world editor's World information field now support autocomplete (Ctrl+Enter), with the same hint and Redo/Undo affordances as other generated fields."
|
||
- "Response Length Enforcement: Added an Adaptive option to the client's response-length setting, now the default. When reasoning is enabled it relies on length instructions alone, which reasoning models follow well, and drops the token cap that could otherwise cut a response off while the model is still thinking. With reasoning off it falls back to capping tokens and sending instructions."
|
||
- "Reasoning Validation Pattern: Clients can now define a pattern marking the start of a model's reasoning, alongside the existing strip pattern. When a model doesn't actually reason (as can happen with abliterated variants), its response is accepted as-is instead of erroring out. Built-in templates for Qwen, Gemma, GPT-OSS, and Seed set it automatically."
|
||
- "Reasoning Template Defaults Indicator: When a model's prompt template supplies a default strip or validation pattern (as the built-in Qwen, Gemma, GPT-OSS, and Seed templates do), the client's Reasoning tab now shows a 'Template default' chip beneath the field — with a tooltip naming the template — so it's clear the value is template-provided rather than only hinted at by the field placeholder. The chip disappears once you enter a custom value."
|
||
changes:
|
||
- "World State Snapshot Cadence: The snapshot now refreshes per individual character turn rather than per full scene round. The default interval was raised from 5 to 10 to keep the effective cadence comparable."
|
||
fixes:
|
||
- "Google Client: Fixed the 'Setup incomplete' status leaking into the client's model name. Removing then re-adding the API key could persist 'Setup incomplete' as the model, leaving the client looking configured while every request failed with HTTP 400. The incomplete-setup state is now reported as an error message without overwriting the model, and a client that already has the bad value persisted is healed to report 'No model loaded' instead of sending the invalid model to Google."
|
||
- "Anthropic / OpenRouter Clients: Fixed the 'Optimize for Prompt Caching' toggle not actually enabling caching on Anthropic — the required `cache_control` parameter was never sent. It is now sent when the toggle is on, and the OpenRouter client does the same for `anthropic/*` models. Note: enabling caching for Anthropic via OpenRouter forces routing to direct Anthropic."
|
||
- "Game Loop Event: Fixed an internal scene-loop event being constructed with the wrong scene reference, surfaced by the pydantic migration."
|
||
- "Conversation Agent: Stopped injecting `#` into the LLM stop-sequence list on every conversation turn."
|
||
- "Scene-Group Templates: Templates created via the prompt manager under the `scene` agent prefix are now resolvable from Jinja `{% include %}` calls regardless of the active agent type."
|
||
- "Intro Message TTS: Fixed the scene tools audio control not activating when TTS was manually triggered for the intro message."
|
||
- "Create Pin: Fixed the Create Pin action on narrator messages staying clickable while the UI was locked during generation; it now respects the lock."
|
||
- "Message Toolbar: Fixed the message hover-toolbar actions and double-click editing staying available while a background agent operation was running. They now disable for the duration, with the hint reading 'Editing locked'."
|
||
- "Create Pin: World entries created via the Create Pin message action are now marked Include only when pinned, so they surface only through the pin and aren't retrieved as ambient memory."
|
||
- "Status Snackbar: Fixed an empty grey toast flashing after operations that completed without a visible change. Cancellation toasts that were previously swallowed now display."
|
||
- "Node Editor Module Properties: Fixed boolean property checkboxes appearing unresponsive — clicks updated the value but the checkbox didn't repaint until focus moved elsewhere. They now commit on change."
|
||
- "Onboarding Wizard: Fixed the long-term memory setup step being non-scrollable on shorter viewports, which could push the 'Apply & finish' button below the fold. The step content now scrolls while the footer actions stay in view."
|
||
- "Scene Forking: Fixed forks and rollbacks created from the changelog UI sometimes failing to load with a 'message Field required' error. Affected history entries are now repaired during reconstruction so the scene loads."
|
||
- "Message Toolbar Actions: Fixed deletes, edits, and revision swaps made from the message toolbar not being persisted to the changelog right away — they only landed at the next scene turn or manual save. With autosave on, they now write through immediately, so forking or rolling back from the changelog UI reflects those changes without the user having to save first."
|
||
- "GPU VRAM: Switching scenes now releases the GPU memory that local CUDA work (embeddings, TTS) leaves reserved, instead of holding it for the rest of the session where it could leave too little VRAM to load another scene. Can be turned off under Settings → Game → General."
|
||
- "Autocomplete: Fixed contextual autocomplete (character attributes, world entries, scene intros, and similar fields) sometimes repeating the text you had already typed instead of only continuing from where you left off."
|
||
- "HuggingFace Prompt Template Lookup: Fixed automatic prompt-template detection hanging indefinitely when HuggingFace can't be reached (e.g. network or IPv6 routing issues). The lookup now times out, logs a warning, and lets startup continue instead of stalling silently."
|
||
0.37.1:
|
||
fixes:
|
||
- "Scene History: Fixed a crash when generating dialogue in long scenes that combine layered history with pre-established (static) history entries. The affected scene could become unplayable until its layered history was manually edited."
|
||
0.37.0:
|
||
features:
|
||
- "System Prompt Template Variable: Added {{ system_prompt }} template variable for system prompt overrides. Use it to include the default system prompt within a custom override, at both the app and client level."
|
||
- "Gamestate Path Template Helper: Added a `{{ render_game_state(\"path/to/var\") }}` Jinja global usable in prompt template overrides. Renders a targeted slice of the gamestate using the same data-block formatting as the full GAMESTATE block, with optional `title` and `max_gamestate_tokens` arguments. Renders empty when the path does not resolve. Backed by a new shared `get_path_value` helper in `talemate.util.path`."
|
||
- "Manual Scene Direction Turn: Added a button to the director scene tools menu to manually trigger a scene direction turn. Useful when scene direction is enabled but auto progression is off. Supports optional one-off instructions via Ctrl+click."
|
||
- "Auto Narration: Replaces the old Narrate after Dialogue toggle with a unified auto-narration action on the Narrator agent. A master chance slider gates whether anything fires per actor turn, and a weighted action mix decides which narration runs (Progress Story, Narrate Scene, or Narrate Environment). Suppresses itself while scene direction is active by default."
|
||
- "Visual Scene Tools: Organized the visual tools menu into per-character submenus, matching the world scene tools pattern."
|
||
- "Section Format: Per-client setting to control how prompt sections are formatted. Choose between Markdown (## headings) and XML (<SECTION>...</SECTION> tags). Found in the client configuration next to the data format setting."
|
||
- "Director Planning: The director can now build and track task lists. In normal director chat modes (Normal / Decisive / No Spoilers) the director can autonomously spin up a short todo list for multi-step work and tick tasks off as it completes them. A new Generate long progress dialog on the scene tool bar kicks off the other flow, creating a multi-beat scene arc from a short seed and executing every beat sequentially in a dedicated Generate Arc chat — with outline creation, critique, and beat-by-beat execution, and configurable dialogue ratio and pacing. Both flows share the same plan schema and Plan banner in the Director Console."
|
||
- "OpenAI Compatible TTS: Now supports multiple backends. Each has its own base URL, API key, model, and voice list. Voices auto-fetch from servers that expose a listing endpoint, and can be added manually for those that don't."
|
||
- "KoboldCpp TTS Auto-Setup: KoboldCpp clients with a TTS model loaded are automatically registered as a TTS backend. The backend's config persists across restarts; it's auto-enabled when the model is loaded and auto-disabled when it isn't."
|
||
- "Scene Perspective: Added a perspective field to the scene outline editor, allowing users to view and set the narrative perspective and tense (e.g., 'Third person limited, past tense'). Also exposed as a context ID (story_configuration:perspective)."
|
||
- "Prompt Logging: Set TALEMATE_LOG_PROMPTS=1 to write full prompt+response data to logs/prompt_log.jsonl for debugging and analysis."
|
||
- "Asset Exists Node: Added an allow_partial option that enables startswith matching instead of exact asset ID matching."
|
||
- "Prompt From Template Node: Added a dedupe property (default on) to control prompt deduplication. Useful for templates with structured repeated content like beat listings that should not be deduplicated."
|
||
- "Dict Get (Path) Node: Retrieves a value from a nested dict (or list-of-dicts) using a dotted path such as `modes.generate_arc.close_arc` or `items.0.name`. Returns a `found` flag so falsy values can be distinguished from missing keys, and accepts a `default` input for when the path does not resolve."
|
||
- "As Number Node: Added a `default` input socket that substitutes when the primary `value` is None or unresolved. The two sockets are grouped so either alone satisfies the input requirement, and the default is coerced to the configured number_type (int/float)."
|
||
- "Gemma 4 Prompt Template: Added a prompt template for Google's Gemma 4 model family, with support for toggling thinking mode via the reasoning tokens setting."
|
||
- "Advance Time: Moved time tools into a dedicated sub-component with grouped presets (Minutes, Hours, Days, Weeks, Months, Years) and a custom time dialog for arbitrary durations."
|
||
- "LLM Prompt Templates Manager: Added a dedicated UI tab for viewing, creating, editing, and deleting LLM prompt templates. Built-in templates are read-only and can be copied to user templates. User templates are stored in std/user/ and gitignored. GGUF/llama.cpp chat templates can be used directly."
|
||
- "Character Folders: Optionally organize the World State Manager character list into collapsible folders. Assign from the character editor; rename from the sidebar. Folder assignments sync across scenes linked to the same shared world context."
|
||
- "Model Testing Harness: Added a new bundled scene that runs a suite of minimum-viability tests against a connected language model client"
|
||
fixes:
|
||
- "Message Regeneration: Fixed a bug where regenerating a message that fails (e.g., missing agent or function) would permanently remove the original message from the scene. The original message is now restored to both history and UI on failure, and unhandled exceptions during regeneration are caught."
|
||
- "Anthropic Client: Fixed generation error caused by missing required max_tokens parameter when response length capping is disabled. Now defaults to the model's API output token limit."
|
||
- "Anthropic Client: Cleaned up supported models list, removing outdated dated model IDs."
|
||
- "Reasoning Pattern: Fixed client reasoning pattern round-tripping through the default fallback. Blanking the pattern in the client config no longer silently re-saves as `.*?</think>`, and the template-derived pattern (e.g. Gemma 4's `<channel|>`) is now correctly adopted when the stored pattern is empty. The Client Config placeholder also shows the actual template-derived default instead of a hard-coded value."
|
||
- Fixed crash in voice library character manager when a character was deactivated.
|
||
- Fixed blank page on some Windows 10 systems where JavaScript files were served with incorrect MIME type (text/plain), causing Chromium-based browsers to reject module scripts.
|
||
- Fixed "No episodes available" placeholder being selectable in the episode list.
|
||
- Fixed response extraction failing when only a closing anchor tag was present in the LLM response (e.g., `</PHASE_INTENT>` without `<PHASE_INTENT>`).
|
||
- "Text-Generation-WebUI / KoboldCpp: Fixed SSE streaming crash caused by unhandled [DONE] sentinel event, which resulted in a JSONDecodeError that discarded the entire generated response."
|
||
- "TabbyAPI: Fixed empty responses caused by the streaming parser only appending content on chunks that contained a usage block. Since usage is only sent on the final chunk (and only when explicitly requested), all content chunks were silently discarded. Content is now appended on every chunk, and the completions endpoint also requests `stream_options.include_usage` so token counters are populated."
|
||
- "Director actions: Removed redundant fix_instructions LLM call from direct_scene actor path. The FOCAL callback metadata already prevents verbatim dialogue in director instructions."
|
||
- "Introduce Character: Fixed the advanced introduce dialog (Ctrl+click) sending scene context as instructions to the determine-character-name template instead of the actual user instructions. The instructions textarea is now always visible in the advanced dialog."
|
||
- "Unslop: Fixed a bug where the unslop revision could hallucinate extra content, adding duplication and redundancy from previous entries. Fixes that are substantially longer than the original text are now discarded."
|
||
- "Encryption: Fixed API keys in agent action configs (e.g., OpenAI-compatible TTS, visual backends) being stored in plaintext. The encryption walker now handles the nested AgentActionConfig structure where the key is wrapped in a {value: ...} dict."
|
||
- "Agent Config: Stopped persisting unified_api_key fields to config.yaml. These are static reference pointers (e.g., 'openai.api_key') defined in code and never change, so saving them was unnecessary."
|
||
- "Contextual Generate: Fixed list-type generation prefilling an empty line after '1.', which caused some LLMs to produce empty lists."
|
||
- "Contextual Generate: Added a Cancel button to the generate dialog and moved generation to a background task so the interrupt signal is actually processed mid-generation (previously the websocket receive loop was blocked until the generation finished, defeating the purpose of any cancel)."
|
||
- "Autocomplete: Moved autocomplete (dialogue, narrative, and contextual generate variants) to a background task so the websocket receive loop is no longer blocked during typeahead generation. The status snackbar now shows a cancel button while autocomplete is running. Also fixes a deadlock where an empty model response during autocomplete would freeze the UI: the empty-response dialog (Retry/Cancel/Ignore) couldn't be processed because the receive loop was blocked, leaving the scene input permanently disabled regardless of which option was clicked."
|
||
- "UI Lock on Cancel: Fixed the scene input staying disabled after cancelling any background generation (autocomplete, narrator action, conversation turn, character progression, etc.). The set_loading wrapper now always clears the busy status on GenerationCancelled, not just when set_error is enabled, so the frontend's busy lock resolves and the input becomes usable immediately."
|
||
- "World State Manager / Editor: Fixed a deadlock when cancelling an LLM connection error dialog (Retry/Cancel/Ignore) raised during Refresh/Reset State (character and world reinforcements), Apply Template(s), Generate Dialogue Instructions, Regenerate History Entry, or Revise Message. These handlers ran the generation inline on the websocket receive loop, so the cancel response had nowhere to go and the operation hung until the underlying connection eventually timed out — leaving the World State card busy indefinitely. They now run as background tasks with a cancellable status snackbar, and the affected components clear their local busy state on cancel/error too."
|
||
- "Narrate Progress: Fixed narration sometimes generating screenplay-style dialogue entries instead of continuous narrative prose."
|
||
- "Advance Time: Fixed toolbar time advancement being completely non-functional due to a missing websocket handler. Also fixed invalid ISO 8601 duration strings for the 1 week and 2 weeks options."
|
||
- "Prompts UI: Fixed the template preview CodeMirror editor being clipped at the bottom across the Active, group, and LLM prompt template tabs, so the bottom scrollbar is fully visible."
|
||
- "Node Graph: Fixed `data/MakeDict` and `data/MakeList` leaking their initial value as a shared mutable reference across graph executions. Downstream in-place mutations (e.g., writing into a dict fed into SetState) would persist on the node and appear on the next run as stale data. Both nodes now deep-copy their configured default before emitting it."
|
||
- "Function Argument Node: Fixed a `TypeError` when a function callback (e.g., `roll_dice`) was invoked with a `None` argument value and the argument was typed as `int` or `float`. `None` is now passed through unchanged for numeric argument types instead of attempting `int(None)`/`float(None)`. The `str` and `bool` coercion paths are unchanged (`None` continues to surface as `\"None\"` and `False` respectively)."
|
||
- "Character Visuals: Fixed an infinite loop in the cover image and portrait tabs that spammed `scene_assets/search` requests at the backend whenever a character had no scene assets to fall back on as references. The reference-asset search now runs at most once per character, breaking the watcher feedback loop that previously kept firing throughout the time the Generate dialog was open."
|
||
- "macOS Modifiers: Ctrl+click affordances throughout the UI now also accept Cmd (Meta) on macOS, where the OS reserves Ctrl+click for the system context menu. Tooltips, hints, and docs label the modifier as Cmd on Mac and Ctrl elsewhere. Affects regenerate, scene tools (narrator/director/actor/creative), world state manager, contextual generate, message asset image, autocomplete (Ctrl+Enter), and history navigation. (#261)"
|
||
- "Game Loop Actor Iter: Fixed a bug where the `game_loop_actor_iter` event was only firing for player turns, so agents that listen for actor iteration (like passive narration) silently skipped AI turns."
|
||
- "OpenRouter: Fixed redundant provider/model list fetches when multiple OpenRouter clients are configured. Concurrent `status()` calls all saw the fetched-flag as still false and each kicked off its own HTTP request; the fetches are now serialized with an asyncio lock and double-checked locking so only one request runs."
|
||
- "Character Prompts: Fixed duplicated character description in prompts. When the LLM-generated character sheet contained a `description` attribute (common — the extractor often emits one), it was rendered alongside the standalone description field, repeating the same text twice. Templates that render both now filter `description` out of the sheet (case-insensitive). Affects the dialogue, narrator, director (voice assignment), and creator (dialogue examples, dialogue instructions, character goals, contextual generate) prompt paths."
|
||
- "RAG Query Generation: Fixed the analyze-text-and-generate-rag-queries template (used by the long-term memory retrieval flow) ignoring the volatile context placement setting. Dynamic instructions and the passed-in RAG context were always pinned at the top of the prompt, defeating prompt caching even when it was enabled on the client/agent. Volatile pieces are now split out and positioned via volatile_context_placement, matching the rest of the prompt set."
|
||
- "Character Memory: Fixed Character.commit_to_memory fragmenting a character's description into one vectordb entry per line. Multi-line descriptions are now stored as a single entry, matching how every other base attribute is committed."
|
||
- "Toggle Message Visibility: Fixed the unhide path in the `ToggleMessageContextVisibility` node and the Game API's `show_message` calling a non-existent `message.show()` method, which crashed instead of unhiding the message. Both now correctly call `message.unhide()`."
|
||
- "Node Definitions Export: Fixed `validate_registry_path` running the expensive `export_node_definitions()` walk before checking cheap argument validity. Empty or single-segment paths now raise immediately, and the export — which transitively crashed serializing `GetWebsocketRouter` when no frontend was attached — is no longer reached on bad input."
|
||
- "Get Websocket Router Node: Fixed the router choice list crashing with `'NoneType' has no attribute 'routes'` when no frontend websocket handler was attached (CLI usage, tests, startup). The choice list now returns empty in that case, allowing graph serialization and validation to proceed."
|
||
- "Client Repetition Break: Fixed `ClientBase.jiggle_enabled_for` crashing with AttributeError when called outside an `ActiveAgent` context (the `active_agent` ContextVar default is None). Now returns False for that case, matching the no-agent-attached behavior."
|
||
- "Scene Character Lookup: Fixed `Scene.character_is_active` crashing with AttributeError when passed a name that's not in `character_data`. Now returns False for unknown names instead."
|
||
- "World State Templates: Fixed `Group.sanitize_data` raising `KeyError` when loading a group YAML containing a template with no `template_type` field. The missing-type branch now correctly skips the invalid-type branch instead of trying to delete the same key twice."
|
||
- "Async Tools — debounce: Fixed the `debounce` decorator never actually cancelling prior calls. The `asyncio.create_task` return value was not assigned back to the `task` nonlocal, so every debounced call eventually ran. Only the most recent call now survives, as intended. (No in-tree callers; this is a defensive fix for the helper itself.)"
|
||
- "Async Tools — shared_debounce: Fixed `shared_debounce` treating an empty dict (`{}`) passed as `tasks=` as a request to use the global `TASKS` registry. The check now correctly distinguishes `None` (use global) from an empty caller-supplied dict (use it as-is)."
|
||
- "Message Regeneration: Fixed `regenerate_message` crashing with AttributeError or TypeError when the underlying CharacterMessage had a missing character or was a static player line. The character path now returns `None` cleanly in those cases and the caller short-circuits — matching how the outer `regenerate()` already handled the no-result path."
|
||
- "Client Auto-Disable: Fixed `ClientBase.toggle_disabled_if_remote` raising AttributeError when called against a remote-host client. The disable assignment now writes through to `client_config.enabled` (the underlying field) instead of the read-only `enabled` property."
|
||
- "Character Card Import — Gender Field: Fixed character cards with a `gender` field crashing the importer with AttributeError. `Character.gender` is a read-only property backed by `base_attributes['gender']`; the loader now writes through to the underlying base attribute."
|
||
- "Character Card Import — V0 JSON: Fixed V0-shape JSON character cards being recognised by `identify_import_spec` but rejected by `load_character_from_json` with `UnknownDataSpec`. V0 cards now load via the same top-level path as V1, matching the existing image-metadata loader."
|
||
- "Pin Active Check: Fixed `WorldStateManager.is_pin_active` returning whether the pin *exists* instead of whether it's *active* (the `.active`-flag check was unreachable behind a containment-check return). The Is Pin Active node now correctly reflects the pin's actual active state, so inactive pins no longer appear active to graphs branching on this output."
|
||
- "Summarizer Previous Summaries: Fixed the non-layered-history branch of `SummarizeAgent.previous_summaries` crashing with AttributeError. `archived_history` stores dicts (via `model_dump`), and the code accessed `entry.text` instead of `entry[\"text\"]`. Now reads via dict subscript, matching the rest of the module."
|
||
- "Changelog `latest_revision_at`: Fixed the helper returning the wrong revision (or None) for a given timestamp. The iteration overwrote the best match with progressively smaller revs and broke early on a non-matching first entry, so it returned either None or the *least* qualifying rev — never the greatest as documented. Now correctly returns the greatest rev whose timestamp is ≤ the cutoff. (No in-tree callers; defensive fix for the helper itself.)"
|
||
- "Update Config: Removed the dead Config-object branch in `update_config`. The branch had been broken since the pydantic v1→v2 migration (iterated `Config.model_fields` expecting FieldInfo objects with `.name`, but v2 returns a `dict[str, FieldInfo]`) but never surfaced because all callers pass dicts. The signature is now `dict` only; removing the dead path simplifies the helper instead of papering over the bug."
|
||
improvements:
|
||
- "System Prompt Override Indicators: The system prompt override list now shows a pencil icon next to entries that have an active override, making it easy to see which prompts have been customized."
|
||
- "Search Strictness: The distance_mod embedding preset value is now a float (was int) with a range of 0.1–2.0, allowing both tighter and looser similarity matching. A 'Search Strictness' slider is now available in the Context Database UI, letting users tune search sensitivity on the fly. Changes persist to the active embedding preset immediately."
|
||
- "Embeddings Device Switching: Changing the embeddings device (e.g., CPU to CUDA) no longer requires a restart. The old model is properly released from ChromaDB's class-level cache and GPU memory is freed before loading the new model."
|
||
- "Context Formatting: The |condensed template filter no longer permanently compacts multi-line context (e.g., world info, memories, pins) into a single line when sending prompts to the LLM. Formatting is now only compacted temporarily for deduplication comparison and restored to its original multi-line structure afterwards."
|
||
- "Client Config UX: Moved advanced settings (Inference Presets, Structured Data Format, Section Format, Response Length Enforcement, Prompt Caching, Rate Limit) into a dedicated Advanced tab to declutter the general view. A convenient link in the general tab provides quick access. Toggling Simple View on now resets to the General tab, and switching clients always starts on General."
|
||
- "Prompts Tab Alert: The top-level Prompts tab now shows a warning icon when any active template overrides are outdated, so you can spot them without opening the tab."
|
||
- "Action Confirm Timeout: The director chat action confirmation timeout is now configurable (0–60 minutes, default 3). Set to 0 to wait indefinitely. Found in the Director Chat settings under Action Confirmation."
|
||
- "Rewrite Revision: Collapsed the targeted rewrite method from two prompts into one. The analysis and rewrite are now produced in a single LLM call with the final revision extracted from a <REVISION> tag, halving latency and token cost. Added a length guardrail that discards rewrites substantially longer than the original (mirroring the unslop safeguard), and a dynamic response length budget sized to the draft."
|
||
- "Host and Port Configuration: The frontend default port is now 8082 (was 8080) to avoid conflicting with llama.cpp. Both the backend and frontend host/port can now be configured via `TALEMATE_BACKEND_HOST`, `TALEMATE_BACKEND_PORT`, `TALEMATE_FRONTEND_HOST`, and `TALEMATE_FRONTEND_PORT` environment variables, in addition to the existing CLI flags. (#254)"
|
||
- "Template Preview Shortcuts: The Active Templates preview now has an Override in… menu to create or edit an override in the user, scene, or any custom group, plus a Go to source button that jumps to the resolved template's group."
|
||
- "Scene Direction Node: The default scene loop's Scene Direction node now sets `max_actions` to 0 (use agent default) instead of hardcoding 10, so the director agent's configured `max_actions_per_turn` takes effect without node-level override."
|
||
- "Player Direction Input: Type `#text` in the main input box to insert a player-authored director message into the scene and append it to the scene-direction history as a user instruction, without taking a conversation turn. Use `##text` to do the same while keeping your turn. Requires Scene Direction to be enabled on the Director agent."
|
||
- "Scene Direction Instruction Templates: The general director instructions and per-scene-type instructions now accept an Instruction template field — a Jinja2 template basename from the scene's template directory that is rendered alongside the raw instruction text (addon, not override). Useful for keeping shared rules in one file and including them across multiple scenes or scene types. Selectable via dropdown in the World State Manager scene direction UI."
|
||
- "Anthropic: Added claude-opus-4-7. The model rejects temperature/top_p/top_k entirely and only accepts adaptive thinking (budget mode is forced to adaptive when reasoning is enabled). The effort selector also gains an 'xhigh' option that sits between 'high' and 'max'."
|
||
- "Pocket TTS v2: Upgraded to pocket-tts v2 with a new int8 quantize toggle for ~30% faster CPU inference. Existing configs auto-migrate on next load."
|
||
- "Prompt Deduplication: Now opt-in per client and off by default. Added a `Deduplicate Prompts` toggle to the client Advanced tab. Dedupe was originally added when context windows were a few thousand tokens and every token mattered; with modern 16k–1M context windows the savings rarely justify the rewrites, which break prompt caching. Enable only when RAG injection is producing substantial duplication and the context window is tight."
|
||
migrations:
|
||
- "Default frontend port changed from 8080 to 8082. Update any bookmarks or reverse-proxy configs that pointed at `localhost:8080`. To keep the old port, set `TALEMATE_FRONTEND_PORT=8080` before launching."
|
||
- "Docker compose variable `FRONTEND_PORT` renamed to `TALEMATE_FRONTEND_PORT`. If you had `FRONTEND_PORT` set in a `.env` file or your shell, rename it. The new variable controls both the published host port and the port uvicorn binds inside the container."
|
||
- "Docker compose variable `BACKEND_PORT` renamed to `TALEMATE_BACKEND_PORT`. Same migration as above — rename in any `.env` files or shell environments. The new variable controls both the published host port and the port uvicorn binds inside the container."
|
||
0.36.1:
|
||
features:
|
||
- "Gemma 4 Support: Added prompt template for Gemma 4 models."
|
||
fixes:
|
||
- "Contextual Generate: Fixed white space issues that caused problems with list creation tasks."
|
||
- "Text-Generation-WebUI: Fixed SSE event termination when receiving the [DONE] signal."
|
||
- "Narrator: Prompt tweaks for narrator progress."
|
||
0.36.0:
|
||
features:
|
||
- "Prompt Manager: The prompt template system has been rebuilt into a unified Prompt Manager accessible from the main UI. Templates are organized into groups with a configurable priority order controlling which overrides take effect. The resolved template tree is color-coded by source group, and recently rendered templates and sent prompts can be inspected with direct navigation to the source for editing."
|
||
- "Context History Review: A new context review panel visualizes how scene history is rendered into context for AI prompts, broken into sections with per-section token counts and budget allocation. A new best-fit mode automatically distributes budget across layers to cover the full timeline with a detail gradient — compressed at the start, detailed at the end."
|
||
- "Multiple Director Chats: The director chat now supports multiple concurrent conversations, each with its own message history and mode settings. Titles are auto-generated after the first exchange."
|
||
- "Scene State Reset: A new dialog provides granular control over resetting scene data — context DB, history, intent state, per-agent cached states, and reinforcements can be selected individually. Replaces the previous scattered reset commands with a single unified interface."
|
||
- "Time Passage Management: Time passage messages can now be inserted, edited, and deleted directly through the scene view. Layered history statistics including compression rate are now displayed in the history tools menu."
|
||
- "Image Analysis via Local Clients: Image analysis now supports two new backends: OpenAI Compatible for any OpenAI-compatible vision endpoint, and Talemate Client which uses any vision-capable Talemate LLM client."
|
||
- "API Key Encryption: API keys stored in config.yaml are now encrypted at rest. The encryption key is stored in the OS keyring when available, with a file-based fallback for Docker and headless environments. Existing plaintext keys are encrypted automatically on next save."
|
||
- "Volatile Context Placement: Volatile content — such as long-term memory, dynamic notes, and other frequently changing context — can now be placed after the scene history instead of before it. Improves prompt caching hit rates on API backends that support it. Disabled by default."
|
||
improvements:
|
||
- "Narrator: Generation length is now configurable per narration type."
|
||
- "Conversation: Added AI Aware mode where characters know they are AI personas."
|
||
- "Anthropic: Adaptive thinking support with configurable effort level."
|
||
- "Anthropic: Added claude-opus-4-5, claude-opus-4-6, and claude-haiku-4-5."
|
||
- "Google: Added support for gemini-3.1 models."
|
||
- "TTS: Audio tag support for vocal markers (e.g., [laughing]) with ElevenLabs v3."
|
||
- "World Editor: Generate from Topic for creating world entries from a prompt."
|
||
- "Frontend: Version mismatch detection between frontend and backend."
|
||
- "Summarizer: Custom instructions and writing style included during summarization."
|
||
fixes:
|
||
- "Fixed `)`, `]`, and `}` terminators being stripped from the end of messages."
|
||
- "Fixed `:` in conversation generation causing content loss."
|
||
- "Fixed conversation agent not respecting generation length."
|
||
- "Fixed duplicate length instructions when reasoning was enabled."
|
||
- "Fixed summarize dialogue sending too much context with layered history."
|
||
- "Fixed layered history construction and summary-to-dialogue crossover."
|
||
- "Fixed context ID dot notation when character names contained dots."
|
||
- "Fixed recursive retry bug in focal agent."
|
||
- "Fixed leading whitespace causing duplicate prepared responses."
|
||
- "Fixed multiline text handling in parentheses and brackets."
|
||
0.35.0:
|
||
features:
|
||
- "Autonomous Scene Direction: Allows autonomous scene progression through the director agent, using the same actions available in director chat. The Direction tab shows actions taken during the director's turn. A strong LLM (100B+) with reasoning capabilities is recommended. New director actions can be added via Director Action Nodes in the node editor. Disabled by default."
|
||
- "Character Visuals & Avatars: New Visuals tab in the character editor for managing portraits and cover images with generation support. Character messages now display portraits. The world state manager can re-evaluate which portrait to use based on scene context and commission new portraits via the director."
|
||
- "Inline Visuals: Images created through scene tools or director actions now appear inline in the scene feed. Size and display options can be configured in appearance settings."
|
||
- "llama.cpp Client: Added official llama.cpp client support for llama-server."
|
||
- "Pocket TTS: Added Pocket TTS support for local CPU-based text-to-speech with voice cloning using audio prompts."
|
||
improvements:
|
||
- "Setup wizard on initial launch for LLM, Memory, and Visual agent configuration."
|
||
- "Message appearance overhaul with configurable markdown display."
|
||
- "KoboldCpp: adaptive-p, min-p, presence/frequency penalty support."
|
||
- "Pin conditions can now target game state variables."
|
||
- "Visual: resolution presets, prompt revision, auto analysis, and prompt length config."
|
||
- "Visual Library: image crop regions for cover images."
|
||
- "Experimental concurrent requests for hosted clients (visual prompts)."
|
||
- "Agent activity stack visible above scene tools."
|
||
- "Node editor shortcuts: X for staging/alignment, Y for vertical alignment."
|
||
0.34.1:
|
||
fixes:
|
||
- "OpenRouter: Fixed empty responses from reasoning models."
|
||
- "OpenRouter: Fixed reasoning token not found errors."
|
||
- "OpenRouter: Let OpenRouter handle reasoning token collection."
|
||
- "OpenRouter: Configure reasoning effort correctly."
|
||
0.34.0:
|
||
features:
|
||
- "Visual Agent Refactor: Adds image editing with reference images and image analysis capabilities. Image editing allows modifying existing images using reference images. Image analysis extracts information from images for use in generation. Supported backends: ComfyUI, Automatic1111, SD.Next, OpenAI, Google, OpenRouter. Visual prompt instruction can now be customized through new Visual Style templates in the Templates editor. Nodes for image generation have been added to the node editor."
|
||
- "Visual Library: Visual library system for managing generated images and scene assets. Includes character portraits, scene covers, and other generated images. The image queue allows generating new images, regenerating existing ones, and iterating on generated images with modifications. Nodes for asset management have been added to the node editor."
|
||
- "Character Card Support: Character card import system completely refactored. Director agent analyzes greeting texts to detect multiple characters present in the card, allowing selective import of detected characters. Alternate greetings can be imported as episodes with optional AI-generated titles. Character books (lore books) are imported as world state entries. Character generation now uses card description, greeting texts, and character book entries together to determine character descriptions, attributes, and dialogue examples. Player character can be set using a default template, selected from detected characters in the card, or imported from another scene."
|
||
improvements:
|
||
- "Templates editor moved out of the World Editor — now available from the main navigation and no longer requires a scene to be loaded."
|
||
- "Scene assets are now managed in a separate file that all scenes in the same project share (assets/library.json)."
|
||
- "Prompt for unified API key configuration during client setup."
|
||
- "Improved token/s calculation."
|
||
- "Add Reset shortcut to Save menu."
|
||
- "Add save required indicator to save menu."
|
||
- "Client selection in agent config now only shows enabled clients."
|
||
- "App now properly locks inputs when client configuration is missing."
|
||
- "Improvements to director chat."
|
||
- "Shared world: button to share/unshare all characters."
|
||
- "Shared world: button to share/unshare all world entries."
|
||
- "Shared world: added episodes — Talemate's version of alternate introductions."
|
||
- "Narrator: Story progress now respects the generation length setting in the narrator agent config."
|
||
- "Character state reinforcements: added require_active setting that requires the character to be active for the state to be reprocessed (defaults to true)."
|
||
fixes:
|
||
- "Fixed issue where narrator would use wrong preset / system message."
|
||
- "Fixed `'_SceneRef' object has no attribute '_changelog'` error."
|
||
- "Fixed character image generation missing information if the targeted character is inactive."
|
||
0.33.0:
|
||
features:
|
||
- "Director Chat: A chat interface for conversing with the Director agent about the current scene. The Director can execute actions through 25+ specialized node modules covering scene queries, character/world state updates, game state management, narrative direction, and history modifications. Minimum recommended parameters: 12k+ context, 32B+ model with reasoning enabled. Ideally 100B+ models for best results. Accessible through the director console once a scene is loaded."
|
||
- "Scene Changelog and Restoration: Tracks all scene changes over time using delta compression. Stores incremental changes between revisions in segmented changelog files. Allows scenes to be reconstructed fully to a specific point in history and will be used for restoring scenes as well as true forking of scenes."
|
||
- "Shared World Context: Allows marking characters, world entries, and static history entries as `shared` to synchronize them across multiple scenes in the same project. Shared elements are exported to a dedicated context file that other scenes can reference. For characters, supports granular sharing at the attribute and detail level. Shared context files can be created and managed in World Editor → Scene → Shared Context."
|
||
improvements:
|
||
- "Agent persona (only for director currently)."
|
||
- "Pin decay — pin will stay active for N turns without having to be re-evaluated."
|
||
- "Improvements to data structure handling in LLM responses."
|
||
- "Game state variable editor."
|
||
- "ContextID system for unified management of context."
|
||
- "Pressing Ctrl+Up/Down arrow cycles through previous messages in the scene chat input."
|
||
- "Added summarizer / editor / director message access to scene toolbar."
|
||
- "Scene forking function now uses the new changelog system to reconstruct the scene to the specified revision."
|
||
- "World Editor → Context DB has been made read only (other than pin management)."
|
||
- "Memory agent semantic retrieval improvements."
|
||
- "Node Editor: Many new nodes added."
|
||
- "Node Editor: Module library overhaul to treeview display in sidebar."
|
||
- "Node Editor: Show when required inputs are not connected (red links)."
|
||
- "Node Editor: Certain nodes can now be Alt+Shift+dragged to spawn a counterpart."
|
||
- "Node Editor: Collector nodes for easier collection of values into lists or dicts."
|
||
- "Node Editor: Clicking outside of node property editor no longer discards changes automatically."
|
||
- "Node Editor: Auto resize new nodes to fit their title and inputs."
|
||
- "Node Editor: Property choice fields are now sorted alphabetically."
|
||
- "Node Editor: Added group presets."
|
||
- "Node Editor: Node search improvements."
|
||
fixes:
|
||
- "Fixed issue where drag-and-drop scene / character cover images would no longer work."
|
||
- "Fixed some layout issues in world editor."
|
||
- "Enforce Context DB clean up on scene load."
|
||
- "OpenRouter API key going from unset to set will now immediately fetch models."
|
||
- "Fixed remaining `World state manager` references in the UX to `World Editor`."
|
||
- "Scenes that no longer exist are automatically removed from recent scenes list."
|
||
- "Contextual generate now defaults to the scene writing style if it is set."
|
||
- "Fixed AI function argument conversion that would cast everything to string."
|
||
- "Node Editor: Errors in event nodes can no longer cause infinite loops of failures."
|
||
- "Node Editor: Deleting a module while it is loaded no longer results in an error."
|
||
- "Node Editor: Fixed issue where argument nodes would not convert to their type correctly."
|
||
- "Node Editor: Switching from node editor to world editor no longer causes graph changes to be lost."
|
||
- "Node Editor: Get node can now properly access tuple and set items."
|
||
- "Node Editor: Contextual Generate node now errors nicely when the required context_name is not set."
|
||
- "Node Editor: Fixed issue where Ctrl+Enter to submit in text editor nodes would cause extra new lines to be added."
|
||
0.32.3:
|
||
fixes:
|
||
- "Node Editor: Fixed LiteGraph context menu positioning issue."
|
||
0.32.2:
|
||
fixes:
|
||
- "Fixed KoboldCpp connection issues."
|
||
0.32.1:
|
||
fixes:
|
||
- "Fixed LMStudio connection (#212)."
|
||
- "Fixed Windows setup failure when any parent folder path contains spaces (#211)."
|
||
- "Fixed character creation issues."
|
||
- "Tweaked scene analysis and director guidance prompts for conversation."
|
||
- "Added GLM 4.5 templates."
|
||
0.32.0:
|
||
features:
|
||
- "TTS Agent Refactor: The Text-to-Speech agent has been completely refactored, adding support for additional APIs, per-character voice assignment, and speaker separation. Voices can now be managed through the new voice library. Local backends: F5-TTS (zero shot voice cloning), Chatterbox (zero shot voice cloning), Kokoro (predefined voice models). Remote backends: ElevenLabs, Google Gemini-TTS, OpenAI. The director agent can automatically assign voices to new characters based on voice library tags. XTTS2 support has been removed."
|
||
- "Reasoning / Thinking Models: Support for reasoning / thinking models has been added across all client types. Activate it via the new Reasoning tab in the client configuration UI. Disabled by default."
|
||
- "Scene Export / Import Packages: Scenes can now be exported as complete packages — including nodes, assets, and info files — and imported through the home view. Stand-alone JSON scene files remain supported for backward compatibility."
|
||
improvements:
|
||
- "Simulation suite: fixed inactive characters."
|
||
- "OpenRouter: provider selection and generation quality fixes."
|
||
- "KoboldCpp client default template added."
|
||
- "Agents can be Ctrl+clicked to toggle enabled state."
|
||
- "Visual agent: prevent scene cover image overwrite."
|
||
- "Disable scene analysis / guidance when building image generation prompts."
|
||
- "Migration from vue-cli to Vite (thanks @pax-co)."
|
||
- "Underlying config handling refactor improving stability."
|
||
- "Node Editor: Added As String node, Generate TTS node, Get Narrator Voice node, Get Voice node, TTS Agent settings node, and Unpack Voice node."
|
||
fixes:
|
||
- "Fixed Jinja2 error during auto direction generation."
|
||
migrations:
|
||
- "XTTS2 TTS support has been removed. Switch to one of the new local backends (F5-TTS, Chatterbox, Kokoro) or a remote backend (ElevenLabs, Google Gemini-TTS, OpenAI) via the voice library."
|
||
0.31.0:
|
||
features:
|
||
- "Installable Node Modules: Added a rudimentary way to register node modules as packages so they can be installed into a scene. A mods tab becomes available once a scene is loaded and allows installing / uninstalling such modules. The Dynamic Story node module ships with a package, so manual node-editor setup is no longer required."
|
||
- "History Management: Can now add, edit, remove, and regenerate entries in the History tab of the World Editor. Entries based on summarization can be inspected to show their source messages."
|
||
improvements:
|
||
- "Instructor Embeddings are once again functional."
|
||
- "OpenRouter support added."
|
||
- "Ollama support added."
|
||
- "KoboldCpp Embeddings support added."
|
||
- "Visual agent can now generate prompts only — available even if the visual agent is not fully configured for image generation."
|
||
- "Memory Agent: memory retrieval has been improved."
|
||
- "Summarization Agent: summarization improvements."
|
||
- "Node Editor: Jinja2 templates existing in templates/modules can now be properly loaded."
|
||
- "Node Editor: Added Emit System Message node — allows for communication of messages to the user outside of the context history."
|
||
fixes:
|
||
- "chara_card_v3 spec character card import fixed."
|
||
- "Node Editor: Fixed issue where errors inside custom node graphs could hang Talemate."
|
||
- "Node Editor: Fixed issues with several math nodes that would run even though their wires were inactive."
|
||
- "Node Editor: Fixed issue with DynamicInstruction node that would run even though its wires were inactive."
|
||
- "Node Editor: Fixed issue where editor revision events were missing the `template_vars` value."
|
||
0.30.0:
|
||
features:
|
||
- "Node Editor: The backend was refactored to a node-based architecture, allowing for more complex and dynamic scenes and customizable / reusable modules. This is the first iteration — accessible from creative mode once a scene is loaded."
|
||
- "Revisions: Revision action added to the Editor agent. When toggled on, it analyzes text for repetition or unwanted prose and revises it accordingly. Unwanted prose is defined through the writing style template assigned in the scene settings. Disabled by default."
|
||
- "Auto-Direction: The Director agent can now automatically direct the scene based on the current state and intention of the scene. Experimental and a work in progress — the goal is to test the waters towards giving the reins to the Director agent to direct the scene as it sees fit. Disabled by default."
|
||
improvements:
|
||
- "Inference preset groups."
|
||
- "AI function calling improvements."
|
||
- "Client rate limiting."
|
||
- "Clients can now configure data communication to be in YAML or JSON format."
|
||
- "Simulation Suite V2 — remade using the new node editor (v1 still exists)."
|
||
- "Director guidance cache."
|
||
0.29.0:
|
||
features:
|
||
- "Scene Analysis: Added scene analysis capabilities, providing analytical summaries that other agents can use to enhance their output. Disabled by default."
|
||
- "Director Guidance: The director agent now offers conversation and narration guidance based on the summarizer's scene analysis. Disabled by default."
|
||
- "Character Progress: The world state agent can now automatically track character progress and provide proposals of updates to the character description and attributes. Disabled by default."
|