@logicseek/hello-cc 1.0.5 → 1.1.0-rc.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 +72 -0
- package/docs/codex-account.zh-CN.md +38 -0
- package/docs/codex-protocol.md +59 -0
- package/docs/commands.md +9 -0
- package/docs/commands.zh-CN.md +7 -0
- package/docs/macos-process-identity.md +2 -0
- package/docs/native.md +179 -14
- package/docs/native.zh-CN.md +136 -6
- package/docs/web-handoff.zh-CN.md +118 -8
- package/lib/cli/app.mjs +47 -4
- package/lib/cli/commands/coordination.mjs +14 -4
- package/lib/cli/commands/dsh.mjs +1 -1
- package/lib/cli/commands/gc.mjs +22 -15
- package/lib/cli/commands/hook.mjs +19 -3
- package/lib/cli/commands/install.mjs +80 -10
- package/lib/cli/commands/misc.mjs +36 -9
- package/lib/cli/commands/native.mjs +4 -38
- package/lib/cli/commands/peer.mjs +3 -0
- package/lib/cli/commands/run.mjs +13 -6
- package/lib/cli/commands/tmux.mjs +1 -2
- package/lib/cli-runtime.mjs +19 -2
- package/lib/core/coordination/results.mjs +27 -10
- package/lib/core/sessions/hook-root-identity.mjs +47 -0
- package/lib/core/sessions/launch.mjs +7 -1
- package/lib/db/connection.mjs +140 -42
- package/lib/db/schema.mjs +59 -0
- package/lib/diagnostics/codex-protocol.mjs +105 -0
- package/lib/guidance.mjs +21 -36
- package/lib/integrations/codex-account.mjs +143 -0
- package/lib/integrations/codex-interactions.mjs +13 -11
- package/lib/integrations/dsh-collaboration.mjs +6 -12
- package/lib/integrations/dsh-cordis.mjs +17 -13
- package/lib/integrations/dsh.mjs +16 -11
- package/lib/integrations/mcp-elicitation.mjs +116 -0
- package/lib/integrations/mcp-url-elicitation.mjs +25 -0
- package/lib/integrations/native/claude.mjs +24 -6
- package/lib/integrations/native/codex.mjs +38 -7
- package/lib/integrations/native/dsh-acp.mjs +67 -24
- package/lib/integrations/native/index.mjs +4 -1
- package/lib/integrations/native/interactions.mjs +2 -1
- package/lib/integrations/native/jsonrpc.mjs +37 -5
- package/lib/integrations/native/telemetry.mjs +30 -0
- package/lib/process/identity.mjs +4 -0
- package/lib/process/pinned-cwd.mjs +302 -0
- package/lib/process/pinned-guidance.mjs +138 -0
- package/lib/process/pinned-project-state.mjs +105 -0
- package/lib/process/selected-cwd-identity.mjs +95 -0
- package/lib/runtime/buffer-evidence.mjs +2 -1
- package/lib/runtime/client.mjs +9 -0
- package/lib/runtime/native/client.mjs +4 -1
- package/lib/runtime/native/history.mjs +140 -0
- package/lib/runtime/native/launcher.mjs +106 -0
- package/lib/runtime/native/service.mjs +64 -8
- package/lib/runtime/native/store.mjs +83 -58
- package/lib/runtime/paths.mjs +17 -2
- package/lib/runtime/private-file.mjs +76 -0
- package/lib/runtime/private-state.mjs +546 -0
- package/lib/runtime/project-context.mjs +2 -1
- package/lib/runtime/project-path.mjs +92 -20
- package/lib/runtime/project-trust.mjs +79 -0
- package/lib/runtime/projects.mjs +9 -3
- package/lib/runtime/state-migration.mjs +697 -0
- package/lib/runtime/state.mjs +69 -27
- package/lib/shared/automatic-result-key.mjs +6 -0
- package/lib/shared/json-file.mjs +55 -6
- package/lib/shared/redact.mjs +2 -1
- package/lib/ui/help.mjs +6 -4
- package/lib/web/agent-defaults.mjs +110 -0
- package/lib/web/auto-attach.mjs +3 -2
- package/lib/web/browser/contracts.d.ts +10 -0
- package/lib/web/browser/core.mjs +1997 -0
- package/lib/web/browser/project-data.mjs +158 -0
- package/lib/web/browser/session-sync.mjs +82 -0
- package/lib/web/browser-assets.mjs +19 -0
- package/lib/web/buffer-gc-runtime.mjs +2 -2
- package/lib/web/codex-app-server.mjs +111 -37
- package/lib/web/codex-sessions.mjs +61 -12
- package/lib/web/context-files.mjs +82 -0
- package/lib/web/cookie-auth.mjs +51 -3
- package/lib/web/external-sessions.mjs +76 -9
- package/lib/web/http-routes.mjs +238 -25
- package/lib/web/http.mjs +50 -4
- package/lib/web/liveness-reaper.mjs +2 -2
- package/lib/web/native-sessions.mjs +323 -14
- package/lib/web/project-contexts.mjs +236 -44
- package/lib/web/project-file-write.mjs +249 -0
- package/lib/web/project-files.mjs +268 -0
- package/lib/web/pty-sessions.mjs +11 -3
- package/lib/web/runtime-main.mjs +132 -80
- package/lib/web/session-serialize.mjs +87 -8
- package/lib/web/session-state-sync.mjs +98 -0
- package/lib/web/shutdown-diagnostics.mjs +38 -0
- package/lib/web/shutdown-response.mjs +21 -0
- package/lib/web/shutdown-state.mjs +91 -0
- package/lib/web/startup.mjs +103 -35
- package/lib/web/task-results.mjs +19 -19
- package/lib/web/tls.mjs +84 -33
- package/lib/web/tmux-sessions.mjs +73 -9
- package/lib/web/tmux-stream.mjs +36 -8
- package/lib/web/ui-agent-defaults.mjs +149 -0
- package/lib/web/ui-agent-start.mjs +330 -0
- package/lib/web/ui-codex-account.mjs +81 -0
- package/lib/web/ui-codex.mjs +105 -85
- package/lib/web/ui-command-palette.mjs +21 -5
- package/lib/web/ui-file-writes.mjs +220 -0
- package/lib/web/ui-files.mjs +231 -0
- package/lib/web/ui-handoff.mjs +10 -2
- package/lib/web/ui-history.mjs +175 -105
- package/lib/web/ui-i18n.mjs +280 -8
- package/lib/web/ui-interactions.mjs +107 -6
- package/lib/web/ui-native-timeline.mjs +326 -0
- package/lib/web/ui-native.mjs +93 -43
- package/lib/web/ui-review.mjs +5 -3
- package/lib/web/ui-safe-markdown.mjs +79 -0
- package/lib/web/ui-session-tools.mjs +224 -0
- package/lib/web/ui-template.mjs +29 -1968
- package/lib/web/ui-terminal-find.mjs +5 -3
- package/lib/web/ui-workbench.mjs +5 -3
- package/lib/web/ui-workspace.mjs +3 -0
- package/package.json +8 -2
- package/scripts/benchmark-session-sync.mjs +53 -0
- package/scripts/codex-protocol.mjs +88 -0
- package/scripts/dsh-approval-layers-acceptance.mjs +172 -0
- package/scripts/dsh-package-provenance.mjs +118 -0
- package/scripts/mcp-form-live-fixture.mjs +81 -0
- package/scripts/native-bounded-live-acceptance.mjs +193 -0
- package/scripts/native-fixture-root.mjs +49 -0
- package/scripts/native-installed-acceptance.mjs +611 -0
- package/scripts/native-stability-checks.mjs +40 -0
- package/scripts/regression-cookie-expiry.mjs +70 -0
- package/scripts/regression-http-transport.mjs +9 -0
- package/scripts/regression-terminal-marker.mjs +95 -0
- package/scripts/regression.mjs +481 -219
- package/scripts/shim-reentry-probe.mjs +105 -0
- package/scripts/web-acceptance-diagnostics.mjs +90 -0
- package/scripts/web-codex-account-acceptance.mjs +178 -0
- package/scripts/web-file-preview-checks.mjs +302 -0
- package/scripts/web-mcp-form-acceptance.mjs +134 -0
- package/scripts/web-mcp-form-live-acceptance.mjs +368 -0
- package/scripts/web-native-handoff-checks.mjs +128 -0
- package/scripts/web-native-interaction-acceptance.mjs +219 -18
- package/scripts/web-native-interaction-diagnostics.mjs +80 -0
- package/scripts/web-native-model-acceptance.mjs +22 -7
- package/scripts/web-session-tools-checks.mjs +112 -0
- package/scripts/web-workbench-acceptance.mjs +435 -0
- package/scripts/web-workbench-installed-acceptance.mjs +122 -0
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,78 @@ 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.1.0-rc.3
|
|
20
|
+
|
|
21
|
+
### Summary
|
|
22
|
+
|
|
23
|
+
This preview integrates the multi-provider Web workbench with project Agent
|
|
24
|
+
settings, retained native history and project file editing. It also includes
|
|
25
|
+
session isolation and recovery fixes, shutdown quiescence and more precise
|
|
26
|
+
regression diagnostics. A new frozen package preserves the earlier rc.2 archive.
|
|
27
|
+
|
|
28
|
+
### Highlights
|
|
29
|
+
|
|
30
|
+
- Create Codex, Claude and DeepSeek Harness Agents from the Web workbench; retain
|
|
31
|
+
project defaults, explicit native-history restore and directory-bound drafts.
|
|
32
|
+
- Upload project files and edit complete UTF-8 text with revision conflicts,
|
|
33
|
+
preserved drafts and explicit readback after uncertain writes.
|
|
34
|
+
- Scope login cookies by trusted protocol and port so Web instances on different
|
|
35
|
+
ports do not overwrite each other's login or logout state. Sign in again after
|
|
36
|
+
upgrading; arbitrary SSH port remapping is not inferred.
|
|
37
|
+
- Keep the native-worker discovery error and refresh guidance when a restore
|
|
38
|
+
receipt is absent, instead of failing inside the error handler.
|
|
39
|
+
- Stop admitting background work when administrator shutdown is accepted, then
|
|
40
|
+
start cleanup after the HTTP response finishes or closes; preserve process
|
|
41
|
+
identity checks, exit deadlines and independently owned workers.
|
|
42
|
+
- Recognize terminal regression markers split across output chunks and submit
|
|
43
|
+
fixture input once. Isolate regression HTTP connections and test-owned ports.
|
|
44
|
+
- Add bounded CI task-dispatch and HTTP failure diagnostics without recording
|
|
45
|
+
request bodies, credentials or query parameters, or retrying failed requests.
|
|
46
|
+
|
|
47
|
+
### Validation
|
|
48
|
+
|
|
49
|
+
Release checks compare the package file set, per-file hashes and modes with the
|
|
50
|
+
new frozen rc.3 archive. Source tests, browser checks and installed Harness checks
|
|
51
|
+
retain their exact commit and package receipts. The regression transport changes
|
|
52
|
+
isolate test fixtures; they do not establish the root cause of the earlier macOS
|
|
53
|
+
connection reset. Publication, current-device upgrades and real business calls
|
|
54
|
+
require separate evidence.
|
|
55
|
+
|
|
56
|
+
## 1.1.0-rc.2
|
|
57
|
+
|
|
58
|
+
### Summary
|
|
59
|
+
|
|
60
|
+
This local Web workbench candidate adds project Agent defaults, retained native
|
|
61
|
+
history with explicit closed-worker resume, and project file upload/editing.
|
|
62
|
+
It is based on the 1.0.5 delivery line and retains its process identity, tmux
|
|
63
|
+
snapshot and shutdown fixes. A local candidate does not establish publication.
|
|
64
|
+
|
|
65
|
+
### Highlights
|
|
66
|
+
|
|
67
|
+
- Create Codex, Claude and DeepSeek Harness background Agents from one Web form;
|
|
68
|
+
save project defaults without changing provider credentials or global settings.
|
|
69
|
+
- Read HCC-retained native events and resume explicitly closed workers with
|
|
70
|
+
owner, session and working-directory identity checks.
|
|
71
|
+
- Upload new project files up to 10 MiB and edit complete UTF-8 text up to 1 MiB,
|
|
72
|
+
with revision conflicts, preserved drafts and explicit uncertain-write readback.
|
|
73
|
+
- Bind browser project requests and drafts to the selected directory identity.
|
|
74
|
+
- Preserve native Web connections and control tokens when background discovery
|
|
75
|
+
overlaps Agent creation or history restore; discard stale discovery results.
|
|
76
|
+
- Recheck provider initialization before rejecting an older snapshot with no
|
|
77
|
+
session ID, and retain exact project file matches when a wider search times out.
|
|
78
|
+
- Stop admitting background scans as soon as an administrator stop is accepted,
|
|
79
|
+
and begin cleanup after its HTTP response finishes or closes. Keep existing
|
|
80
|
+
process identity checks, exit confirmation deadlines and independent workers.
|
|
81
|
+
- Keep the existing terminal/App Server modes, readonly previews and bounded
|
|
82
|
+
reconnect behavior.
|
|
83
|
+
|
|
84
|
+
### Validation
|
|
85
|
+
|
|
86
|
+
The candidate is checked with the full source regression suite, a disposable
|
|
87
|
+
npm installation and desktop/narrow browser flows. Real-provider entry and
|
|
88
|
+
history checks have separate receipts. These checks do not establish a public
|
|
89
|
+
release, a global installation upgrade or real business acceptance.
|
|
90
|
+
|
|
19
91
|
## 1.0.5
|
|
20
92
|
|
|
21
93
|
### Summary
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Codex 账号与限额
|
|
2
|
+
|
|
3
|
+
Web 专用 Codex App Server 和 HCC 托管的 Codex Native worker 都提供“账号与限额”折叠面板。打开对应会话后读取该执行器的账号状态,点击“刷新账号与限额”重新查询。观察窗口也可以读取;发送消息、中断或应答审批仍受当前控制权约束。Claude 和 dsh 没有此 Codex 面板。
|
|
4
|
+
|
|
5
|
+
## 状态怎么理解
|
|
6
|
+
|
|
7
|
+
- **需要在本地 Codex 登录**:请在运行该任务的电脑完成 Codex 登录,再刷新面板。手机或另一台电脑上的 Web 登录不等于原执行器已登录。
|
|
8
|
+
- **ChatGPT 已登录**:显示 App Server 报告的套餐及可获得的用量窗口、重置时间、可用额度状态。账号已识别不等于真实模型调用已经通过。
|
|
9
|
+
- **供应商自行管理认证**:当前模型供应商不要求 OpenAI 登录。HCC 无法通过此接口确认供应商凭据或剩余配额,需通过该供应商的实际任务验证。
|
|
10
|
+
- **暂不可用 / 此版本未提供限额**:数据缺失或接口不支持,不能理解成零用量或无限额度。API key 和自定义供应商不会显示推测的 ChatGPT 订阅配额。
|
|
11
|
+
- **历史状态,待刷新**:执行器断开或读取失败时,旧用量保留并明确标记,不能作为当前状态。账号变更则清除旧账号的配额,再读当前账号。
|
|
12
|
+
|
|
13
|
+
多个配额桶分别展示,缺失的窗口保持未知;已读取的 0% 用量会正常显示。界面同时标注账号和限额的读取时间。输出流、刷新和执行器替换不会让旧请求覆盖新状态;切走再返回后,过期响应被丢弃,刷新按钮可继续使用。
|
|
14
|
+
|
|
15
|
+
## 读取范围
|
|
16
|
+
|
|
17
|
+
两条公开入口都是需要 Web 认证的只读 GET;请求须携带现有 API 版本头 `X-HCC-API-Version: 2`:
|
|
18
|
+
|
|
19
|
+
| 会话 | 入口 | 必须匹配的身份 |
|
|
20
|
+
| --- | --- | --- |
|
|
21
|
+
| Web 专用 Codex | `/api/sessions/:id/codex/account` | `root`、当前 `executorId` |
|
|
22
|
+
| 原生 Codex worker | `/api/sessions/:id/native/account` | `root`、当前 `generation`、`owner`、`sessionId` |
|
|
23
|
+
|
|
24
|
+
身份都通过 query 参数传入。原执行器在查询期间被替换时,响应重新核对身份;旧页面不能借此查询新实例。刷新不提交 turn、task、消息或 mutation receipt,不需要控制租约 token/epoch。
|
|
25
|
+
|
|
26
|
+
底层仅调用 `account/read`(`refreshToken: false`),以及适用 ChatGPT 订阅时的 `account/rateLimits/read`。账号/限额通知更新当前执行器状态;登录完成通知仍需要读取当前账号后才能显示已登录。并发刷新合并为同一读取,账号变更与通知使旧响应失效。
|
|
27
|
+
|
|
28
|
+
HCC 投影只保留必要状态。邮箱、凭据 ID、token、额度余额/支出和原始账号错误不进入面板、账号事件或接口响应;账号数据不写入浏览器存储。此功能不提供登录、退出登录、设备码登录、凭据保存或外部 token 刷新。执行器本身的认证生命周期仍由 Codex 管理。
|
|
29
|
+
|
|
30
|
+
## 协议与验收边界
|
|
31
|
+
|
|
32
|
+
基线为已安装 Codex 0.144.6;升级检查覆盖 57 项交接契约,其中包含本功能的方法、通知和必要字段。账号 Schema 从官方生成物的 `json-schema/v2/` 读取。运行方式见 [Codex 协议升级检查](codex-protocol.md)。
|
|
33
|
+
|
|
34
|
+
真实安装版 App Server 已在隔离 HOME/CODEX_HOME 中分别验证 Web 和 Native 的未登录、自定义供应商状态,共 4 项;原执行器/会话保持不变,没有模型调用,也没有读取现有账号。桌面 1440×1000、手机 390×844 和观察窗口通过真实 HTTP/SQLite/JSON-RPC 的浏览器检查;ChatGPT 配额、多窗口、账号变更与不支持接口由模拟 provider 覆盖。这些结果不等于真实 ChatGPT 订阅限额或外部账号业务验收。
|
|
35
|
+
|
|
36
|
+
浏览器验收入口为 `scripts/web-codex-account-acceptance.mjs --run --output NEW_RECEIPT`,需要通过 `HCC_ACCEPTANCE_PLAYWRIGHT` 和 `HCC_ACCEPTANCE_CHROME` 指定现有 Playwright 模块和 Chrome 可执行文件。脚本使用隔离项目、tmux、HOME/CODEX_HOME 和模拟 App Server,不调用模型;默认仅显示帮助。截图与 JSON 回执写到源码目录之外。
|
|
37
|
+
|
|
38
|
+
官方接口参考:<https://developers.openai.com/codex/app-server/>。当前 HCC 未实现 `account/chatgptAuthTokens/refresh`;所验收的 0.144.6 生成 Schema 将 `chatgptAuthTokens` 登录模式标为内部使用,后续版本需按其实际生成协议重新评估。
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Codex protocol generation and upgrade check / 协议升级检查
|
|
2
|
+
|
|
3
|
+
HCC uses the installed Codex App Server over stdio for structured Web sessions
|
|
4
|
+
and independent native workers. Before upgrading that executable, generate its
|
|
5
|
+
own protocol and check the HCC subset:
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npm run codex:protocol -- --codex-bin /absolute/path/to/codex --out /tmp/hcc-protocol-new
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
The output directory must not exist, and its parent must exist. Without `--out`,
|
|
12
|
+
the script retains a new private temporary protocol directory and prints its
|
|
13
|
+
path. From an installed package, the same command is:
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
node /absolute/path/to/hello-cc/scripts/codex-protocol.mjs --codex-bin /absolute/path/to/codex --out /tmp/hcc-protocol-new
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The script uses isolated HOME/CODEX_HOME directories and runs only `--version`,
|
|
20
|
+
`app-server generate-ts`, and `app-server generate-json-schema`. Both generators
|
|
21
|
+
include `--experimental` because HCC's interactive thread configuration exposes
|
|
22
|
+
experimental permission and user-input tools. It does not start an App Server,
|
|
23
|
+
call a model, read an account, or modify login/trust configuration.
|
|
24
|
+
|
|
25
|
+
The output contains:
|
|
26
|
+
|
|
27
|
+
- `typescript/`: official generated TypeScript bindings.
|
|
28
|
+
- `json-schema/`: official generated JSON Schema documents.
|
|
29
|
+
- `manifest.json`: Codex version, commands, per-file SHA-256, bundle fingerprint,
|
|
30
|
+
57 HCC contract checks, and unsupported server requests.
|
|
31
|
+
|
|
32
|
+
The check covers method availability, the thread/turn notifications consumed by
|
|
33
|
+
HCC, human response fields and choices, MCP form/URL identity, and read-only account/quota methods, notifications and fields.
|
|
34
|
+
Account schemas are read from the official `json-schema/v2/` directory. A missing
|
|
35
|
+
contract or a new required response field returns exit code 1. Unsupported
|
|
36
|
+
requests remain listed separately even when the supported subset passes.
|
|
37
|
+
Optional fields do not fail this gate. It is a bounded compatibility check;
|
|
38
|
+
it does not validate every nested request type, replace runtime validation,
|
|
39
|
+
or prove transport/model/business acceptance. Keep the manifest and rerun the
|
|
40
|
+
installed acceptance scripts before accepting a new Codex version.
|
|
41
|
+
|
|
42
|
+
Official generator reference: <https://developers.openai.com/codex/app-server/>.
|
|
43
|
+
The local official-protocol fixture in `test/fixtures/codex-protocol-0.144.6.json`
|
|
44
|
+
was extracted from installed Codex 0.144.6 on 2026-10-03. It retains method
|
|
45
|
+
registries and the relevant interaction and account schemas, rather than claiming that
|
|
46
|
+
all generated methods are implemented.
|
|
47
|
+
|
|
48
|
+
## 中文说明
|
|
49
|
+
|
|
50
|
+
升级 Codex 前运行上述命令,生成的是指定已安装版本自身的协议。协议目录必须是
|
|
51
|
+
新目录;工具不覆盖旧证据。生成物包括官方 TypeScript、JSON Schema 和带版本/
|
|
52
|
+
文件指纹的检查清单。
|
|
53
|
+
|
|
54
|
+
当前检查覆盖 57 项交接契约:客户端方法、轮次通知、人工答复字段/可选决策、
|
|
55
|
+
MCP 表单/URL 请求身份,以及只读账号/限额的方法、通知和必要字段。账号 Schema
|
|
56
|
+
从官方生成的 `json-schema/v2/` 读取。缺少方法、改变关键决策或新增 HCC 无法答复的必填字段时
|
|
57
|
+
返回非零退出码。账号 token 刷新、动态工具、扩展验证等未接入请求会单独列出,
|
|
58
|
+
不会因为生成成功而被视为已支持。该检查没有把运行时整体迁移为强类型协议,也不
|
|
59
|
+
代表新版本已完成真实模型、外部账户授权、发布或设备验收。
|
package/docs/commands.md
CHANGED
|
@@ -57,6 +57,15 @@ want coordination without the Web console or shims. Provider shims only join
|
|
|
57
57
|
projects with a local `.hello-cc/runtime.json` from `hcc web`; they do not use a
|
|
58
58
|
global runtime to manage arbitrary directories.
|
|
59
59
|
|
|
60
|
+
One browser can sign in to multiple Web instances on different listener ports
|
|
61
|
+
of the same host without refresh or logout replacing another instance's login.
|
|
62
|
+
Cookie names use the protocol and actual listener port, or the fixed
|
|
63
|
+
`--proxy-origin` protocol and port behind a trusted reverse proxy. Sign in again
|
|
64
|
+
after upgrading; legacy cookies are neither reused nor cleared. This prevents
|
|
65
|
+
accidental collisions and is not a browser security boundary. When separate SSH
|
|
66
|
+
tunnels map the same remote listener port to different local ports, use separate
|
|
67
|
+
browser profiles or hostnames: the direct listener cannot identify that mapping.
|
|
68
|
+
|
|
60
69
|
## Native Workers
|
|
61
70
|
|
|
62
71
|
```text
|
package/docs/commands.zh-CN.md
CHANGED
|
@@ -51,6 +51,13 @@ runtime 生成 URL token。用 `--local` 可只绑定 `127.0.0.1`,用 `--token
|
|
|
51
51
|
已经由 `hcc web` 生成本地 `.hello-cc/runtime.json` 的项目,不会使用全局 runtime
|
|
52
52
|
去管理任意目录。
|
|
53
53
|
|
|
54
|
+
同一浏览器可以登录同一主机上不同监听端口的多个 Web 实例,刷新或退出其中
|
|
55
|
+
一个不会覆盖另一个的登录。Cookie 按协议与实际监听端口命名;可信反向代理
|
|
56
|
+
使用固定 `--proxy-origin` 的协议与端口。升级后需重新登录,旧版 Cookie 不会
|
|
57
|
+
被复用或清除。这用于避免实例间的意外覆盖,不是浏览器安全隔离边界。
|
|
58
|
+
若多个 SSH 隧道把相同的远端监听端口映射到不同本地端口,应使用独立浏览器
|
|
59
|
+
配置文件或不同主机名;服务端无法从直连配置识别此端口映射。
|
|
60
|
+
|
|
54
61
|
## Native 后台 worker
|
|
55
62
|
|
|
56
63
|
```text
|
|
@@ -8,6 +8,8 @@ Darwin 身份改为 `darwin:<kern.bootsessionuuid>:<UTC/C ps lstart>`。开机 U
|
|
|
8
8
|
|
|
9
9
|
这种专用 `unknown` 同样保留 peer/binding、过期锁和缓冲文件,阻止过期任务被接管;它不会赋予 `live` 身份、续租或写权限。普通未知状态的超时策略不变。
|
|
10
10
|
|
|
11
|
+
早期 Web 工作台候选使用过 `mac:<boot UUID>:<ps lstart>` 前缀。它与正式的 `darwin:` 格式交叉比较时同样保留为 `unknown`,不因前缀变化回收仍存活的候选进程;需要由原版本正常关闭后再启动新版本。
|
|
12
|
+
|
|
11
13
|
升级前,先用原版本正常关闭所属 native worker/runtime,正常退出 Harness Desktop,再安装并启动新版本,使运行中的 owner 重新建立身份。保留账号配置、会话与协作数据库;不要手工改写旧身份、删除仍存活 runtime 的指针,或仅凭 PID 强行接管。若旧进程已经退出,OS 的死亡证据仍允许正常恢复。没有完整身份的其他未知状态继续使用原有策略。
|
|
12
14
|
|
|
13
15
|
回归覆盖同一次开机期间 `kern.boottime` 漂移、不同 boot UUID、错误和缺失 UUID、PATH 缺失时的固定系统路径、语言环境、PID 复用、exec、真实自有 zombie,以及跨格式 runtime 指针、native 启动和 Cordis 恢复边界。
|
package/docs/native.md
CHANGED
|
@@ -54,6 +54,49 @@ real Web approval receipt (source checkout: `docs/verification/2026-10-02-native
|
|
|
54
54
|
exercises this default project lookup without injecting a query function. It
|
|
55
55
|
does not verify a published package or an employee installation.
|
|
56
56
|
|
|
57
|
+
## Start from Web
|
|
58
|
+
|
|
59
|
+
Run `hcc web`, select the project, and choose **New Agent**. Codex, Claude and
|
|
60
|
+
DeepSeek Harness default to **Background Agent**, which creates a native worker
|
|
61
|
+
and starts or reuses the project's independent native runtime. You do not need
|
|
62
|
+
to run `hcc native start` first; the provider requirements above still apply.
|
|
63
|
+
|
|
64
|
+
**Settings** can save the project default provider plus a model and an in-project
|
|
65
|
+
working directory for each provider. **New Agent** prefills these values; when no
|
|
66
|
+
directory is configured it uses the project root. The worker continues to share the selected
|
|
67
|
+
project's HCC task and message bus. Select or add another project to work outside
|
|
68
|
+
that root. **Model (optional)** can stay empty to use the provider's configured
|
|
69
|
+
default; any supplied value must be supported by that provider. **Name (optional)**
|
|
70
|
+
can stay empty for a generated peer name.
|
|
71
|
+
|
|
72
|
+
These defaults live in the selected HCC project database and apply only to future
|
|
73
|
+
Web native creations. They do not change running workers, history resume, CLI
|
|
74
|
+
launches or provider account files. Concurrent saves use revision checks; reload
|
|
75
|
+
and review the latest values after a conflict. Clearing the model in the creation
|
|
76
|
+
form explicitly chooses the provider's own default for that one worker.
|
|
77
|
+
|
|
78
|
+
**New Agent** creates a new native session. **History → HCC retained history**
|
|
79
|
+
browses saved native workers and explicitly resumes workers recorded as closed.
|
|
80
|
+
Resume keeps the peer and provider session ID, rechecks ownership, and starts a
|
|
81
|
+
new executor. CLI resume remains available. **Advanced options** keeps the terminal
|
|
82
|
+
CLI and Codex App Server paths, including their existing history controls. Shell
|
|
83
|
+
uses a terminal; DeepSeek Harness uses a background worker.
|
|
84
|
+
|
|
85
|
+
After creation, send prompts and inspect receipts or approvals in the same Web
|
|
86
|
+
session. Creating a worker does not by itself complete a model task. Closing
|
|
87
|
+
the page or stopping Web preserves the independent native runtime and worker;
|
|
88
|
+
explicitly close the worker when it is no longer needed. The dated acceptance
|
|
89
|
+
records below do not establish real-model or release acceptance of this new
|
|
90
|
+
creation or history/resume entries. See the [Web guide](web-handoff.zh-CN.md).
|
|
91
|
+
|
|
92
|
+
The **Files** entry browses saved project files and artifacts without creating a
|
|
93
|
+
worker or sending file contents to a model. It provides bounded text, Markdown,
|
|
94
|
+
image, PDF and static HTML previews. Explicit uploads create new project files
|
|
95
|
+
without replacing existing names (up to 10 MiB); complete UTF-8 text files can be
|
|
96
|
+
edited and saved with a revision check (up to 1 MiB). Conflicts and uncertain write
|
|
97
|
+
results keep the draft for inspection. These actions do not attach files to a model
|
|
98
|
+
conversation. See the [project file guide](web-handoff.zh-CN.md#上传与编辑项目文件).
|
|
99
|
+
|
|
57
100
|
## CLI
|
|
58
101
|
|
|
59
102
|
Run commands from the project you want the workers to share, or select it with
|
|
@@ -87,7 +130,7 @@ or dsh executable. Claude uses the SDK and rejects `--binary`.
|
|
|
87
130
|
| `hcc native deliveries` | Optional `--peer NAME`; inspect delivery receipts |
|
|
88
131
|
| `hcc native events` | Required `--peer NAME`; optional `--after ID`; inspect a bounded event history |
|
|
89
132
|
| `hcc native requests` | Requires `--peer NAME`; inspect pending requests bound to this executor, session and turn |
|
|
90
|
-
| `hcc native respond` | Requires `--peer NAME --request ID --decision accept\|decline\|cancel`; use `--response-file JSON` for permission subsets or
|
|
133
|
+
| `hcc native respond` | Requires `--peer NAME --request ID --decision accept\|decline\|cancel`; use `--response-file JSON` for permission subsets, answers or MCP form content |
|
|
91
134
|
| `hcc native interrupt` | Required `--peer NAME`; optional `--turn ID`; request interruption of the active turn |
|
|
92
135
|
| `hcc native close` | Required `--peer NAME`; close that worker's owned connection/process |
|
|
93
136
|
| `hcc native down` | Request worker closure and runtime shutdown; returns a stop-request receipt |
|
|
@@ -153,6 +196,13 @@ it does not attach to an existing live TUI or desktop instance. HCC cannot prove
|
|
|
153
196
|
that an external application has independently opened the same saved session,
|
|
154
197
|
so do not open the same conversation concurrently outside the owned runtime.
|
|
155
198
|
|
|
199
|
+
New saved workers also retain the filesystem identity of their working
|
|
200
|
+
directory. Resume requires that identity to still match, even if the path
|
|
201
|
+
spelling is unchanged. Older workers without that evidence remain readable in
|
|
202
|
+
HCC history but are not automatically resumable; manual review and association
|
|
203
|
+
are not yet implemented. Web history marks these records as unavailable before
|
|
204
|
+
the native service rechecks at admission.
|
|
205
|
+
|
|
156
206
|
Native workers receive a worker-specific `HCC_ROOT`, `HCC_DB`, `HCC_PEER`, and
|
|
157
207
|
`HCC_NATIVE_OWNER`. A provider hook must match the peer's native transport owner.
|
|
158
208
|
Its native hook path only heartbeats that owner and renews its locks. It does
|
|
@@ -170,12 +220,18 @@ hosted responder retain conservative denial.
|
|
|
170
220
|
|
|
171
221
|
| Provider | Hosted interaction |
|
|
172
222
|
| --- | --- |
|
|
173
|
-
| Codex | Command/file approval, requested filesystem/network permission subsets with explicit turn/session duration, questions including freeform/secret input,
|
|
223
|
+
| Codex | Command/file approval, requested filesystem/network permission subsets with explicit turn/session duration, questions including freeform/secret input, one-call empty-form MCP tool approvals and common MCP form fields |
|
|
174
224
|
| Claude | SDK tool permission callback; approval grants the original tool input once without rewriting it |
|
|
175
225
|
| dsh ACP | Offered permission choices; approval selects only `allow_once`, never `allow_always` |
|
|
176
226
|
|
|
177
227
|
rc.2 may send only a tool-call ID in an ACP approval request. The adapter correlates same-session/turn tool updates to show the operation input. Missing or truncated input still allows rejection; acceptance returns `NATIVE_APPROVAL_CONTEXT_MISSING`. See dsh installed acceptance (source checkout: `docs/verification/2026-10-02-dsh-cordis-native.md`).
|
|
178
228
|
|
|
229
|
+
Native approval cards show the tool, command or target path and a content
|
|
230
|
+
preview before the decision. Full operation details can be expanded and stay
|
|
231
|
+
expanded across state refreshes. ACP approval is disabled when operation input
|
|
232
|
+
or a one-time option is missing; rejection remains available. Shortened
|
|
233
|
+
previews are identified, with complete parameters still available.
|
|
234
|
+
|
|
179
235
|
Hosted interactive Codex threads explicitly enable
|
|
180
236
|
`features.default_mode_request_user_input` and `features.request_permissions_tool`
|
|
181
237
|
in their private start/resume configuration. Web-owned start/resume/fork uses
|
|
@@ -209,21 +265,23 @@ hcc native respond --peer codex-reviewer --request REQUEST_ID --decision accept
|
|
|
209
265
|
hcc native respond --peer codex-reviewer --request REQUEST_ID --decision cancel
|
|
210
266
|
```
|
|
211
267
|
|
|
212
|
-
Only `permissions`, `scope` and `
|
|
268
|
+
Only `permissions`, `scope`, `answers` and `content` are accepted in that file. For MCP forms, use the original field names and types, for example `{"content":{"project":"demo","count":2,"enabled":false}}`. Permissions
|
|
213
269
|
can narrow the request but cannot add paths or network access; requested deny
|
|
214
270
|
entries must be retained when granting filesystem access. Answer every question
|
|
215
|
-
explicitly. Truncated requests can only be declined or cancelled.
|
|
216
|
-
forms, URL authentication, dynamic tools and account-token refresh requests are
|
|
217
|
-
outside this responder's supported interaction set.
|
|
271
|
+
explicitly. Truncated requests can only be declined or cancelled. Nested schemas, dynamic tools and account-token refresh requests remain unsupported. Correlated MCP `url` requests are supported through the Web authorization entry described below.
|
|
218
272
|
|
|
219
273
|
## Current boundaries
|
|
220
274
|
|
|
221
275
|
- Existing Codex/Claude/dsh terminal sessions remain on their original transport;
|
|
222
276
|
attaching to or taking over an existing TUI/Desktop session is not implemented.
|
|
223
|
-
- Web
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
277
|
+
- Web can create Codex, Claude and dsh native workers, and discovers existing
|
|
278
|
+
workers in the same project. It exposes messages, delivery receipts,
|
|
279
|
+
interruption, and explicit closure. History reads retained project events and
|
|
280
|
+
explicitly resumes closed workers; it is not the provider's complete transcript.
|
|
281
|
+
Active workers and workers without confirmed closure cannot resume from this
|
|
282
|
+
entry. Closing the page or Web runtime
|
|
283
|
+
preserves the independent native worker. Human responses are bound to the
|
|
284
|
+
current executor and turn. See the [Web handoff guide](web-handoff.zh-CN.md).
|
|
227
285
|
- Codex, Claude and dsh native workers receive project- and peer-scoped HCC MCP
|
|
228
286
|
configuration. Writes still require provider permission and HCC ownership checks.
|
|
229
287
|
- Provider-internal `SendMessage`, subagent/team discovery, and Codex delegation
|
|
@@ -234,7 +292,8 @@ outside this responder's supported interaction set.
|
|
|
234
292
|
task's business acceptance.
|
|
235
293
|
- Adapter tests cover protocol and interaction boundaries. The authenticated
|
|
236
294
|
checks below provide separate evidence for model execution and scoped MCP;
|
|
237
|
-
|
|
295
|
+
the installed-package harness below checks installation separately.
|
|
296
|
+
Stakeholder acceptance of a production workflow remains a separate step.
|
|
238
297
|
|
|
239
298
|
|
|
240
299
|
## Authenticated acceptance on October 2, 2026
|
|
@@ -255,8 +314,20 @@ survival after closing that bridge. These receipts are separate source snapshots
|
|
|
255
314
|
|
|
256
315
|
Codex MCP tool approvals use `mcpServer/elicitation/request`. HCC submits the
|
|
257
316
|
official action/content response for explicit tool confirmations without
|
|
258
|
-
persisting session/always authorization.
|
|
259
|
-
|
|
317
|
+
persisting session/always authorization. Standard `form` requests support strings, numbers/integers, booleans, single-select and string-enum multi-select fields, with titles, descriptions, suggested defaults, required fields, length/numeric/selection limits and common mailbox/URI/date/date-time format checks. Optional fields are sent only when explicitly included, and booleans require a yes/no choice. Limits are 50 fields, 100 options per field, 8192 UTF-16 units per string and 65536 characters each for schema and response content.
|
|
318
|
+
|
|
319
|
+
Correlated MCP `url` requests display the authorization destination and an **Open authorization page** action. Only the current controller can submit it. HCC reserves a blank tab on the explicit click and navigates after the original executor accepts the exact request; stale requests close the blank tab. Popup blocking leaves the request pending. HTTPS and loopback HTTP are allowed; credentials in the URL, other schemes, missing elicitation identities and truncated requests block acceptance while retaining decline/cancel. The new tab has no opener or referrer. Loopback destinations require a browser on the executor computer; HCC does not proxy local login callbacks to another device.
|
|
320
|
+
|
|
321
|
+
Opening sends only `{ "action": "accept" }` and is not proof of successful authentication. Complete the external flow, then return to the task and follow the provider result. HCC does not invent a completion event or collect credentials in its form. URLs, device messages, opaque elicitation ids and metadata remain in the live pending request only; HCC interaction events and browser storage do not retain them. Provider-owned logs/history and the destination browser retain their existing behavior. Account login, token refresh, `openai/userVerification` and external-flow completion APIs remain separate unsupported capabilities.
|
|
322
|
+
|
|
323
|
+
State refresh keeps edits in page memory. Submission, request removal or session changes clear them; a full page reload does not recover answers. HCC browser storage, events and delivery receipts do not retain form responses through the interaction-response path. Provider-owned history and model output retain their existing behavior. The owning server revalidates types and constraints and preserves executor/session/turn/request fencing. Nested objects, unrestricted arrays, unknown constraints and OpenAI extended form modes remain visibly unsupported with decline/cancel available.
|
|
324
|
+
|
|
325
|
+
To reproduce browser acceptance, set `HCC_ACCEPTANCE_PLAYWRIGHT` to a Playwright module and run `node scripts/web-mcp-form-acceptance.mjs --run-browser`; optionally set `HCC_ACCEPTANCE_CHROME`. This uses simulated providers with the production HTTP/SQLite/native runtime and isolated browsers; it makes no model calls. See the source-checkout report `docs/verification/2026-10-02-mcp-form-web-validation.md`.
|
|
326
|
+
|
|
327
|
+
Installed-model acceptance uses `node scripts/web-mcp-form-live-acceptance.mjs --run-live` with `HCC_ACCEPTANCE_PLAYWRIGHT`; `HCC_ACCEPTANCE_CHROME`, `HCC_ACCEPTANCE_TMUX`, `--codex-bin PATH` and `--output NEW_FILE` are optional. Without the opt-in flag it only prints help. A live run consumes quota on the currently configured model/account. Installed Codex calls a disposable stdio MCP tool; actual Web interactions accept the tool confirmation and submit the field form. The harness checks typed responses, model-written results, continuation on the same native executor after Web shuts down, and a Web-owned App Server form. It injects neither model output nor App Server requests.
|
|
328
|
+
|
|
329
|
+
The HCC user directory, Codex home, project, tmux socket and browser profile are disposable. A configured external credential helper can retain its original user home for read-only credential retrieval; the original provider/model, login and configuration remain intact. Receipts include source hashes, checks, cleanup results and original config/auth/shell-config hash checks. Output paths must be new so existing receipts are preserved. Fixture logs contain synthetic form values only.
|
|
330
|
+
|
|
260
331
|
|
|
261
332
|
The local validation receipt (source checkout: `docs/verification/2026-10-02-native-live-validation.json`)
|
|
262
333
|
records the unit suite (785 passed, one platform-dependent skip), a 63-module
|
|
@@ -286,10 +357,104 @@ acceptance remains a separate check.
|
|
|
286
357
|
|
|
287
358
|
For real model and browser interactions, use
|
|
288
359
|
`scripts/web-native-interaction-acceptance.mjs`. It defaults to help; only
|
|
289
|
-
`--run-live --provider codex|claude|all` invokes models. Set
|
|
360
|
+
`--run-live --provider codex|claude|dsh|all` invokes models. Set
|
|
290
361
|
`HCC_ACCEPTANCE_PLAYWRIGHT` and optionally `HCC_ACCEPTANCE_CHROME`.
|
|
291
362
|
`--claude-package DIR` links an installed SDK package into the isolated worker
|
|
292
363
|
project for default resolution, without injecting its query function. The
|
|
293
364
|
harness checks explicit approval and rejection and continuing the original
|
|
294
365
|
session. It uses existing authentication/quota, cleans test provider homes and
|
|
295
366
|
processes, and never attaches to existing user conversations.
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
`--provider dsh --dsh-bin /absolute/path/to/dsh` uses the installed public launcher
|
|
370
|
+
and existing `DEEPSEEK_API_KEY`. The harness adds an official `tools/pre-execute`
|
|
371
|
+
ask policy to a private ACP profile for only two acceptance-owned target files.
|
|
372
|
+
Permission requests come from real model tool calls; no ACP request injection is
|
|
373
|
+
used. It verifies an approved write, absence of a declined target, local return
|
|
374
|
+
to the same session, and desktop and 390px mobile approval controls. See the
|
|
375
|
+
dsh Web interaction receipt (source checkout: `docs/verification/2026-10-02-native-web-dsh-final-snapshot-interactions.json`).
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
## Installed-package acceptance
|
|
379
|
+
|
|
380
|
+
`scripts/native-installed-acceptance.mjs` tests an already installed HCC archive
|
|
381
|
+
through the public `hcc native` commands. Install the archive and the optional
|
|
382
|
+
Claude SDK into the same isolated npm prefix before running it. The script uses
|
|
383
|
+
the SDK's default package resolver; it does not inject an adapter or query
|
|
384
|
+
function. Running it without `--run-live` prints help and makes no model calls.
|
|
385
|
+
|
|
386
|
+
```sh
|
|
387
|
+
npm install --prefix /absolute/path/to/acceptance-prefix \
|
|
388
|
+
/absolute/path/to/hello-cc.tgz @anthropic-ai/claude-agent-sdk
|
|
389
|
+
|
|
390
|
+
HCC_ACCEPTANCE_PLAYWRIGHT=file:///absolute/path/to/playwright/index.mjs \
|
|
391
|
+
HCC_ACCEPTANCE_CHROME=/absolute/path/to/chrome \
|
|
392
|
+
node /absolute/path/to/acceptance-prefix/node_modules/@logicseek/hello-cc/scripts/native-installed-acceptance.mjs \
|
|
393
|
+
--run-live --codex-bin /absolute/path/to/codex \
|
|
394
|
+
--dsh-bin /absolute/path/to/dsh --archive /absolute/path/to/hello-cc.tgz \
|
|
395
|
+
--browser --task --output /absolute/path/to/receipt.json
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
The checks cover correlated replies and ACKs, duplicate submission, continuing
|
|
399
|
+
context, owned close/resume and interruption for all three installed providers.
|
|
400
|
+
A separate Codex check explicitly rejects a write outside the allowed sandbox. Each worker first receives a bounded task through the local user controls.
|
|
401
|
+
Models then send messages through MCP along `Codex → Claude → dsh → Codex`. The browser check verifies default SDK
|
|
402
|
+
loading, an explicit approved write, desktop/mobile rendering, released control
|
|
403
|
+
and local continuation of the same session after closing Web. `--task` adds an
|
|
404
|
+
independent file collaboration example: Codex implements invoice arithmetic,
|
|
405
|
+
five contract tests run, and Claude receives the model-authored handoff and
|
|
406
|
+
writes its review. This example is separate from stakeholder acceptance of a
|
|
407
|
+
production workflow.
|
|
408
|
+
|
|
409
|
+
Existing authentication and provider quota are used. HCC's global HOME, provider
|
|
410
|
+
homes, tmux server and project are private acceptance directories. A copied
|
|
411
|
+
Codex credential command preserves the caller's HOME only while retrieving
|
|
412
|
+
existing credentials; the original configuration is unchanged. Owned processes
|
|
413
|
+
and credential copies are removed on exit. The receipt records the archive
|
|
414
|
+
SHA-256, provider versions, source hashes, browser evidence and cleanup results.
|
|
415
|
+
The script neither publishes npm packages nor deploys to employee devices.
|
|
416
|
+
|
|
417
|
+
Requests submitted through authenticated native CLI/Web controls are recorded
|
|
418
|
+
as local user requests. Messages arriving through the shared HCC bus remain
|
|
419
|
+
peer coordination data, even if the sender calls itself `web` or `shell`.
|
|
420
|
+
Legacy deliveries retain peer origin during migration. This distinction does
|
|
421
|
+
not grant tool permissions: writes and other gated tools still require approval.
|
|
422
|
+
For delegated file work, first authorize the receiving agent's bounded task,
|
|
423
|
+
then send the peer handoff.
|
|
424
|
+
|
|
425
|
+
## Bounded stability acceptance
|
|
426
|
+
|
|
427
|
+
Add `--stability` to installed-package acceptance to run sustained work after
|
|
428
|
+
its lifecycle and cross-provider checks:
|
|
429
|
+
|
|
430
|
+
```sh
|
|
431
|
+
node /absolute/path/to/acceptance-prefix/node_modules/@logicseek/hello-cc/scripts/native-installed-acceptance.mjs \
|
|
432
|
+
--run-live --codex-bin /absolute/path/to/codex --dsh-bin /absolute/path/to/dsh \
|
|
433
|
+
--archive /absolute/path/to/hello-cc.tgz --stability \
|
|
434
|
+
--stability-cycles 6 --stability-burst 2 --stability-idle-ms 30000 \
|
|
435
|
+
--stability-resume-every 2 --output /absolute/path/to/stability-receipt.json
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
All three providers work concurrently. Each worker receives its whole burst
|
|
439
|
+
before the driver waits. Each reply must recall the original random marker
|
|
440
|
+
and the previous ticket from history, checking FIFO execution and retained
|
|
441
|
+
context. Duplicate submission IDs must yield exactly one reply and ACK.
|
|
442
|
+
Periodic worker close/resume and one normal owned-daemon restart preserve the
|
|
443
|
+
original sessions. Idle observation checks the control endpoint, pending
|
|
444
|
+
requests and identity. The final audit checks persisted deliveries, database
|
|
445
|
+
integrity, bounded event retention and absence of reply loops. Receipts retain
|
|
446
|
+
actual replies, failure state and owned-process memory samples. Failed work is
|
|
447
|
+
not replayed automatically or reclassified as successful after a retry.
|
|
448
|
+
|
|
449
|
+
Defaults are six cycles, two queued messages per worker per cycle, 30 seconds
|
|
450
|
+
of idle observation per cycle, and worker resume every two cycles. Limits are
|
|
451
|
+
1–24 cycles, 1–4 messages, 0–300000 idle milliseconds and a 1–24 cycle resume
|
|
452
|
+
interval. These options require `--stability`. This is bounded authenticated
|
|
453
|
+
work, not a 24-hour soak, capacity benchmark or proof of no memory leak. A
|
|
454
|
+
successful DSH resume alone does not explain earlier context fluctuations.
|
|
455
|
+
|
|
456
|
+
`--stability-only` requires `--stability`. It bootstraps three real sessions and
|
|
457
|
+
runs stability work while skipping the baseline interruption, command approval
|
|
458
|
+
and model MCP communication scenarios. The receipt records this scope; skipped
|
|
459
|
+
scenarios require separate evidence. On any failure, the driver captures current
|
|
460
|
+
session snapshots, recent deliveries and events before closing owned workers.
|