This repository has been archived on 2026-09-13. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
BPOS-MVP/db/migrations/meta/_journal.json
T
ChaiHaoandClaude Fable 5 5fc6dfdfe1 仿真测试台(后端):节点指派 + 全链 Trace —— 起单定向到指定账号,真实任务落工作台
用户定的形态:测试台是**后端检测活动与流程**的,真实任务照旧到工作台
(不然指定账号干嘛)—— 所以测试台只管「起单 + 看穿」,人那一环还是真的。

**节点指派**(迁移 0016 workflow.assignments):
- StartWorkflowInput 增 `assignments {节点id → 员工id}`;分派改三级取人:
  ①节点指派(点名的人在岗就是他)②员工组轮值 ③全员轮值 —— 指派是加法不是替换,
  点名的人不在岗退回轮值(单不能没人接);事件里如实记 `(节点指派)`
- **顺带修一个真 bug**:`node_instance.assignee_id` 写了但 `listInstances` 从没读回来
  (审批箱收件、员工面链条、治理列表全按它认人 —— 写了不读等于没写)

**全链 Trace**(新模块 trace,L2;迁移 0017 sys.trace_span):
- span 由 **Mastra Observability 组件**产出(执行不经 Mastra 图,所以手动打点),
  一开就落库、一收就补 —— 观测面不该比被观测的事晚(不走 exporter 的批量异步路)
- 打点覆盖:工作流 root → 节点(记着派给了谁)→ 活动内每次工具调用 / 模型调用 / 人卡
- **root span 挂在 `runtime.begin`**:那是「单已建好、还没进第一个节点」那一刻 ——
  挂在 start 返回之后就晚了,起单同步走到第一个节点,节点 span 会先出生、另起孤树(实测)
- 观测尽力而为:写 span 失败吞掉,不掀翻业务
- 三样东西各管各的:trace(机器读时间轴)/ 任务记忆(人读留痕)/
  **工作区报告(活动自持的 HTML)** —— 谁也不替代谁

路由:`POST /api/gov/testbed/run`(带指派起单)、`GET /api/gov/workflows/:id/trace`。

端到端六例(真库):指派生效 / 任务真落到被指派人手上并由他答单 / 下游节点同样生效 /
全链 span 逐层挂得上且耗时齐备 / 一条流一个 traceId / 不指派照旧轮值。五闸全过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
2026-07-29 01:43:49 +08:00

133 lines
2.6 KiB
JSON

{
"version": "7",
"dialect": "postgresql",
"entries": [
{
"idx": 0,
"version": "7",
"when": 1785084862267,
"tag": "0000_luxuriant_gorilla_man",
"breakpoints": true
},
{
"idx": 1,
"version": "7",
"when": 1785086083016,
"tag": "0001_nostalgic_cobalt_man",
"breakpoints": true
},
{
"idx": 2,
"version": "7",
"when": 1785086166573,
"tag": "0002_superb_talisman",
"breakpoints": true
},
{
"idx": 3,
"version": "7",
"when": 1785086925397,
"tag": "0003_youthful_swarm",
"breakpoints": true
},
{
"idx": 4,
"version": "7",
"when": 1785087362238,
"tag": "0004_nice_ravenous",
"breakpoints": true
},
{
"idx": 5,
"version": "7",
"when": 1785088279529,
"tag": "0005_broad_sprite",
"breakpoints": true
},
{
"idx": 6,
"version": "7",
"when": 1785088864829,
"tag": "0006_easy_enchantress",
"breakpoints": true
},
{
"idx": 7,
"version": "7",
"when": 1785089035016,
"tag": "0007_swift_silver_samurai",
"breakpoints": true
},
{
"idx": 8,
"version": "7",
"when": 1785094481010,
"tag": "0008_strange_quasar",
"breakpoints": true
},
{
"idx": 9,
"version": "7",
"when": 1785096293279,
"tag": "0009_cute_bromley",
"breakpoints": true
},
{
"idx": 10,
"version": "7",
"when": 1785128271937,
"tag": "0010_clammy_fabian_cortez",
"breakpoints": true
},
{
"idx": 11,
"version": "7",
"when": 1785129993168,
"tag": "0011_little_pet_avengers",
"breakpoints": true
},
{
"idx": 12,
"version": "7",
"when": 1785130053168,
"tag": "0012_process_no_publish",
"breakpoints": true
},
{
"idx": 13,
"version": "7",
"when": 1785130113168,
"tag": "0013_one_active_version",
"breakpoints": true
},
{
"idx": 14,
"version": "7",
"when": 1785130113169,
"tag": "0014_instance_assignee",
"breakpoints": true
},
{
"idx": 15,
"version": "7",
"when": 1785130113170,
"tag": "0015_loop_pending_acceptance",
"breakpoints": true
},
{
"idx": 16,
"version": "7",
"when": 1785130113171,
"tag": "0016_workflow_assignments",
"breakpoints": true
},
{
"idx": 17,
"version": "7",
"when": 1785130113172,
"tag": "0017_trace_span",
"breakpoints": true
}
]
}