From 79f73a35fbf623d570bc9fb6c71848d5b4996aa6 Mon Sep 17 00:00:00 2001 From: vegu-ai-tools <152010387+vegu-ai-tools@users.noreply.github.com> Date: Wed, 1 Apr 2026 00:40:11 +0300 Subject: [PATCH] Enhance perspective handling in GetActivePlan and ExpandStoryArc nodes by providing default values. This ensures a fallback to scene perspective or a sensible default when none is provided. --- src/talemate/agents/director/plan/nodes.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/talemate/agents/director/plan/nodes.py b/src/talemate/agents/director/plan/nodes.py index 07502273..0873d223 100644 --- a/src/talemate/agents/director/plan/nodes.py +++ b/src/talemate/agents/director/plan/nodes.py @@ -268,9 +268,14 @@ class GetActivePlan(Node): beats = [] if plan: - perspective = plan.meta.get("perspective", "") + perspective = plan.meta.get("perspective") or "" beats = [t for t in plan.tasks if isinstance(t, Beat)] + # Fall back to scene perspective or a sensible default + if not perspective: + scene = active_scene.get() + perspective = getattr(scene, "perspective", "") or "Third person, past tense." + self.set_output_values( { "state": input_state, @@ -364,7 +369,7 @@ class ExpandStoryArc(AgentNode): input_state = self.require_input("state") plan_id = self.require_input("plan_id") beats = self.require_input("beats") - perspective = self.require_input("perspective") + perspective = self.normalized_input_value("perspective") or "Third person, past tense." director_notes = self.normalized_input_value("director_notes") or "" chunk_size = self.normalized_input_value("chunk_size") or int( self.get_property("chunk_size")