- **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.
4.8 KiB
Websocket Nodes
Plumbing for module-defined websocket handlers: route requests, queue responses and signal operation success or failure to the frontend.
4 nodes.
| Node | Registry path |
|---|---|
| Get Websocket Router | websocket/GetWebsocketRouter |
| Websocket Operation Done | websocket/signals/OperationDone |
| Websocket Operation Failed | websocket/signals/OperationFailed |
| Websocket Response | websocket/WebsocketResponse |
Get Websocket Router
websocket/GetWebsocketRouter
Get a websocket router (plugin) by its route name from the active websocket handler.
Raises an error if no plugin is registered for the given route.
Outputs
| Output | Type | Description |
|---|---|---|
router |
str |
The route name, passed through |
websocket_router |
websocket_router |
The websocket router (plugin) instance |
websocket_handler |
websocket_handler |
The active websocket handler |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
router |
str |
"" |
The router to get the websocket plugin for. Choices are generated at runtime. |
Websocket Operation Done
websocket/signals/OperationDone
Signal to the frontend that a websocket operation has completed successfully.
Sends an operation_done message through the websocket router, optionally
emits a status message and - unless signal_only is set - triggers an auto
save of the scene (or marks the scene as unsaved when auto save is off or
disallowed).
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
The graph state |
websocket_router |
websocket_router |
The websocket router (plugin) to signal through |
signal_only |
bool |
If true, only send the signal and skip the save handling (optional) |
allow_auto_save |
bool |
Whether to allow the scene to auto save after the operation (optional) |
emit_status_message |
str |
Status message to display in the frontend (optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
The state input, passed through |
websocket_router |
websocket_router |
The websocket router, passed through |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
signal_only |
bool |
False |
Whether to signal only or emit a status |
allow_auto_save |
bool |
True |
Whether to allow auto save |
emit_status_message |
str |
"" |
The status message to emit |
Websocket Operation Failed
websocket/signals/OperationFailed
Signal to the frontend that a websocket operation has failed.
Sends an operation_done message carrying the error through the websocket
router and optionally emits an error status message in the frontend.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
The graph state |
websocket_router |
websocket_router |
The websocket router (plugin) to signal through |
message |
str |
The error message (optional) |
emit_status |
bool |
Whether to also emit an error status message (optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
The state input, passed through |
websocket_router |
websocket_router |
The websocket router, passed through |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
message |
str |
"" |
The message to emit |
emit_status |
bool |
True |
Whether to emit a status |
Websocket Response
websocket/WebsocketResponse
Queue a message to be sent to the frontend through the websocket.
The message is sent with the router's name as its type, the given action name, and the data dict merged into the message payload.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
The graph state |
websocket_router |
websocket_router |
The websocket router (plugin) to send the message through |
action |
str |
The action name of the message |
data |
dict |
Dict of additional payload fields merged into the message |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
The state input, passed through |
websocket_router |
websocket_router |
The websocket router, passed through |
action |
str |
The action input, passed through |
data |
dict |
The data input, passed through |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
action |
str |
"" |
The action to send to the websocket |
data |
dict |
{} |
The data to send to the websocket |