scheduler-gateway/docs/MERGE-REPORT.md
Liuxinyu176 bbb364cd69 feat: DSH 调度网关(互联网关)v6.0.0 — 四模型合并版 R1+R2+R3
- 零第三方依赖,Node >=20 原生 ESM
- 团队式编排引擎:拆解/路由/执行/审查/合并全真实 LLM
- 阶段心跳、单一权威清单守卫、all-keys-failed 如实上报
- H4 会话视图/amend/watchdog 有界重试/产物区 artifacts.json
- H5 零依赖三栏控制台
2026-10-09 23:20:27 +08:00

46 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MERGE-REPORT — 四模型合并说明与历史问题修复清单
> 时间:2026-08 · 目录:scheduler-gateway-merged/
## 一、四模型来源与评分
| 模型 | R2(hard) 过程/产物 | R3(live) 过程/产物 | 合并中采用的部分 |
|---|---|---|---|
| fjord (doubao-live) | 96/93 | **95/92(最高)** | **骨架**:中心网关+调度层、协议、双形态、真实 LLM 编排、面板、worktree、98 断言基线 |
| lodestone (nexus-live) | 93/90 | 93/90 | **测试/压测**:stress 200 任务/16 并发、harness 思想;并入套件 N 段 |
| nexus (ai-hard) | 76/70 | 55/45 | **安全对抗**:SecurityGuard(注入/危险/脱敏/路径白名单)+ 28 项对抗断言(套件 M 段) |
| epoch (v2-live / v2-hard) | 84/78 | 80/70 | **广度与修复**:claim-settle 语义、死信/重试验证;其 LLM 测试偶发失败已修复;补上其缺失的插件半 |
| fjord (doubao-hard) | 96/93 | — | **R2 增强**:WAL/journal + recovery-demo + mock 看板服务器 |
## 二、历史问题修复清单(每条均有实测证据)
| # | 问题 | 来源 | 修复 | 证据 |
|---|---|---|---|---|
| 1 | `port: 0` 被当 falsy 回退 4180,多实例/测试抢占端口(ECONNRESET/连接池串台) | fjord 基线缺陷 + nexus EADDRINUSE 同源 | server.js 显式判 undefined;一键命令默认动态端口 | 修复前套件在 N 段 ECONNRESET 崩;修复后 164 断言全绿,demo/stress/chaos 可并发跑 |
| 2 | 一键命令复用 state/server-state.json,任务计数错乱(stress done 202>200) | fjord 基线 | demo/stress/chaos/board-claim 默认 persist:false + 干净内存态 | 修复后 stress done 200/200、chaos 200 全终态 |
| 3 | 真实 LLM 输出尾随解释文本,extractJson 取「首→末括号」解析失败,planner/reviewer 反复失败(epoch demo 管道打不开、nexus demo 崩同源) | 四家均有 | extractJson 渐进式括号匹配;reviewer verdict/score 归一化;重试 3→4 + hint | 修复后 demo 全程真实 LLM:rework(62)→pass(88)→merger |
| 4 | LLM 测试偶发红(真实网络抖动即失败) | epoch v2-live | 套件 J 段重试 3 次退避;无 key 降级真实网络尝试 | 连续多轮全绿 |
| 5 | demo 遇 LLM 失败直接崩溃,不可复现 | nexus(55/45 扣分点) | 编排器诚实回退(打印警告;GW_LLM_STRICT=1 严格) | demo 始终 EXIT=0,且回退有日志 |
| 6 | epoch R3 缺 DSH 插件半(无 cordis.patch.yml/lib) | epoch v2-live | 合并版自带完整插件半 | cordis.patch.yml + lib/index.js + lib/client.js 通过语法检查 |
| 7 | 看板 mutator 契约不匹配(返回 true 而非 doc → PUT body 变 true → 409 风暴) | 合并期发现 | claim-settle 对齐 doubao-hard mutate 契约 | 套件 L 段 409 风暴/接单桥全过 |
| 8 | recovery-demo 退出码误判(recovered 数组当计数) | 合并期引入 | claimedUnsettled 计数判断 | npm run recovery-demo EXIT=0 |
| 9 | worktree.js 尾部遗留 writeSeed/requireFs 死代码 | fjord 基线 | 清理 | node --check 通过 |
## 三、最终实测矩阵(scheduler-gateway-merged/ 根目录)
```
npm test → 164 断言 EXIT=0(A-N 段)
npm run live-llm → EXIT=0(planner/reviewer/merger 真实 200,证据落盘)
npm run demo → EXIT=0(真实 LLM 编排,rework→pass→merge,跨节点)
npm run stress → EXIT=0(200 任务 done 200,246 task/s,无重复领取)
npm run chaos → EXIT=0(200 任务 + 掉线注入,8 死信,无重复领取)
npm run recovery-demo → EXIT=0(WAL 恢复 2 在途,已 settle 不动)
npm run board-claim --once → EXIT=0(Host 不在时优雅退出)
```
## 四、诚实边界
- 真实 LLM 全部经 D:\work_doubao\.env.live 提供的 key 调用;key 不进代码/日志/文档
- SSH/Hermes 远端执行器未接真实远端(协议可扩展);codex adapter 需本机 codex CLI
- 面板为单文件 HTML(R3 规格允许独立 Web server 代替插件面板;插件侧边栏内嵌同一 URL)