后端: trace/graph.go(RunGraph 图构建器,kind/status 映射,父子优先连线,脱敏白名单+截断); loop/flow.go(FlowPublisher 按会话增量发布 ws.graph_update,仅主人web会话); loop span start/finish 折入图; run.go StartRound/EndRound; wire.go 组装+注入. 前端: Flow.tsx(全链路流程页:FlowGraphView+会话/节点/开始/耗时卡片+状态计数+节点点开日志); FlowGraph 组件加 onNodeClick; types/wsParse 扩展; router/sections/AdminApp 注册 flow; api-client.md §3.5 graph_update 契约. 验证: 后端 build/vet/test 全绿+flow_test.go 集成(span→graph→ws.graph_update主干); 前端 build 绿. 红线: 单二进制零新依赖; 工具参数/结果脱敏; 仅主人web会话; 身份靠actor元数据; 只读不虚构. P2(并行子代理分支/泳道/节点实时日志)后置.
新增 src/components/Icon.tsx(Material Symbols Rounded 风格,24 viewBox / currentColor / 零运行时依赖 / 可 tree-shake / 离线优先),导出 <Icon name size /> 与 IconName 类型, 覆盖全部现有界面图标的语义映射(chart/dna/chat/memory/docs/plugin/channel/device/robot/ clock/agent/night/trend/users/settings/light/ac/mic/micOff/sun/moon/lock/block/check/close/ gear/file/package/folder/shield/storage/refresh/vision/home/arrow/terminal)。 将用户端(Nav/TopBar/ChatInput/chat + 各 modes)与管理面板(sidebar 15 模块/Dashboard 卡片/System SectionTitle/Observability StatCard/Agents/Backthink/Automations/AdminTable empty)中的 emoji 图标全部替换为 <Icon name=... />,icon 字段由 string 改为 IconName / ReactNode。保留正文说明性箭头(如“设置→连接”)与流程方向箭头。 npm run build(tsc --noEmit + vite build)通过:79 模块,JS 300KB/gzip 90KB。