From a1d209a9aedb2f26853416f2adb617be31404b49 Mon Sep 17 00:00:00 2001 From: veguAI <152010387+vegu-ai-tools@users.noreply.github.com> Date: Sun, 5 Apr 2026 18:20:25 +0300 Subject: [PATCH] 0.36.1 (#263) * fix white space issues in contextual generate causing problems with list creation tasks * Implement early termination for SSE events in TextGeneratorWebuiClient when receiving "[DONE]" signal, * gemma-4 template * prompt tweaks * set 0.36.1 * update what's new * prompt tweaks * update test baselines * prompt tweaks * update changelog --- pyproject.toml | 2 +- src/talemate/client/textgenwebui.py | 2 ++ .../creator/contextual-generate.jinja2 | 4 ++-- .../response-scaffolding.jinja2 | 10 +++++----- .../narrator/narrate-progress.jinja2 | 6 ++++++ src/talemate/version.py | 2 +- talemate_frontend/package-lock.json | 16 ++++++++-------- talemate_frontend/package.json | 2 +- talemate_frontend/src/components/WhatsNew.vue | 19 ++++++++++++++++++- talemate_frontend/src/constants/version.js | 2 +- templates/llm-prompt/std/Gemma4.jinja2 | 12 ++++++++++++ .../baselines/narrator/progress_story.txt | 6 ++++++ .../narrator/progress_story__default.txt | 6 ++++++ .../narrator/progress_story.txt | 6 ++++++ .../narrator/progress_story__default.txt | 6 ++++++ .../narrator/progress_story.txt | 6 ++++++ .../narrator/progress_story__default.txt | 6 ++++++ .../narrator/progress_story.txt | 6 ++++++ .../narrator/progress_story__default.txt | 6 ++++++ .../narrator/progress_story.txt | 6 ++++++ .../narrator/progress_story__default.txt | 6 ++++++ uv.lock | 2 +- 22 files changed, 118 insertions(+), 21 deletions(-) create mode 100644 templates/llm-prompt/std/Gemma4.jinja2 diff --git a/pyproject.toml b/pyproject.toml index 465d45fb..5b067bfd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "talemate" -version = "0.36.0" +version = "0.36.1" description = "AI-backed roleplay and narrative tools" authors = [{name = "VeguAITools"}] license = {text = "GNU Affero General Public License v3.0"} diff --git a/src/talemate/client/textgenwebui.py b/src/talemate/client/textgenwebui.py index 663e0ec7..6c7cf04c 100644 --- a/src/talemate/client/textgenwebui.py +++ b/src/talemate/client/textgenwebui.py @@ -205,6 +205,8 @@ class TextGeneratorWebuiClient(OpenAIVisionMixin, ClientBase): sse = sseclient.SSEClient(stream_response) for event in sse.events(): + if event.data == "[DONE]": + break payload = json.loads(event.data) chunk = payload["choices"][0]["text"] response += chunk diff --git a/src/talemate/prompts/templates/creator/contextual-generate.jinja2 b/src/talemate/prompts/templates/creator/contextual-generate.jinja2 index eacfaf9d..848086f2 100644 --- a/src/talemate/prompts/templates/creator/contextual-generate.jinja2 +++ b/src/talemate/prompts/templates/creator/contextual-generate.jinja2 @@ -127,5 +127,5 @@ Override example: {# END TASK DISPATCH #} {# RESPONSE SCAFFOLDING #} -{% include "contextual-generate/response-scaffolding.jinja2" %} -{# END RESPONSE SCAFFOLDING #} +{%- include "contextual-generate/response-scaffolding.jinja2" -%} +{#- END RESPONSE SCAFFOLDING -#} diff --git a/src/talemate/prompts/templates/creator/contextual-generate/response-scaffolding.jinja2 b/src/talemate/prompts/templates/creator/contextual-generate/response-scaffolding.jinja2 index c6bfb910..aad484e9 100644 --- a/src/talemate/prompts/templates/creator/contextual-generate/response-scaffolding.jinja2 +++ b/src/talemate/prompts/templates/creator/contextual-generate/response-scaffolding.jinja2 @@ -10,12 +10,12 @@ #} {# List response preparation #} -{% if context_typ == "list" and can_coerce %} - {% if action_task == "Add to the existing" %} +{%- if context_typ == "list" and can_coerce -%} + {%- if action_task == "Add to the existing" -%} {{ set_prepared_response('additional items:\n1.') }} - {% else %} + {%- else -%} {{ set_prepared_response('items:\n1.') }} - {% endif %} + {%- endif -%} {# Task template defined prefix (for anchor extraction) #} {% elif generation_context.get_state('response_prefix') and can_coerce %} @@ -52,4 +52,4 @@ Continue this text: {{ generation_context.partial }} {%- elif context_typ not in ['scene type description', 'scene type instructions'] -%} {{ context_name }}: {%- endif -%} -{% endif %} +{%- endif -%} \ No newline at end of file diff --git a/src/talemate/prompts/templates/narrator/narrate-progress.jinja2 b/src/talemate/prompts/templates/narrator/narrate-progress.jinja2 index 77295037..b0c188e2 100644 --- a/src/talemate/prompts/templates/narrator/narrate-progress.jinja2 +++ b/src/talemate/prompts/templates/narrator/narrate-progress.jinja2 @@ -11,6 +11,12 @@ Override example: {% set last_message = scene.last_message_of_type(["character", "narrator"]) %} Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + {% if last_message %} ``` the current moment in the scene {{ last_message }} diff --git a/src/talemate/version.py b/src/talemate/version.py index 8a9c18c4..4aac018c 100644 --- a/src/talemate/version.py +++ b/src/talemate/version.py @@ -1,3 +1,3 @@ __all__ = ["VERSION"] -VERSION = "0.36.0" +VERSION = "0.36.1" diff --git a/talemate_frontend/package-lock.json b/talemate_frontend/package-lock.json index 9df75503..278d34b8 100644 --- a/talemate_frontend/package-lock.json +++ b/talemate_frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "talemate_frontend", - "version": "0.36.0", + "version": "0.36.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "talemate_frontend", - "version": "0.36.0", + "version": "0.36.1", "dependencies": { "@codemirror/lang-json": "^6.0.1", "@codemirror/lang-markdown": "^6.2.5", @@ -1731,9 +1731,9 @@ "license": "MIT" }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "license": "MIT" }, "node_modules/magic-string": { @@ -1789,9 +1789,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "devOptional": true, "license": "MIT", "engines": { diff --git a/talemate_frontend/package.json b/talemate_frontend/package.json index 550dca5e..8fa25944 100644 --- a/talemate_frontend/package.json +++ b/talemate_frontend/package.json @@ -1,6 +1,6 @@ { "name": "talemate_frontend", - "version": "0.36.0", + "version": "0.36.1", "private": true, "type": "module", "scripts": { diff --git a/talemate_frontend/src/components/WhatsNew.vue b/talemate_frontend/src/components/WhatsNew.vue index 04d4cb55..9c6306dc 100644 --- a/talemate_frontend/src/components/WhatsNew.vue +++ b/talemate_frontend/src/components/WhatsNew.vue @@ -82,8 +82,25 @@ export default { data() { return { dialog: false, - selected: "0.36.0", + selected: "0.36.1", whatsNew: [ + { + version: '0.36.1', + items: [ + { + title: "Gemma 4 Support", + description: "Added prompt template for Gemma 4 models." + }, + { + title: "Bug Fixes", + items: [ + "Fixed white space issues in contextual generate causing problems with list creation tasks", + "Fixed termination for SSE events in text-generation-webui client when receiving \"[DONE]\" signal", + "Prompt tweaks for narrator progress" + ] + } + ] + }, { version: '0.36.0', items: [ diff --git a/talemate_frontend/src/constants/version.js b/talemate_frontend/src/constants/version.js index 6746dcab..44838439 100644 --- a/talemate_frontend/src/constants/version.js +++ b/talemate_frontend/src/constants/version.js @@ -1,4 +1,4 @@ -export const FRONTEND_VERSION = "0.36.0"; +export const FRONTEND_VERSION = "0.36.1"; export function versionsMatch(backendVersion) { return FRONTEND_VERSION === backendVersion; diff --git a/templates/llm-prompt/std/Gemma4.jinja2 b/templates/llm-prompt/std/Gemma4.jinja2 new file mode 100644 index 00000000..693bc001 --- /dev/null +++ b/templates/llm-prompt/std/Gemma4.jinja2 @@ -0,0 +1,12 @@ +{%- if reasoning_tokens %}{% set _ = spec.set_spec("reasoning_pattern", ".*?") %}{% endif -%} +<|turn>system +{% if reasoning_tokens %}<|think|>{% endif %}{{ system_message }} +<|turn>user +{{ user_message }} +<|turn>model +{% if not reasoning_tokens %}<|channel>thought + + +{{ coercion_message }} +{%- else %}{{ coercion_message }} +{%- endif -%} \ No newline at end of file diff --git a/tests/data/prompts/baselines/narrator/progress_story.txt b/tests/data/prompts/baselines/narrator/progress_story.txt index 62c0ee6e..1fe17583 100644 --- a/tests/data/prompts/baselines/narrator/progress_story.txt +++ b/tests/data/prompts/baselines/narrator/progress_story.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/tests/data/prompts/baselines/narrator/progress_story__default.txt b/tests/data/prompts/baselines/narrator/progress_story__default.txt index 241f963e..5608247d 100644 --- a/tests/data/prompts/baselines/narrator/progress_story__default.txt +++ b/tests/data/prompts/baselines/narrator/progress_story__default.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/tests/data/prompts/baselines_cached/narrator/progress_story.txt b/tests/data/prompts/baselines_cached/narrator/progress_story.txt index 62c0ee6e..1fe17583 100644 --- a/tests/data/prompts/baselines_cached/narrator/progress_story.txt +++ b/tests/data/prompts/baselines_cached/narrator/progress_story.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/tests/data/prompts/baselines_cached/narrator/progress_story__default.txt b/tests/data/prompts/baselines_cached/narrator/progress_story__default.txt index 241f963e..5608247d 100644 --- a/tests/data/prompts/baselines_cached/narrator/progress_story__default.txt +++ b/tests/data/prompts/baselines_cached/narrator/progress_story__default.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/tests/data/prompts/baselines_no_response_length/narrator/progress_story.txt b/tests/data/prompts/baselines_no_response_length/narrator/progress_story.txt index 62c0ee6e..1fe17583 100644 --- a/tests/data/prompts/baselines_no_response_length/narrator/progress_story.txt +++ b/tests/data/prompts/baselines_no_response_length/narrator/progress_story.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/tests/data/prompts/baselines_no_response_length/narrator/progress_story__default.txt b/tests/data/prompts/baselines_no_response_length/narrator/progress_story__default.txt index 241f963e..5608247d 100644 --- a/tests/data/prompts/baselines_no_response_length/narrator/progress_story__default.txt +++ b/tests/data/prompts/baselines_no_response_length/narrator/progress_story__default.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/tests/data/prompts/baselines_noncoercible/narrator/progress_story.txt b/tests/data/prompts/baselines_noncoercible/narrator/progress_story.txt index 62c0ee6e..1fe17583 100644 --- a/tests/data/prompts/baselines_noncoercible/narrator/progress_story.txt +++ b/tests/data/prompts/baselines_noncoercible/narrator/progress_story.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/tests/data/prompts/baselines_noncoercible/narrator/progress_story__default.txt b/tests/data/prompts/baselines_noncoercible/narrator/progress_story__default.txt index 241f963e..5608247d 100644 --- a/tests/data/prompts/baselines_noncoercible/narrator/progress_story__default.txt +++ b/tests/data/prompts/baselines_noncoercible/narrator/progress_story__default.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/tests/data/prompts/baselines_reasoning/narrator/progress_story.txt b/tests/data/prompts/baselines_reasoning/narrator/progress_story.txt index 988de524..443ffdfd 100644 --- a/tests/data/prompts/baselines_reasoning/narrator/progress_story.txt +++ b/tests/data/prompts/baselines_reasoning/narrator/progress_story.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/tests/data/prompts/baselines_reasoning/narrator/progress_story__default.txt b/tests/data/prompts/baselines_reasoning/narrator/progress_story__default.txt index d78f4d8d..2d733603 100644 --- a/tests/data/prompts/baselines_reasoning/narrator/progress_story__default.txt +++ b/tests/data/prompts/baselines_reasoning/narrator/progress_story__default.txt @@ -21,6 +21,12 @@ Marcus: What brings you to these woods? Move the story forward with a specific, purposeful event or action. Focus on what happens next rather than elaborating on the current state. Use vivid details only to support the progression of the narrative. +Write ONLY as the narrator. Do NOT generate dialogue entries for characters (e.g., no "CHARACTER NAME\n dialogue..." blocks). Your output should be a single continuous narration passage. You may paraphrase or summarize what characters say or do, but never write their direct dialogue lines as if you were them. + +Do NOT re-describe sensory details, atmosphere, or environmental conditions that are already established in the scene history. If the scene has already conveyed that a corridor is warped, the air smells wrong, or the lights are flickering — trust that the reader knows. Reference established details briefly if needed for continuity, but do not re-render them at full length. Spend your words on NEW events, actions, and information. + +Avoid repeating distinctive adjectives and similes that appear in the scene history. If you need to reference an established detail, use plain language rather than inventing a new elaborate description for the same thing. + ``` the current moment in the scene Elena: Hello there, traveler. ``` diff --git a/uv.lock b/uv.lock index 2bf7f843..bb9c3be2 100644 --- a/uv.lock +++ b/uv.lock @@ -5661,7 +5661,7 @@ wheels = [ [[package]] name = "talemate" -version = "0.36.0" +version = "0.36.1" source = { editable = "." } dependencies = [ { name = "aiofiles" },