Commit Graph
5 Commits
Author SHA1 Message Date
admin ce05207aa2 graph: 补齐图模式剩余四件(验收机判/回退边/运行期改图/跨图子图),163 条测试全绿
- F1 accepts 机判:report done 前按 artifact:/evidence: 逐条校验,缺什么报什么,不许绕过
- F2 rework_to 回退边:判不过回到指定上游重做,attempts/reworks/事件齐备,人审驳回同路
- F3 运行期改图:add-node / remove-edge,目录锁+唯一临时名+原子替换+_rev 回读,并发不丢更新
- F4 跨图子图:subgraph.gid 引用同工作区另一张图,deps/when/rework_to 加前缀,父等收敛;缺图/自引用/跨图环/嵌套均硬报错
- 测试:122 → 163,新增 T20-T23;顺带修测试进程被本机批量删除守卫误杀的假红
2026-10-19 23:57:40 +08:00
admin 0c62e1b350 feat(session-mechanism/graph): C 方案——条件分支、子图、人审、取消、分池、自动派活、进度 2026-10-19 21:37:51 +08:00
admin 3b5bcc535a feat(session-mechanism/graph): B 方案——租约超时、失败策略与触发规则、动态展开
- 租约与超时:节点 start 记租约时刻,ready 时把租约超时的 running 节点识别出来并按策略处置
  (默认回 pending + attempts+1),卡死的节点不再永远占着并发名额
- 失败策略与下游触发规则:节点级重试(次数/间隔/退避/超限转 blocked);
  依赖触发支持 all_success(默认)/all_done/one_success 三档
- 动态展开(map):支持建图时给列表、也支持运行时从上游产物读 N 项;展开出的子节点同样受
  max_parallel 约束,子节点全部完成父节点才算完成
- 测试 52 → 92 条,实跑 Ran 92 tests OK(68 s),现有用例零回归
- README 补三节:字段怎么写、默认值是什么
- 改动只在 graph/ 目录内;collabd.py/goalctl.py/看板/钩子 diff 为空
2026-10-19 21:11:27 +08:00
admin 42a130e4f2 fix(session-mechanism/graph): 并发写不丢状态,测试不再被批量删除守卫拦
- graphctl.py 并发修复
  · 临时名原来固定成 graph.json.tmp ⇒ 两进程同时写直接撞 PermissionError(桌面实测第 14 条)
  · 新增 _update():读最新状态 → 重放本次变更 → 原子替换 → 回读核对 _rev,
    被覆盖则重读重做(最多 3 次),仍失败就报错退出
  · 修掉更隐蔽的一层:后写的整份覆盖前写会让节点状态静默消失
  · start / report 改为走 _update,业务校验放在 mutate 内
- test_graphctl.py
  · 每例只新建自己的目录、跑完不删,整轮收尾清一次 ⇒ 不再触发沙箱「批量删除」守卫
    (此前 49 条里 20 条报 ERROR,全部是本机策略拦清理,用例本身零失败)
  · 新增 T9_Concurrency 三个用例:并发开工、并发回报、版本号每次写都前进
  · 49 → 52 条,实跑 Ran 52 tests OK(13 s)
- README:补「并发写是怎么保证的」三层说明,测试数与用时更新
2026-10-19 20:09:24 +08:00
admin 4866ad8d37 feat(session-mechanism): 图模式补全自动化测试并接入技能入口
- graph/test_graphctl.py:新增 49 个用例,覆盖建图 / 校验硬错与警告 / 就绪集 /
  状态流转 / 非法操作 / 边界 / 写入范围隔离;实跑 Ran 49 tests OK(27.5s)
- graph/graphctl.py:修测试暴露的问题(+50/-10)
- graph/README.md:补「怎么跑测试」一节(+27 行)
- SKILL.md:目录树与入口指针登记 graph/(新增 4 行文档,机制行为零改动)
- 隔离性核对:collabd.py / goalctl.py / 两个看板 / 全部钩子 diff 为空;
  state.py 闸门读数绿、常驻心跳 7 秒、看板 20100 在听
2026-10-19 08:18:57 +08:00