@logicseek/hello-cc 1.0.0 → 1.0.2-dsh.3

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.
Files changed (123) hide show
  1. package/CHANGELOG.md +149 -0
  2. package/README.md +36 -0
  3. package/README.zh-CN.md +35 -0
  4. package/docs/README.md +9 -0
  5. package/docs/README.zh-CN.md +9 -0
  6. package/docs/commands.md +53 -0
  7. package/docs/commands.zh-CN.md +48 -0
  8. package/docs/dsh.md +137 -0
  9. package/docs/dsh.zh-CN.md +139 -0
  10. package/docs/guide.md +58 -0
  11. package/docs/guide.zh-CN.md +55 -0
  12. package/docs/mcp.md +9 -0
  13. package/docs/mcp.zh-CN.md +23 -0
  14. package/docs/native.md +295 -0
  15. package/docs/native.zh-CN.md +253 -0
  16. package/docs/web-handoff.zh-CN.md +53 -0
  17. package/lib/cli/app.mjs +27 -6
  18. package/lib/cli/commands/coordination.mjs +3 -1
  19. package/lib/cli/commands/doctor.mjs +17 -2
  20. package/lib/cli/commands/dsh.mjs +79 -0
  21. package/lib/cli/commands/gc.mjs +182 -32
  22. package/lib/cli/commands/hook.mjs +241 -90
  23. package/lib/cli/commands/lock.mjs +34 -19
  24. package/lib/cli/commands/mcp.mjs +28 -0
  25. package/lib/cli/commands/misc.mjs +15 -0
  26. package/lib/cli/commands/native.mjs +130 -0
  27. package/lib/cli/commands/peer.mjs +21 -5
  28. package/lib/cli/commands/run.mjs +66 -21
  29. package/lib/cli/commands/task.mjs +6 -3
  30. package/lib/cli-args.mjs +4 -0
  31. package/lib/coordination-state.mjs +15 -1
  32. package/lib/core/coordination/event-retention.mjs +14 -2
  33. package/lib/core/coordination/gc-plan.mjs +3 -13
  34. package/lib/core/coordination/locks.mjs +45 -0
  35. package/lib/core/coordination/results.mjs +79 -0
  36. package/lib/core/peers/bindings.mjs +9 -3
  37. package/lib/diagnostics/codex.mjs +121 -0
  38. package/lib/integrations/codex-interactions.mjs +114 -0
  39. package/lib/integrations/dsh-collaboration.mjs +170 -0
  40. package/lib/integrations/dsh-cordis.d.ts +19 -0
  41. package/lib/integrations/dsh-cordis.mjs +177 -0
  42. package/lib/integrations/dsh.bundle.yml +7 -0
  43. package/lib/integrations/dsh.mjs +287 -0
  44. package/lib/integrations/native/claude.mjs +451 -0
  45. package/lib/integrations/native/codex.mjs +242 -0
  46. package/lib/integrations/native/dsh-acp.mjs +343 -0
  47. package/lib/integrations/native/index.mjs +19 -0
  48. package/lib/integrations/native/interactions.mjs +53 -0
  49. package/lib/integrations/native/jsonrpc.mjs +185 -0
  50. package/lib/integrations/peers/identity.mjs +36 -10
  51. package/lib/integrations/peers/processes.mjs +22 -8
  52. package/lib/integrations/providers.mjs +6 -2
  53. package/lib/mcp/scope.mjs +104 -0
  54. package/lib/mcp/stdio.mjs +80 -0
  55. package/lib/mcp/tools.mjs +197 -0
  56. package/lib/process/identity.mjs +33 -1
  57. package/lib/release/release-notes.mjs +9 -0
  58. package/lib/runtime/buffer-directory-lease.mjs +2 -1
  59. package/lib/runtime/client.mjs +3 -0
  60. package/lib/runtime/native/client.mjs +38 -0
  61. package/lib/runtime/native/service.mjs +511 -0
  62. package/lib/runtime/native/store.mjs +121 -0
  63. package/lib/shared/file-lock.mjs +11 -4
  64. package/lib/shared/socket-lock-worker.mjs +73 -24
  65. package/lib/terminal/tmux.mjs +53 -23
  66. package/lib/ui/help.mjs +5 -2
  67. package/lib/web/adoption-state.mjs +55 -0
  68. package/lib/web/auto-attach.mjs +18 -2
  69. package/lib/web/buffer-gc-runtime.mjs +2 -2
  70. package/lib/web/codex-app-server.mjs +557 -0
  71. package/lib/web/codex-sessions.mjs +287 -0
  72. package/lib/web/control-lease.mjs +204 -0
  73. package/lib/web/http-routes.mjs +197 -15
  74. package/lib/web/http.mjs +5 -4
  75. package/lib/web/native-sessions.mjs +286 -0
  76. package/lib/web/project-contexts.mjs +8 -2
  77. package/lib/web/pty-sessions.mjs +60 -33
  78. package/lib/web/runtime-main.mjs +101 -6
  79. package/lib/web/session-serialize.mjs +0 -0
  80. package/lib/web/startup.mjs +4 -2
  81. package/lib/web/task-results.mjs +76 -0
  82. package/lib/web/tmux-sessions.mjs +92 -11
  83. package/lib/web/tmux-stream.mjs +2 -2
  84. package/lib/web/ui-codex.mjs +550 -0
  85. package/lib/web/ui-command-palette.mjs +119 -0
  86. package/lib/web/ui-handoff.mjs +102 -0
  87. package/lib/web/ui-history.mjs +118 -0
  88. package/lib/web/ui-i18n.mjs +841 -0
  89. package/lib/web/ui-interactions.mjs +78 -0
  90. package/lib/web/ui-login.mjs +101 -0
  91. package/lib/web/ui-native.mjs +165 -0
  92. package/lib/web/ui-preferences.mjs +278 -0
  93. package/lib/web/ui-review.mjs +132 -0
  94. package/lib/web/ui-template.mjs +1106 -576
  95. package/lib/web/ui-terminal-find.mjs +98 -0
  96. package/lib/web/ui-workbench.mjs +94 -0
  97. package/lib/web/ui-workspace.mjs +222 -0
  98. package/package.json +12 -4
  99. package/scripts/check-free-identifiers.mjs +67 -8
  100. package/scripts/codex-diagnostics-installed-acceptance.mjs +72 -0
  101. package/scripts/dsh-cordis-acceptance.mjs +200 -0
  102. package/scripts/dsh-installed-acceptance.mjs +247 -0
  103. package/scripts/dsh-official-acceptance.mjs +180 -0
  104. package/scripts/dsh-web-startup-acceptance.mjs +87 -0
  105. package/scripts/github-release.mjs +3 -1
  106. package/scripts/native-live-acceptance.mjs +369 -0
  107. package/scripts/regression.mjs +338 -187
  108. package/scripts/web-handoff-installed-acceptance.mjs +98 -0
  109. package/scripts/web-native-interaction-acceptance.mjs +204 -0
  110. package/scripts/web-native-model-acceptance.mjs +138 -0
  111. package/docs/architecture-split-review.md +0 -217
  112. package/docs/current-state-review-2026-08.md +0 -341
  113. package/docs/defect-review-2026-07.md +0 -382
  114. package/docs/layout-split-stack-audit.md +0 -298
  115. package/docs/superpowers/plans/2026-08-03-runtime-safety-plan.md +0 -294
  116. package/docs/superpowers/plans/2026-08-03-v1-data-identity-plan.md +0 -400
  117. package/docs/superpowers/plans/2026-08-03-v1-release-verification-plan.md +0 -284
  118. package/docs/superpowers/plans/2026-08-03-web-api-hardening-plan.md +0 -303
  119. package/docs/superpowers/plans/2026-08-04-runtime-buffer-gc-two-phase.md +0 -71
  120. package/docs/superpowers/specs/2026-08-03-runtime-safety-design.md +0 -117
  121. package/docs/superpowers/specs/2026-08-03-v1-data-identity-design.md +0 -120
  122. package/docs/superpowers/specs/2026-08-03-v1-release-verification-design.md +0 -117
  123. package/docs/superpowers/specs/2026-08-03-web-api-hardening-design.md +0 -104
package/CHANGELOG.md CHANGED
@@ -16,6 +16,155 @@ the release description from the current changelog section. Use
16
16
  `npm run release:github` with `GH_TOKEN` or `GITHUB_TOKEN` only for local
17
17
  backfills.
18
18
 
19
+ ## 1.0.2-dsh.3
20
+
21
+ ### Summary
22
+
23
+ This preview keeps the DeepSeek Harness integration introduced in `1.0.2-dsh.2`
24
+ and fixes session cleanup when a temporary database failure interrupts shutdown.
25
+ It remains an npm `dsh` preview and a GitHub prerelease.
26
+
27
+ ### Highlights
28
+
29
+ - Revoking a Cordis Agent immediately blocks its tools while allowing database
30
+ retirement to retry after storage becomes available again.
31
+ - Preserve failed cleanup records across plugin reloads. Recovery requires the
32
+ exact disposed Agent, provider session, and project; active owners cannot be
33
+ replaced based on another Agent's disposal event.
34
+ - Retain the pinned Harness `0.2.0-rc.2`, Node.js 24+, and Linux/macOS/WSL support
35
+ boundaries. Every candidate has independent package and acceptance receipts.
36
+
37
+ ## 1.0.2-dsh.2
38
+
39
+ ### Summary
40
+
41
+ This preview integrates DeepSeek Harness sessions with the hello-cc task,
42
+ message, lock, and handoff services. It adds project hooks, an installed Cordis
43
+ bundle, and owned ACP workers, including session recovery and explicit approval
44
+ handling. The preview is intended for the `dsh` npm dist-tag and a GitHub
45
+ prerelease; publication and business acceptance are separate delivery gates.
46
+
47
+ ### Highlights
48
+
49
+ - `hcc dsh setup`, `status`, and `web` manage project hooks or a Cordis overlay.
50
+ Setup verifies its managed files before migrating paths from a source checkout
51
+ to an installed package and preserves user-edited configuration.
52
+ - The Cordis bundle exposes collaboration tools using each Agent's complete
53
+ provider session ID and project root. Inbox acknowledgements follow the
54
+ committed model context; simultaneous sessions retain separate ownership.
55
+ - A resumed Cordis session can reclaim ownership after a crashed owner only
56
+ when complete process identity evidence confirms that owner is dead. Live or
57
+ uncertain owners, competing transports, and changed bindings remain protected.
58
+ - Native ACP workers use a dedicated `dsh --profile acp` process with scoped MCP
59
+ tools. Queue admission and completed delivery are distinct; close, resume,
60
+ interruption, and approval responses retain the owning session boundary.
61
+ - ACP approval requests correlate tool-call IDs with their tool input, including
62
+ out-of-order updates. Requests with missing or truncated context cannot be
63
+ accepted; rejection remains available.
64
+ - Release tooling derives GitHub prerelease status from the version and exposes
65
+ it during dry runs, so preview releases do not receive stable release status.
66
+
67
+ ### Compatibility Notes
68
+
69
+ - Node.js 24 or newer and matching DeepSeek Harness `0.2.0-rc.2` runtime packages
70
+ are required. The Cordis integration checks the actual Agent, AgentLoop, Tools,
71
+ and Sessions package versions before loading.
72
+ - Supported host environments are Linux and macOS; Windows users must use WSL.
73
+ Native Windows shells are not supported. The existing macOS arm64 acceptance
74
+ results do not establish Linux, WSL, or other-device acceptance for this preview.
75
+ - Choose one injection method per Harness process: profile bundle or project
76
+ overlay. Harness manages profile bundle installation; `setup --mode off`
77
+ disables a managed project overlay.
78
+ - Existing schema v7 and Runtime API v2 boundaries still apply. Real model
79
+ acceptance requires a provider route that permits Harness; a route restricted
80
+ to an official client remains restricted.
81
+
82
+ ### Validation
83
+
84
+ Earlier local macOS arm64 candidates completed official plugin installation and
85
+ removal, real Cordis collaboration calls, ACP session lifecycle and approval
86
+ denial, and an isolated order-report workflow. Those dated receipts belong to
87
+ their recorded candidate hashes. This version requires its own frozen-package
88
+ installation receipt and release checks before publication. Other-device
89
+ installation and genuine business signoff remain separate, incomplete gates.
90
+
91
+ ## 1.0.1
92
+
93
+ ### Summary
94
+
95
+ hello-cc 1.0.1 is a file-lock determinism, buffer-GC safety, fresh-install, and
96
+ release-reliability patch. It makes worker shutdown reclaim kernel lock
97
+ endpoints deterministically when an identity probe keeps its client write half
98
+ open, restores real PTY startup in fresh macOS npm installations, and keeps
99
+ automatic GC fail-closed when optional buffer paths disappear or change.
100
+
101
+ ### Highlights
102
+
103
+ - The socket-lock worker now tracks each locally accepted socket and destroys
104
+ those accepted handles during server shutdown, so release no longer depends
105
+ on the peer closing its writable half after reading the lock banner.
106
+ - A real half-open identity-probe regression verifies that release returns
107
+ promptly, a nonblocking reacquisition succeeds immediately, and the probe is
108
+ explicitly stopped and awaited during final cleanup.
109
+ - `node-pty` is exactly pinned to `1.2.0-beta.15`. The stable `node-pty 1.1.0`
110
+ npm artifact contains non-executable Darwin helpers, which makes a fresh
111
+ macOS install fail with `posix_spawnp failed`; the selected artifact publishes
112
+ both Darwin helpers with executable modes.
113
+ - Linux, macOS, and WSL installation instructions now list Node.js 24, tmux
114
+ commands for the major system package managers, CLI verification, and safe
115
+ handling for npm global-install permission errors.
116
+ - `hcc down` now waits for the exact Runtime process identity to exit before it
117
+ reports success, including safe handling for PID reuse and a bounded timeout
118
+ when shutdown cannot be confirmed.
119
+ - Background Web startup keeps its immediate child-exit failure but allows a
120
+ bounded 60-second health window, avoiding false failures on loaded macOS CI
121
+ hosts where process identity and project restoration can exceed 30 seconds.
122
+ - Manual buffer GC allows a bounded 30-second window for runtime evidence
123
+ planning and apply, while still deferring all eligible files if the runtime
124
+ remains unavailable.
125
+ - Automatic GC now treats a missing `.hello-cc/bufs` leaf as empty without
126
+ recreating it. A missing state directory, a symlinked path component, an
127
+ inode replacement, or a retargeted project-root alias fails closed with
128
+ `PROJECT_PATH_FORBIDDEN` before buffer, clock, lock, or history mutation.
129
+ - Buffer path identity is retained through evidence collection, lease
130
+ acquisition, planning, clock reads, and database transactions. GC uses a
131
+ no-create lease while existing file-lock callers retain their original
132
+ parent-creation behavior.
133
+ - Per-connection Web action tokens now require their issuing terminal socket to
134
+ still be open, closing the handshake race before asynchronous token cleanup.
135
+ - Runtime request deadlines now reach the underlying HTTP transport, and peer
136
+ start/attach preflight and mutation requests use a bounded 60-second window
137
+ while stop and terminal-input operations use 30 seconds, instead of all
138
+ inheriting the shorter read-request default.
139
+
140
+ ### Compatibility Notes
141
+
142
+ - No CLI command or package-surface behavior changes are intended. Schema v7,
143
+ Runtime API v2, the authenticated browser's ability to choose any existing
144
+ server directory as a project root, and the 1.0.0 accepted-risk boundaries
145
+ are unchanged.
146
+ - Stable project-root aliases remain supported. Only path disappearance,
147
+ replacement, symlink traversal, or alias retargeting during GC is rejected.
148
+ - The existing five-second fail-closed deadline and cleanup-error behavior are
149
+ unchanged.
150
+ - `node-pty@1.2.0-beta.15` is a bounded prerelease dependency risk. The exact
151
+ pin prevents unreviewed beta movement, and release tests verify the installed
152
+ version, regular-file identity, executable modes, and a real PTY. There is no
153
+ postinstall or CI-only `chmod` workaround.
154
+
155
+ ### Validation
156
+
157
+ The 1.0.1 release gate includes repeated macOS Node 24 tests; a no-cache Linux
158
+ Node 24/tmux image build followed by three complete `npm test` runs in that same
159
+ image, each ending with `FULL_REGRESSION_OK`; and a fourth clean container that
160
+ installs the same 1.0.1 package tarball and passes PTY, database, Web, and
161
+ missing-buffer GC smoke checks. Fresh macOS consumer installs pass both normal
162
+ and `--ignore-scripts` installation, proving that executable helper modes come
163
+ from the package artifact rather than lifecycle-script mutation. GC regression
164
+ coverage includes absent optional leaves, symlink and ancestor replacement,
165
+ alias retargeting, no-create lock acquisition, and path guards around clock and
166
+ history writes.
167
+
19
168
  ## 1.0.0
20
169
 
21
170
  ### Summary
package/README.md CHANGED
@@ -70,10 +70,42 @@ currently supported; use WSL for a Linux-like environment.
70
70
  Linux has richer process auto-discovery through `/proc`. On macOS, use
71
71
  hello-cc shims or `hcc peer start` for reliable tmux-managed terminal sessions.
72
72
 
73
+ Install Node.js 24 or newer from the official Node.js packages or a Node
74
+ version manager. Then install `tmux` for your platform:
75
+
76
+ ```bash
77
+ # Debian / Ubuntu
78
+ sudo apt-get update && sudo apt-get install -y tmux
79
+ # Fedora / RHEL
80
+ sudo dnf install -y tmux
81
+ # Older RHEL / CentOS
82
+ sudo yum install -y tmux
83
+ # Alpine
84
+ sudo apk add tmux
85
+ # Arch Linux
86
+ sudo pacman -S --needed tmux
87
+ # openSUSE
88
+ sudo zypper install tmux
89
+ # macOS only
90
+ brew install tmux
91
+ ```
92
+
93
+ On Linux, use the distribution package manager; Homebrew is only the macOS
94
+ command above. Root shells can omit `sudo`. In WSL, run the matching Linux
95
+ distribution commands inside WSL. Then install and verify hello-cc:
96
+
73
97
  ```bash
74
98
  npm install -g @logicseek/hello-cc
99
+ node --version
100
+ npm --version
101
+ tmux -V
102
+ hcc --version
103
+ hcc --help
75
104
  ```
76
105
 
106
+ If npm reports `EACCES`, use a Node version manager or a user-owned npm prefix;
107
+ do not work around it with `sudo npm install -g`.
108
+
77
109
  Update an existing global install:
78
110
 
79
111
  ```bash
@@ -175,6 +207,10 @@ generic session-isolation assumptions.
175
207
  - [User Guide](docs/guide.md): setup, Web console, workflows, coordination
176
208
  semantics, and environment behavior.
177
209
  - [Command Reference](docs/commands.md): compact public command list.
210
+ - [DeepSeek Harness](docs/dsh.md): hooks/Cordis collaboration, ACP workers,
211
+ project setup and Web launch, with real-model and local-package acceptance evidence.
212
+ - [Native Workers](docs/native.md): HCC-owned Codex, Claude SDK, and dsh ACP
213
+ workers, delivery receipts, permissions, and saved-session ownership.
178
214
  - [Changelog](CHANGELOG.md): release notes for published versions.
179
215
  - [Design Notes](docs/design.md): product boundaries and coordination model.
180
216
  - [Implementation Notes](docs/implementation.md): architecture and internal
package/README.zh-CN.md CHANGED
@@ -57,10 +57,41 @@ hello-cc 支持 Linux 和 macOS。需要 Node.js 24 或更新版本;可被浏
57
57
  Linux 可以通过 `/proc` 做更完整的进程自动发现。macOS 上建议通过 hello-cc
58
58
  shim 或 `hcc peer start` 启动会话,以获得可靠的 tmux 托管终端。
59
59
 
60
+ 先通过 Node.js 官方软件包或 Node 版本管理器安装 Node.js 24 或更新版本,再按
61
+ 系统安装 `tmux`:
62
+
63
+ ```bash
64
+ # Debian / Ubuntu
65
+ sudo apt-get update && sudo apt-get install -y tmux
66
+ # Fedora / RHEL
67
+ sudo dnf install -y tmux
68
+ # 旧版 RHEL / CentOS
69
+ sudo yum install -y tmux
70
+ # Alpine
71
+ sudo apk add tmux
72
+ # Arch Linux
73
+ sudo pacman -S --needed tmux
74
+ # openSUSE
75
+ sudo zypper install tmux
76
+ # 仅 macOS
77
+ brew install tmux
78
+ ```
79
+
80
+ Linux 必须使用当前发行版的系统包管理器,而不是 Homebrew。root shell 可以省略
81
+ `sudo`。WSL 用户应在 WSL 内部执行对应 Linux 发行版的命令。然后安装并验证:
82
+
60
83
  ```bash
61
84
  npm install -g @logicseek/hello-cc
85
+ node --version
86
+ npm --version
87
+ tmux -V
88
+ hcc --version
89
+ hcc --help
62
90
  ```
63
91
 
92
+ 如果 npm 报 `EACCES`,请使用 Node 版本管理器或用户自有的 npm prefix,不要用
93
+ `sudo npm install -g` 绕过权限问题。
94
+
64
95
  更新已有的全局安装:
65
96
 
66
97
  ```bash
@@ -155,6 +186,10 @@ hcc task done --id 1 --summary "Done"
155
186
  - [文档目录](docs/README.zh-CN.md):全部用户文档和实现文档入口。
156
187
  - [用户指南](docs/guide.zh-CN.md):安装、Web 控制台、协作流程、协作语义和环境变量行为。
157
188
  - [命令参考](docs/commands.zh-CN.md):紧凑公共命令清单。
189
+ - [DeepSeek Harness 接入](docs/dsh.zh-CN.md):hooks/Cordis 协作、ACP worker、
190
+ 项目配置与 Web 启动;附真实模型和本地包验收记录。
191
+ - [Native 后台 worker](docs/native.zh-CN.md):HCC 持有的 Codex、Claude SDK、dsh ACP
192
+ worker,以及投递回执、权限和保存会话的所有权边界。
158
193
  - [更新日志](CHANGELOG.md):已发布版本的 release notes。
159
194
 
160
195
  ## 测试
package/docs/README.md CHANGED
@@ -17,6 +17,10 @@ authenticated selection of any existing server directory are accepted risks.
17
17
  workflow, stable peer identity, and environment behavior.
18
18
  - [Command Reference](commands.md): compact list of public commands and the
19
19
  intended use of each command group.
20
+ - [DeepSeek Harness](dsh.md): project setup, hooks/Cordis collaboration, ACP workers,
21
+ installable bundles, and session routing boundaries.
22
+ - [Native Workers](native.md): owned background workers, provider adapters,
23
+ delivery receipts, permission handling, and resume boundaries.
20
24
  - [Changelog](../CHANGELOG.md): release notes for published versions.
21
25
  - Release notes: run `npm run release:check` and
22
26
  `npm run release:github:dry-run` before publishing. Pushing a `v*` tag runs
@@ -26,6 +30,11 @@ authenticated selection of any existing server directory are accepted risks.
26
30
 
27
31
  ## Design And Implementation
28
32
 
33
+ - DeepSeek Harness integration plan (Chinese) (source checkout: `docs/plans/2026-10-02-dsh-integration.md`): implementation stages, module contracts, and completion gates.
34
+ - DeepSeek Harness acceptance (Chinese) (source checkout: `docs/verification/2026-10-02-dsh-cordis-native.md`): real models, bundle loading, regression and browser evidence.
35
+
36
+ - [Web task handoff (Chinese)](web-handoff.zh-CN.md): browser control, draft recovery, persistent detachment, and opt-in Codex App Server sessions.
37
+ - [Executor-scoped MCP](mcp.md): project-bound coordination tools, ownership checks and local result evidence.
29
38
  - [Design Notes](design.md): product boundary, project boundary, capability
30
39
  levels, coordination semantics, and provider-session binding.
31
40
  - [Implementation Notes](implementation.md): architecture, protocol, command
@@ -14,6 +14,10 @@ provider peer ID 已变更且不会映射旧 ID;受保护接口使用 Runtime
14
14
  - [用户指南](guide.zh-CN.md):安装、启动、Web 控制台、协作语义、工作流、稳定
15
15
  peer 身份和环境变量行为。
16
16
  - [命令参考](commands.zh-CN.md):公共命令的紧凑清单,以及每组命令的用途。
17
+ - [DeepSeek Harness 接入](dsh.zh-CN.md):项目配置、hooks/Cordis 协作、ACP worker、
18
+ 可安装 bundle 与会话路由边界。
19
+ - [Native 后台 worker](native.zh-CN.md):后台 worker 所有权、provider adapter、
20
+ 投递回执、权限处理和 resume 边界。
17
21
  - [更新日志](../CHANGELOG.md):已发布版本的 release notes。
18
22
  - 发行说明:发布前运行 `npm run release:check` 和
19
23
  `npm run release:github:dry-run`。推送 `v*` tag 会触发
@@ -23,6 +27,11 @@ provider peer ID 已变更且不会映射旧 ID;受保护接口使用 Runtime
23
27
 
24
28
  ## 设计和实现
25
29
 
30
+ - DeepSeek Harness 接入计划 (源码目录: `docs/plans/2026-10-02-dsh-integration.md`):三个实现阶段、模块契约与完成门槛。
31
+ - DeepSeek Harness 验收 (源码目录: `docs/verification/2026-10-02-dsh-cordis-native.md`):真实模型、包加载、回归与浏览器证据。
32
+
33
+ - [Web 接手本地任务](web-handoff.zh-CN.md):控制租约、草稿恢复、暂停接管、Codex App Server 与历史交接边界。
34
+ - [MCP 协作工具](mcp.zh-CN.md):固定项目、peer 与执行器身份的任务、消息、锁和结果证据工具。
26
35
  - [设计说明](design.md):产品边界、项目边界、能力层级、协作语义和 provider
27
36
  session 绑定。
28
37
  - [实现说明](implementation.md):架构、协议、命令面、技术栈、shim 行为和实现计划。
package/docs/commands.md CHANGED
@@ -21,6 +21,24 @@ hcc uninstall [--purge --yes]
21
21
  hooks, shims, and the shell PATH entry; add `--purge --yes` only when you also want to remove the
22
22
  current project's `.hello-cc` data and guidance blocks.
23
23
 
24
+ ## Read-only Diagnostics
25
+
26
+ ```text
27
+ hcc doctor [--codex] [--json]
28
+ ```
29
+
30
+ By default, doctor only checks project database integrity and schema compatibility;
31
+ corruption or an unsupported schema returns a nonzero exit code. `--codex` additionally
32
+ runs bounded `codex --version` and `codex app-server --help` probes in temporary
33
+ HOME/CODEX_HOME directories and removes their startup files. Hook checks read the
34
+ original Codex home's `hooks.json` and existing project hook invocation events. Help
35
+ advertises startup arguments; it does not prove a protocol handshake or model availability.
36
+ Hook configuration, historical invocation, stdout delivery, and provider acceptance
37
+ are separate facts. No explicit stdout receipt is recorded, so delivery, acceptance,
38
+ and trust remain `unknown`. Diagnostics never start a model/session, execute hooks, or
39
+ change accounts, trust, or shims. Unknown optional diagnostics do not fail a healthy
40
+ database. JSON adds `data.codex`; the default report remains unchanged.
41
+
24
42
  ## Start And Stop
25
43
 
26
44
  ```text
@@ -39,6 +57,41 @@ want coordination without the Web console or shims. Provider shims only join
39
57
  projects with a local `.hello-cc/runtime.json` from `hcc web`; they do not use a
40
58
  global runtime to manage arbitrary directories.
41
59
 
60
+ ## Native Workers
61
+
62
+ ```text
63
+ hcc native up
64
+ hcc native start --peer NAME --provider codex|claude|dsh [--cwd DIR] [--model MODEL] [--binary PATH] [--resume last]
65
+ hcc native send --peer NAME --body TEXT [--from NAME] [--task ID]
66
+ hcc native status
67
+ hcc native deliveries [--peer NAME]
68
+ hcc native events --peer NAME [--after ID]
69
+ hcc native requests --peer NAME
70
+ hcc native respond --peer NAME --request ID --decision accept|decline|cancel [--response-file JSON]
71
+ hcc native interrupt --peer NAME [--turn ID]
72
+ hcc native close --peer NAME
73
+ hcc native down
74
+ ```
75
+
76
+ These commands manage HCC-owned background workers through Codex app-server,
77
+ the optional Claude Agent SDK, or dsh ACP. A successful send queues a message;
78
+ inspect delivery receipts for submission, acceptance, and completion. Only saved
79
+ sessions owned by the same HCC peer/provider can resume. Existing TUI/Desktop
80
+ sessions keep their own transport. Hosted permission requests and questions wait
81
+ for an explicit Web or local CLI response bound to the current worker/session/turn.
82
+ See [Native Workers](native.md) for response-file examples, SDK installation, receipt meanings,
83
+ and current integration boundaries.
84
+
85
+ ## DeepSeek Harness
86
+
87
+ ```text
88
+ hcc dsh setup [--mode hooks|cordis|off]
89
+ hcc dsh status [--dsh-bin PATH]
90
+ hcc dsh web [--mode hooks|cordis|off] [--dsh-bin PATH] [--dsh-home PATH] -- [dsh arguments]
91
+ ```
92
+
93
+ Use `@deepseek-ai/dsh@0.2.0-rc.2` and Node.js 24+. Setup defaults to hooks on first use; `--mode cordis` provides native `hcc_*` tools and ACK after context commit, while `--mode off` disables overlay injection. Later calls retain the saved mode. Status checks content and the executable without model calls. Harness flags follow `--`. Harness Web owns its conversations; use native commands above for HCC-owned workers. See the [integration guide](dsh.md) for routing, bundles and real-model acceptance.
94
+
42
95
  ## Peers And Status
43
96
 
44
97
  ```text
@@ -19,6 +19,21 @@ hcc uninstall [--purge --yes]
19
19
  只有在确定也要删除当前项目的 `.hello-cc` 数据和指导块时,才加
20
20
  `--purge --yes`。
21
21
 
22
+ ## 只读诊断
23
+
24
+ ```text
25
+ hcc doctor [--codex] [--json]
26
+ ```
27
+
28
+ 默认只检查项目数据库完整性和 schema 兼容性;损坏或不支持的 schema 返回非零退出码。
29
+ 加 `--codex` 才执行有时限和输出大小限制的 `codex --version`、`codex app-server --help`,
30
+ 两个探测使用临时 HOME/CODEX_HOME 并清理启动文件;hooks 检查读取原 Codex home 的
31
+ `hooks.json` 并查看本项目已有 hook 调用事件。help 只能证明
32
+ 启动参数被声明,不能证明协议握手或模型可用;hook 配置存在、历史调用记录、stdout 投递
33
+ 和 provider 接收分别报告。当前无明确 stdout 回执,投递、接收和 trust 均保持 `unknown`。
34
+ 诊断不启动模型或会话、不执行 hooks,不修改账号、信任或 shim;可选诊断未知不会使健康
35
+ 数据库返回失败。`--json` 在现有报告中增加 `data.codex`,默认报告结构不变。
36
+
22
37
  ## 启动和停止
23
38
 
24
39
  ```text
@@ -36,6 +51,39 @@ runtime 生成 URL token。用 `--local` 可只绑定 `127.0.0.1`,用 `--token
36
51
  已经由 `hcc web` 生成本地 `.hello-cc/runtime.json` 的项目,不会使用全局 runtime
37
52
  去管理任意目录。
38
53
 
54
+ ## Native 后台 worker
55
+
56
+ ```text
57
+ hcc native up
58
+ hcc native start --peer NAME --provider codex|claude|dsh [--cwd DIR] [--model MODEL] [--binary PATH] [--resume last]
59
+ hcc native send --peer NAME --body TEXT [--from NAME] [--task ID]
60
+ hcc native status
61
+ hcc native deliveries [--peer NAME]
62
+ hcc native events --peer NAME [--after ID]
63
+ hcc native requests --peer NAME
64
+ hcc native respond --peer NAME --request ID --decision accept|decline|cancel [--response-file JSON]
65
+ hcc native interrupt --peer NAME [--turn ID]
66
+ hcc native close --peer NAME
67
+ hcc native down
68
+ ```
69
+
70
+ 这些命令通过 Codex app-server、可选 Claude Agent SDK 或 dsh ACP 管理 HCC 持有的
71
+ 后台 worker。send 成功只代表消息入队,需要查看投递回执区分提交、接受和完成。
72
+ resume 只允许同一个 HCC peer/provider 持有的保存会话;已有 TUI/桌面会话继续使用
73
+ 原 transport。托管权限请求与问题等待当前 Web 控制窗口或本地 CLI 明确应答,
74
+ 并检查当前 worker/session/turn 身份。响应文件示例、SDK 安装、回执和接入边界见
75
+ [Native 后台 worker](native.zh-CN.md)。
76
+
77
+ ## DeepSeek Harness
78
+
79
+ ```text
80
+ hcc dsh setup [--mode hooks|cordis|off]
81
+ hcc dsh status [--dsh-bin PATH]
82
+ hcc dsh web [--mode hooks|cordis|off] [--dsh-bin PATH] [--dsh-home PATH] -- [dsh arguments]
83
+ ```
84
+
85
+ 验证基线为 `@deepseek-ai/dsh@0.2.0-rc.2`、Node.js 24+。Setup 生成项目局部配置,首次默认 hooks;`--mode cordis` 提供原生 `hcc_*` 工具和提交后 ACK,`--mode off` 关闭 overlay 注入,以后不带模式会沿用保存的选择。Status 校验文件与可执行文件,不调用模型。Harness 参数放在 `--` 后。Harness Web 会话通过自身界面交互;HCC 托管会话使用上方 native 命令控制。路由、bundle 和真实模型验收见[接入指南](dsh.zh-CN.md)。
86
+
39
87
  ## Peers 和状态
40
88
 
41
89
  ```text
package/docs/dsh.md ADDED
@@ -0,0 +1,137 @@
1
+ # DeepSeek Harness Integration
2
+
3
+ English | [中文](dsh.zh-CN.md)
4
+
5
+ DeepSeek Harness (`dsh`) shares hello-cc project tasks, messages, advisory locks and handoffs with Claude Code and Codex. The integration has three entry points: the official hooks bridge, a native Cordis collaboration plugin, and HCC-owned ACP workers.
6
+
7
+ The tested runtime is `@deepseek-ai/dsh@0.2.0-rc.2`, with matching plugin versions. Use Node.js 24+ on `PATH` as well as for the parent CLI: the dsh executable uses `/usr/bin/env node`. This preview ships Web/headless/SDK/ACP profiles and no built-in TUI.
8
+
9
+ Supported hosts are Linux and macOS; on Windows use WSL. Native Windows shells are not supported. Device acceptance must be recorded separately from container verification.
10
+
11
+ The source and real DeepSeek model acceptance are complete locally; no new npm release has been published. Use this checkout's CLI when testing:
12
+
13
+ ```bash
14
+ node /absolute/path/to/hello-cc/bin/hcc.mjs --root /path/to/project dsh setup --mode cordis
15
+ node /absolute/path/to/hello-cc/bin/hcc.mjs --root /path/to/project dsh status
16
+ node /absolute/path/to/hello-cc/bin/hcc.mjs --root /path/to/project dsh web -- --port 8080
17
+ ```
18
+
19
+ Below, `hcc` means a CLI containing these changes. An older global installation may not include them.
20
+
21
+ ## Choose An Entry Point
22
+
23
+ | Entry | Use | Lifecycle owner |
24
+ | --- | --- | --- |
25
+ | `hcc dsh web --mode cordis` | Converse in Harness Web; the model uses `hcc_*` tools | Harness, with multiple independent Agents/workspaces per service |
26
+ | `hcc dsh web --mode hooks` | Use the official Claude hooks bridge and identity-bound CLI commands | Harness; the default compatibility mode |
27
+ | `hcc native start --provider dsh` | Submit prompts, inspect receipts, interrupt and close through HCC CLI/Web | One dedicated ACP process per HCC worker |
28
+
29
+ Use one collaboration injector per session. Native workers have their own scoped MCP capability and lifecycle; do not additionally mount the Cordis/hooks collaboration injector in that process.
30
+
31
+ ## Harness Web And Cordis
32
+
33
+ Configure Harness credentials first. The launcher preserves an existing `DEEPSEEK_API_KEY` and provider-routing environment. Use your installed dsh, or install the tested preview yourself:
34
+
35
+ ```bash
36
+ npm install -g @deepseek-ai/dsh@0.2.0-rc.2
37
+ cd /path/to/project
38
+ hcc dsh setup --mode cordis
39
+ hcc dsh status
40
+ hcc dsh web -- --port 8080
41
+ ```
42
+
43
+ Open the URL printed by Harness and create a real Agent using the project as its workspace. Starting the service alone creates no Agent peer. Start `hcc web --local` separately for the HCC dashboard; its dsh filter shows raw session IDs and lets you inspect state and send project messages.
44
+
45
+ The Cordis plugin awaits `agent/created`, delegates the `agent/pre-step` decision chain, observes Agent status/disposal and tool events, and fixes each execution's authority from `exec.agent`. It never borrows service-level `HCC_PEER` identity.
46
+
47
+ | Tools | Purpose |
48
+ | --- | --- |
49
+ | `hcc_state`, `hcc_task_list`, `hcc_inbox` | Read project state, tasks and this peer's inbox |
50
+ | `hcc_task_next` | Continue an owned task or claim pending work; never complete it automatically |
51
+ | `hcc_message_send` | Send a project message as this Agent |
52
+ | `hcc_handoff` | Record a handoff for an owned task |
53
+ | `hcc_lock_acquire`, `hcc_lock_release` | Acquire/release this peer's scoped locks |
54
+ | `hcc_result_list`, `hcc_result_record` | Read/record local verification evidence, without claiming publication or business acceptance |
55
+
56
+ The plugin reuses CLI/MCP transactions and task/lock ownership rules. Context and tool output are each bounded to 16,000 characters by default. Truncation is explicit; incompletely delivered messages remain unread. The shared service also validates argument bounds and authority. ACK occurs only when Harness commits the exact context as a `user/message`; rejected admission, preparation failure and cancellation do not ACK early.
57
+
58
+ `next()` delegation preserves deny/ask policy. Closing an Agent expires only its own peer. Unloading removes listeners/tool registrations and revokes stale authority; an existing Agent initializes again at its next awaited pre-step after reload. After an unclean exit, the same session can recover its Cordis owner only when the recorded process is verified dead or its PID has been reused. Live or unverifiable owners and conflicting hooks/native bindings remain protected. A project message does not wake an indefinitely idle Harness conversation. It enters at the next model step, or at an active turn's stop boundary.
59
+
60
+ ## Modes, Arguments And Routing
61
+
62
+ ```text
63
+ hcc dsh setup [--mode hooks|cordis|off]
64
+ hcc dsh status [--dsh-bin PATH]
65
+ hcc dsh web [--mode hooks|cordis|off] [--dsh-bin PATH] [--dsh-home PATH] -- [dsh arguments]
66
+ ```
67
+
68
+ First setup defaults to `hooks`; later invocations without `--mode` retain the saved mode. Status verifies managed content and the executable without making a model request.
69
+
70
+ ```bash
71
+ hcc dsh setup --mode hooks
72
+ hcc dsh setup --mode cordis
73
+ hcc dsh setup --mode off
74
+ hcc dsh web --dsh-bin '/opt/harness/bin/dsh' --dsh-home '/path/to/dsh-home' -- --port 8080 --no-open
75
+ hcc dsh web --help # HCC wrapper help
76
+ hcc dsh web -- --help # Harness Web help
77
+ ```
78
+
79
+ `--dsh-bin` selects an executable file. `--dsh-home` sets child `DSH_HOME`; relative paths resolve from the invoking directory. Harness arguments go after `--` and retain order and values, including extra overlays. Mode changes apply to subsequent launches: close your owned runtime and relaunch. Existing hooks/native sessions are not forcibly rebound to Cordis; use a new session when switching and retain old collaboration records.
80
+
81
+ | Managed file | Purpose |
82
+ | --- | --- |
83
+ | `.hello-cc/dsh/hooks.json` | Dedicated HCC hooks for the five supported events |
84
+ | `.hello-cc/dsh/cordis.patch.yml` | Loads the selected injector only; off is an empty overlay |
85
+ | `.hello-cc/dsh/managed.json` | Mode, ownership, paths, baseline and SHA256 hashes |
86
+
87
+ Setup/disable/re-enable are idempotent. Re-run setup after moving/upgrading source to refresh absolute paths. Edited/foreign files, links and ownership conflicts are preserved and reported. Put custom configuration in a separate overlay. Setup does not install dsh, edit user homes, copy keys or import all Claude/Codex hooks.
88
+
89
+ The real session ID and absolute Agent cwd route to that workspace's `.hello-cc/mesh.db`, without searching parent projects. Raw non-UUID IDs remain intact. Hash collisions, aliases and another live transport's ownership are rejected. Hooks/Cordis peers cannot be stopped/restarted through detected-peer controls or converted to tmux terminals; a service-log pane remains an independent shell peer.
90
+
91
+ The rc.2 hooks bridge awaits SessionStart before the first turn. PreToolUse tracks activity; PostToolUse/Stop can deliver context. The official bridge does not consume PreToolUse additionalContext. Hook ACK follows successful hook output, while Cordis ACK follows the corresponding committed context record.
92
+
93
+ ## ACP Workers
94
+
95
+ ```bash
96
+ hcc native up
97
+ hcc native start --peer dsh-reviewer --provider dsh
98
+ hcc native send --peer dsh-reviewer --from coordinator --body 'Review the current diff and report verification evidence'
99
+ hcc native deliveries --peer dsh-reviewer
100
+ hcc native events --peer dsh-reviewer
101
+ hcc native interrupt --peer dsh-reviewer
102
+ hcc native close --peer dsh-reviewer
103
+ hcc native start --peer dsh-reviewer --provider dsh --binary /absolute/path/to/dsh --resume last
104
+ ```
105
+
106
+ The default launcher is `dsh` on PATH; use `--binary /absolute/path/to/dsh` when necessary. A worker owns a dedicated `dsh --profile acp` process. Send returns an admission receipt; only authoritative prompt completion commits a delivery. Resume retains provider session identity and memory. ACP does not replay the full transcript or offer fork/steer. Use native Web controls and approval responses, rather than detected-peer registration actions. See [Native Workers](native.md).
107
+
108
+ ## Bundle And Verification
109
+
110
+ The package declares `dsh.bundle`, ships `lib/integrations/dsh.bundle.yml` and `dsh-cordis.d.ts`, and declares `engines.dsh=0.2.0-rc.2`. The plugin also checks the actual agent/agent-loop/tools/session package versions before registration.
111
+
112
+ Project overlays work directly from source. The managed manifest records the Cordis module location, allowing setup to verify and migrate unedited overlays when switching between source and npm installation directories; edited files are preserved. For profile installation, generate a tarball containing these changes and use the official package-management entry point:
113
+
114
+ ```bash
115
+ npm pack --ignore-scripts
116
+ dsh plugin --profile web add /absolute/path/to/logicseek-hello-cc-1.0.1.tgz
117
+ ```
118
+
119
+ Harness requires explicit approval for native dependency builds. If add returns `ERR_PNPM_IGNORED_BUILDS`, merge the following into the selected profile's `pnpm-workspace.yaml` and rerun the same add command. The default path is `~/.dsh/profiles/web/pnpm-workspace.yaml`; use the configured DSH_HOME when different. Preserve existing settings and approve only the candidate's pinned native dependency:
120
+
121
+ ```yaml
122
+ allowBuilds:
123
+ node-pty@1.2.0-beta.15: true
124
+ ```
125
+
126
+ Harness selects bundles through the profile's `dsh.profile.bundles`; do not also load the project Cordis/hooks overlay. Actual npm installation, official add/repeated add/remove, profile resolution and real-model collaboration calls have passed. The actual macOS desktop profile was installed and hot-loaded on 2026-10-02. Its paired ACP worker completed real collaboration calls using the existing DeepSeek route. The initially configured desktop sub2api model returned HTTP 403 because that account only accepts official Codex clients. After the desktop default was observed to have changed to official DeepSeek, a new session completed hcc_state, hcc_message_send and a real completed turn with that existing selection. The original sub2api route restriction remains. npm publication was not performed. Harness manages profile package removal; project-overlay integration is disabled with `setup --mode off`.
127
+
128
+ See Cordis/native acceptance (source checkout: `docs/verification/2026-10-02-dsh-cordis-native.md`), bridge acceptance (source checkout: `docs/verification/2026-10-02-dsh-official-bridge.md`), and the integration plan (source checkout: `docs/plans/2026-10-02-dsh-integration.md`). Real-model checks used temporary projects and owned processes, without replacing existing user sessions. The isolated order fixture passed artifact/evidence/handoff/lock-release/task-completion checks. See the Mac device receipt (source checkout: `docs/verification/2026-10-02-dsh-device-install.md`). Publication, deployment, other-device installation and genuine business acceptance remain separate delivery stages.
129
+
130
+ The installed acceptance script performs npm installation, official `plugin add` / repeated add / remove, and runs the installed public CLI. `--run-live` retains the existing DeepSeek authentication to test ACP approval denial and an isolated order-summary workflow. Without it, no real model is called. All homes, profiles, projects and processes belong to the acceptance run.
131
+
132
+ ```bash
133
+ node scripts/dsh-installed-acceptance.mjs /absolute/path/to/isolated-dsh-install \
134
+ --run-live --output-dir /absolute/path/to/acceptance-output
135
+ ```
136
+
137
+ The output contains a candidate tarball, its SHA256 and installation receipt, redacted command logs and the verified order report. The approval probe adds an ask policy for one test-owned file in a private profile, rejects the actual ACP request and verifies the file was not created. The fixture demonstrates a local task workflow; it does not establish genuine business acceptance.