fix(tree): from_dict L2 subtitle 旧格式兼容 fallback

旧格式 tree.json 无 card-level L2 subtitle 时,从已构造的 L3
children 聚合 subtitle,避免运行时加载静默丢失 L2 字幕。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-09 12:04:36 -04:00
parent d3be9b1322
commit 16140cafcc
+6
View File
@@ -20,6 +20,7 @@
from __future__ import annotations
import base64
import dataclasses
import json
from dataclasses import dataclass, field
from datetime import datetime
@@ -367,6 +368,11 @@ class L1Node:
state_changes=l2d["card"]["state_changes"],
subtitle=l2d["card"].get("subtitle", ""),
)
# 旧格式兼容:L2 无 card subtitle 时从 L3 children 聚合
if not l2_card.subtitle:
l3_subs = [n.card.subtitle for n in l3_nodes if n.card.subtitle]
if l3_subs:
l2_card = dataclasses.replace(l2_card, subtitle="\n".join(l3_subs))
tr2 = l2d.get("time_range")
l2_nodes.append(
L2Node(