@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.
- package/CHANGELOG.md +149 -0
- package/README.md +36 -0
- package/README.zh-CN.md +35 -0
- package/docs/README.md +9 -0
- package/docs/README.zh-CN.md +9 -0
- package/docs/commands.md +53 -0
- package/docs/commands.zh-CN.md +48 -0
- package/docs/dsh.md +137 -0
- package/docs/dsh.zh-CN.md +139 -0
- package/docs/guide.md +58 -0
- package/docs/guide.zh-CN.md +55 -0
- package/docs/mcp.md +9 -0
- package/docs/mcp.zh-CN.md +23 -0
- package/docs/native.md +295 -0
- package/docs/native.zh-CN.md +253 -0
- package/docs/web-handoff.zh-CN.md +53 -0
- package/lib/cli/app.mjs +27 -6
- package/lib/cli/commands/coordination.mjs +3 -1
- package/lib/cli/commands/doctor.mjs +17 -2
- package/lib/cli/commands/dsh.mjs +79 -0
- package/lib/cli/commands/gc.mjs +182 -32
- package/lib/cli/commands/hook.mjs +241 -90
- package/lib/cli/commands/lock.mjs +34 -19
- package/lib/cli/commands/mcp.mjs +28 -0
- package/lib/cli/commands/misc.mjs +15 -0
- package/lib/cli/commands/native.mjs +130 -0
- package/lib/cli/commands/peer.mjs +21 -5
- package/lib/cli/commands/run.mjs +66 -21
- package/lib/cli/commands/task.mjs +6 -3
- package/lib/cli-args.mjs +4 -0
- package/lib/coordination-state.mjs +15 -1
- package/lib/core/coordination/event-retention.mjs +14 -2
- package/lib/core/coordination/gc-plan.mjs +3 -13
- package/lib/core/coordination/locks.mjs +45 -0
- package/lib/core/coordination/results.mjs +79 -0
- package/lib/core/peers/bindings.mjs +9 -3
- package/lib/diagnostics/codex.mjs +121 -0
- package/lib/integrations/codex-interactions.mjs +114 -0
- package/lib/integrations/dsh-collaboration.mjs +170 -0
- package/lib/integrations/dsh-cordis.d.ts +19 -0
- package/lib/integrations/dsh-cordis.mjs +177 -0
- package/lib/integrations/dsh.bundle.yml +7 -0
- package/lib/integrations/dsh.mjs +287 -0
- package/lib/integrations/native/claude.mjs +451 -0
- package/lib/integrations/native/codex.mjs +242 -0
- package/lib/integrations/native/dsh-acp.mjs +343 -0
- package/lib/integrations/native/index.mjs +19 -0
- package/lib/integrations/native/interactions.mjs +53 -0
- package/lib/integrations/native/jsonrpc.mjs +185 -0
- package/lib/integrations/peers/identity.mjs +36 -10
- package/lib/integrations/peers/processes.mjs +22 -8
- package/lib/integrations/providers.mjs +6 -2
- package/lib/mcp/scope.mjs +104 -0
- package/lib/mcp/stdio.mjs +80 -0
- package/lib/mcp/tools.mjs +197 -0
- package/lib/process/identity.mjs +33 -1
- package/lib/release/release-notes.mjs +9 -0
- package/lib/runtime/buffer-directory-lease.mjs +2 -1
- package/lib/runtime/client.mjs +3 -0
- package/lib/runtime/native/client.mjs +38 -0
- package/lib/runtime/native/service.mjs +511 -0
- package/lib/runtime/native/store.mjs +121 -0
- package/lib/shared/file-lock.mjs +11 -4
- package/lib/shared/socket-lock-worker.mjs +73 -24
- package/lib/terminal/tmux.mjs +53 -23
- package/lib/ui/help.mjs +5 -2
- package/lib/web/adoption-state.mjs +55 -0
- package/lib/web/auto-attach.mjs +18 -2
- package/lib/web/buffer-gc-runtime.mjs +2 -2
- package/lib/web/codex-app-server.mjs +557 -0
- package/lib/web/codex-sessions.mjs +287 -0
- package/lib/web/control-lease.mjs +204 -0
- package/lib/web/http-routes.mjs +197 -15
- package/lib/web/http.mjs +5 -4
- package/lib/web/native-sessions.mjs +286 -0
- package/lib/web/project-contexts.mjs +8 -2
- package/lib/web/pty-sessions.mjs +60 -33
- package/lib/web/runtime-main.mjs +101 -6
- package/lib/web/session-serialize.mjs +0 -0
- package/lib/web/startup.mjs +4 -2
- package/lib/web/task-results.mjs +76 -0
- package/lib/web/tmux-sessions.mjs +92 -11
- package/lib/web/tmux-stream.mjs +2 -2
- package/lib/web/ui-codex.mjs +550 -0
- package/lib/web/ui-command-palette.mjs +119 -0
- package/lib/web/ui-handoff.mjs +102 -0
- package/lib/web/ui-history.mjs +118 -0
- package/lib/web/ui-i18n.mjs +841 -0
- package/lib/web/ui-interactions.mjs +78 -0
- package/lib/web/ui-login.mjs +101 -0
- package/lib/web/ui-native.mjs +165 -0
- package/lib/web/ui-preferences.mjs +278 -0
- package/lib/web/ui-review.mjs +132 -0
- package/lib/web/ui-template.mjs +1106 -576
- package/lib/web/ui-terminal-find.mjs +98 -0
- package/lib/web/ui-workbench.mjs +94 -0
- package/lib/web/ui-workspace.mjs +222 -0
- package/package.json +12 -4
- package/scripts/check-free-identifiers.mjs +67 -8
- package/scripts/codex-diagnostics-installed-acceptance.mjs +72 -0
- package/scripts/dsh-cordis-acceptance.mjs +200 -0
- package/scripts/dsh-installed-acceptance.mjs +247 -0
- package/scripts/dsh-official-acceptance.mjs +180 -0
- package/scripts/dsh-web-startup-acceptance.mjs +87 -0
- package/scripts/github-release.mjs +3 -1
- package/scripts/native-live-acceptance.mjs +369 -0
- package/scripts/regression.mjs +338 -187
- package/scripts/web-handoff-installed-acceptance.mjs +98 -0
- package/scripts/web-native-interaction-acceptance.mjs +204 -0
- package/scripts/web-native-model-acceptance.mjs +138 -0
- package/docs/architecture-split-review.md +0 -217
- package/docs/current-state-review-2026-08.md +0 -341
- package/docs/defect-review-2026-07.md +0 -382
- package/docs/layout-split-stack-audit.md +0 -298
- package/docs/superpowers/plans/2026-08-03-runtime-safety-plan.md +0 -294
- package/docs/superpowers/plans/2026-08-03-v1-data-identity-plan.md +0 -400
- package/docs/superpowers/plans/2026-08-03-v1-release-verification-plan.md +0 -284
- package/docs/superpowers/plans/2026-08-03-web-api-hardening-plan.md +0 -303
- package/docs/superpowers/plans/2026-08-04-runtime-buffer-gc-two-phase.md +0 -71
- package/docs/superpowers/specs/2026-08-03-runtime-safety-design.md +0 -117
- package/docs/superpowers/specs/2026-08-03-v1-data-identity-design.md +0 -120
- package/docs/superpowers/specs/2026-08-03-v1-release-verification-design.md +0 -117
- 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
|
package/docs/README.zh-CN.md
CHANGED
|
@@ -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
|
package/docs/commands.zh-CN.md
CHANGED
|
@@ -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.
|