@ckanner/dsh-plugin-flywheel 0.28.3 → 0.28.4
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/PROTOCOL.md +4 -0
- package/README.en.md +4 -4
- package/README.md +4 -2
- package/dist/bridge.js +1 -1
- package/dist/policy.js +7 -3
- package/package.json +11 -10
package/PROTOCOL.md
CHANGED
|
@@ -238,3 +238,7 @@ launcher 使用绝对 Node 与 CLI 路径,设置安装时可见的绝对工具
|
|
|
238
238
|
3. 仅当安装记录不存在时,兼容旧配置,从 PATH 查找 `flywheel`。
|
|
239
239
|
|
|
240
240
|
损坏记录、符号链接、缺失或被修改的 launcher 都明确失败,不静默退回 PATH。SHA-256 核对的是 launcher 内容,不是账号状态或所有外部 CLI 的真实性。已有用户修改会在 setup 时保留并报告冲突;修复方法见[升级教程](../../docs/getting-started.md#8-升级排错与卸载)。普通 npm 卸载不会擅自删除安装记录、配置、skills 或任务数据。
|
|
241
|
+
|
|
242
|
+
## DSH 宿主兼容性(0.28.4)
|
|
243
|
+
|
|
244
|
+
包声明只接受 `0.2.1-rc.5` 与 `0.2.2-rc.1`。新 SDK 会按策略文件所属包的 engines.dsh 校验其准入,旧包被禁用时缺少 flywheel/policy 回执,Go 必须拒绝派发模型 prompt。权限插件在公开 agent/created 阶段(创建公告结束后、首个模型请求之前)写入显式 approval/policy,不在 session/created 只读公告中追加事件,再只读公开 approval.overrideOf(session),不访问私有 effectivePolicy;未知/缺失回执仍不放行。
|
package/README.en.md
CHANGED
|
@@ -7,11 +7,9 @@ provides its DSH SDK and Codex Pro workers. The engine owns task state, budgets,
|
|
|
7
7
|
verification, Git delivery, and process lifecycles. The desktop is a control and
|
|
8
8
|
observation interface; it does not need a parent model session to keep a task alive.
|
|
9
9
|
|
|
10
|
-
This guide describes the **Flywheel 0.28.
|
|
10
|
+
This guide describes the **Flywheel 0.28.4** interfaces. Source availability does
|
|
11
11
|
not mean that npm `latest` already contains them. Check the registry version and
|
|
12
|
-
the [release guide](https://github.com/ckanner/flywheel/blob/main/docs/en/releasing.md) before installing. The desktop
|
|
13
|
-
compatibility baseline is **DSH Mac 0.2.1-rc.5**, not a claim that every DSH build
|
|
14
|
-
or provider adapter is compatible.
|
|
12
|
+
the [release guide](https://github.com/ckanner/flywheel/blob/main/docs/en/releasing.md) before installing. The checked desktop runtimes are **DSH Mac 0.2.1-rc.5 and 0.2.2-rc.1**. The 0.28.4 engine range declares only those two versions. DSH 0.2.2 itself requires Node 24.9 or later; use its desktop-supplied CLI. Other builds and provider adapters need their own checks.
|
|
15
13
|
|
|
16
14
|
**Flywheel 0.28.1 introduces the native conversation view.** Version `0.28.0`
|
|
17
15
|
uses the composer popup. Upgrade the CLI and desktop plugin to the same new
|
|
@@ -21,6 +19,8 @@ Subscription preset migration and `permissions.mode` are available from **0.28.2
|
|
|
21
19
|
|
|
22
20
|
**Changes in 0.28.3:** account defaults, account-error handling, and the current session directory. Version 0.28.2 still uses API-key defaults and the original directory. Reinstalling that version does not include these fixes. Upgrades preserve configuration; adopting the account preset requires explicit migration.
|
|
23
21
|
|
|
22
|
+
Version 0.28.4 aligns Cordis 4.0/4.1 and host peer declarations, testing the same built plugin against both published renderers with locked dependencies. Configuration, account selection and permissions are preserved. The SDK writes permission events during the public agent/created phase, after the read-only Session creation announcement and before model work; it reads the explicit never override through public `approval.overrideOf(session)`.
|
|
23
|
+
|
|
24
24
|
## Components
|
|
25
25
|
|
|
26
26
|
| Component | Responsibility |
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.en.md) · 简体中文
|
|
4
4
|
|
|
5
|
-
目标是 **DSH Mac 桌面 0.2.1-rc.5**
|
|
5
|
+
目标是 **DSH Mac 桌面 0.2.1-rc.5 与 0.2.2-rc.1** 的公开接口,0.28.4 的版本声明只允许这两个已核对版本。Go 继续管理状态机、任务、worktree、验收和成本上限;本包提供桌面操作入口、原生 SDK 执行通道和 Codex Pro machine API worker。无需 alpha、OAR、Forge 或一直活着的父智能体。
|
|
6
6
|
|
|
7
7
|
完整的 npm 安装、SDK 配置到首个任务流程见 [Mac 入门教程](../../docs/getting-started.md),适用于 Flywheel **0.28.0 及以后的完整 npm 发行版**。安装前用 `npm view @ckanner/flywheel version` 确认 registry 的 latest 已更新到所需版本;源码合并或 GitHub Release 不代表 npm 已发行。旧 0.22.1 没有本教程使用的安装与 DSH 接口,当前发行状态见[发行记录](../../docs/releasing.md#3-失败恢复)。
|
|
8
8
|
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
**0.28.3 的变化:**新增 `deepseek-account` 默认、账号错误处理与会话当前工作目录修复。0.28.2 仍使用 API 默认和会话最初目录,重装同版不会获得修复;升级保留已有配置,采用账号预设需要显式迁移。
|
|
14
14
|
|
|
15
|
+
0.28.4 同步 Cordis 4.0/4.1 和 host peer 声明,并用锁定依赖测试新旧两版发布的 renderer。配置、已有 DeepSeek 账号与权限保持原样。SDK 在公开 agent/created 阶段写入权限事件,通过公开 `approval.overrideOf(session)` 核对 never 覆盖值;Session 创建公告期间保持只读。
|
|
16
|
+
|
|
15
17
|
## 提供什么
|
|
16
18
|
|
|
17
19
|
| 部分 | 行为 |
|
|
@@ -221,7 +223,7 @@ FLYWHEEL_NPM_PACKAGES_DIR=dist-npm npm run test:install
|
|
|
221
223
|
|
|
222
224
|
## 实现依据
|
|
223
225
|
|
|
224
|
-
|
|
226
|
+
宿主基线按公开 tag `dsh-v0.2.1-rc.5`(`b830ec9`)和 `dsh-v0.2.2-rc.1`(`66491b0`)固定。新旧真实发布的 renderer 均运行同一插件构建的生命周期测试;SDK 权限回执使用两版公开的 `approval.overrideOf(session)`。目标 Mac 实测结果见发行验证记录。关键一手来源:
|
|
225
227
|
|
|
226
228
|
- [SDK server 方法、生命周期与限制](https://github.com/deepseek-ai/deepseek-harness/blob/b830ec950faba0a46dda564be3e2d854afed94f1/packages/sdk/server/README.md)
|
|
227
229
|
- [SDK TypeScript 客户端、usage 事件和关闭语义](https://github.com/deepseek-ai/deepseek-harness/blob/b830ec950faba0a46dda564be3e2d854afed94f1/packages/sdk/client/README.md)
|
package/dist/bridge.js
CHANGED
|
@@ -7,7 +7,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
7
7
|
import { BridgeError, MAX_FRAME_BYTES, normalizedError, record, SessionFold, validateStart } from './protocol.js';
|
|
8
8
|
|
|
9
9
|
export function makeOverlay(request, policyPath = fileURLToPath(new URL('./policy.js', import.meta.url))) {
|
|
10
|
-
// Each patch replaces an entire config row. Pin the
|
|
10
|
+
// Each patch replaces an entire config row. Pin the checked rc.5/rc.1 enforcement
|
|
11
11
|
// implementations, not the user's mutable permission dropdown defaults.
|
|
12
12
|
const disable = ['permission', 'tool-plugin-manager', 'tool-working-directory',
|
|
13
13
|
'tool-subagent', 'tool-subagent-fork', 'tool-subagent-control', 'tool-subagent-list-agents',
|
package/dist/policy.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Loaded only in the independently owned SDK process, never in the desktop host.
|
|
2
|
-
// Public rc.5 Cordis services; the worker verifies this acknowledgement before prompt().
|
|
2
|
+
// Public rc.5/rc.1 Cordis services; the worker verifies this acknowledgement before prompt().
|
|
3
3
|
export const inject = ['sandboxPolicy', 'approval', 'shell'];
|
|
4
4
|
|
|
5
5
|
export async function apply(ctx, config) {
|
|
@@ -21,7 +21,10 @@ export async function apply(ctx, config) {
|
|
|
21
21
|
(fullAccess ? result.sandbox.denied !== false || result.sandbox.enforcement !== undefined : result.sandbox.enforcement !== 'full')) {
|
|
22
22
|
throw new Error(fullAccess ? 'Flywheel readiness probe did not confirm explicit full access' : 'Flywheel sandbox readiness probe did not prove full enforcement');
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
// Session creation is read-only in rc.1. Agent creation is awaited after
|
|
25
|
+
// that announcement and before the factory admits any model work in both hosts.
|
|
26
|
+
ctx.on('agent/created', ({ agent }) => {
|
|
27
|
+
const session = agent.session;
|
|
25
28
|
// A fresh SDK session has no inherited permission facts. Pin both canonical
|
|
26
29
|
// knobs, rather than relying on saved UI preferences or a prompt instruction.
|
|
27
30
|
session.append('sandbox/mode', { mode: permissionMode });
|
|
@@ -31,7 +34,8 @@ export async function apply(ctx, config) {
|
|
|
31
34
|
protocol: 1,
|
|
32
35
|
cwd: policy.workspaceRoot,
|
|
33
36
|
permissionMode: policy.mode,
|
|
34
|
-
|
|
37
|
+
// Read the explicit logged override through the public API.
|
|
38
|
+
approvalPolicy: ctx.approval.overrideOf(session),
|
|
35
39
|
confinedShell: !fullAccess,
|
|
36
40
|
...(fullAccess ? {} : { enforcement: result.sandbox.enforcement }),
|
|
37
41
|
});
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckanner/dsh-plugin-flywheel",
|
|
3
|
-
"version": "0.28.
|
|
3
|
+
"version": "0.28.4",
|
|
4
4
|
"description": "Flywheel engine controls with owned DSH SDK and Codex Pro machine workers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"engines": {
|
|
8
8
|
"node": ">=22.18.0",
|
|
9
|
-
"dsh": "0.2.1-rc.5"
|
|
9
|
+
"dsh": "0.2.1-rc.5 || 0.2.2-rc.1"
|
|
10
10
|
},
|
|
11
11
|
"exports": {
|
|
12
12
|
".": "./dist/index.js",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"@deepseek-ai/cordis": "~4.0.5",
|
|
47
|
-
"@deepseek-ai/dsh-commands": "0.2.1-rc.5",
|
|
48
|
-
"@deepseek-ai/dsh-tools": "0.2.1-rc.5"
|
|
46
|
+
"@deepseek-ai/cordis": "~4.0.5 || ~4.1.0",
|
|
47
|
+
"@deepseek-ai/dsh-commands": "0.2.1-rc.5 || 0.2.2-rc.1",
|
|
48
|
+
"@deepseek-ai/dsh-tools": "0.2.1-rc.5 || 0.2.2-rc.1"
|
|
49
49
|
},
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
51
|
"@deepseek-ai/cordis": {
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "node scripts/build.mjs",
|
|
63
|
-
"test": "npm run build && node --test test/*.test.js",
|
|
63
|
+
"test": "npm run build && node --test test/*.test.js && node scripts/test-legacy-host.mjs",
|
|
64
64
|
"check": "npm test",
|
|
65
65
|
"prepack": "npm run build"
|
|
66
66
|
},
|
|
@@ -68,13 +68,14 @@
|
|
|
68
68
|
"dsh-subagent-codex-pro": "0.8.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@deepseek-ai/cordis": "4.0
|
|
72
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.2.
|
|
73
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.2.
|
|
71
|
+
"@deepseek-ai/cordis": "4.1.0",
|
|
72
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.2-rc.1",
|
|
73
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.2-rc.1",
|
|
74
74
|
"jsdom": "26.1.0",
|
|
75
75
|
"lightningcss": "1.33.0",
|
|
76
76
|
"react": "18.3.1",
|
|
77
|
-
"react-dom": "18.3.1"
|
|
77
|
+
"react-dom": "18.3.1",
|
|
78
|
+
"semver": "7.7.3"
|
|
78
79
|
},
|
|
79
80
|
"repository": {
|
|
80
81
|
"type": "git",
|