fix: update remaining tests and session_to_tree for title field rename

- test_tree_validation.py: replace "action"/"solution" content fields with "title"
- test_procedural_flows.py: update solution node fixtures to use "title"
- test_save_session_as_tree.py: update fixtures and assertions for "title" field
- session_to_tree.py: generate "title" instead of "action"/"solution" on converted nodes;
  fall back to legacy field names when reading from old tree snapshots for compatibility

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
chihlasm
2026-02-22 23:55:37 -05:00
parent 5acf94b6c2
commit 8475f780d1
4 changed files with 47 additions and 47 deletions

View File

@@ -28,7 +28,7 @@ def convert_session_to_tree(
return {
"id": str(uuid.uuid4()),
"type": "solution",
"solution": "Session had no recorded path",
"title": "Session had no recorded path",
"children": []
}
@@ -63,7 +63,7 @@ def convert_session_to_tree(
new_node = {
"id": node_id,
"type": "action",
"action": f"Step from original tree (node {node_id})",
"title": f"Step from original tree (node {node_id})",
"children": []
}
@@ -130,15 +130,15 @@ def _create_node_from_original(
if decision and decision.get("answer"):
new_node["question"] += f"\n\nAnswer: {decision['answer']}"
elif node_type == "action":
new_node["action"] = original_node.get("action", "")
new_node["title"] = original_node.get("title", original_node.get("action", ""))
if decision and decision.get("action_performed"):
new_node["action"] = decision["action_performed"]
new_node["title"] = decision["action_performed"]
if decision and decision.get("command_output"):
output = decision["command_output"].strip()
if output:
new_node["action"] += f"\n\nCommand Output:\n{output}"
new_node["title"] += f"\n\nCommand Output:\n{output}"
elif node_type == "solution":
new_node["solution"] = original_node.get("solution", "")
new_node["title"] = original_node.get("title", original_node.get("solution", ""))
return new_node
@@ -169,18 +169,18 @@ def _create_node_from_custom_step(
if step_type == "decision":
new_node["question"] = content
elif step_type == "action":
new_node["action"] = content
new_node["title"] = content
elif step_type == "solution":
new_node["solution"] = content
new_node["title"] = content
# Add notes if present
if custom_step.get("notes"):
if step_type == "decision":
new_node["question"] += f"\n\nNotes: {custom_step['notes']}"
elif step_type == "action":
new_node["action"] += f"\n\nNotes: {custom_step['notes']}"
new_node["title"] += f"\n\nNotes: {custom_step['notes']}"
elif step_type == "solution":
new_node["solution"] += f"\n\nNotes: {custom_step['notes']}"
new_node["title"] += f"\n\nNotes: {custom_step['notes']}"
return new_node