@ckanner/flywheel 0.30.1 → 0.30.2

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 CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.30.2 — 画布优先的流程工作台
4
+
5
+ - 大画布、原生专注视图、任务子图、跨分页定位与窄窗口列表;节点详情按进展/会话/本次配置组织。
6
+ - 配置自动读取、中文阶段与推理选项、分钟/秒换算、相邻保存按钮;保护未保存草稿,恢复缓存时重新核对文件 revision。
7
+ - 重试与运行确认绑定原 revision,待交付依赖不可绕过;受管会话续接命令使用原会话工作目录。
8
+ - Quick 验证同时核对 L1 与终验结果;关闭的 PR 不冒充合并,旧远端快照在状态变更后失效。
9
+ - 运行记录以列表与详情呈现,对照对象不改变指标查询目标;费用缺失不显示为零。
10
+ - 保持 Go 控制边界和默认配置语义;JEV 继续默认关闭、只提供可选影子建议。
11
+
12
+ 本条描述发行内容;六包 registry 完整性、latest 与真实桌面安装分别验收。
13
+
3
14
  ## 0.30.1 — 任务发现与可选影子评估
4
15
 
5
16
  - 画布以任务选择为入口:按 DSH 会话 ID 找回 CLI 运行,旧记录一键选择;删除路径输入框,有实际位置时自动显示只读信息。
package/README.en.md CHANGED
@@ -168,4 +168,6 @@ The package currently declares **`UNLICENSED`**. An open-source license has not
168
168
 
169
169
  The DSH view adds a horizontal task canvas, stage run/retry, per-stage configuration, controlled Provider-session interaction, declared parallel execution with serial integration, observed run metrics and PR/Merge receipts. See the [console guide](docs/en/flow-console.md). Source implementation does not imply npm publication or a local upgrade.
170
170
 
171
+ The workbench prioritizes a large task overview, on-demand node details and separate task subgraphs. Configuration loads automatically into focused sections; adjacent save actions appear only after edits. Saved defaults apply to subsequent starts.
172
+
171
173
  Optional, default-off JEV shadow evaluation is included in the 0.30.1 source; see the [guide](docs/en/jev-shadow.md). Advice cannot change workflows, and observer failures do not block tasks.
package/README.md CHANGED
@@ -290,4 +290,6 @@ npm run build:npm
290
290
 
291
291
  DSH 会话视图提供从左到右的任务画布、节点运行/重跑、按阶段配置、受管 Session 交互、声明式并行与串行集成、运行指标和 PR/Merge 回执。完整操作与当前能力边界见[控制台指南](docs/flow-console.md)。源码状态不等于 npm 已发布或本机已升级。
292
292
 
293
+ 工作台默认以大画布展示任务总览,节点详情按需打开,任务步骤在独立子图中展开。“配置”自动读取并分组编辑,修改后才出现相邻的保存操作;新配置只影响后续启动。
294
+
293
295
  可选、默认关闭的 JEV 影子评估源码实现见[使用说明](docs/jev-shadow.md)。开启仅记录建议,故障不阻断原流程;需要同版本 CLI/插件。
@@ -22,7 +22,9 @@ Continue workflow is behind an explicit disclosure. A passed stage does not star
22
22
 
23
23
  In an existing DSH conversation view, Flywheel remains after Statistics; the blank new-session landing page does not yet show these conversation views. Its pages are Workflow canvas, Global/project configuration, and Runs and comparison. Global settings require no task directory. Project settings target the selected Git root. Discovery still selects one complete file in task → project → global → embedded order; it does not deep-merge files.
24
24
 
25
- Read a draft, edit the resource/Harness, model, effort, permissions and history policy, then inspect the target and diff. Version defaults replace the complete configuration. Go checks the content revision, backs up the original and publishes atomically. A running engine retains its snapshot; subsequent starts load the new settings.
25
+ Opening Configuration automatically reads the selected scope. Workflow policy, model assignments, budget/retries and JEV shadow advice have separate sections. Save and Discard appear beside the form only after edits. Ordinary saving takes one click; first enabling JEV confirms the task-summary transfer boundary. Serial mode omits concurrency controls. Minutes and seconds are converted precisely to engine millisecond fields.
26
+
27
+ More configuration actions provides reload and installed-default restoration. Scope changes or reloads first disclose unsaved drafts; restoring defaults loads a pending full replacement before saving. Failures retain the draft and an uncertain save requires reconciliation. Go checks file identity, backs up the original and publishes atomically. A running engine retains its snapshot. The displayed source is file-level: task → project → global → installed defaults selects one file, not a per-field overlay. New files start from the installed template.
26
28
 
27
29
  Resources include ChatGPT through DSH or Codex Pro, Kimi Code, DeepSeek Account (Flash by default), and optional Claude Code Pro. Defaults come from the embedded template. Use config inspect and doctor for actual backend capabilities. An absent peer or unsupported permission fails explicitly. Provider sign-in stays with its normal account flow.
28
30
 
@@ -30,9 +32,13 @@ Resources include ChatGPT through DSH or Codex Pro, Kimi Code, DeepSeek Account
30
32
 
31
33
  ## Canvas and operations
32
34
 
33
- The left-to-right canvas shows Plan/decomposition, scheduling, task branches, integration, final acceptance, PR and Merge. A packet expands into Execute, L1, Review and Git delivery. State colors have text labels. Details identify the DSH source conversation, project/worktree, branch, HEAD, run ID, actual invocation binding and failure evidence.
35
+ The left-to-right overview groups Plan/decomposition, scheduling, task branches, integration/final checks and PR/Merge. Selecting a node opens view-local Progress, Sessions and Run configuration details. Open task workflow drills into Execute, L1, Review and Git delivery; integration and remote delivery groups also expand. Colors have text labels. Identity, project/worktree, branch, HEAD, run ID, bindings and evidence come from actual receipts.
36
+
37
+ The canvas uses the available plugin width, with two-axis panning, zoom, fit width, current-step location, paging and a list alternative. New snapshots preserve the viewport and selection; location can switch to the running packet's page. Large tasks use bounded excerpts. Read full node evidence loads one packet with a matching fresh revision; it never changes the ledger.
38
+
39
+ Focus canvas expands the view in a plugin-owned native dialog. Exit or Escape returns without starting or stopping the task. It does not change the DSH global layout or composer. Unknown operation outcomes exit focus mode so the original-invocation reconciliation action remains visible.
34
40
 
35
- The canvas supports panning, locating the current node and packet paging. Large tasks use bounded diagnostic excerpts. Read full node evidence loads one packet with a matching fresh canvas revision; it never changes the original ledger.
41
+ Node operation confirmation freezes the observed revision; a changed snapshot invalidates it. Retry once requires a reason, while reopening a completed packet explains evidence invalidation. Review cannot run with a red current L1. Unqueried remote state, closed PR and merged PR remain distinct.
36
42
 
37
43
  - Run stage submits the observed revision for lease-bound admission.
38
44
  - Continue once records a reason and adds one Execute/L1 attempt without resetting failures or billing.
@@ -87,7 +93,7 @@ Ledger storage v2 is accepted by the new engine alongside legacy v1. Older engin
87
93
 
88
94
  CLI and desktop starts register run IDs. A conversation retains multiple confirmed task associations. The index lives in runs/ beside the global configuration, optionally overridden by absolute FLYWHEEL_RUNS_DIR. It shows the latest 100 registrations and never scans the disk. Query Go again for liveness.
89
95
 
90
- Compare operation kind, branch, HEAD, contract/configuration conditions, elapsed time and newly observed attempts, failures and deliveries. Select an exact run or all calls for the current task, including unregistered legacy observations. Invocation/receipt reconciliation precedes aggregation; late receipts keep their original attribution and are not double-billed.
96
+ Run history uses a selection list with adjacent details for operation kind, branch, HEAD, contract/configuration conditions, elapsed time and newly observed attempts, failures and deliveries. Selecting a record does not launch it; opening its canvas refreshes current Go state. Metrics scope chooses the selected run or all calls for its task, including legacy observations. The reference compares conditions without changing the metrics target. Invocation/receipt reconciliation precedes aggregation; late receipts keep their original attribution and are not double-billed. A group with entirely missing cost shows Not reported, not $0.
91
97
 
92
98
  Usage, cost and duration are known amounts, with missing/partial observations retained. Costs may include estimates from configured prices. Call failure rate is not code quality. Different conditions permit descriptive comparison only; quality conclusions require acceptance evidence and an independent oracle.
93
99
 
@@ -147,7 +147,7 @@ Preflight does not infer with a model or execute acceptance commands. Its unknow
147
147
 
148
148
  For the new unified entry, use `control launch ... --mode auto` in place of `start`. It consumes prepared contracts and defaults to Auto. `start` and foreground `run` accept optional `--mode auto|quick|full`; omission retains the contract or persisted choice. Existing legacy state remains Full. Restarting or requesting Auto does not reclassify or downgrade an established Full task.
149
149
 
150
- DSH's `flywheel_launch` and `flywheel_control` start associate the supplied `taskDir` and `cwd` with the initiating session. Calling the CLI from a shell alone does not establish a desktop association. For terminal-started tasks or manual opening, enter the actual task directory and project root. The project field may be blank only if the DSH session directory already matches; it is read through public `workingDirectory.get(session)`. A shell `cd` alone does not change that directory. The plugin does not scan or guess tasks.
150
+ DSH's `flywheel_launch` and `flywheel_control` start explicitly associate the supplied `taskDir` and `cwd` with the initiating session. CLI registrations can retain DSH's host session ID; independent terminal runs without that identity can be selected from Recent tasks and freshly queried. The UI has no editable task/project path fields: known locations appear read-only. The host directory comes from public `workingDirectory.get(session)`; a shell `cd` alone does not change it. The plugin does not scan or guess tasks.
151
151
 
152
152
  ### Working directory by stage
153
153
 
@@ -22,7 +22,9 @@ Skill 已加载不代表引擎已经启动。`flywheel-task` 准备并通过 `fl
22
22
 
23
23
  在已进入对话视图的 DSH 会话中,Flywheel 排在“统计”之后;新会话的空白首页尚未显示这排会话视图。内部有“运行画布”“全局/项目配置”“运行与对比”。全局配置可在没有任务目录时编辑;项目配置写入所选 Git 项目根。任务配置仍具有最高优先级,取首个完整文件,不做字段深度合并。
24
24
 
25
- 先读取草稿,再选择 Provider/Harness、模型、推理等级、权限与历史策略。“载入本版本默认值”导入完整默认模板;保存前显示差异与目标,Go 核对内容 revision、备份旧文件并原子写入。正在运行的引擎保留原快照,新配置在后续启动时加载。
25
+ 打开“配置”后自动读取所选范围,不必先点击读取按钮。按“工作方式/模型分配/预算与重试/JEV 影子建议”编辑;有修改才出现相邻的“保存修改/放弃修改”。普通保存一次点击,首次开启 JEV 先确认任务摘要发送边界。串行模式不显示并发数量;超时以分钟或秒编辑,并精确换算成引擎毫秒字段。
26
+
27
+ “更多配置操作”提供重新读取和恢复安装版本默认配置。切换范围或重新读取会先提示未保存草稿;重置先载入待保存修改,保存时才替换文件。保存失败保留草稿,结果未知时先重新读取核对。Go 核对文件 revision、备份旧文件并原子写入。正在运行的引擎保留原快照,新配置在后续启动时加载。配置页显示真实文件与来源:文件按任务 → 项目 → 全局 → 安装默认选择,不逐字段叠加;尚未存在的配置文件以安装模板创建。
26
28
 
27
29
  支持的资源入口包括 ChatGPT · DSH、ChatGPT · Codex Pro、Kimi Code、DeepSeek Account(默认 Flash)及可选 Claude Code Pro。模型初值来自本版本模板,真实能力以 `config inspect`/`doctor` 为准。Claude 的可选适配器必须匹配公开 machine API;缺失或权限不支持会拒绝调用,不自动换后端。账号登录仍由各 Provider 自己完成。
28
30
 
@@ -30,9 +32,13 @@ Skill 已加载不代表引擎已经启动。`flywheel-task` 准备并通过 `fl
30
32
 
31
33
  ## 横向画布与节点操作
32
34
 
33
- 主线从左到右展示 Plan/拆分、调度、任务分支、集成、终验、PR、Merge。点击任务展开 Execute、L1、Review、Git 交付。状态配合颜色和文字,运行与节点详情展示来源 DSH 会话、项目/worktree、分支、HEAD、run ID、调用绑定和失败证据。
35
+ 主线从左到右展示 Plan/拆分、调度、任务分支、汇总与终验、PR 与 Merge。点击节点打开视图内详情,按“进展/会话/本次配置”查看,不挤到画布下方。点击“展开任务画布”进入 Execute、L1、Review、Git 交付子图;汇总和远端交付也可展开阶段。状态配合颜色和文字,运行与节点详情使用真实项目/worktree、分支、HEAD、run ID、调用绑定和失败证据。
36
+
37
+ 画布占满插件可用宽度,支持双向拖动、缩放、适合宽度、定位当前步骤、分页与列表切换。新快照保留视角与选择;定位可跳到当前执行任务所在分页。大任务使用有界诊断摘要;“读取完整节点证据”按需加载选中节点,revision 与同一时刻的画布状态一起刷新。摘要不会改写原始账本。
38
+
39
+ “专注画布”在插件拥有的原生对话框中扩大画布,退出或按 Escape 回到原视图,不启动或停止任务。它不修改 DSH 的全局布局或宿主输入区;操作结果未知时退出专注视图,显示原调用的核对入口。
34
40
 
35
- 画布支持拖动、横移、定位当前节点和分组浏览。大任务使用有界诊断摘要;“读取完整节点证据”按需加载选中节点,revision 与同一时刻的画布状态一起刷新。摘要不会改写原始账本。
41
+ 运行节点前显示作用范围,确认绑定已观察的状态版本;状态变化后旧确认不可提交。失败任务的“重试一次”需要填写原因,已完成任务显示“重新执行”并说明证据失效范围。独立 Review 在当前 L1 未通过时不可运行。PR 尚未查询、已关闭、已合并分别显示,不把关闭的 PR 当作合并成功。
36
42
 
37
43
  | 操作 | 含义 |
38
44
  |---|---|
@@ -91,7 +97,7 @@ flywheel session '/absolute/task-worktree/docs/task-slug' --key 'execute/M01-T01
91
97
 
92
98
  CLI 和桌面启动自动登记 run ID;会话投影保留多个已确认任务。登记位于全局配置旁的 `runs/`,可用绝对 `FLYWHEEL_RUNS_DIR` 覆盖。列表只读取明确登记,显示最近 100 项,不扫描整个磁盘;当前存活状态始终重新查询 Go。
93
99
 
94
- 对比页面显示操作种类、分支、HEAD、契约/配置条件、运行时长、新增尝试、失败尝试和交付。可选准确 run ID,也可查看本任务全部调用(包括早期未登记记录)。指标先按 invocation/receipt 对账再汇总,迟到回执归属原调用,不重复计费。
100
+ “运行记录”以列表选择运行,在相邻详情中查看操作种类、分支、HEAD、契约/配置条件、运行时长、新增尝试、失败尝试和交付。选择记录不启动任务,打开画布会重新读取当前状态。指标范围可选“仅此运行”或当前任务全部调用(包括早期记录);对照运行仅用于比较条件,不会悄悄改变指标查询目标。指标先按 invocation/receipt 对账再汇总,迟到回执归属原调用,不重复计费。整组费用均缺失时显示“未报告”,不显示 $0。
95
101
 
96
102
  用量、费用和时延只表示已知量,缺失/部分数据单列,费用也可能来自配置单价估算。调用失败率不等于代码质量;条件不同的运行只并列展示,不伪称配对收益。完整的质量结论需要任务验收和独立 oracle。
97
103
 
package/docs/workflow.md CHANGED
@@ -191,10 +191,10 @@ flywheel control status --cwd "$PWD" --task-dir "$PWD/docs/my-feature"
191
191
 
192
192
  预检不发送模型推理,不能证明账号额度或真实模型调用已经通过。启动会实际调用
193
193
  所选模型。DSH `flywheel_launch` 与 `flywheel_control` start 将明确的 `taskDir`
194
- 和 `cwd` 关联到发起会话的 Flywheel 视图;单纯 shell 调 CLI 不会创建桌面会话关联。
195
- 终端启动或另开已有任务时,仍可手动填“任务资料目录”和“项目目录”。后者仅在
196
- 会话当前目录已经是同一 `repo_dir` 时可留空。插件通过公开
197
- `workingDirectory.get(session)` 读取目录;不扫描或猜测。仅在 shell 中 `cd`
194
+ 和 `cwd` 明确关联到发起会话的 Flywheel 视图。CLI 登记可带 DSH 提供的会话 ID;
195
+ 没有归属的独立终端运行可从“本机最近任务”选择,再查询真实状态。
196
+ 界面不提供任务/项目路径输入框,已知位置只读展示。插件通过公开
197
+ `workingDirectory.get(session)` 读取宿主目录;不扫描或猜测。仅在 shell 中 `cd`
198
198
  不会改变 DSH 的会话目录,不要混用原 checkout 的账本和新 worktree。
199
199
 
200
200
  Full 的每个 packet 经实现、L1 与独立 Review 通过后,引擎提交并快进合入任务分支,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckanner/flywheel",
3
- "version": "0.30.1",
3
+ "version": "0.30.2",
4
4
  "description": "A deterministic Go orchestrator for coding-agent loops, with task contracts, verification gates, Git worktrees, and DSH desktop integration.",
5
5
  "bin": {
6
6
  "flywheel": "bin/flywheel.js",
@@ -49,10 +49,10 @@
49
49
  "docs/en/session-evaluation.md"
50
50
  ],
51
51
  "optionalDependencies": {
52
- "@ckanner/flywheel-darwin-arm64": "0.30.1",
53
- "@ckanner/flywheel-darwin-amd64": "0.30.1",
54
- "@ckanner/flywheel-linux-arm64": "0.30.1",
55
- "@ckanner/flywheel-linux-amd64": "0.30.1"
52
+ "@ckanner/flywheel-darwin-arm64": "0.30.2",
53
+ "@ckanner/flywheel-darwin-amd64": "0.30.2",
54
+ "@ckanner/flywheel-linux-arm64": "0.30.2",
55
+ "@ckanner/flywheel-linux-amd64": "0.30.2"
56
56
  },
57
57
  "scripts": {
58
58
  "release:check": "node scripts/release-preflight.js",
@@ -60,10 +60,10 @@
60
60
  "test": "node --test npm/test/*.test.js",
61
61
  "test:install": "node --test npm/test/install.integration.js",
62
62
  "test:registry": "node npm/test/registry-smoke.js",
63
- "build:npm": "bash scripts/build-npm.sh 0.30.1 dist-npm",
63
+ "build:npm": "bash scripts/build-npm.sh 0.30.2 dist-npm",
64
64
  "test:sessions": "node scripts/test-session-evaluation.js"
65
65
  },
66
66
  "dependencies": {
67
- "@ckanner/dsh-plugin-flywheel": "0.30.1"
67
+ "@ckanner/dsh-plugin-flywheel": "0.30.2"
68
68
  }
69
69
  }