- 11.4.2:三类节点首次真进图 —— memory.recall/memory.write(loop/memory.go 召回与写入点)、 guardrail.input/output(流式主路径两侧 + agent.RunStep 静音路径)、orchestration.spawn (scheduler 每次派发/收束);新增 trace.ChildSpan 让不持有 Tracer 的叶子包也能开子 span - 11.4.3(设计先行,规格先写进 design/19 §1.1):tool 节点参数摘要 —— 放行表 argValueKeys + trace.IsSecretKey 统一判据(密钥类键不给值)+ 单值 80 rune / ≤24 条 + 出图前再清洗; 前端 NodeDetail 新增「参数摘要」区,未放行键显示「值未展示」 - 13.4.1:流式主路径输出侧护栏改后台 goroutine(脱离 context、30s 兜底、不阻塞回合), 输入侧仍在模型调用前同步拦下;拦截闭环到 guardrail 节点 + 审计事件 - 拆文件:scheduler.go 加 span 后 546 行 → 编排 span 助手拆出 scheduler_spans.go(回到 492) - 契约:无帧名/事件形状变化;graph_update 节点 props 新增**可选**键(tool args_keys/args_summary、 guardrail action/allow/elapsed_ms、memory action/scope/hits/…、orchestration subagent/persona), 文档同步由主会话统一落
执行方案 DevDocs/audit/_plan.md 阶段 0 · G0-B:该文件距 500 行红线仅 29 行,而后续 11.4.2(memory/guardrail/orchestration 三类 span 生产者)等改动必然推进它 ⇒ 先拆。 - graph.go(159):对外类型与快照 API(FlowStatus* / FlowNode / FlowEdge / FlowGraph / NodeSpec / RunGraph;NewRunGraph / Start / SeedInput / SeedOutput / Snapshot) - graph_build.go(245):构图与折叠(Upsert / rememberParent / laneOf / merge / addEdge / AddSpan / AddSpanStart / kindForSpan / labelForSpan / statusForFinished) - graph_props.go(77):prop 白名单与脱敏(safeSpanProps / safePropKeys / summarize / truncate) 纯搬移机械证明:拆前与拆后(取非空、非 package、非 import 块行)排序后 **md5 相同、 diff 为空**;声明集合 28 条守恒;唯一新增文本 = 两个新文件的 package 行与 import 块。 `safePropKeys`(含 4bf1f7c 刚加入的 "persona")原样落在 graph_props.go,逐字节未动。 验证:go build/vet 绿;internal/runtime/trace + internal/services/gateway 测试绿(含 graph_persona_test 与 flow_update_ws_test 的 graph_update 线上帧成对契约回归); linux/amd64 + darwin/arm64 交叉编译绿;三文件 159/245/77 行均 ≤500;gofmt -l 无输出。
4bf1f7c