@ckanner/flywheel 0.31.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +122 -5
- package/CONTRIBUTING.md +19 -0
- package/LICENSE +21 -0
- package/README.en.md +4 -171
- package/README.md +152 -269
- package/README.zh-CN.md +116 -0
- package/bin/flywheel-claude-code-pro-worker.js +1 -1
- package/bin/flywheel-codex-pro-worker.js +1 -1
- package/bin/flywheel-dsh-worker.js +1 -1
- package/bin/flywheel.js +1 -1
- package/bin/runtime.js +1 -1
- package/docs/README.md +86 -0
- package/docs/README.zh-CN.md +64 -0
- package/docs/archive/README.md +13 -0
- package/docs/archive/codex-pro-adapter-handoff.md +197 -0
- package/docs/archive/design-v0.24.md +540 -0
- package/docs/design.md +812 -0
- package/docs/en/claude-code-pro.md +25 -16
- package/docs/en/configuration.md +405 -145
- package/docs/en/contributing.md +303 -0
- package/docs/en/flow-console.md +142 -24
- package/docs/en/getting-started.md +232 -126
- package/docs/en/investigation.md +263 -0
- package/docs/en/jev-shadow.md +5 -0
- package/docs/en/jev.md +240 -0
- package/docs/en/model-policy.md +154 -62
- package/docs/en/releasing.md +207 -0
- package/docs/en/session-evaluation.md +4 -2
- package/docs/en/session-recovery.md +88 -6
- package/docs/en/workflow.md +241 -114
- package/docs/evaluation/README.md +12 -0
- package/docs/evaluation/jev-historical-provisional.json +138 -0
- package/docs/evaluation/jev-historical-result-2026-11-10.json +174 -0
- package/docs/plans/2026-11-01-dsh-integration.md +67 -0
- package/docs/plans/2026-11-01-model-profiles-preflight.md +29 -0
- package/docs/plans/2026-11-01-npm-installation.md +19 -0
- package/docs/plans/2026-11-03-codex-pro-default.md +28 -0
- package/docs/plans/2026-11-06-adaptive-workflow.md +365 -0
- package/docs/plans/2026-11-07-session-lifecycle.en.md +424 -0
- package/docs/plans/2026-11-07-session-lifecycle.md +337 -0
- package/docs/plans/2026-11-08-flow-console.md +271 -0
- package/docs/plans/2026-11-10-jev-shadow.md +32 -0
- package/docs/plans/2026-11-10-task-discovery.md +17 -0
- package/docs/plans/2026-11-10-workbench-redesign.md +19 -0
- package/docs/plans/2026-11-12-feedback-driven-workflows.md +739 -0
- package/docs/plans/2026-11-12-unified-jev-decisions.md +89 -0
- package/docs/plans/2026-11-13-jev-execution-decisions.md +110 -0
- package/docs/plans/2026-11-13-p5-ready-queue-prewarm.md +178 -0
- package/docs/plans/README.md +25 -0
- package/docs/reviews/2026-08-24-v0.18-review-fixplan.md +265 -0
- package/docs/reviews/2026-09-12-pr4-pr5-review.md +70 -0
- package/docs/reviews/README.md +12 -0
- package/docs/validation/2026-11-01-npm-installation.md +105 -0
- package/docs/validation/2026-11-01-profiles-preflight.md +67 -0
- package/docs/validation/2026-11-01-results.md +114 -0
- package/docs/validation/2026-11-03-codex-pro-default.md +90 -0
- package/docs/validation/2026-11-04-dsh-native-view.md +85 -0
- package/docs/validation/2026-11-04-release-0.28.1.md +33 -0
- package/docs/validation/2026-11-04-release-0.28.2.md +35 -0
- package/docs/validation/2026-11-05-dsh-0.2.2-compatibility.md +26 -0
- package/docs/validation/2026-11-05-registry-smoke-recovery.md +26 -0
- package/docs/validation/2026-11-05-release-0.28.3.md +32 -0
- package/docs/validation/2026-11-05-subscription-model-access.md +60 -0
- package/docs/validation/2026-11-05-view-order.md +14 -0
- package/docs/validation/2026-11-07-adaptive-workflow.md +79 -0
- package/docs/validation/2026-11-07-claude-code-pro.md +144 -0
- package/docs/validation/2026-11-07-session-lifecycle.md +136 -0
- package/docs/validation/2026-11-08-session-p3-p4.md +99 -0
- package/docs/validation/2026-11-09-flow-console.md +81 -0
- package/docs/validation/2026-11-10-jev-shadow.md +50 -0
- package/docs/validation/2026-11-10-task-discovery.md +45 -0
- package/docs/validation/2026-11-10-workbench-redesign.md +54 -0
- package/docs/validation/2026-11-11-release-0.30.2.md +65 -0
- package/docs/validation/2026-11-11-release-0.31.0.md +46 -0
- package/docs/validation/2026-11-12-dsh-0.2.2-rc.2.md +58 -0
- package/docs/validation/2026-11-12-feedback-driven-workflows.md +187 -0
- package/docs/validation/2026-11-12-release-0.31.1.md +58 -0
- package/docs/validation/2026-11-12-session-console-ux.md +46 -0
- package/docs/validation/2026-11-12-unified-jev-decisions.md +93 -0
- package/docs/validation/2026-11-13-dsh-settings-controls.md +104 -0
- package/docs/validation/2026-11-13-jev-execution-decisions.md +140 -0
- package/docs/validation/2026-11-13-p5-ready-queue-prewarm.md +138 -0
- package/docs/validation/2026-11-13-p5-review-closure.md +114 -0
- package/docs/validation/2026-11-13-p5-tracked-runtime-fixes.md +108 -0
- package/docs/validation/2026-11-13-prewarm-receipts-and-expiry-tests.md +92 -0
- package/docs/validation/2026-11-13-workspace-redesign.md +66 -0
- package/docs/validation/README.md +51 -0
- package/docs/validation/evidence/2026-11-08-session-p3-p4.json +5430 -0
- package/docs/validation/evidence/2026-11-13-p5-npm-candidate.json +54 -0
- package/docs/validation/evidence/claude-node-bridges.txt +118 -0
- package/docs/validation/evidence/claude-npm-build.txt +15 -0
- package/docs/validation/evidence/claude-npm-candidate.json +54 -0
- package/docs/validation/evidence/claude-npm-install.txt +21 -0
- package/docs/validation/evidence/claude-npm-tests.txt +145 -0
- package/docs/validation/evidence/claude-plugin-tests.txt +205 -0
- package/docs/validation/evidence/claude-quality-gate.txt +29 -0
- package/docs/validation/evidence/claude-race.txt +7 -0
- package/docs/validation/evidence/codex-pro-070-probes.txt +4 -0
- package/docs/validation/evidence/dsh-bridge.txt +4 -0
- package/docs/validation/evidence/dsh-native-view-bridge-tests.txt +1 -0
- package/docs/validation/evidence/dsh-native-view-build.txt +15 -0
- package/docs/validation/evidence/dsh-native-view-candidate.json +54 -0
- package/docs/validation/evidence/dsh-native-view-inspect.txt +27 -0
- package/docs/validation/evidence/dsh-native-view-install-tests.txt +19 -0
- package/docs/validation/evidence/dsh-native-view-npm-tests.txt +143 -0
- package/docs/validation/evidence/dsh-native-view-plugin-tests.txt +99 -0
- package/docs/validation/evidence/dsh-native-view-quality-gate.txt +29 -0
- package/docs/validation/evidence/dsh-plugin-tests.txt +48 -0
- package/docs/validation/evidence/function-coverage.txt +378 -0
- package/docs/validation/evidence/npm-build.txt +13 -0
- package/docs/validation/evidence/npm-contract-tests.txt +65 -0
- package/docs/validation/evidence/npm-dsh-bridge.txt +18 -0
- package/docs/validation/evidence/npm-dsh-plugin-tests.txt +62 -0
- package/docs/validation/evidence/npm-function-coverage.txt +420 -0
- package/docs/validation/evidence/npm-install-tests.txt +20 -0
- package/docs/validation/evidence/npm-quality-gate.txt +29 -0
- package/docs/validation/evidence/npm-race.txt +7 -0
- package/docs/validation/evidence/pr-dsh-bridge.txt +4 -0
- package/docs/validation/evidence/pr-dsh-plugin-tests.txt +48 -0
- package/docs/validation/evidence/pr-function-coverage.txt +379 -0
- package/docs/validation/evidence/pr-quality-gate.txt +28 -0
- package/docs/validation/evidence/pr-race.txt +6 -0
- package/docs/validation/evidence/profiles-control-smoke.json +1 -0
- package/docs/validation/evidence/profiles-dsh-bridge.txt +18 -0
- package/docs/validation/evidence/profiles-dsh-plugin-tests.txt +59 -0
- package/docs/validation/evidence/profiles-function-coverage.txt +411 -0
- package/docs/validation/evidence/profiles-quality-gate.txt +29 -0
- package/docs/validation/evidence/profiles-race.txt +7 -0
- package/docs/validation/evidence/quality-gate.txt +28 -0
- package/docs/validation/evidence/race.txt +6 -0
- package/docs/validation/evidence/watchdog-startup-after.txt +2 -0
- package/docs/validation/evidence/watchdog-startup-before.txt +6 -0
- package/docs/validation/evidence/watchdog-startup-quality-gate.txt +29 -0
- package/docs/validation/evidence/watchdog-startup-race.txt +7 -0
- package/docs/{claude-code-pro.md → zh-CN/claude-code-pro.md} +23 -17
- package/docs/{configuration.md → zh-CN/configuration.md} +397 -142
- package/docs/zh-CN/contributing.md +240 -0
- package/docs/zh-CN/flow-console.md +216 -0
- package/docs/zh-CN/getting-started.md +352 -0
- package/docs/zh-CN/investigation.md +213 -0
- package/docs/zh-CN/jev-shadow.md +5 -0
- package/docs/zh-CN/jev.md +192 -0
- package/docs/zh-CN/model-policy.md +128 -0
- package/docs/zh-CN/releasing.md +120 -0
- package/docs/{session-evaluation.md → zh-CN/session-evaluation.md} +4 -2
- package/docs/{session-recovery.md → zh-CN/session-recovery.md} +75 -12
- package/docs/zh-CN/workflow.md +284 -0
- package/npm/install.js +1 -1
- package/package.json +12 -25
- package/docs/flow-console.md +0 -122
- package/docs/getting-started.md +0 -418
- package/docs/model-policy.md +0 -65
- package/docs/workflow.md +0 -314
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# JEV 总开关与反馈驱动取证
|
|
2
|
+
|
|
3
|
+
[方案索引](README.md) · [当前 JEV 指南](../zh-CN/jev.md) · [验收记录](../validation/2026-11-12-unified-jev-decisions.md)
|
|
4
|
+
|
|
5
|
+
## 目标与基线
|
|
6
|
+
|
|
7
|
+
基线为 main `e035b5b5736c2d26da7ada2bf1ca97ee020fd5a2`(源码 0.31.1)。原实现
|
|
8
|
+
已有有界决策与调查采用,但桌面只有旧 `jev-shadow`,Task 默认不创建决策策略;
|
|
9
|
+
真实采用主要改变动作顺序,预算充足时仍运行全部动作。
|
|
10
|
+
|
|
11
|
+
本次目标:一个 `jev.enabled` 控制全部已支持的在线 JEV 功能。关闭时保持原路径,
|
|
12
|
+
开启后自动参与实际调查选择、冗余取证跳过和提前转入报告。保留 Task/New/Run
|
|
13
|
+
以及 Auto/Quick/Full,不引入第二套面向日常用户的模式树。
|
|
14
|
+
|
|
15
|
+
## 架构决策
|
|
16
|
+
|
|
17
|
+
### 配置拥有启用权
|
|
18
|
+
|
|
19
|
+
新增 `jev` 配置,唯一布尔开关为 `enabled`。目标地址、固定版本模型、凭据变量名、
|
|
20
|
+
超时、调用上限、概率阈值与允许的数据类别为运行边界。配置继续按任务、项目、
|
|
21
|
+
全局、内嵌表选择一份完整文件。项目关闭不能被全局开启或任务输入中的旧模式绕过。
|
|
22
|
+
路径发现必须处理默认 cwd、Git 子目录、物理路径与相对任务路径。
|
|
23
|
+
|
|
24
|
+
创建调查时由 Go 自动解析并冻结有效策略;宿主仅提供目标、假设和批准的取证动作。
|
|
25
|
+
Start 不发 JEV 请求。Run 负责循环、回执、选择及原子状态更新。新任务不再手写
|
|
26
|
+
`decision.mode`,也不因使用 Task、New 或 Run 而获得不同的开关语义。
|
|
27
|
+
|
|
28
|
+
### 运行中的关闭和恢复
|
|
29
|
+
|
|
30
|
+
请求前、返回后、采用前重核当前开关与权限边界。关闭或不再相容的策略回到合法
|
|
31
|
+
基线;已经发出的请求仍按冻结身份核对。未知请求计入上限且不重发,未知实际动作
|
|
32
|
+
仍阻断。重新开启不重置预算或历史。原本未冻结 JEV 策略的准备记录继续原路径,
|
|
33
|
+
新准备记录才采用新开启的配置。
|
|
34
|
+
|
|
35
|
+
当前状态展示区分配置启用值、最近观察到的运行状态、实际采用结果和取证控制
|
|
36
|
+
效果。仅保存配置不能显示为已经采用,历史快照不能显示为实时配置读取。
|
|
37
|
+
|
|
38
|
+
### 取证控制也必须有具体绑定
|
|
39
|
+
|
|
40
|
+
保留 Go 实现的 `read_file`、`search_text`、`list_files`。在真实观察满足前提时,
|
|
41
|
+
由 Go 生成额外有限选项:
|
|
42
|
+
|
|
43
|
+
| 选项 | 机械前提 | 效果 |
|
|
44
|
+
| --- | --- | --- |
|
|
45
|
+
| 执行下一项动作 | 属于剩余批准动作;目标及状态身份一致 | 执行原 Go 处理器 |
|
|
46
|
+
| 跳过一项冗余动作 | 涉及的假设已有成功、未截断且候选仍匹配的观察 | 记录被跳过的动作及观察引用 |
|
|
47
|
+
| 进入报告 | 所有假设均有上述有效观察,且仍有未执行动作 | 停止收集,进入 awaiting-report |
|
|
48
|
+
|
|
49
|
+
JEV 在这些候选中选择。采用仍校验输入、模型、概率、当前状态和候选绑定,并将
|
|
50
|
+
回执消费与效果记录一并 CAS 持久化。跳过和提前报告不增加文件权限,不创建 shell
|
|
51
|
+
命令,不声称假设成立或根因已经证明。分析者提交报告时必须保留观察引用及局限;
|
|
52
|
+
修复继续使用原实现范围和验证/review 门禁。
|
|
53
|
+
|
|
54
|
+
### 退役重复路径
|
|
55
|
+
|
|
56
|
+
删除普通运行的影子观察器和独立影子网络客户端。旧 `jev-shadow` 仅保留读取迁移,
|
|
57
|
+
不能把原本只批准本地捕获的设置变成在线权限。桌面只保留 JEV 总开关,保存即可
|
|
58
|
+
生效,不设置第二次“开启并保存”确认框。旧 `shadow` 命令只返回迁移提示。
|
|
59
|
+
|
|
60
|
+
统一 `decision replay` 与 `decision evaluate` 继续作为开发工具。Replay 纯本地,
|
|
61
|
+
不依赖开关;evaluate 使用同一总开关、目标、凭据和配置上限,强制只建议,不执行
|
|
62
|
+
动作。取消发生在真实请求中时保留未知回执,本次返回 143;以后读取该未知回执
|
|
63
|
+
返回 3,不将历史取消当作新取消,也不重新请求。
|
|
64
|
+
|
|
65
|
+
旧快照的请求问题文本和摘要必须仍可校验。新增控制语义放在新的动作描述中,
|
|
66
|
+
避免无版本更新破坏旧 QuestionHash。历史方案、原始评估及验收记录不重写。
|
|
67
|
+
|
|
68
|
+
## 与“快是一种方法”的关系
|
|
69
|
+
|
|
70
|
+
本次把“更快选一项动作”扩展为“依据反馈减少剩余取证”。确定性动作直接执行,
|
|
71
|
+
JEV 只在有可选分支时参与。关闭时不为每个动作重复解析不可能采用的 JEV 策略。
|
|
72
|
+
提前结束的语义边界保持为交给分析者,而不是以概率替代验收。
|
|
73
|
+
|
|
74
|
+
当前仍保留选择前后对批准路径的候选摘要检查,尚未以缓存或局部哈希替代。它有
|
|
75
|
+
读取开销,但不能在缺少等价失效证明时直接删除。当前真实采用族仍为调查;修复、
|
|
76
|
+
replan 和模型路由的协议枚举不会因此自动获得执行权。后续新增已验证的决策点应
|
|
77
|
+
复用同一开关和配置解析,不再增加功能开关。
|
|
78
|
+
|
|
79
|
+
## 验收与衡量
|
|
80
|
+
|
|
81
|
+
代码验收覆盖总开关、优先级和迁移、Task 等价公开调用、关闭时零请求、开启时真实
|
|
82
|
+
采用、证据不足不提前结束、输入改变拒绝旧建议、取消/未知/恢复、报告与修复
|
|
83
|
+
移交,以及桌面显示。Go 保持每个函数 100% 语句覆盖门禁,运行核心 race、插件
|
|
84
|
+
行为测试及三个 Provider 跨进程桥接。
|
|
85
|
+
|
|
86
|
+
离线服务 fixture 可以证明分支真的生效、动作减少和恢复正确,不能证明真实模型
|
|
87
|
+
质量或净耗时收益。真实效果需要完整任务对照:有效证据时间、执行/跳过动作数、
|
|
88
|
+
总耗时、JEV 自身耗时、实际/未知用量及最终质量。本次不发付费请求,不更改用户
|
|
89
|
+
机器配置,不发布 npm,也不把源码完成等同于 Mac 桌面已验收。
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# JEV 执行决策与有界诊断扩展
|
|
2
|
+
|
|
3
|
+
[方案索引](README.md) · [原整体方案](2026-11-12-feedback-driven-workflows.md) · [统一开关](2026-11-12-unified-jev-decisions.md) · [系统设计](../design.md) · [离线工程验证](../validation/2026-11-13-jev-execution-decisions.md)
|
|
4
|
+
|
|
5
|
+
## 目标与实施边界
|
|
6
|
+
|
|
7
|
+
用户要求将真实账号、效果和桌面验收留到后续,先完成剩余工程能力。本轮接在
|
|
8
|
+
PR #37 的 `4ea69cc54176d7afa36d235e6b7dc8728005a671` 后,继续使用同一个
|
|
9
|
+
`jev.enabled`。不恢复影子路径,不增加按动作族启用的开关,不改变默认 Provider、
|
|
10
|
+
模型或推理等级,不用本地 fixture 的速度推导真实收益。
|
|
11
|
+
|
|
12
|
+
本轮交付的是可执行、可恢复、可关闭的完整决策路径:
|
|
13
|
+
|
|
14
|
+
| 能力 | 已有基础 | 本轮补齐 |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| 调查动作 | 精确路径读取、文本搜索、目录名字 | 明确批准的复现命令、独立副本实验、精确 HTTP 读取 |
|
|
17
|
+
| 失败后下一步 | 固定返修、空转升级与重规划 | 在合法修复、补证据和重规划之间采用 JEV 选择 |
|
|
18
|
+
| 模型/effort | 完整绑定允许集及确定性质量升级 | 在同一允许集和切换预算内采用 JEV 选择 |
|
|
19
|
+
| 反馈检查 | 完整冻结 gate 和结构化失败观察 | 优先选择有信息价值的已批准检查,补充下一轮反馈 |
|
|
20
|
+
| 可解释性 | 调查选择与证据控制记录 | 实验结果、失败决策、实际效果、基线及未知状态的桌面展示 |
|
|
21
|
+
|
|
22
|
+
Auto 继续由 Go 校验 Quick/Full 资格。Plan、最终验收、独立 Review/Judge、
|
|
23
|
+
权限和远端交付授权不由 JEV 放行。没有需要选择的分支时直接执行原路径;明确的
|
|
24
|
+
小修复不因打开 JEV 固定增加模型阶段。
|
|
25
|
+
|
|
26
|
+
## 调查动作契约
|
|
27
|
+
|
|
28
|
+
### 有界命令与副本实验
|
|
29
|
+
|
|
30
|
+
`run_command` 冻结 exact argv、批准输入文件、环境变量名、超时、预期退出码和
|
|
31
|
+
`execution-boundary: host-process`。宿主根据原任务授权准备具体命令,JEV 只能
|
|
32
|
+
选择已存在的 action ID,不能拼接参数、扩大输入或要求更多凭据。
|
|
33
|
+
|
|
34
|
+
引擎把精确批准的普通文件复制到私有临时目录,在副本中通过受管进程执行。不隐式
|
|
35
|
+
运行 shell,不递归扩大目录的读取授权;符号链接、特殊文件、越界路径及超限输入
|
|
36
|
+
拒绝。需要解释器时明确出现在已批准 argv 中。凭据只记录环境变量名,输出脱敏。
|
|
37
|
+
|
|
38
|
+
副本隔离保护原输入和普通相对路径写入,但 `host-process` 不是 OS 沙箱。命令拥有
|
|
39
|
+
主机用户实际可用的能力,无法仅凭工作目录阻止访问其他路径或网络。需要强隔离的
|
|
40
|
+
任务应批准调用实际容器/沙箱入口,不能把 worktree 或副本描述为强隔离证明。
|
|
41
|
+
|
|
42
|
+
动作受全局 deadline、动作数、单次超时和输出上限限制;取消结束整个进程组并确认
|
|
43
|
+
收尾。回执记录退出、信号、超时、取消、输入身份、临时目录与清理结果。未知动作
|
|
44
|
+
或清理未确认保留现场并阻断,不自动重跑。预期非零退出可以记录复现证据,但不能
|
|
45
|
+
被当作授权提前结束调查的成功观察。
|
|
46
|
+
|
|
47
|
+
### 外部只读查询
|
|
48
|
+
|
|
49
|
+
`http_read` 只接受明确批准的 GET/HEAD 与精确 URL,冻结预期状态、超时和响应
|
|
50
|
+
上限。要求 HTTPS(本地 loopback fixture 可用 HTTP),禁止 URL userinfo、
|
|
51
|
+
fragment、重定向和环境代理;凭据由 `headers-env` 引用环境变量名。HTTP 方法
|
|
52
|
+
并不证明对端无副作用,地址与请求仍须属于原任务授权。
|
|
53
|
+
|
|
54
|
+
请求和返回采用同一动作意图/回执恢复协议;超时、异常状态、响应截断或未知请求
|
|
55
|
+
不能成为成功取证/提前报告依据。响应是外部数据,不能改变工作流权限或预算。
|
|
56
|
+
|
|
57
|
+
## 执行中的决策边界
|
|
58
|
+
|
|
59
|
+
只有已经确认结束的执行/验证/评审失败才形成下一步候选。Go 根据当前 packet、
|
|
60
|
+
失败观察、已尝试路径、剩余尝试、工作流和模型允许集生成动作及确定性基线。
|
|
61
|
+
|
|
62
|
+
| 候选 | 前提与实际效果 |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| 继续局部修复 | 原边界及剩余尝试允许;继续原 Execute 闭环 |
|
|
65
|
+
| 补充反馈证据 | 已批准检查有明确参数和预算;运行并保存真实结果,再交回执行者 |
|
|
66
|
+
| 请求重规划 | 原任务允许且还有规划次数;走既有受限 Plan;Quick 先持久化升级 |
|
|
67
|
+
| 选择模型/effort | 在冻结的完整 execution-policy 绑定允许集内;消耗同一切换次数并冷启动 |
|
|
68
|
+
|
|
69
|
+
身份不可靠、动作终态未知、边界违规、权限不足或预算耗尽,均不能通过 JEV 变成
|
|
70
|
+
“再试一次”。AUTH/QUOTA 等渠道错误使用既有错误分类,不冒充质量问题,也不
|
|
71
|
+
让 JEV 扩大费用渠道。反馈检查是额外事实,不替代最终完整 gate,不减少检查集合。
|
|
72
|
+
|
|
73
|
+
没有配置多个合法执行绑定时继续使用原模型;一个 JEV 开关不能替用户生成模型
|
|
74
|
+
授权。已有允许集属于实际资源与权限声明,不是新增 JEV 功能开关。
|
|
75
|
+
|
|
76
|
+
Packet 可选 `feedback-checks`(最多八项),用于声明不同于完整 L1 的短诊断命令,
|
|
77
|
+
结构沿用 GateEntry 的 cmd/script 与 expect,另用 `purpose`(最多 160 字符)
|
|
78
|
+
描述可区分的原因。用途作为已批准任务摘要供 JEV 比较,不发送原命令或把日志
|
|
79
|
+
伪装成结构化事实。缺少用途的短检查仍供执行者参考,不进入定向决策候选;JEV
|
|
80
|
+
也可复查有可靠失败观察的 L1 检查。补充检查沿用冻结验证环境、超时和清理规则,不
|
|
81
|
+
缩减最终 gate。候选 ID 区分 feedback 与 L1 recheck,不能混用数组下标。
|
|
82
|
+
|
|
83
|
+
## 持久化、预算和并发
|
|
84
|
+
|
|
85
|
+
任务账本保存冻结策略、决策快照、原派发时间、请求回执、采用原因和动作绑定。
|
|
86
|
+
调用前持久化意图并预留次数,返回后重核当前总开关、限制与目标;采用前再次核对
|
|
87
|
+
候选、契约、观察和允许动作。选择消费与待执行效果必须通过同一 CAS 提交。
|
|
88
|
+
|
|
89
|
+
未知 JEV 请求只读恢复,不重发;实际动作未知仍阻断。重复恢复不重复切换模型、
|
|
90
|
+
派发检查、启动 Plan 或记账。调查移交实现继续累计调用与已知/未知用量,切阶段、
|
|
91
|
+
packet、模型或恢复不能重置总上限。并行 worker 的决策由任务所有者协调,不能各自
|
|
92
|
+
复制一份调用额度;不得因新决策模块绕过既有 lease、取消与共同候选复验。
|
|
93
|
+
|
|
94
|
+
普通任务只用 `jev.enabled`;开发用在线 evaluation 继续强制 advisory,离线 replay
|
|
95
|
+
继续不联网。调用方只开放自己具有真实执行器的动作族,协议枚举本身不提供执行权。
|
|
96
|
+
|
|
97
|
+
## 接入与验证
|
|
98
|
+
|
|
99
|
+
Task/New/Run 继续承担准备、调用和结果翻译,不能把内部循环搬到 skill。桌面
|
|
100
|
+
沿用单开关,展示真实动作与效果、原因、失败/未知、累计预算和清理状态。契约、
|
|
101
|
+
schema、当前设计、双语指南、技能和测试随实现同步。
|
|
102
|
+
|
|
103
|
+
本轮执行工程门禁:逐函数 Go 覆盖率、失败与恢复行为、race、插件行为、跨进程
|
|
104
|
+
Provider 桥接,以及真实本地子进程/HTTP fixtures。用例验证分支实际执行和关闭
|
|
105
|
+
回到基线,不只检查 prompt 或 JSON 枚举。
|
|
106
|
+
|
|
107
|
+
按用户最新要求,真实 JEV/模型任务、Mac 桌面效果、耗时/token/质量配对验收
|
|
108
|
+
留到后续。P5 的 ready queue、预热和进一步流水化仍按原方案“收益成立才实施”;
|
|
109
|
+
本轮不会在缺少瓶颈数据时将它们变成强制默认。合并、发行与用户安装是独立交付
|
|
110
|
+
动作,不能把源代码提交称为已发布或已在用户机器生效。
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# P5:就绪队列与有界运行时预热
|
|
2
|
+
|
|
3
|
+
[方案索引](README.md) · [原整体方案](2026-11-12-feedback-driven-workflows.md) · [系统设计](../design.md) · [当前配置](../zh-CN/configuration.md#就绪队列与运行时准备) · [工程验证](../validation/2026-11-13-p5-ready-queue-prewarm.md)
|
|
4
|
+
|
|
5
|
+
## 1. 本轮决定与交付边界
|
|
6
|
+
|
|
7
|
+
原整体方案将 P5 调度与运行时优化放在瓶颈测量之后。PR #37 的
|
|
8
|
+
`c445393c4f7238677146028b89efe520253f8318` 已完成 JEV 执行决策扩展,
|
|
9
|
+
其工程验证记录明确保留了 P5。用户随后要求把这些工程能力也补齐,真实账号、
|
|
10
|
+
性能及 Mac 桌面验收留到后面。本记录描述这次新增实现决定,保留前次记录的历史事实。
|
|
11
|
+
|
|
12
|
+
本轮缩短两类可控等待:独立 packet 的批次尾部等待,以及下一次 Review 的 SDK
|
|
13
|
+
初始化等待。优化受确定性调度、实际回执、冻结契约、预算和相同候选验收约束;
|
|
14
|
+
不以更短的离线 fixture 时间宣称真实模型更快,也不改变模型/账号默认。
|
|
15
|
+
|
|
16
|
+
| 范围 | 本轮决定 | 保持的边界 |
|
|
17
|
+
| --- | --- | --- |
|
|
18
|
+
| Ready queue | 在有界 Execute/L1 窗口中按空位接纳已就绪独立 packet | 冻结依赖、写入范围、独立 worktree、实际渠道并发与共享预算 |
|
|
19
|
+
| 流水化 | 独立执行槽位及时补位;串行 packet 的确定性检查与下一 Review runtime 初始化重叠 | Review 推理、Plan 修订、Git 集成仍在安全屏障后执行 |
|
|
20
|
+
| 预热 | 通过 DSH SDK 公开初始化能力准备一个待用 Review runtime | 无模型 prompt,精确绑定与权限,未使用也须有界清理 |
|
|
21
|
+
| 已有候选 | 评估现有受管 Session 交回与任意补丁接纳的差异 | 通用补丁导入独立排期,不伪造 Execute 来源 |
|
|
22
|
+
| 默认策略 | 新设置缺省 `batch`/不预热 | 真实收益验收后再决定是否更改安装默认;不改用户配置 |
|
|
23
|
+
|
|
24
|
+
工程验证结果单独进入验收记录。合并、npm 发行、用户安装和实际账号验收不由本计划
|
|
25
|
+
代替;计划中的验证矩阵也不等同已经执行的测试。
|
|
26
|
+
|
|
27
|
+
## 2. 配置与产品职责
|
|
28
|
+
|
|
29
|
+
新增两个可选 scheduler 字段:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"scheduler": {
|
|
34
|
+
"mode": "parallel",
|
|
35
|
+
"max-parallel": 2,
|
|
36
|
+
"providers": {"deepseek-account": 1},
|
|
37
|
+
"dispatch": "ready-queue",
|
|
38
|
+
"prewarm": true
|
|
39
|
+
},
|
|
40
|
+
"worktree": {"enabled": true}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
这是显式启用的示例。安装模板与字段省略时都保留 `dispatch:"batch"`、
|
|
45
|
+
`prewarm:false`。已有完整配置省略 scheduler 时仍为 serial;新安装模板的
|
|
46
|
+
parallel/最大 2 保持。`providers` 键仍是实际 channel 名称,不改成 provider ID。
|
|
47
|
+
|
|
48
|
+
| 选择层 | 职责 |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| Task/New/Run 和单阶段入口 | 目标准备、方案审阅、运行/恢复与明确干预 |
|
|
51
|
+
| Auto/Quick/Full | 按资格选择实施流程与必要阶段 |
|
|
52
|
+
| scheduler | 在既有流程与权限内安排可以重叠的工作 |
|
|
53
|
+
| `jev.enabled` | 唯一的 JEV 调查与执行决策总开关 |
|
|
54
|
+
|
|
55
|
+
不增加新的工作流模式或 JEV 子开关。配置编辑器支持新增字段,保存遵守原文件
|
|
56
|
+
revision、备份与原子发布规则,当前进程继续使用已载入快照。下次启动可以选择新的
|
|
57
|
+
调度策略,但原 invocation、未知结果和未完成共享批次仍按原记录核对。`state.scheduler`
|
|
58
|
+
记录本次实际载入策略,不被描述成不可变化的首次策略冻结。
|
|
59
|
+
|
|
60
|
+
## 3. Ready queue 的接纳与停止
|
|
61
|
+
|
|
62
|
+
适用条件同时为 Full、`scheduler.mode=parallel`、`dispatch=ready-queue`、
|
|
63
|
+
最大并发大于 1、自动管理 Worktree 开启。Quick、serial、最大并发为 1 保持原路径;
|
|
64
|
+
自动管理关闭时一概使用既有 batch,包括之后可能登记外部 worktree 的情况。
|
|
65
|
+
|
|
66
|
+
1. 从当前已冻结契约中收集全部已就绪、互相独立的候选,保留稳定的 packet 顺序。
|
|
67
|
+
依赖须已经交付,写入范围须明确且互不重叠;没有声明或需要 live 凭证的任务保持
|
|
68
|
+
原串行规则。固定本轮候选集,运行中的模型不能添加任意队列项。
|
|
69
|
+
2. 先为首个有界窗口全部准备独立目录并持久化,成功后才派发。总并发和渠道限制
|
|
70
|
+
仍在实际模型派发前重核,hard 预算仍限制未结算的在飞模型调用。
|
|
71
|
+
3. 一个 worker 完成 Execute/L1 后,协调器可为下一项准备目录并 CAS 保存,再
|
|
72
|
+
占用空位。未接纳项不提前创建目录、不改 packet 状态、不写 invocation 意图。
|
|
73
|
+
4. 补位准备失败、未知效果或取消停止新接纳,取消并等待已启动工作;不会退回
|
|
74
|
+
共享目录继续并发。尝试耗尽或空转也停止补位,停稳后仅处理实际已启动集合。
|
|
75
|
+
5. 所有已启动 worker 收尾后,进入原有串行 Review、升级/Plan 和集成。Plan 改变
|
|
76
|
+
契约后重新选择候选,不能继续使用旧队列。后续分支吸收已交付成果,再在合成候选
|
|
77
|
+
上复验。分支自身绿灯不能代替共同候选证据。
|
|
78
|
+
|
|
79
|
+
协调器继续拥有权威状态,worker 仅持有私有视图。packet、session、用量、JEV
|
|
80
|
+
请求和效果沿原协调路径合并并 CAS 保存。队列容量不会成为新的尝试额度、模型选择
|
|
81
|
+
授权或 JEV 次数上限。停止和 SIGTERM 仍等待实际已派发子进程清理。
|
|
82
|
+
|
|
83
|
+
## 4. DSH 初始化与验证重叠
|
|
84
|
+
|
|
85
|
+
预热必须执行真实的运行时准备,不能把普通 thread ID 续用改名为预热。本轮使用
|
|
86
|
+
DSH SDK 的公开 initialize 能力;只准备运行时,不先派发 Review prompt、不让
|
|
87
|
+
模型预测验收结果,也不启动标题或压缩等额外模型调用。其他 harness 保持已有冷
|
|
88
|
+
启动,不虚构 Codex、Claude 或 Kimi 的公共 warm API。
|
|
89
|
+
|
|
90
|
+
串行 packet 的 Execute 确认完成后,可为下一次 Review 初始化一个 runtime,
|
|
91
|
+
同时运行确定性验证。Review 真正调用仍需先满足所有适用检查、独立角色、绑定、
|
|
92
|
+
权限、预算与候选身份要求。Quick 与 Full 的阶段语义保持,预热不减少检查集合。
|
|
93
|
+
|
|
94
|
+
并行 Execute/L1 lane 不准备或持有预热实例;独立并行组全部停稳后,其串行
|
|
95
|
+
Review 路径才可开始准备。该路径的并行 L1 已经结束,不能把各 lane 的 L1 时间
|
|
96
|
+
都记作隐藏的初始化等待。主要重叠机会是串行 Execute 后的 L1 与适用 Quick
|
|
97
|
+
检查。共享候选批次、仅执行 Execute 的单阶段操作和明确暂停在 Review 前的
|
|
98
|
+
流程不预热。
|
|
99
|
+
|
|
100
|
+
每次至多一个待用 runtime,不跨任务或角色共享。消费时重核实际后端、模型、
|
|
101
|
+
账号渠道、目录、权限及必要会话参数;不匹配则关闭该实例。验证失败、流程升级、
|
|
102
|
+
暂停、预算阻止或取消时,未使用实例也必须等待有界 shutdown。关闭具有独立的短
|
|
103
|
+
宽限期,之后由 watchdog 取消并等待进程组清理,不能一直等待原模型的 wall
|
|
104
|
+
预算。未知清理不能用“预热可选”解释成成功。
|
|
105
|
+
|
|
106
|
+
待用实例的准备准入上限为 60 秒,到期立即禁止正式移交,再给正常关闭最多三秒
|
|
107
|
+
宽限,超过后强制收束。只有尚未尝试正式 start、原私有回执明确证明未派发、
|
|
108
|
+
SDK 与进程组已清理、输出可信且当前调用未取消或超时,安全过期才可回退一次冷
|
|
109
|
+
启动。冷调用沿用同一已持久化 invocation/RequestID,只消费原调用剩余 wall/
|
|
110
|
+
idle 时限,不增加业务尝试或预算;正式派发可能已经发生时不做这个回退。初始化
|
|
111
|
+
失败本身不构成允许冷启动的证据。
|
|
112
|
+
|
|
113
|
+
这项流水化重叠的是 SDK 准备与验证。Review 推理、Plan 变更和 Git 交付继续遵守
|
|
114
|
+
现有安全屏障;无需为追求流水程度将它们与仍在写入候选的 worker 并发。
|
|
115
|
+
|
|
116
|
+
### 持久清理责任
|
|
117
|
+
|
|
118
|
+
准备前 Go 保存单个 `state.worker-prewarm`,记录 ID、role/scope、绑定摘要、
|
|
119
|
+
开始时间与 run。私有 `.control/prewarm/` 保存原终态回执。重启只核对原记录,
|
|
120
|
+
不续用 worker;回执身份精确匹配、明确没有发送 prompt、SDK 已确认清理、记录的
|
|
121
|
+
worker 与其原进程组均已退出时,才解除责任。发布回执须同步文件与所在目录;
|
|
122
|
+
恢复时重新确认两项持久化。实际没有启动进程的分支只能用本地明确记录的
|
|
123
|
+
no-process 回执证明,不能凭缺失 PID 或等待时间推断。任一事实缺失仍阻断,
|
|
124
|
+
关闭优化同样不能跳过。
|
|
125
|
+
|
|
126
|
+
首次准备将 `state.sessions.version` 提升为 3,后续操作不得降回 2;新引擎兼容
|
|
127
|
+
1/2/3,旧引擎因不认识 3 而拒绝任务。版本标记防止旧版忽略新的清理责任,
|
|
128
|
+
不改变 `sessions.policy-version:1` 或各 worker/lifecycle 的协议版本。业务模型
|
|
129
|
+
调用仍具有自己的意图、预算和终态记录,准备回执不能替代它们。
|
|
130
|
+
|
|
131
|
+
## 5. 已有候选接纳评估
|
|
132
|
+
|
|
133
|
+
当前有受管 Session `claim → return` 路径:先要求已有 packet Session 的原调用
|
|
134
|
+
已消费并确认清理,核对绑定与历史后接管;交回运行 L1、适用 Quick gate 与独立
|
|
135
|
+
Review,保存候选绑定的 `source:human-takeover`,后续由正常引擎交付。
|
|
136
|
+
|
|
137
|
+
这条路径不接受一个从未具有受管 Session 的任意预先修改,也不通过 Verify/Review
|
|
138
|
+
两次单步自动补造 Executor 来源。原整体方案把通用候选接纳明确列为可独立排期,
|
|
139
|
+
因此本轮完成评估并保留真实能力边界,不扩展为自动 patch 导入。
|
|
140
|
+
|
|
141
|
+
未来通用入口须用 revision-bound 请求明确 packet、原基线、实际执行目录、真实
|
|
142
|
+
来源和完整候选身份;检查保护验收与实现边界,拒绝绕过未知调用。外部来源证据可
|
|
143
|
+
替代不存在的模型执行记录,不能编造 done-report。完整验收、独立 Review、合成候选
|
|
144
|
+
复验与 Git 持久化仍使用同一交付链。
|
|
145
|
+
|
|
146
|
+
## 6. 工程验证矩阵
|
|
147
|
+
|
|
148
|
+
| 场景 | 必须证明的行为 |
|
|
149
|
+
| --- | --- |
|
|
150
|
+
| 旧配置、默认模板、显式开关 | 旧 serial 与 batch 保持;新字段合法加载、保存、读回;JEV 不被调度编辑开启 |
|
|
151
|
+
| 长短不一的独立 packet | 前一个 Execute/L1 槽位释放即补位,总并发不超限 |
|
|
152
|
+
| 依赖、写入冲突、缺少声明 | 不因 ready queue 提前派发或改变串行资格 |
|
|
153
|
+
| 首窗/后续目录准备失败 | 保存成功前不派发;后续停止接纳并收束;未派发项无虚构状态 |
|
|
154
|
+
| 尝试耗尽、空转、JEV、重规划 | 原失败和决策预算保持,停稳再规划,修订后重新选择 |
|
|
155
|
+
| hard 预算与渠道限制 | 实际调用遵守原限制,消费持久化后才释放必要额度 |
|
|
156
|
+
| 共享 checkout 与集成 | 共同候选屏障保持,集成后复验,失败保留成果 |
|
|
157
|
+
| 真实初始化但尚未派发 | 模型 prompt 数量为零;串行准备与验证可观察地重叠;并行 lane 不积累实例 |
|
|
158
|
+
| 正常消费/未使用/身份变化 | 只消费匹配实例,未知或清理未确认阻止继续 |
|
|
159
|
+
| 安全过期/准备失败 | 只有精确未派发、清理与时限证明允许同一 invocation 冷启动一次;不重置额度 |
|
|
160
|
+
| 超时、取消、进程退出 | Close 有独立关闭宽限;等待所有拥有的子进程清理,SIGTERM 和原回执恢复保持 |
|
|
161
|
+
| 预热中断后重启、关闭开关 | 原无 prompt 清理回执、文件/目录同步和整个进程组退出均确认才解除;缺失/错配保持阻断,存储版本不降级 |
|
|
162
|
+
|
|
163
|
+
Go 执行仓库逐函数 100% statement coverage 门禁及针对并发路径的 race 检查;
|
|
164
|
+
worker/插件执行行为与跨进程桥接检查。离线 fixtures 使用真实受管子进程和公开
|
|
165
|
+
适配器路径,记录支持后端与跳过项,不能用 mock 名称冒充实际能力。必要的文档、
|
|
166
|
+
schema、打包入口和双语界面检查与实现一起完成。
|
|
167
|
+
|
|
168
|
+
## 7. 后续真实验收
|
|
169
|
+
|
|
170
|
+
用固定初始快照、相同契约/oracle、模型绑定、账号渠道、并发与预算比较 batch/
|
|
171
|
+
ready queue、冷启动/预热。包含不同 packet 耗时、验证短于/长于初始化、经常
|
|
172
|
+
返修、共享目录与取消恢复等任务,分别报告冷/热条件和资源利用,不把并行区间
|
|
173
|
+
简单相加。
|
|
174
|
+
|
|
175
|
+
首要门槛仍是可信交付与恢复正确。随后比较端到端达到验收的时间、尾延迟、失败
|
|
176
|
+
任务消耗、初始化与验证重叠、预热实际消费率及闲置资源。没有计量的 token/cost
|
|
177
|
+
保留 unknown;准备完成不证明模型质量或总时延改善。真实收益成立后再决定安装
|
|
178
|
+
默认策略,任何默认迁移和真实用户配置更新均单独处理。
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Design proposals
|
|
2
|
+
|
|
3
|
+
[Documentation](../README.md) · [中文文档](../README.zh-CN.md)
|
|
4
|
+
|
|
5
|
+
These dated proposals explain why features were designed and how their work
|
|
6
|
+
was staged. Proposed work is not automatically shipped work. The
|
|
7
|
+
[architecture specification](../design.md) describes the maintained contract;
|
|
8
|
+
[validation records](../validation/README.md) identify the checks actually performed.
|
|
9
|
+
|
|
10
|
+
| Date | Proposal | Focus |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| 2026-11-13 | [P5 ready queues and bounded runtime preparation](2026-11-13-p5-ready-queue-prewarm.md) (Chinese) | Optional admission queues, DSH initialization alongside verification, preserved delivery barriers, and existing-candidate assessment |
|
|
13
|
+
| 2026-11-13 | [JEV execution decisions and bounded diagnostics](2026-11-13-jev-execution-decisions.md) (Chinese) | Reproduction commands, HTTP evidence, failure actions, allowed model selection, and shared durable budgets |
|
|
14
|
+
| 2026-11-12 | [Unified JEV decisions](2026-11-12-unified-jev-decisions.md) (Chinese) | One master switch, actual investigation adoption, evidence-based deferral/report handoff, and durable recovery |
|
|
15
|
+
| 2026-11-12 | [Feedback-driven workflows and JEV](2026-11-12-feedback-driven-workflows.md) (Chinese; proposal with subsequent implementation) | Auto / Quick / Full, bounded investigation, fast feedback, model policy, and staged semantic decisions |
|
|
16
|
+
| 2026-11-10 | [Workbench redesign](2026-11-10-workbench-redesign.md) | Canvas, configuration, and run-history interaction |
|
|
17
|
+
| 2026-11-10 | [Task discovery](2026-11-10-task-discovery.md) | Session attribution and task selection |
|
|
18
|
+
| 2026-11-10 | [JEV shadow evaluation](2026-11-10-jev-shadow.md) | Optional routing observations without changing execution |
|
|
19
|
+
| 2026-11-08 | [Flow console](2026-11-08-flow-console.md) | Stage controls, sessions, scheduling, and delivery |
|
|
20
|
+
| 2026-11-07 | [Session lifecycle](2026-11-07-session-lifecycle.en.md) / [中文](2026-11-07-session-lifecycle.md) | Role reuse, durable recovery, and evaluation phases |
|
|
21
|
+
| 2026-11-06 | [Adaptive workflow](2026-11-06-adaptive-workflow.md) | Auto / Quick / Full |
|
|
22
|
+
| 2026-11-03 | [Codex Pro default route](2026-11-03-codex-pro-default.md) | Direct use of the public machine API |
|
|
23
|
+
| 2026-11-01 | [npm installation](2026-11-01-npm-installation.md) | One-command setup and six-package distribution |
|
|
24
|
+
| 2026-11-01 | [Model profiles and preflight](2026-11-01-model-profiles-preflight.md) | Bindings, configuration inspection, and local diagnostics |
|
|
25
|
+
| 2026-11-01 | [DSH integration](2026-11-01-dsh-integration.md) | Desktop control plane and independent workers |
|