Files
veguAI cc28def7c6 0.39.0 (#274)
- **Help Agent** — A new agent that answers questions about Talemate itself — settings, agents, clients, the world editor — grounded in the bundled documentation, and able to change agent and application settings on request.
- **Timeline Rollback** — Scrub a slider across a scene's automatic version history, preview the message history at any revision, then roll the scene back in place or fork the revision into a new save.
- **Pi Bridge Client** — A new client type that drives generations through the pi coding agent's headless RPC mode, making any model pi can reach usable in Talemate.
- **Application Settings** — Settings move out of their modal into an always-available Settings tab, with a single topic-grouped sidebar, a settings search, all API keys on one page, and unsaved-change tracking.
- **Scene Library** — The home screen is rebuilt as a full-page landing view with a file-tree scene library, cover thumbnails and per-save metadata, scene and save deletion, and a drag-and-drop import dropzone.
- **Fast Character Creation** — Generate a character in a single request instead of one prompt per aspect, with a Consolidate multi-select, a token budget, and a Fill in misses pass. Off by default.
- **Scene Backdrop** — Set any scene illustration as a backdrop filling the scene view behind the messages, saved with the scene, with configurable text legibility and an Immersive quick-toggle.
- **Scene Visual Manager** — World Editor → Scene gains a Visuals tab to browse, upload, generate and delete the scene's backgrounds and illustrations, and set the cover image and backdrop.
- **Visual Prompt Finalization** — Post-processing actions — match and replace, or a free-form AI instruction — rewrite image prompts right before they reach the image backend, with per-scene and per-character overrides and reusable template sets.

- fixes #271 
- fixes #275

Plus 25 improvements and 39 bug fixes — see [CHANGELOG.md](https://github.com/vegu-ai/talemate/blob/prep-0.39.0/CHANGELOG.md#0390) for the full list.
2026-08-29 13:21:22 +03:00

10 KiB

Scene History Nodes

Work with the scene's message history and its summarized archive: query messages by type or id, push/pop messages, and manage static archive entries (pre-authored history that survives summarization).

11 nodes.

Node Registry path
Character Activity scene/history/ActiveCharacterActivity
Context History scene/history/ContextHistory
Create Static Archive Entry scene/history/CreateStaticArchiveEntry
Get Message By ID scene/history/GetMessageById
Scene Has History scene/history/HasHistory
Last Message of Type scene/history/LastMessageOfType
Pop History scene/history/Pop
Push History scene/history/Push
Remove Static Archive Entry scene/history/RemoveStaticArchiveEntry
Static Archive Entries scene/history/StaticArchiveEntries
Unpack Archive Entry scene/history/UnpackArchiveEntry

Character Activity

scene/history/ActiveCharacterActivity

Returns a list of all active characters sorted by which were last active

The most recently active character is first in the list.

Outputs

Output Type Description
none_have_acted bool whether no characters have acted
characters list list of characters

Properties

Property Type Default Description
since_time_passage bool False Only include characters that have acted since the last time passage message

Context History

scene/history/ContextHistory

Compiles history for inclusion in a prompt context.

Inputs

Input Type Description
budget int (optional) The budget for the history (number of tokens, defaults to 8192)

Outputs

Output Type Description
messages list list of messages
compiled str compiled message
characters list list of characters that have actively participated in the scene

Properties

Property Type Default Description
budget int 8192 The budget for the history (number of tokens, defaults to 8192). Min: 0.
keep_director_messages bool False Whether to keep director messages
keep_investigation_messages bool False Whether to keep investigation messages
keep_reinforcement_messages bool False Whether to keep reinforcement messages
show_hidden bool False Whether to show hidden messages
min_dialogue_length int 5 The minimum length of dialogue to keep, this will ensure that there are always N dialogue messages in the history regardless of whether they are covered by summarization. Min: 0.
label_chapters bool False Whether to label chapters in the summarized history

Create Static Archive Entry

scene/history/CreateStaticArchiveEntry

Create a static (manually written) archive entry in the scene's base history, dated a given amount of time before the current scene time.

The time amount and unit are converted to an ISO 8601 duration offset. The entry must predate the summarized history.

Inputs

Input Type Description
state any The graph state
time_unit str The unit of time for the offset (minute, hour, day, week, month, year)
time_amount int The amount of time for the offset
text str The text of the entry

Outputs

Output Type Description
state any The state input, passed through
entry history/archive_entry The created archive entry
offset str The ISO 8601 duration offset that was applied
context_id context_id Context ID for the created entry
time_unit str The time unit input, passed through
time_amount int The time amount input, passed through
text str The text input, passed through

Properties

Property Type Default Description
time_unit str "day" The unit of time. Choices: minute, hour, day, week, month, year.
time_amount int 1 The amount of time
text str "" The text of the entry

Get Message By ID

scene/history/GetMessageById

Get a message from the scene history by its ID

Inputs

Input Type Description
message_id int The ID of the message to get

Outputs

Output Type Description
message message_object The message object (None if not found, or no value if stop_on_missing is true)
message_id int The ID of the message (passthrough)

Properties

Property Type Default Description
stop_on_missing bool True If true, deactivate the message output wire when message is not found

Scene Has History

scene/history/HasHistory

Check if the scene has history

Looks for a character, narrator or context_investigation message within the most recent 100 history entries.

Outputs

Output Type Description
has_history bool True if such a message was found

Last Message of Type

scene/history/LastMessageOfType

Get the last message of a certain type from the history with some basic filtering.

Inputs

Input Type Description
message_type str,list The type of message to get (or a list of types)
filters dict (optional) filter the messages by property values

Outputs

Output Type Description
message message_object The message object

Properties

Property Type Default Description
message_type str unset The type of message to get (or a list of types). Choices: scene, character, narrator, director, time, reinforcement, context_investigation.
max_iterations int 100 The maximum number of iterations to go back
stop_on_time_passage bool False Stop when a time passage message is encountered
filters dict {} Filter the messages by property values

Pop History

scene/history/Pop

Pop a message from the scene history

Inputs

Input Type Description
message message_object The message to pop

Outputs

Output Type Description
message message_object The message object

Properties

Property Type Default Description
emit_removal bool True Emit the removal of the message

Push History

scene/history/Push

Push a message to the scene history at the lowest (e.g., dialogue) layer

This will emit the message to the screen as part of the ongoing scene

Inputs

Input Type Description
message message_object The message to push

Outputs

Output Type Description
message message_object The message object

Properties

Property Type Default Description
emit_message bool True Emit the message to the screen

Remove Static Archive Entry

scene/history/RemoveStaticArchiveEntry

Remove a static archive entry

The entry can be specified either directly or via a context ID item - at least one of the two is required. Raises an error if the resolved entry is not a static history entry.

Inputs

Input Type Description
state any The graph state
entry history/archive_entry The archive entry to remove
context_id_item context_id_item A context ID item referencing a static history entry

Outputs

Output Type Description
state any The graph state
entry history/archive_entry The removed entry
context_id_item context_id_item The context ID item input, passed through

Static Archive Entries

scene/history/StaticArchiveEntries

Get the static scene history entries

Static entries are manually written archive entries that predate the summarized history. Collection stops at the first summarized (dynamic) entry. Entries are annotated with a human readable time relative to the current scene time.

Outputs

Output Type Description
entries list The list of static archive entries

Unpack Archive Entry

scene/history/UnpackArchiveEntry

Unpack an archive (summarized history) entry into its individual fields and build a context ID for it.

Inputs

Input Type Description
entry history/archive_entry The archive entry to unpack

Outputs

Output Type Description
entry history/archive_entry The entry, passed through
id str The id of the entry
text str The text of the entry
index int The index of the entry within its history layer
layer int The history layer the entry belongs to
start int Index of the first source entry covered by the entry (None for static entries)
end int Index of the last source entry covered by the entry (None for static entries)
ts_start str Starting timestamp of the covered range (ISO 8601 duration)
ts_end str Ending timestamp of the covered range (ISO 8601 duration)
ts str Timestamp of the entry (ISO 8601 duration)
time str Human readable time relative to the current scene time
time_start str Human readable starting time of the covered range
time_end str Human readable ending time of the covered range
context_id context_id Context ID for the entry (static or dynamic depending on the entry type)