changelog

This commit is contained in:
vegu-ai-tools
2026-06-02 23:15:39 +03:00
parent 337b615d6f
commit 67499c6fbf

View File

@@ -1,52 +1,52 @@
0.38.0.dev:
features:
- "Event Module Auto-Register: Event Modules gained an `auto_register` toggle. When enabled, the module subscribes to its event automatically as soon as it's registered with the scene — you no longer have to drop an instance of it into the scene loop graph for it to fire. Wiring and cleanup track the scene loop, matching how Event Modules placed in the scene loop graph behave. If the same auto-registered module is also placed in the scene loop graph, the embedded copy is ignored so the event still fires only once."
- "Per-Scene Agent Overrides: Agent configuration can now be overridden per scene without changing the global agent config. Most fields across every agent are scene-overridable — a small number of fields that are inherently global (e.g. client selection, dynamic registries) stay locked to the global config. The Agent Modal gains a Global / Scene mode switch; in Scene mode each overridable field shows an Inherits global / Scene override toggle, and container actions that expose a toggle can also be enabled or disabled per scene. Overrides are stored sparsely in `agent-settings/agent-settings.json` inside the scene's project folder, and any new scene in the same project folder auto-links to the default file. Picker for choosing, swapping, or opting out lives in World Editor → Scene → Settings; a chip on the Scene tab and a small movie-cog icon next to the agent name in the agent list surface how many overrides are active."
- "Player Character Toggle: Added a Make Player Character / Unmark as Player action to the World Editor character editor. Promoting a non-player character makes them the player and automatically demotes the previous player (if any) to an AI actor — the previous player stays active in the scene. Unmarking the current player flips them to AI without requiring a replacement, leaving the scene with no explicit player. Promoting an inactive character also activates them."
- "Message Revision History: Regenerated AI messages now show a paginator above the message body. Click the arrows to browse previous regenerations; the version you're viewing becomes the canonical one the AI continues from. Lives in the browser session only."
- "Scene Perspective Overrides: Expanded the scene outline perspective into a default plus three per-speaker overrides (player, NPCs, narrator). Each override falls back to the default when empty. A new `{player_name}` placeholder is substituted at prompt render time and suppresses the perspective when the scene has no explicit player character. Presets are managed under Settings → Creator → Perspective Presets. Existing scenes are migrated automatically."
- "Per-Action Reasoning Override: Force reasoning off for specific agent actions without changing the client's global setting. Toggle via the brain icon in the prompt log; configured overrides are listed via a badge next to the Agents sidebar header."
- "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. The world state snapshot was also refreshed to surface more interesting detail."
- "Visualize Context Investigations: Context-investigation messages — a closer look at a highlighted entity, or Look at Scene / Character gained a Visualize action on their hover toolbar that generates an image into the message. The image is matched to the subject: examined items get a new focused object illustration, places an environmental shot, and characters a character portrait. Once generated, the image supports the usual regenerate interactions."
- "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. List contents and behavior are unchanged."
- "Message Revision History: Continuing a character or narrator message now creates a navigable revision entry tagged 'Continued', alongside the existing regenerate entries. The pre-continuation text is reachable via the paginator arrows. Narrator messages also gain the Continue action on the hover toolbar to match the character-message flow."
- "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 (World State Manager) already covers viewing and editing character details."
- "Message Toolbar: Consolidated the hover toolbar shared by character, narrator, and context-investigation messages into a single component. Action chips now use a filled (tonal) style for better visibility, and the revision chip is labeled with the editor agent's configured revision method — '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 on the message, mirroring the in-place regenerate feedback. The spinner 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 (Unslop and Targeted Rewrite). Default Remove preserves prior behavior — flagged repetitions are deleted from the text. Attempt rewrite asks the model to substitute genuinely different content for the flagged beat, with the explicit reminder that matches are semantic and simple rephrasing of the same idea is not enough; the model is allowed to fall back to removal only when no meaningful rewrite is possible. Applies to the Unslop, Unslop (Summarization), and Targeted Rewrite paths. Also adds a previously-missing repetition rule to the Unslop (Summarization) prompt — flagged matches were being shown to the model with no instructions on how to handle them; the default Remove mode now matches the behavior of the other Unslop paths."
- "Editor Revision: Context-investigation messages (Look at, Investigate, Query) now support revision both automatic via a new opt-in 'Context Investigations' entry in the editor agent's Automatic revision targets (off by default), and manual via the Revise chip on the message hover toolbar. They also contribute to the repetition corpus, so revisions of nearby narrator and character messages dedupe against them and vice versa."
- "Frontend Tooling: Migrated the frontend from npm to pnpm for supply-chain hardening. pnpm is provisioned automatically through Corepack (bundled with Node.js), so there is no extra install step. A 7-day minimum-release-age cooldown prevents installing dependency versions less than a week old — keeping the project out of the blast radius of fast-moving npm supply-chain attacks — and dependency install/build scripts are now blocked unless explicitly allowlisted. pnpm 11 requires Node.js 22, so the install, update, and Docker build scripts now provision Node 22 automatically; the Linux and Windows installers download a portable Node runtime."
- "Scene Message List: Long scenes render more smoothly when the message history is modified. Operations that remove or rearrange messages (deleting a message, hiding from context, status updates that replace a previous status, etc.) now only re-render the affected slot instead of every message after the change point. As a side benefit, the collapsed state on context-investigation, director, and time-passage messages now survives when an earlier message in the scene is removed."
- "OpenAI Compatible Client: Added a Parameters config tab with individual toggles for `temperature`, `top_p`, and `presence_penalty`. When a parameter is toggled off it is omitted from the request payload entirely, which is needed for OpenAI-compatible backends that hard-error if the parameter is sent for the selected model. All three default to on so existing clients are unaffected."
- "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; enable in the client config when the server is configured to handle parallel requests."
- "Autocomplete Hints: Dialogue, narrative, and contextual autocomplete now accept a free-form `{...}` hint block at the end of the input. Anything inside the curly braces is passed to the LLM as directional guidance for the continuation (tone, beats, sensory detail, character reactions, etc.) and the brace block itself is stripped from the field when the suggestion is accepted. Example: typing `\"Kaira!?\" he yelled {dark corridor, no response, ship shakes}` cues the model on what to weave into the completion without those tokens ending up in the scene text. Works in the scene input, character description / details / attributes, scene intro, and inline character / narrator / context-investigation message editing. Toggle via the new `Enable Hints` setting on the Creator agent's Autocomplete config (default on); trailing braces only, mid-text `{...}` is left alone."
- "Autocomplete Redo/Undo: After an autocomplete suggestion is applied, a chip appears beside the field with Redo and Undo actions. Redo rewinds to your original input including any `{...}` hint — and re-runs autocomplete so you can iterate on a result without retyping the hint, while Undo simply restores the original input. Available everywhere autocomplete works: the scene input, inline character / narrator / context-investigation message editing, and the World Editor character description, attributes, details, and scene intro fields."
- "Node Editor Log: Log entries now show a right-aligned `HH:MM:SS.mmm` timestamp derived from the node execution's `start_time`, making it easier to correlate log entries with what was happening in the scene."
- "World State Snapshot: The prompt powering Entity Highlights now sees the full scene context — premise, perspective, active pins, dynamic instructions, and broader story history — rather than just the last 10 raw dialogue lines. The 'current moment' it analyzes is also tightened to the few most recent lines and stops at time-passage breaks, so highlights stay anchored to the active beat instead of leaking across scene cuts."
- "Durable World State Snapshot: The world state snapshot now carries entities and their details forward across refreshes instead of regenerating wholesale every pass. Each refresh updates what changed, lets unchanged entities stand, and drops entities the agent has decided are no longer relevant — and as a safety net, any entry the agent leaves untouched for several consecutive updates is automatically evicted so stale details don't linger (configurable, with a time-passage message still clearing the snapshot cleanly). Ctrl/Cmd-click the refresh button to wipe on demand, or disable durability in the world state agent config to restore the previous wholesale-replace behavior."
- "World State Snapshot Context Pinning: The world state snapshot can now be pinned into the conversation, narrator, and scene-analysis prompts, so the entities and details it tracks inform what characters say, how scenes are narrated, and how the next action is planned. Off by default; enable it via 'Pin to context' in the world state agent config."
- "World State Snapshot Custom Instructions: Added a Custom instructions field to the world state agent config that feeds free-form guidance into the snapshot generation, letting you steer what the snapshot focuses on or surfaces. Empty by default."
- "World State Snapshot Memory Recall: The world state agent gained a Long Term Memory section and now pulls relevant long-term memory into the snapshot-generation prompt, so the snapshot can build on established lore and earlier scene history rather than only the current moment. Semantic recall is on by default; the AI-assisted retrieval methods are configurable like the other agents."
- "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 while it runs, so you can keep playing while it updates. A manual refresh works the same way and can be cancelled mid-generation; on clients that can't handle concurrent requests the snapshot still runs in the foreground as before."
- "HuggingFace Token: Added a HuggingFace access token to the application settings, used to download gated model weights such as the Pocket TTS voice-cloning model. It can also be set directly in the Pocket TTS agent config, removing the need to set the HF_TOKEN environment variable and restart."
- "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: Consolidated the hover toolbar shared by character, narrator, and context-investigation messages. Action chips now use a filled style, and the revision chip is labeled with the editor's configured revision method 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."
- "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."
changes:
- "World State Snapshot Cadence: The snapshot now refreshes based on individual character turns rather than full scene rounds, so its 'Turns' interval counts each character's turn (player or AI) instead of treating a multi-character round as a single turn. The default interval was raised from 5 to 10 to keep the effective cadence comparable for typical scenes."
- "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:
- "Anthropic / OpenRouter Clients: Fixed the 'Optimize for Prompt Caching' client toggle not actually enabling caching on Anthropic. The setting previously only reordered prompt sections so the prefix would be cacheable, but the required `cache_control` API parameter was never sent — so requests still missed the cache. The Anthropic client now sends top-level ephemeral `cache_control` when the toggle is on, and the OpenRouter client does the same for `anthropic/*` models (OpenAI, DeepSeek, and Gemini cache automatically on OpenRouter, so no parameter is needed there). Note: enabling caching for Anthropic models via OpenRouter forces routing to direct Anthropic, excluding Bedrock/Vertex endpoints for that request."
- "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. The conversation agent's prompt-parameter hook now only wipes character-name stop sequences when the `inject_character_names_into_stop` setting is disabled, and is a no-op otherwise."
- "Scene-Group Templates: Templates created via the prompt manager under the `scene` agent prefix (stored at `{scene}/templates/scene/`) 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. The intro isn't a real scene message and has no id, so audio playback was emitted without a message id; the `intro` id is now forwarded through generation."
- "Create Pin: Fixed the Create Pin action on narrator messages staying clickable while the UI was locked during generation; it now respects the lock, matching the character message toolbar."
- "Message Toolbar: Fixed the message hover-toolbar actions (Create Pin, Revise, Fork, Continue, TTS, Time Passage) and double-click message editing staying available while a background agent operation was running. They now disable for the duration, matching the rest of the scene controls, and the hover hint reads 'Editing locked' while editing is unavailable."
- "Create Pin: World entries created via the Create Pin message action are now marked Include only when pinned. They surface in context exclusively through the pin and are skipped by automatic relevancy matching, preventing the auto-generated summary from being retrieved as ambient memory."
- "Status Snackbar: Fixed an empty grey toast flashing after operations that completed without a visible change (e.g. an editor revision that produced no edits). Cancellation toasts (e.g. \"Regeneration cancelled.\") that were previously swallowed now display."
- "Node Editor Module Properties: Fixed boolean property checkboxes appearing unresponsive — clicks updated the underlying value but the checkbox state didn't repaint until focus moved elsewhere. The property inputs now bind directly to the reactive properties store, and the checkbox commits on change instead of on blur."
- "Onboarding Wizard: Fixed the long-term memory setup step being non-scrollable on shorter viewports, so the 'Apply & finish' button could fall below the fold with no way to reach it without zooming out. The wizard now caps its height and scrolls the step content while keeping the header and footer actions in view."
- "Scene Forking: Fixed forks and rollbacks created from the changelog UI sometimes failing to load with a 'message Field required' validation error. Affected history entries are now repaired during reconstruction so the scene loads; the broken entry is restored as an empty placeholder with any image attachment intact."
- "GPU VRAM: Switching scenes now releases the GPU memory that local CUDA work (embeddings, TTS) leaves reserved, instead of holding onto that elevated footprint 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."
- "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."
- "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."
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."