sync: HP_BOWEI 2026-10-15
This commit is contained in:
@@ -58,6 +58,9 @@ DEFAULT_GRAPH_ROOT = _env_lookup("KICAD_FLOW_ROOT", r"E:\LangGraph_Design\kicad-
|
||||
RETRY_LIMITS = {
|
||||
"partition": 3, "material": 5, "layout": 5, "vivado": 3, "mcu": 3,
|
||||
"footprint": 5, "drawio-sync": 3, "recheck": 3, "requirement": 3,
|
||||
"pcb-rules": 3,
|
||||
# adjust 超限不是 safety_end,而是 d144「放弃调整原理图」,按原原理图继续布线
|
||||
"adjust": 3,
|
||||
}
|
||||
|
||||
|
||||
@@ -165,7 +168,7 @@ def report(graph, thread: dict, before_len: int) -> int:
|
||||
_out("先解决这个卡点,再用 `start --restart` 重跑,或用 --max-*-retry 调高上限。")
|
||||
return 0
|
||||
|
||||
_out("[DONE] 图已跑完:原理图设计完成并已导入 PCB。")
|
||||
_out("[DONE] 图已跑完:原理图完成、PCB 已布局、关键线(阻抗/差分/等长)已布完。")
|
||||
_out(f"[REPORT] {values.get('report_path', '(未生成)')}")
|
||||
_out(f"[PCB] {values.get('pcb_path', '(未回填)')}")
|
||||
return 0
|
||||
@@ -250,6 +253,17 @@ def cmd_resume(args):
|
||||
snap = graph.get_state(thread)
|
||||
if not snap.next:
|
||||
_fatal("当前没有挂起的 interrupt,无需回填。先跑 status 看状态。")
|
||||
# 判定键缺失时节点会把它当 False 处理、悄悄走另一条边(2026-09-23 DVBS2_dmod 的 d20
|
||||
# 就这样被跳到了 d22)。所以 interrupt 声明的第一个键(判定/主结论键)必须给。
|
||||
want = None
|
||||
for task in snap.tasks:
|
||||
if task.interrupts and isinstance(task.interrupts[0].value, dict):
|
||||
want = task.interrupts[0].value.get("resume")
|
||||
if isinstance(want, dict) and want and not args.allow_partial:
|
||||
key0 = next(iter(want))
|
||||
if key0 not in payload:
|
||||
_fatal(f"回填缺少本节点的主键 {key0}({want[key0]})。"
|
||||
f"本节点声明的键:{list(want)}。确实只想填部分键就加 --allow-partial")
|
||||
before = len((snap.values or {}).get("history", []))
|
||||
_out(f"[RESUME] {json.dumps(payload, ensure_ascii=False)}")
|
||||
graph.invoke(Command(resume=payload), thread)
|
||||
@@ -342,6 +356,8 @@ def main() -> int:
|
||||
p.add_argument("--set", action="append", metavar="KEY=VALUE",
|
||||
help="免转义回填;true/false→bool,纯数字→int,[ 或 { 开头→JSON")
|
||||
p.add_argument("--json", help="直接给 JSON 对象(与 --set 可混用)")
|
||||
p.add_argument("--allow-partial", action="store_true",
|
||||
help="允许不填 interrupt 声明的主键(默认缺主键直接报错)")
|
||||
p.set_defaults(func=cmd_resume)
|
||||
|
||||
p = sub.add_parser("list", help="列出该工程库里的所有线程")
|
||||
|
||||
Reference in New Issue
Block a user