@ckanner/flywheel 0.32.0 → 0.33.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 +17 -1
- package/README.md +11 -2
- package/README.zh-CN.md +6 -1
- package/THIRD_PARTY_NOTICES.md +42 -0
- package/bin/runtime.js +25 -31
- package/cordis.patch.yml +5 -0
- package/dist/bridge.mjs +421 -0
- package/dist/claude-code-pro-bridge.mjs +82 -0
- package/dist/claude-code-pro-worker.mjs +5 -0
- package/dist/client.js +4078 -0
- package/dist/codex-pro-bridge.mjs +75 -0
- package/dist/codex-pro-worker.mjs +5 -0
- package/dist/console-read.mjs +51 -0
- package/dist/control.mjs +218 -0
- package/dist/index.mjs +185 -0
- package/dist/installation.mjs +56 -0
- package/dist/machine-worker.mjs +241 -0
- package/dist/policy.mjs +91 -0
- package/dist/prewarm.mjs +136 -0
- package/dist/protocol.mjs +260 -0
- package/dist/task-association.mjs +127 -0
- package/dist/worker.mjs +52 -0
- package/dist/workspaces.mjs +42 -0
- package/docs/README.md +1 -1
- package/docs/README.zh-CN.md +1 -1
- package/docs/design.md +8 -5
- package/docs/en/configuration.md +1 -1
- package/docs/en/contributing.md +5 -6
- package/docs/en/flow-console.md +1 -1
- package/docs/en/getting-started.md +13 -3
- package/docs/en/releasing.md +132 -174
- package/docs/validation/2026-11-13-release-0.32.0.md +78 -0
- package/docs/validation/2026-11-13-release-0.32.1.md +83 -0
- package/docs/validation/2026-11-14-single-package.md +60 -0
- package/docs/validation/README.md +3 -0
- package/docs/zh-CN/configuration.md +1 -1
- package/docs/zh-CN/contributing.md +4 -5
- package/docs/zh-CN/flow-console.md +1 -1
- package/docs/zh-CN/getting-started.md +10 -4
- package/docs/zh-CN/releasing.md +97 -81
- package/native/darwin-amd64/flywheel +0 -0
- package/native/darwin-arm64/flywheel +0 -0
- package/native/linux-amd64/flywheel +0 -0
- package/native/linux-arm64/flywheel +0 -0
- package/native/manifest.json +22 -0
- package/node_modules/dsh-subagent-codex-pro/CHANGELOG.md +403 -0
- package/node_modules/dsh-subagent-codex-pro/LICENSE +21 -0
- package/node_modules/dsh-subagent-codex-pro/README.md +557 -0
- package/node_modules/dsh-subagent-codex-pro/cordis.patch.yml +30 -0
- package/node_modules/dsh-subagent-codex-pro/docs/README.zh.md +355 -0
- package/node_modules/dsh-subagent-codex-pro/docs/machine-lifecycle-validation.md +65 -0
- package/node_modules/dsh-subagent-codex-pro/docs/machine-lifecycle.md +144 -0
- package/node_modules/dsh-subagent-codex-pro/docs/machine-lifecycle.zh.md +98 -0
- package/node_modules/dsh-subagent-codex-pro/docs/machine.md +194 -0
- package/node_modules/dsh-subagent-codex-pro/docs/orchestration.zh.md +86 -0
- package/node_modules/dsh-subagent-codex-pro/lib/codex-exec.js +68 -0
- package/node_modules/dsh-subagent-codex-pro/lib/codex-exec.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/dsh-types.js +15 -0
- package/node_modules/dsh-subagent-codex-pro/lib/dsh-types.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/index.js +830 -0
- package/node_modules/dsh-subagent-codex-pro/lib/index.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/jobs.js +35 -0
- package/node_modules/dsh-subagent-codex-pro/lib/jobs.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/jsonrpc.js +229 -0
- package/node_modules/dsh-subagent-codex-pro/lib/jsonrpc.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-cli.js +101 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-cli.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-local.js +122 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-local.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-recovery.js +167 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-recovery.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-supervision.js +141 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-supervision.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-supervisor.js +128 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine-supervisor.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine.js +104 -0
- package/node_modules/dsh-subagent-codex-pro/lib/machine.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/process-guardian.js +156 -0
- package/node_modules/dsh-subagent-codex-pro/lib/process-guardian.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/run.js +842 -0
- package/node_modules/dsh-subagent-codex-pro/lib/run.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/structured.js +329 -0
- package/node_modules/dsh-subagent-codex-pro/lib/structured.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/tool.js +295 -0
- package/node_modules/dsh-subagent-codex-pro/lib/tool.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/codex-exec.d.ts +88 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/codex-exec.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/dsh-types.d.ts +179 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/dsh-types.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/index.d.ts +266 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/index.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/jobs.d.ts +34 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/jobs.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/jsonrpc.d.ts +113 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/jsonrpc.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-cli.d.ts +3 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-cli.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-local.d.ts +4 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-local.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-recovery.d.ts +53 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-recovery.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-supervision.d.ts +8 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-supervision.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-supervisor.d.ts +2 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine-supervisor.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine.d.ts +70 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/machine.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/process-guardian.d.ts +22 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/process-guardian.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/run.d.ts +386 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/run.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/structured.d.ts +35 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/structured.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/tool.d.ts +107 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/tool.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/usage.d.ts +131 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/usage.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/wire.d.ts +321 -0
- package/node_modules/dsh-subagent-codex-pro/lib/types/wire.d.ts.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/usage.js +356 -0
- package/node_modules/dsh-subagent-codex-pro/lib/usage.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/lib/wire.js +986 -0
- package/node_modules/dsh-subagent-codex-pro/lib/wire.js.map +1 -0
- package/node_modules/dsh-subagent-codex-pro/package.json +76 -0
- package/npm/install.js +59 -6
- package/package.json +74 -12
- package/plugins/dsh/LICENSE +21 -0
- package/plugins/dsh/PROTOCOL.md +607 -0
- package/plugins/dsh/README.en.md +4 -0
- package/plugins/dsh/README.md +342 -0
- package/plugins/dsh/README.zh-CN.md +279 -0
- package/plugins/dsh/THIRD_PARTY_NOTICES.md +42 -0
- package/plugins/dsh/vendor/README.md +17 -0
- package/plugins/dsh/vendor/codex-pro.json +16 -0
|
@@ -5,10 +5,17 @@
|
|
|
5
5
|
Install Flywheel, connect the backends you intend to use, then run a small task.
|
|
6
6
|
This guide follows the current repository. Check the installed version and the npm
|
|
7
7
|
version you choose; a merged change does not update an existing installation.
|
|
8
|
-
Keep the CLI,
|
|
8
|
+
Keep the CLI, bundled engines, and DSH plugin at one version.
|
|
9
9
|
|
|
10
10
|
For the complete path through task branches and PR review, see [Workflow](workflow.md).
|
|
11
11
|
|
|
12
|
+
From 0.33, `@ckanner/flywheel` is one complete package: CLI, DSH view/workers,
|
|
13
|
+
embedded skills and four platform engines. No separate platform package or first-run
|
|
14
|
+
engine download is needed. When upgrading from 0.32.x, quit DSH before running the
|
|
15
|
+
installer; it replaces the old desktop package registration and preserves your
|
|
16
|
+
configuration and histories. Reload DSH after setup. Existing old npm versions
|
|
17
|
+
remain available for historical installations.
|
|
18
|
+
|
|
12
19
|
## 1. Prepare the environment
|
|
13
20
|
|
|
14
21
|
| Requirement | Purpose |
|
|
@@ -21,7 +28,10 @@ For the complete path through task branches and PR review, see [Workflow](workfl
|
|
|
21
28
|
| DeepSeek and ChatGPT providers in the DSH SDK profile | Default execution, independent Review, and Judge |
|
|
22
29
|
| Go 1.27 or later | Only the disposable Go example and source builds; not npm binary installation |
|
|
23
30
|
|
|
24
|
-
The plugin
|
|
31
|
+
The plugin admits DSH `>=0.2.1-rc.5 <0.3.0-0`, including later prereleases in
|
|
32
|
+
the 0.2 series. Routine rc/patch upgrades do not require adding a version to an allowlist.
|
|
33
|
+
The 0.3 series, including its alpha/beta/rc versions, needs a new compatibility review.
|
|
34
|
+
Range admission does not bypass required host services or SDK permission/cleanup checks. DSH 0.2.2 has
|
|
25
35
|
its own Node 24.9 minimum; use the official desktop-supplied CLI. Check actual command
|
|
26
36
|
locations and versions before setup:
|
|
27
37
|
|
|
@@ -143,7 +153,7 @@ capabilities or merge full worker histories into the parent trajectory. See the
|
|
|
143
153
|
|
|
144
154
|
Setup writes `~/.config/flywheel/npm-launcher` and an installation record containing
|
|
145
155
|
absolute Node/CLI paths and the checked DSH entry. An explicit `flywheelBinary`
|
|
146
|
-
overrides the managed launcher.
|
|
156
|
+
overrides the managed launcher. Without a record, the installed package uses its bundled CLI;
|
|
147
157
|
invalid records or modified launchers fail visibly.
|
|
148
158
|
|
|
149
159
|
After moving Node/the npm prefix or installing missing tools, rerun
|
package/docs/en/releasing.md
CHANGED
|
@@ -2,70 +2,59 @@
|
|
|
2
2
|
|
|
3
3
|
[Documentation](../README.md) · English · [简体中文](../zh-CN/releasing.md)
|
|
4
4
|
|
|
5
|
-
This runbook is for maintainers. Users should follow
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Actual releases and verification limits belong in the
|
|
9
|
-
[validation records](../validation/README.md).
|
|
5
|
+
This runbook is for maintainers. Users should follow [getting started](getting-started.md).
|
|
6
|
+
A commit, tag, or successful pack is not a registry release. Record actual source,
|
|
7
|
+
installation, registry and desktop results separately in [validation records](../validation/README.md).
|
|
10
8
|
|
|
11
|
-
## 1.
|
|
9
|
+
## 1. One complete package
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
the following order:
|
|
11
|
+
From 0.33, publish only **`@ckanner/flywheel`**. One tarball contains:
|
|
15
12
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
- The CLI and explicit installer in `bin/` and `npm/`.
|
|
14
|
+
- DSH host, client and machine workers in `dist/`; the Node modules use `.mjs`.
|
|
15
|
+
- Four Go executables under `native/{darwin,linux}-{arm64,amd64}/flywheel`.
|
|
16
|
+
- `native/manifest.json`, identifying their version, sizes and SHA-256 hashes.
|
|
17
|
+
- Embedded skills/templates, paired guides, the MIT license and third-party notices.
|
|
21
18
|
|
|
22
|
-
The
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
The launcher selects and verifies its own platform binary; it does not download a
|
|
20
|
+
binary on first use or resolve an old platform/worker package. `plugins/dsh` is a
|
|
21
|
+
**private source/build/test harness**, never a second publication target. The four
|
|
22
|
+
old platform packages and `@ckanner/dsh-plugin-flywheel` are historical releases;
|
|
23
|
+
this flow neither uploads new versions of them nor unpublishes their existing bytes.
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
Codex Pro 0.9.0 remains bundled from its [reviewed source candidate](https://github.com/ckanner/flywheel/blob/main/plugins/dsh/vendor/README.md).
|
|
26
|
+
The root and source-harness locks retain that tarball's real integrity. Claude Code
|
|
27
|
+
Pro 0.4.0 is an optional external peer. Provider CLIs and account credentials are
|
|
28
|
+
not included. Ordinary npm installation only places files; `install`/`setup` owns
|
|
29
|
+
user setup, with no profile or credential changes hidden in postinstall.
|
|
33
30
|
|
|
34
|
-
|
|
35
|
-
tarball's SHA-512 integrity. Build once, then verify, test, and publish those
|
|
36
|
-
same tarballs. A candidate with `source.dirty: true` is for development only.
|
|
31
|
+
## 2. Source and validation
|
|
37
32
|
|
|
38
|
-
|
|
33
|
+
Use Go **1.27**, Node **24.22.1** and npm **12.2.1**, matching the workflows.
|
|
34
|
+
Require reviewed source, a clean checkout, and `vX.Y.Z` pointing at exact HEAD.
|
|
35
|
+
Never move a release tag, relabel a dirty candidate, or rebuild different bytes
|
|
36
|
+
for an already uploaded version.
|
|
39
37
|
|
|
40
|
-
Run
|
|
41
|
-
the current [CI workflow](https://github.com/ckanner/flywheel/blob/main/.github/workflows/ci.yml):
|
|
38
|
+
Run applicable [contribution checks](contributing.md):
|
|
42
39
|
|
|
43
|
-
| Area |
|
|
40
|
+
| Area | Evidence |
|
|
44
41
|
| --- | --- |
|
|
45
|
-
| Go | `make quality-gate
|
|
46
|
-
| DSH
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
establish live account readiness, model quality, or physical desktop layout.
|
|
62
|
-
Record the actual platforms tested; cross-compilation does not establish
|
|
63
|
-
runtime verification on the target platform.
|
|
64
|
-
|
|
65
|
-
## 3. Build one candidate
|
|
66
|
-
|
|
67
|
-
From the clean checkout of the reviewed release tag, run each command and
|
|
68
|
-
stop on failure:
|
|
42
|
+
| Go changes | `make quality-gate`, retaining per-function 100% coverage, and core race checks |
|
|
43
|
+
| DSH and workers | Locked source-harness build/tests and real Go→Node offline bridges |
|
|
44
|
+
| npm and release | `npm test`, one complete candidate build, and actual installation of that tarball |
|
|
45
|
+
| Native/session changes | Native CLI checks and `npm run test:sessions` as applicable |
|
|
46
|
+
| Migration | Fresh install, split-package upgrade, failure/rollback/cancellation and repeat setup |
|
|
47
|
+
| Documentation | Paired guides, valid links, packaged documents and licenses |
|
|
48
|
+
|
|
49
|
+
Install the exact reviewed Claude source tarball for its backend tests; absence
|
|
50
|
+
or a skipped optional peer does not count as a pass. Set
|
|
51
|
+
`FLYWHEEL_CLAUDE_CODE_PRO_TARBALL` to that tarball before installation tests.
|
|
52
|
+
Source tests use isolated homes/profiles and offline model fixtures. They do not
|
|
53
|
+
prove live account access, model quality, or physical desktop behavior.
|
|
54
|
+
|
|
55
|
+
## 3. Build once and test the same artifact
|
|
56
|
+
|
|
57
|
+
From the final clean tagged checkout, stop on any failure:
|
|
69
58
|
|
|
70
59
|
```sh
|
|
71
60
|
FLYWHEEL_RELEASE_VERSION=$(node -p "require('./package.json').version")
|
|
@@ -76,132 +65,101 @@ node scripts/release-publish.js verify-candidate --directory dist-npm --source-s
|
|
|
76
65
|
FLYWHEEL_NPM_PACKAGES_DIR=dist-npm npm run test:install
|
|
77
66
|
```
|
|
78
67
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
68
|
+
The builder captures an isolated source snapshot, installs both locked dependency
|
|
69
|
+
sets without lifecycle scripts, builds the plugin and four native binaries, and
|
|
70
|
+
packs the root exactly once. It never reuses caller `dist/` or `node_modules/`.
|
|
71
|
+
Candidate **format 2** records the source commit/tree/snapshot, dirty status and
|
|
72
|
+
one tarball's SHA-512 integrity. Verification also opens the tarball and checks
|
|
73
|
+
all four native hashes, required entry points, licenses and bundled adapter identity.
|
|
74
|
+
Linux and macOS must install the same candidate, not separately repack it.
|
|
84
75
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
candidate from the new reviewed source. After any upload, retain the original
|
|
89
|
-
candidate and follow the recovery rules below.
|
|
76
|
+
Keep `dist-npm/`, `candidate.json`, toolchain identity and results. Source changes
|
|
77
|
+
before upload require a new reviewed candidate. After upload, retain those exact
|
|
78
|
+
bytes; a source fix requires a new version.
|
|
90
79
|
|
|
91
|
-
## 4. GitHub Actions publication
|
|
80
|
+
## 4. Automatic GitHub Actions publication
|
|
92
81
|
|
|
93
82
|
Pushing the reviewed tag triggers [publish.yml](https://github.com/ckanner/flywheel/blob/main/.github/workflows/publish.yml).
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
requires the tag to still identify the checked source.
|
|
97
|
-
|
|
98
|
-
GitHub access and npm publication rights are separate. Configure trusted
|
|
99
|
-
publishing for each of the six packages with owner `ckanner`, repository
|
|
100
|
-
`flywheel`, workflow `publish.yml`, and no environment unless the workflow is
|
|
101
|
-
changed to use one. Both **npm publish** and **npm dist-tag** permissions are
|
|
102
|
-
needed. The workflow also supports an authorized `NPM_TOKEN` fallback.
|
|
103
|
-
|
|
104
|
-
New packages require npm's initial package-creation authorization before
|
|
105
|
-
their trusted publisher can be configured. Use the normal authorized npm
|
|
106
|
-
flow; do not upload different placeholder bytes under the release version.
|
|
107
|
-
See the official [trusted publisher](https://docs.npmjs.com/trusted-publishers/)
|
|
108
|
-
and [dist-tag](https://docs.npmjs.com/adding-dist-tags-to-packages/) documentation
|
|
109
|
-
for account setup. `npm whoami` identifies an account, not its publishing rights.
|
|
110
|
-
|
|
111
|
-
Publication requires explicit repository visibility: `public` requires
|
|
112
|
-
provenance; `private` disables unsupported private-source provenance. Choose
|
|
113
|
-
the repository's actual visibility. Publishing a package does not change
|
|
114
|
-
repository visibility, and OIDC authentication is separate from provenance.
|
|
115
|
-
|
|
116
|
-
## 5. Publish locally from private source
|
|
117
|
-
|
|
118
|
-
A maintainer can build from a normal Git checkout. With the current release
|
|
119
|
-
policy, new uploads from a public repository must use section 4: the publisher
|
|
120
|
-
requires provenance, which npm generates only in a supported cloud CI/CD
|
|
121
|
-
environment, not an ordinary local browser-login session. See
|
|
122
|
-
[npm provenance requirements](https://docs.npmjs.com/generating-provenance-statements/).
|
|
123
|
-
The local upload example below applies only when the source repository is
|
|
124
|
-
actually private. Do not label a public repository private to bypass this
|
|
125
|
-
requirement. No downloaded archive is required. Complete source review and
|
|
126
|
-
the checks above first. If Actions cannot run, record the maintainer's
|
|
127
|
-
authorization, actual local results, and checks that were not performed;
|
|
128
|
-
do not report unavailable CI as passing.
|
|
129
|
-
|
|
130
|
-
From the same clean tagged source and its original candidate:
|
|
83
|
+
Manual dispatch accepts an exact existing tag. Build and both OS checks precede
|
|
84
|
+
the publication job, which rechecks source and tag identity.
|
|
131
85
|
|
|
132
|
-
|
|
133
|
-
npm login --auth-type=web --scope=@ckanner --registry=https://registry.npmjs.org/
|
|
134
|
-
npm run release:local -- --repository-visibility private
|
|
135
|
-
```
|
|
86
|
+
Configure **one** npm Trusted Publisher for `@ckanner/flywheel`:
|
|
136
87
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
`
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
After upload, visibility checks have a 180-second budget per package, with
|
|
175
|
-
E404 backoff from 2 seconds to at most 15 seconds. Each read is bounded by
|
|
176
|
-
30 seconds and the remaining budget. Promotion verification uses the same
|
|
177
|
-
bounded approach for `latest` and integrity. It repeats reads, not writes,
|
|
178
|
-
and refuses a newer `latest`, conflicting integrity, or invalid version.
|
|
88
|
+
| Setting | Value |
|
|
89
|
+
| --- | --- |
|
|
90
|
+
| Provider | GitHub Actions |
|
|
91
|
+
| Organization/user | `ckanner` |
|
|
92
|
+
| Repository | `flywheel` |
|
|
93
|
+
| Workflow filename | `publish.yml` |
|
|
94
|
+
| Environment | Empty, matching the workflow |
|
|
95
|
+
| Permissions | Allow `npm publish` and `npm dist-tag` |
|
|
96
|
+
|
|
97
|
+
The publication job uses OIDC only, with an empty npm user config; it does not
|
|
98
|
+
fall back to a stored `NPM_TOKEN` or interactive browser authentication. The
|
|
99
|
+
account's 2FA policy remains independent. Creating the trust relationship can
|
|
100
|
+
require a maintainer security-key confirmation; that is initial setup, not a
|
|
101
|
+
per-release approval. npm may mark a new connection pending validation until its
|
|
102
|
+
first real CI publication. Saved settings or `npm publish --dry-run` do not prove
|
|
103
|
+
that publication has succeeded. See [npm trusted publishing](https://docs.npmjs.com/trusted-publishers/).
|
|
104
|
+
|
|
105
|
+
The public source repository requires provenance. Private-source publication
|
|
106
|
+
explicitly disables unsupported provenance; it must never falsely claim that a
|
|
107
|
+
public repository is private. If Actions is blocked by billing or another runner
|
|
108
|
+
failure, report that separately from local checks. A successful CI verification
|
|
109
|
+
of existing packages is not proof that fresh OIDC writes work.
|
|
110
|
+
|
|
111
|
+
## 5. Publication order and recovery
|
|
112
|
+
|
|
113
|
+
Publish the complete tarball under `candidate-X-Y-Z`, verify its exact registry
|
|
114
|
+
integrity, and run the actual registry installation before moving `latest`.
|
|
115
|
+
Finally verify `latest` and integrity. There is one package upload and one tag
|
|
116
|
+
promotion, both authenticated by the CI identity; no six-package transaction is needed.
|
|
117
|
+
|
|
118
|
+
Only a structured E404 means a version is absent. Authentication, transport,
|
|
119
|
+
cancellation, malformed JSON and mismatched integrity fail visibly. Existing
|
|
120
|
+
versions must match the saved candidate, and a newer `latest` must never be downgraded.
|
|
121
|
+
Visibility checks retain their bounded 180-second window and repeat reads, not writes.
|
|
122
|
+
If npm has accepted an upload but is still validating it, retain the artifact and
|
|
123
|
+
wait for the exact version to become visible before resuming.
|
|
179
124
|
|
|
180
125
|
| Failure | Recovery |
|
|
181
126
|
| --- | --- |
|
|
182
|
-
|
|
|
183
|
-
|
|
|
184
|
-
| Registry visibility timeout | Preserve
|
|
185
|
-
|
|
|
186
|
-
|
|
|
187
|
-
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
127
|
+
| OIDC authorization | Verify the exact package/repository/workflow and both allowed actions |
|
|
128
|
+
| Interrupted upload | Read registry identity first; resume the same saved tarball |
|
|
129
|
+
| Registry visibility timeout | Preserve accepted bytes and retry read-only verification |
|
|
130
|
+
| Registry installation or promotion fails | Resume the same candidate; keep newer tags intact |
|
|
131
|
+
| Code must change after upload | Use a new version and reviewed tag |
|
|
132
|
+
| Candidate is missing | Recover the original artifact; do not assume a rebuild is identical |
|
|
133
|
+
|
|
134
|
+
For an explicitly authorized **private-source** emergency only, `npm run release:local --
|
|
135
|
+
--repository-visibility private` retains source/tag/candidate/installation checks and
|
|
136
|
+
normal interactive npm authorization. It requires a TTY. An older release must use
|
|
137
|
+
its own tooling, exact tagged worktree and original artifact format. Do not invoke
|
|
138
|
+
the new single-package publisher against historical format-1 six-package candidates.
|
|
139
|
+
|
|
140
|
+
## 6. User migration and acceptance
|
|
141
|
+
|
|
142
|
+
`npx -y @ckanner/flywheel@latest install` remains the entry point. Wait for active Flywheel tasks to settle and quit DSH before
|
|
143
|
+
migrating a split installation. Setup installs and verifies the complete desktop
|
|
144
|
+
package, then removes the old `@ckanner/dsh-plugin-flywheel` through the official
|
|
145
|
+
DSH CLI and verifies only the new identity remains. It preserves user configuration,
|
|
146
|
+
modified skills and task histories; it does not rewrite `state.json`.
|
|
147
|
+
|
|
148
|
+
A custom file/git legacy source fails before desktop-profile mutation; earlier
|
|
149
|
+
completed installer steps remain in the report. If migration fails, report
|
|
150
|
+
its actual partial state. Roll back only a replacement added by this attempt when
|
|
151
|
+
the original old package is still confirmed present. Cancellation does not start
|
|
152
|
+
new rollback processes; retry reads the profile again and completes the remaining
|
|
153
|
+
work. Never report success while both identities remain. Existing global launcher
|
|
154
|
+
records and explicit `flywheelBinary` overrides retain their checks and precedence.
|
|
155
|
+
Without a record, the installed plugin can resolve its own bundled CLI; Node still
|
|
156
|
+
needs to be available to the host.
|
|
157
|
+
|
|
158
|
+
A complete release record includes source/candidate/registry identities, installation
|
|
159
|
+
results and limitations. Separately verify CLI, skills, the installed desktop package,
|
|
160
|
+
configuration and the reloaded native view. Running tasks must not be interrupted just
|
|
161
|
+
to claim desktop acceptance; record a pending reload when necessary.
|
|
162
|
+
|
|
163
|
+
An existing managed launcher must match the installed package version. After updating
|
|
164
|
+
only the DSH copy, run setup for that version to refresh the managed installation;
|
|
165
|
+
a stale record is reported instead of mixing a newer view with an older engine.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# 0.32.0 正式发行与本机安装
|
|
2
|
+
|
|
3
|
+
用户授权合并已审查 PR、关联关闭 Issue、发布新版本并安装到现有 DSH 桌面。
|
|
4
|
+
PR #43 按已审查 head `2a8af72f82cbacc16d61495653c458ed2021ea29` 合并为
|
|
5
|
+
`ae4ba2cd1c7be3895df1d8380d23ab278c262a7f`,GitHub 自动关闭 #41、#42。
|
|
6
|
+
发行前后均核对没有其他开放 PR;本次没有修改两项修复的实现。
|
|
7
|
+
|
|
8
|
+
## 发行身份
|
|
9
|
+
|
|
10
|
+
- 源码/标签 `v0.32.0`:`578b778a074948c98301b43ac20a4923714ca0e0`。
|
|
11
|
+
- Git tree:`8dcaff150f7ee2602134daeb4fef474fc56a02b7`。
|
|
12
|
+
- 源码 snapshot SHA256:`29418bd2f909906573d2d706712334af43bcba09ca12cf745e78695b8357a822`。
|
|
13
|
+
- 正式候选清单 SHA256:`61ddf4fb4007390851e8a0a3c591dc256415114e96525523fda3b5703ef77a95`。
|
|
14
|
+
- 构建工具链:macOS arm64,Go 1.27.3、Node 24.22.1、npm 12.2.1。
|
|
15
|
+
|
|
16
|
+
六包在干净源码中隔离构建、打包一次。先使用 `candidate-0-32-0`,全部精确版本和
|
|
17
|
+
integrity 与原候选一致、官方 registry 安装通过后,再逐包提升 `latest`。
|
|
18
|
+
最终发行器确认六包均为 0.32.0,源码、远端标签、候选及所有 latest 完整性复核通过。
|
|
19
|
+
同一组六包和候选清单保存在 [v0.32.0 Release](https://github.com/ckanner/flywheel/releases/tag/v0.32.0)。
|
|
20
|
+
|
|
21
|
+
## 已执行验证
|
|
22
|
+
|
|
23
|
+
| 检查 | 结果与范围 |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| macOS 源码审查 | PR #43 精确 head 的完整 Go 门禁通过,逐函数 100%;发行提交仅改变六包版本、锁文件根版本及 CHANGELOG 标题 |
|
|
26
|
+
| macOS 插件及桥接 | 同一已审查实现的插件 302/302、旧宿主 10/10、DSH/Codex Pro/Claude Code Pro 三桥接通过,无跳过 |
|
|
27
|
+
| macOS 超时复现回归 | 接纳后安全过期及接纳前拒绝回退各 20 次通过;race 模式各 20 次通过;原 20/20 失败证据保留在 #42 |
|
|
28
|
+
| Linux arm64 发行源码 | Go 完整门禁通过,逐函数 100%;插件 302/302、旧宿主 10/10、三桥接通过,无跳过 |
|
|
29
|
+
| Linux 核心 race | machine、verify、watchdog、drivers、cli、modules、diagnostic 全部通过 |
|
|
30
|
+
| npm 协议及发行测试 | 两个平台均 142/142 通过 |
|
|
31
|
+
| 真实引擎会话离线场景 | 两个平台均完成 36 个 trial/96 次夹具调用,所有 oracle 通过,无未知或未观察场景 |
|
|
32
|
+
| 同一正式候选真实安装 | macOS arm64、Linux arm64 各 10/10,通过且无跳过 |
|
|
33
|
+
| 官方 registry 安装 | 精确 0.32.0、实际 npm 和原生 CLI、11 个 Skill 通过;桌面注册部分为 CLI 协议桩 |
|
|
34
|
+
| 已安装内容 | 入口包 150 文件、全局 worker 包 106、桌面插件 106、当前平台包 3,全部与正式 tarball 逐文件一致 |
|
|
35
|
+
| 已安装技能 | 11 个 Skill 的 13 个内容文件与发行 tag 一致 |
|
|
36
|
+
| 本机 SDK 探测 | doctor 返回 ok:true;四项 SDK 目录/权限/收尾探测 pass,inferenceTested:false |
|
|
37
|
+
|
|
38
|
+
可选 Claude Code Pro 使用已审查源码产物 0.4.0,SHA256
|
|
39
|
+
`125951f39d27a87072a9dc20c622a19089ad7ba84b69ba6228e1fbb03f46f581`;
|
|
40
|
+
Codex Pro 使用仓库 vendor 中记录的 0.9.0 原包。未把缺失 optional peer 的跳过记作通过。
|
|
41
|
+
|
|
42
|
+
## 本机配置与桌面边界
|
|
43
|
+
|
|
44
|
+
现有 Node 26.12.1 npm prefix 下的 CLI 与 desktop profile 插件均已安装 0.32.0。
|
|
45
|
+
安装报告 `ok:true`、`ready:true`,DSH 仍为 0.2.2-rc.2。安装器保留旧配置后,再按用户
|
|
46
|
+
既有明确要求,通过带 revision 的 `control config-save`、`reset:true` 完整覆盖为
|
|
47
|
+
安装版模板;解析后深比较完全一致。
|
|
48
|
+
|
|
49
|
+
全局配置 SHA256 为
|
|
50
|
+
`20fae2b10ad725bf5f7c06080201d1b37142f08ec74d835c053f7106d07006e9`。
|
|
51
|
+
默认 scoped、parallel/最大并发 2、batch、自动 Worktree 开启、预热关闭、JEV 关闭;
|
|
52
|
+
预算保留模板的 soft/每日 2,000,000 token,可由新版设置选择关闭。本次未自行改动模板默认值。
|
|
53
|
+
安装前五个实际存在的配置和安装元数据文件已备份、校验,目录为
|
|
54
|
+
`~/.config/flywheel/backups/pre-0.32.0-install-20261113T163236Z/`。
|
|
55
|
+
|
|
56
|
+
**桌面重载和新版原生画布验收尚未完成。** 检查时 DSH 仍显示运行中会话、停止生成按钮
|
|
57
|
+
和一个后台任务;原生插件详情仍显示进程加载的 0.31.1,与磁盘 0.32.0 区分记录。
|
|
58
|
+
遵守用户“等现有任务结束后再重载”的要求,没有停止任务或重启 DSH,并恢复原会话页面。
|
|
59
|
+
后续安全重载及画布验收应追加实际结果,不能将磁盘安装、离线渲染或 SDK 探测冒充桌面已切换。
|
|
60
|
+
|
|
61
|
+
## 保留的失败与限制
|
|
62
|
+
|
|
63
|
+
- [发布 Actions 43459618683](https://github.com/ckanner/flywheel/actions/runs/43459618683)
|
|
64
|
+
和 [CI 43459618646](https://github.com/ckanner/flywheel/actions/runs/43459618646) 未通过。
|
|
65
|
+
发布 preflight 没有执行步骤,annotation 指明账号付款或 spending limit 问题;本机验证不冒充 Actions 通过。
|
|
66
|
+
- Linux 容器原有 npm 缓存的 `CACHEDIR.TAG` 权限导致初次 npm 阶段和候选安装 EACCES。
|
|
67
|
+
Go 门禁已通过;保留原始失败日志,使用容器内独立可写缓存续跑剩余检查并重跑安装,
|
|
68
|
+
没有改变源码、候选、测试断言或容器非 root 用户。
|
|
69
|
+
- macOS Intel 包被 npm 接收后超过 180 秒尚未公开,发行器按原规则停止。
|
|
70
|
+
npm 官方版本页确认 0.32.0 处于 Validating;没有重复上传该包。
|
|
71
|
+
使用原候选和同样源码/标签/完整性前置检查继续上传两个无依赖 Linux 平台包;
|
|
72
|
+
四个平台全部公开并核对后,才恢复标准发行器上传插件和入口包。
|
|
73
|
+
- PR #43 作者记录的首次 Linux Claude 清理、DSH 桥接失败仍保留在
|
|
74
|
+
[原验证记录](2026-11-13-prewarm-receipts-and-expiry-tests.md);本轮通过不删除历史失败。
|
|
75
|
+
- doctor 的账号与既有会话 unknown、沙箱 warn、无任务契约 skipped 保持原含义。
|
|
76
|
+
未发送真实推理 prompt;不建立真实模型质量、额度、JEV 收益或预热性能结论。
|
|
77
|
+
|
|
78
|
+
本记录为发行后文档,不移动发行标签,不改写已发布 tarball。
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# 0.32.1:DSH 兼容系列范围与发行
|
|
2
|
+
|
|
3
|
+
用户在将桌面升级到 DSH 0.2.2-rc.3 后要求检查并修复 Flywheel,明确要求结束逐 rc
|
|
4
|
+
修改版本白名单的方式。本次沿用已授权的发布与安装流程。
|
|
5
|
+
|
|
6
|
+
## 原因与修复
|
|
7
|
+
|
|
8
|
+
原生插件详情确认 0.32.0 被 `engines.dsh` 的精确白名单标为未运行。四项 SDK 探测
|
|
9
|
+
也失败;直接读取无推理 worker 回执,确认 SDK 同样拒绝加载该包的权限确认组件,
|
|
10
|
+
随后因缺少 `policy.json` 返回 TRANSPORT。没有通过版本豁免绕过此检查。
|
|
11
|
+
|
|
12
|
+
0.32.1 将宿主范围改为 `>=0.2.1-rc.5 <0.3.0-0`。DSH 判断范围时包含预发布版本,
|
|
13
|
+
因此 0.2 系列后续 rc/补丁可自动准入;0.3 系列及其预发布版保持拒绝。
|
|
14
|
+
宿主提供的 optional DSH peer 范围同时覆盖已有预发布系列,测试依赖锁定真实发布的
|
|
15
|
+
0.2.2-rc.3。运行时所需服务、权限回执、会话身份与清理检查均未删除。
|
|
16
|
+
|
|
17
|
+
测试中的上游兼容检查实现与 DSH rc.3 源码
|
|
18
|
+
`38a6a5c965aa99ab525161efb7cc5cf1fe62fced` 比对未发生变化。版本范围测试覆盖后续 rc、
|
|
19
|
+
正式版及补丁版准入、最低版本以下和下一 minor 预发布版拒绝;同时验证 npm 的
|
|
20
|
+
默认 prerelease 匹配规则。范围是兼容策略,不代表所有未来宿主均已实测。
|
|
21
|
+
|
|
22
|
+
## 发行身份
|
|
23
|
+
|
|
24
|
+
- 源码/标签 `v0.32.1`:`0b26f59f70030d5fe51cd65d37b7ac1e6e9047b3`。
|
|
25
|
+
- Git tree:`7d22489891dddd9eb8414d683d74b68708d3b420`。
|
|
26
|
+
- 源码 snapshot SHA256:`249b85f88c1a20caa228ebcd48f220b9e1e98e05a5f4c2efddc421d1c92b2719`。
|
|
27
|
+
- 候选清单 SHA256:`2cf9a845b07bde0a1fb62a41b663e37eb5e39784e7bbdd787fd3c61421859851`。
|
|
28
|
+
|
|
29
|
+
六包从干净源码隔离构建、打包一次,认证重试始终复用原始产物。
|
|
30
|
+
全部 `candidate-0-32-1` 精确版本与 integrity 校验、官方 registry 安装通过后,
|
|
31
|
+
再逐包提升 latest。最终六包 latest 及 integrity 均复核为 0.32.1。
|
|
32
|
+
候选清单和原始 tarball 见 [v0.32.1 Release](https://github.com/ckanner/flywheel/releases/tag/v0.32.1)。
|
|
33
|
+
|
|
34
|
+
## 实际检查
|
|
35
|
+
|
|
36
|
+
| 检查 | 结果与范围 |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| 兼容范围回归 | 原实现 2 项失败、1 项通过;修复后 3/3 通过 |
|
|
39
|
+
| macOS / Linux arm64 插件完整检查 | 各 304/304;旧 rc.5 宿主各 10/10;零跳过 |
|
|
40
|
+
| 两平台跨进程桥接 | DSH、Codex Pro、Claude Code Pro 均通过,无跳过 |
|
|
41
|
+
| 两平台 npm 单元与发行协议 | 各 142/142 通过 |
|
|
42
|
+
| 同一正式候选安装 | macOS arm64、Linux arm64 各 10/10,无跳过 |
|
|
43
|
+
| 官方 registry 真实安装 | 精确 0.32.1、原生 CLI、11 个 Skill 通过;桌面注册部分为 CLI 协议桩 |
|
|
44
|
+
| 实际 rc.3 SDK | 隔离候选 worker 和安装后 worker 的四项无推理探测均 pass |
|
|
45
|
+
| 安装内容完整性 | 入口包 151 文件、全局插件 106、桌面插件 106、当前平台包 3,与原始 tarball 逐文件一致 |
|
|
46
|
+
| 已安装技能 | 11 个 Skill 的 13 个内容文件与发行 tag 一致 |
|
|
47
|
+
|
|
48
|
+
`cmd/`、`internal/`、`templates/`、`skills/` 相对 v0.32.0 没有差异。
|
|
49
|
+
本轮没有重跑未改变的 Go 全量覆盖率、核心 race 或会话实验;其精确源文件对应的证据见
|
|
50
|
+
[0.32.0 发行记录](2026-11-13-release-0.32.0.md)。本轮重新运行了受 rc.3 测试依赖影响的
|
|
51
|
+
插件、公开 SDK、桥接和实际安装检查。Codex Pro vendor integrity 保持不变;可选
|
|
52
|
+
Claude 0.4.0 使用 SHA256 为
|
|
53
|
+
`125951f39d27a87072a9dc20c622a19089ad7ba84b69ba6228e1fbb03f46f581` 的已审查原包。
|
|
54
|
+
|
|
55
|
+
## 本机状态
|
|
56
|
+
|
|
57
|
+
CLI 和 desktop profile 插件均已安装 0.32.1,安装报告 `ok:true`、`ready:true`。
|
|
58
|
+
默认模板未改动;用户配置原始字节保持一致,SHA256 为
|
|
59
|
+
`20fae2b10ad725bf5f7c06080201d1b37142f08ec74d835c053f7106d07006e9`。
|
|
60
|
+
安装前七个配置、安装与 profile 元数据文件已备份并核对摘要,目录为
|
|
61
|
+
`~/.config/flywheel/backups/pre-0.32.1-20261114T015927Z/`,后缀为 UTC 时间。
|
|
62
|
+
未添加 0.32.1 的精确版本豁免,未修改用户账号或模型设置。
|
|
63
|
+
|
|
64
|
+
**桌面重载与新版原生画布验收仍待完成。** 曾观察到上一轮会话结束,但正常退出前
|
|
65
|
+
再次读取桌面时发现用户已启动新一轮对话,因而没有退出 DSH。磁盘安装和 SDK 探测
|
|
66
|
+
不等于当前桌面进程已经换版;继续遵守用户先前“等现有任务结束后再重载”的要求。
|
|
67
|
+
|
|
68
|
+
## 保留的失败与限制
|
|
69
|
+
|
|
70
|
+
- 初次更新测试锁文件遇到 rc.2/rc.3 传递 peer 冲突;移除旧 DSH 测试依赖解析记录后
|
|
71
|
+
重新正常解析,没有使用 force 或 legacy-peer-deps。非 DSH 锁条目没有变化。
|
|
72
|
+
- 首包与插件包曾发生 npm 认证会话失效(authId 404)。实际 registry 核对后续发,
|
|
73
|
+
未更换候选。首包被接受后超过 180 秒尚不可见,发行器按规则停止;其余无依赖
|
|
74
|
+
平台包上传使用相同源码、标签、候选及 integrity 前置检查,四个平台全部公开并
|
|
75
|
+
核对后才恢复标准发行器上传插件和入口包。
|
|
76
|
+
- [发布 Actions 43469804204](https://github.com/ckanner/flywheel/actions/runs/43469804204)
|
|
77
|
+
和 [CI 43469804576](https://github.com/ckanner/flywheel/actions/runs/43469804576) 未通过。
|
|
78
|
+
发布 preflight 没有执行步骤;annotation 指明账号付款或 spending limit 问题。
|
|
79
|
+
本机验证不冒充 Actions 通过。
|
|
80
|
+
- SDK 探测 `inferenceTested:false`;账号授权/额度、真实模型质量、全部任务恢复场景
|
|
81
|
+
和未来 DSH 版本的实际接口兼容性不由此建立。
|
|
82
|
+
|
|
83
|
+
本记录为发行后文档,不移动 tag,不改写已发布 tarball。
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# 0.33.0 单包分发工程验证
|
|
2
|
+
|
|
3
|
+
[验证索引](README.md) · [发行指南](../zh-CN/releasing.md)
|
|
4
|
+
|
|
5
|
+
## 范围与身份
|
|
6
|
+
|
|
7
|
+
基于 `63d8781ee1ece0cce443fa2e1ead62d1d6288817`,将 Flywheel 自身的六个发行包
|
|
8
|
+
合并为一个 `@ckanner/flywheel@0.33.0`。`plugins/dsh` 保留为 private 源码测试区;
|
|
9
|
+
CLI、Host、Client、worker 和四个平台引擎装在同一个 tarball,skills 和模板继续内嵌。
|
|
10
|
+
不改 Go 状态机、模型默认值、权限或用户账号,不修改历史 npm 版本及其标签。
|
|
11
|
+
|
|
12
|
+
开发候选:candidate format 2,dirty=true,snapshot
|
|
13
|
+
`e2dfdcf243c0c77fdafc96f9c077e9059c2233d30e6eff3527434eecbd8d963a`,
|
|
14
|
+
唯一 tarball `ckanner-flywheel-0.33.0.tgz` 为 18,621,751 bytes,integrity:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
sha512-NJzZPwy6qBJaVBLwsw0xlfcKDkWMYmVkC7pQkVjd1h0jwmDZkqQP9UD9exo3PHaCu8fL4knRw9bYiVtwXEtnIA==
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
该候选仅用于工程检查;后续文档与 changelog 整理不回写此身份。正式发行必须从
|
|
21
|
+
干净标签另建一次正式候选,双 OS 验证并上传原始 tarball。本记录不声明已发布。
|
|
22
|
+
|
|
23
|
+
## 检查
|
|
24
|
+
|
|
25
|
+
工具链 Node 24.22.1 / npm 12.2.1 / Go 1.27.3。Claude 使用已审查的真实 0.4.0
|
|
26
|
+
源码包,SHA-256 `125951f39d27a87072a9dc20c622a19089ad7ba84b69ba6228e1fbb03f46f581`;
|
|
27
|
+
Codex 0.9.0 维持 vendor 锁定及 bundle,未假设它们已在 registry 发布。
|
|
28
|
+
|
|
29
|
+
- macOS 根 npm 单元及协议检查:151 通过,无跳过。
|
|
30
|
+
- macOS 插件 304 通过,旧宿主兼容检查 10 通过,无跳过。
|
|
31
|
+
- macOS 同候选:公开 Host/Client 10 通过,真实 npm 安装 13 通过,无跳过。
|
|
32
|
+
覆盖完整包入口、四引擎完整性、DSH SDK、Codex/Claude Machine、旧包迁移和重复安装。
|
|
33
|
+
- Linux 非 root 容器:插件 304、旧宿主 10、根 npm 151、打包 Host/Client 10、
|
|
34
|
+
同候选安装 13 全部通过,无跳过;三项 Go → Node 桥接通过。
|
|
35
|
+
- macOS 三项 Go → Node 离线桥接通过;Go 源码无改动,正式 CI 仍跑全量质量门禁。
|
|
36
|
+
- 真实 DSH CLI 在隔离 HOME/DSH_HOME 完成旧 0.32.1 插件 → 完整包 → 移除旧名,
|
|
37
|
+
profile 最终只登记新包。该早期开发候选检查不代替最终正式候选和用户桌面验收。
|
|
38
|
+
- 已改动且随包分发的 Markdown 相对链接检查通过;Git diff 空白检查通过。
|
|
39
|
+
|
|
40
|
+
## 自审
|
|
41
|
+
|
|
42
|
+
- 启动器只使用本包引擎和 worker,缺失、版本或摘要不匹配明确失败。
|
|
43
|
+
- DSH 的模块 ID、Remote descriptor、bundle 与安装名一致;实际 tarball 的 `.mjs`
|
|
44
|
+
与客户端 bundle 经过真实公开 Host API 测试,而非只测源码区的 `.js`。
|
|
45
|
+
- 迁移先安装并确认替代包,再移除旧名;损坏列表、定制来源、取消、部分失败均不报成功。
|
|
46
|
+
回退只移除已确认由本次新增且身份未变的替代包;预存或并发替换的包保持不动。
|
|
47
|
+
- 显式 flywheelBinary 保持优先。完整包无受管记录时用自带 CLI;旧版受管记录必须
|
|
48
|
+
重新 setup,不混用新版界面和旧引擎。现有配置、skills 修改和任务数据保持原归属规则。
|
|
49
|
+
- 正式 publish 使用 OIDC、同候选和 provenance;精确 registry 安装成功后才推进 latest。
|
|
50
|
+
保存 Trusted Publisher 设置不等于已完成首次自动发布,须以实际 CI 回执为准。
|
|
51
|
+
|
|
52
|
+
## 初始失败及限制
|
|
53
|
+
|
|
54
|
+
早期开发全量 npm 检查出现一次原有 registry 超时 fixture 的 pid marker 缺失;
|
|
55
|
+
未改该用例、deadline 或断言,单独复查与后续全量 151 条均通过。此处保留初次
|
|
56
|
+
失败,不据重跑断言其时序根因已消除。开发安装用例曾使用旧 `.js` 名及 macOS
|
|
57
|
+
`/var` 别名断言,已分别更新为打包入口和物理路径后通过。
|
|
58
|
+
|
|
59
|
+
尚未完成的交付项:精确提交 CI、正式标签候选、npm OIDC 发布/latest、用户 profile
|
|
60
|
+
迁移与 DSH 重载后界面验收。离线协议检查不代表真实模型推理、计费或质量结论。
|