@logicseek/hello-cc 1.1.0-rc.1 → 1.1.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +229 -108
- package/README.md +1 -10
- package/README.zh-CN.md +1 -8
- package/docs/codex-account.zh-CN.md +38 -0
- package/docs/codex-protocol.md +59 -0
- package/docs/commands.md +13 -28
- package/docs/commands.zh-CN.md +11 -20
- package/docs/dsh.md +5 -3
- package/docs/dsh.zh-CN.md +6 -4
- package/docs/macos-process-identity.md +15 -0
- package/docs/native.md +176 -6
- package/docs/native.zh-CN.md +138 -3
- package/docs/web-handoff.zh-CN.md +107 -5
- package/lib/cli/app.mjs +9 -6
- package/lib/cli/commands/coordination.mjs +7 -2
- package/lib/cli/commands/gc.mjs +14 -12
- package/lib/cli/commands/hook.mjs +16 -3
- package/lib/cli/commands/install.mjs +37 -9
- package/lib/cli/commands/lock.mjs +3 -1
- package/lib/cli/commands/misc.mjs +105 -13
- package/lib/cli/commands/native.mjs +41 -48
- 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/gc-plan.mjs +5 -0
- package/lib/core/coordination/locks.mjs +3 -1
- package/lib/core/peers/evidence.mjs +21 -1
- package/lib/core/peers/tmux-safety.mjs +4 -0
- package/lib/core/sessions/hook-root-identity.mjs +47 -0
- package/lib/core/sessions/launch.mjs +7 -1
- package/lib/db/connection.mjs +67 -21
- package/lib/diagnostics/codex-protocol.mjs +105 -0
- package/lib/guidance.mjs +20 -36
- package/lib/integrations/codex-account.mjs +143 -0
- package/lib/integrations/dsh-collaboration.mjs +3 -4
- package/lib/integrations/dsh.mjs +4 -2
- package/lib/integrations/native/claude.mjs +53 -9
- package/lib/integrations/native/codex.mjs +75 -15
- package/lib/integrations/native/dsh-acp.mjs +77 -24
- package/lib/integrations/native/index.mjs +4 -1
- package/lib/integrations/native/interactions.mjs +16 -3
- package/lib/integrations/native/jsonrpc.mjs +37 -5
- package/lib/integrations/native/telemetry.mjs +30 -0
- package/lib/process/identity.mjs +67 -28
- 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 +7 -1
- package/lib/runtime/client.mjs +18 -1
- package/lib/runtime/native/client.mjs +12 -2
- package/lib/runtime/native/history.mjs +140 -0
- package/lib/runtime/native/launcher.mjs +106 -0
- package/lib/runtime/native/service.mjs +346 -52
- package/lib/runtime/native/store.mjs +75 -21
- package/lib/runtime/project-path.mjs +24 -5
- package/lib/runtime/projects.mjs +3 -0
- package/lib/runtime/state.mjs +61 -26
- package/lib/shared/file-lock.mjs +62 -17
- package/lib/shared/redact.mjs +2 -1
- package/lib/shared/socket-lock-worker.mjs +15 -6
- 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 +2005 -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 +104 -33
- package/lib/web/codex-sessions.mjs +60 -11
- package/lib/web/context-files.mjs +82 -0
- package/lib/web/cookie-auth.mjs +51 -3
- package/lib/web/external-sessions.mjs +22 -4
- package/lib/web/http-routes.mjs +237 -24
- package/lib/web/http.mjs +50 -4
- package/lib/web/liveness-reaper.mjs +2 -2
- package/lib/web/native-sessions.mjs +370 -21
- package/lib/web/project-contexts.mjs +235 -42
- 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 +134 -82
- 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 +76 -27
- package/lib/web/tmux-client-snapshot.mjs +85 -0
- package/lib/web/tmux-sessions.mjs +71 -7
- 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 +81 -73
- 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 +286 -8
- package/lib/web/ui-interactions.mjs +6 -4
- package/lib/web/ui-native-timeline.mjs +326 -0
- package/lib/web/ui-native.mjs +115 -51
- 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 -1969
- package/lib/web/ui-terminal-find.mjs +5 -3
- package/lib/web/ui-workbench.mjs +5 -3
- package/lib/web/ui-workspace.mjs +9 -2
- 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/helpers/gc-clock-observation.mjs +33 -0
- package/scripts/native-bounded-live-acceptance.mjs +193 -0
- package/scripts/native-fixture-root.mjs +49 -0
- package/scripts/native-installed-acceptance.mjs +284 -25
- 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 +655 -188
- 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 +22 -7
- package/scripts/web-mcp-form-live-acceptance.mjs +1 -1
- package/scripts/web-native-handoff-checks.mjs +128 -0
- package/scripts/web-native-interaction-acceptance.mjs +152 -18
- package/scripts/web-native-interaction-diagnostics.mjs +80 -0
- package/scripts/web-native-model-acceptance.mjs +22 -7
- package/scripts/web-native-retry-checks.mjs +177 -0
- package/scripts/web-session-tools-checks.mjs +112 -0
- package/scripts/web-workbench-acceptance.mjs +438 -0
- package/scripts/web-workbench-installed-acceptance.mjs +122 -0
package/CHANGELOG.md
CHANGED
|
@@ -16,126 +16,247 @@ 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.
|
|
19
|
+
## 1.1.0-rc.4
|
|
20
20
|
|
|
21
21
|
### Summary
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
into the same task, message, handoff and result-review workflow, with explicit
|
|
27
|
-
permissions and delivery receipts. This release is intended for the npm
|
|
28
|
-
`preview` dist-tag and a GitHub prerelease.
|
|
23
|
+
This preview adds guarded forks for owned Codex and Claude sessions, durable
|
|
24
|
+
submission retries, and a persisted Codex read-only policy. It retains the
|
|
25
|
+
session isolation and shutdown fixes from rc.3.
|
|
29
26
|
|
|
30
27
|
### Highlights
|
|
31
28
|
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
retained content accessible. Copy the complete original text, including
|
|
53
|
-
content outside the visible segment. Preserve Unicode characters, scroll
|
|
54
|
-
anchors, tool expansion and drafts across streaming updates.
|
|
55
|
-
- Coalesce Codex text-delta notifications within a bounded 50 ms window while
|
|
56
|
-
updating internal state immediately. Approvals, completion, errors and
|
|
57
|
-
connection changes publish promptly. Unchanged native snapshots avoid
|
|
58
|
-
redundant broadcasts without skipping ownership checks.
|
|
59
|
-
- Manage owned native workers through `hcc native`: Codex App Server, the
|
|
60
|
-
optional Claude Agent SDK and DeepSeek Harness ACP share HCC coordination
|
|
61
|
-
while retaining their provider-specific lifecycle and session identity. Web
|
|
62
|
-
can discover and control an existing native worker without creating a second
|
|
63
|
-
provider process.
|
|
64
|
-
- Distinguish queued, submitted, provider-accepted, completed, failed and
|
|
65
|
-
uncertain delivery states. Uncertain submissions are not automatically
|
|
66
|
-
replayed; runtime restarts preserve the uncertainty needed to avoid duplicate
|
|
67
|
-
work.
|
|
68
|
-
- Handle supported Codex permission requests, questions and common MCP form
|
|
69
|
-
fields from Web or the local CLI. Claude responses approve the original tool
|
|
70
|
-
input once, and ACP approval selects a provider-offered one-time option.
|
|
71
|
-
Responses remain bound to the current worker, session, turn, request and
|
|
72
|
-
controller.
|
|
73
|
-
- Give hosted executors a temporary MCP capability scoped to the project,
|
|
74
|
-
database, peer and live runtime. Coordination tools support tasks, inbox,
|
|
75
|
-
messages, handoff, owned locks and local result records. Executor shutdown
|
|
76
|
-
revokes the capability without rewriting global provider configuration.
|
|
77
|
-
- Review local command results, explicitly submitted evidence and manual
|
|
78
|
-
acceptance records with separate local-validation, publication and
|
|
79
|
-
business-acceptance categories. A completed model turn or successful command
|
|
80
|
-
does not automatically complete an HCC task.
|
|
81
|
-
- Include DeepSeek Harness hooks, the Cordis bundle and owned ACP workers,
|
|
82
|
-
with identity-bound crash recovery and retryable cleanup after temporary
|
|
83
|
-
database failures.
|
|
84
|
-
- Use macOS `kern.bootsessionuuid` for the boot component of process identity
|
|
85
|
-
instead of wall-clock boot time. Clock adjustments no longer make the same
|
|
86
|
-
process appear replaced, while a different boot UUID still identifies a
|
|
87
|
-
reboot. Missing or malformed boot identity remains unknown.
|
|
88
|
-
- Publish private-state binding manifests atomically, reject legacy-state
|
|
89
|
-
takeover during interrupted initialization, and recheck the project identity
|
|
90
|
-
before reading, writing or clearing its runtime state. A reused directory
|
|
91
|
-
path does not silently inherit the previous project's private state.
|
|
92
|
-
- Validate existing SQLite files without opening and closing an additional
|
|
93
|
-
descriptor, preserving locks held by another SQLite connection in the same
|
|
94
|
-
process. File ownership, permissions, identity and sidecar checks remain in
|
|
95
|
-
place.
|
|
29
|
+
- Fork an idle, owned Codex or Claude session into a distinct worker and provider
|
|
30
|
+
session. Pending approvals, unresolved deliveries and changing parent bindings
|
|
31
|
+
prevent a fork. DeepSeek Harness does not currently support native fork.
|
|
32
|
+
- Create Codex workers with `--sandbox read-only`. Resumes and forks retain the
|
|
33
|
+
saved policy; approval escalation and HCC scoped MCP are disabled for these
|
|
34
|
+
workers. Codex must confirm the policy before the worker becomes available.
|
|
35
|
+
This is a provider filesystem sandbox, not an all-tools or network guarantee.
|
|
36
|
+
- Retry an unconfirmed Web submission with its original ID and message after
|
|
37
|
+
reviewing its receipts. A later edited draft remains intact. Retries require
|
|
38
|
+
current control and the original executor identity. Older pending records
|
|
39
|
+
without the required identity remain available for manual review only.
|
|
40
|
+
- Persist the message and its retry identity together; repair the delivery
|
|
41
|
+
record after interruption without creating a second message. Uncertain
|
|
42
|
+
provider execution is never automatically replayed.
|
|
43
|
+
- Refresh late DeepSeek Harness tool input on the existing approval request,
|
|
44
|
+
preserving its identity and oversized-input restrictions.
|
|
45
|
+
- Disable split views when the page lacks the browser session required by its
|
|
46
|
+
embedded pane. Keep saved layouts for a later authenticated page.
|
|
47
|
+
- Distinguish the active runtime's clock observation from manual GC mutations
|
|
48
|
+
in regression checks while requiring all other metadata to remain unchanged.
|
|
96
49
|
|
|
97
|
-
###
|
|
50
|
+
### Validation
|
|
51
|
+
|
|
52
|
+
Validation covers policy persistence, legacy-runtime refusal, fork inheritance,
|
|
53
|
+
submission recovery and browser retry behavior with later draft edits. Source,
|
|
54
|
+
installed-package, CI and real-provider results retain separate receipts; prior
|
|
55
|
+
historical connection-reset and provider failures are not reclassified by a
|
|
56
|
+
passing retry. Existing frozen release archives remain unchanged.
|
|
57
|
+
|
|
58
|
+
## 1.1.0-rc.3
|
|
59
|
+
|
|
60
|
+
### Summary
|
|
61
|
+
|
|
62
|
+
This preview integrates the multi-provider Web workbench with project Agent
|
|
63
|
+
settings, retained native history and project file editing. It also includes
|
|
64
|
+
session isolation and recovery fixes, shutdown quiescence and more precise
|
|
65
|
+
regression diagnostics. A new frozen package preserves the earlier rc.2 archive.
|
|
66
|
+
|
|
67
|
+
### Highlights
|
|
68
|
+
|
|
69
|
+
- Create Codex, Claude and DeepSeek Harness Agents from the Web workbench; retain
|
|
70
|
+
project defaults, explicit native-history restore and directory-bound drafts.
|
|
71
|
+
- Upload project files and edit complete UTF-8 text with revision conflicts,
|
|
72
|
+
preserved drafts and explicit readback after uncertain writes.
|
|
73
|
+
- Scope login cookies by trusted protocol and port so Web instances on different
|
|
74
|
+
ports do not overwrite each other's login or logout state. Sign in again after
|
|
75
|
+
upgrading; arbitrary SSH port remapping is not inferred.
|
|
76
|
+
- Keep the native-worker discovery error and refresh guidance when a restore
|
|
77
|
+
receipt is absent, instead of failing inside the error handler.
|
|
78
|
+
- Stop admitting background work when administrator shutdown is accepted, then
|
|
79
|
+
start cleanup after the HTTP response finishes or closes; preserve process
|
|
80
|
+
identity checks, exit deadlines and independently owned workers.
|
|
81
|
+
- Recognize terminal regression markers split across output chunks and submit
|
|
82
|
+
fixture input once. Isolate regression HTTP connections and test-owned ports.
|
|
83
|
+
- Add bounded CI task-dispatch and HTTP failure diagnostics without recording
|
|
84
|
+
request bodies, credentials or query parameters, or retrying failed requests.
|
|
85
|
+
|
|
86
|
+
### Validation
|
|
87
|
+
|
|
88
|
+
Release checks compare the package file set, per-file hashes and modes with the
|
|
89
|
+
new frozen rc.3 archive. Source tests, browser checks and installed Harness checks
|
|
90
|
+
retain their exact commit and package receipts. The regression transport changes
|
|
91
|
+
isolate test fixtures; they do not establish the root cause of the earlier macOS
|
|
92
|
+
connection reset. Publication, current-device upgrades and real business calls
|
|
93
|
+
require separate evidence.
|
|
94
|
+
|
|
95
|
+
## 1.1.0-rc.2
|
|
96
|
+
|
|
97
|
+
### Summary
|
|
98
|
+
|
|
99
|
+
This local Web workbench candidate adds project Agent defaults, retained native
|
|
100
|
+
history with explicit closed-worker resume, and project file upload/editing.
|
|
101
|
+
It is based on the 1.0.5 delivery line and retains its process identity, tmux
|
|
102
|
+
snapshot and shutdown fixes. A local candidate does not establish publication.
|
|
103
|
+
|
|
104
|
+
### Highlights
|
|
98
105
|
|
|
99
|
-
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
native runtime also survives Web-runtime shutdown; explicitly closing its
|
|
116
|
-
worker terminates that worker. Web-owned App Server executors remain owned
|
|
117
|
-
by their Web runtime.
|
|
118
|
-
- Saved-session resume creates a newly owned provider connection and requires
|
|
119
|
-
the prior owner to be confirmed stopped. It does not migrate an arbitrary
|
|
120
|
-
live TUI or desktop process, and uncertain owners remain protected.
|
|
121
|
-
- Existing schema v7, Runtime API v2 and provider authentication boundaries
|
|
122
|
-
continue to apply. Browser control handoff never approves a provider operation
|
|
123
|
-
by itself. Persisted macOS identities using the older boot-token format remain
|
|
124
|
-
unknown across the format transition, rather than being treated as confirmed
|
|
125
|
-
dead.
|
|
106
|
+
- Create Codex, Claude and DeepSeek Harness background Agents from one Web form;
|
|
107
|
+
save project defaults without changing provider credentials or global settings.
|
|
108
|
+
- Read HCC-retained native events and resume explicitly closed workers with
|
|
109
|
+
owner, session and working-directory identity checks.
|
|
110
|
+
- Upload new project files up to 10 MiB and edit complete UTF-8 text up to 1 MiB,
|
|
111
|
+
with revision conflicts, preserved drafts and explicit uncertain-write readback.
|
|
112
|
+
- Bind browser project requests and drafts to the selected directory identity.
|
|
113
|
+
- Preserve native Web connections and control tokens when background discovery
|
|
114
|
+
overlaps Agent creation or history restore; discard stale discovery results.
|
|
115
|
+
- Recheck provider initialization before rejecting an older snapshot with no
|
|
116
|
+
session ID, and retain exact project file matches when a wider search times out.
|
|
117
|
+
- Stop admitting background scans as soon as an administrator stop is accepted,
|
|
118
|
+
and begin cleanup after its HTTP response finishes or closes. Keep existing
|
|
119
|
+
process identity checks, exit confirmation deadlines and independent workers.
|
|
120
|
+
- Keep the existing terminal/App Server modes, readonly previews and bounded
|
|
121
|
+
reconnect behavior.
|
|
126
122
|
|
|
127
123
|
### Validation
|
|
128
124
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
125
|
+
The candidate is checked with the full source regression suite, a disposable
|
|
126
|
+
npm installation and desktop/narrow browser flows. Real-provider entry and
|
|
127
|
+
history checks have separate receipts. These checks do not establish a public
|
|
128
|
+
release, a global installation upgrade or real business acceptance.
|
|
129
|
+
|
|
130
|
+
## 1.0.5
|
|
131
|
+
|
|
132
|
+
### Summary
|
|
133
|
+
|
|
134
|
+
macOS process identities use the kernel boot session UUID so changes to the
|
|
135
|
+
reported boot time cannot make a running process appear to have been replaced.
|
|
136
|
+
The issue was observed during post-release sustained acceptance of 1.0.4.
|
|
137
|
+
|
|
138
|
+
### Highlights
|
|
139
|
+
|
|
140
|
+
- Preserve process identity across changes to the wall-clock-derived boot time.
|
|
141
|
+
- Keep live processes with an older Darwin identity format protected while their
|
|
142
|
+
ownership cannot be compared; a format change does not prove that an owner exited.
|
|
143
|
+
- Retain strict process state, start time and zombie checks, with unknown results
|
|
144
|
+
when a stable boot session identifier cannot be read.
|
|
145
|
+
- Keep the existing npm `latest` release channel.
|
|
146
|
+
- Confirm the original local runtime has exited when its stop response is lost,
|
|
147
|
+
while preserving unknown owners and replacement runtime pointers.
|
|
148
|
+
- Retain structured shutdown error codes when Node warnings share stderr.
|
|
149
|
+
|
|
150
|
+
### Validation
|
|
151
|
+
|
|
152
|
+
Targeted regression tests cover boot identity drift, boot-session changes,
|
|
153
|
+
malformed observations and conservative handling of existing runtime ownership.
|
|
154
|
+
Full source, package, current-device and sustained-run validation are recorded
|
|
155
|
+
separately. The interrupted 1.0.4 sustained run remains a failed attempt.
|
|
156
|
+
The first 1.0.5 candidate passed the current-Mac sustained check; a subsequent
|
|
157
|
+
CI transport timeout exposed the separate stop-confirmation failure. Its
|
|
158
|
+
targeted verification and replacement candidate retain separate evidence.
|
|
159
|
+
|
|
160
|
+
Existing processes keep the implementation they started with. Quit and reopen
|
|
161
|
+
Harness normally to activate the update. An older active owned runtime should
|
|
162
|
+
finish and stop normally before it is reclaimed; do not force takeover based
|
|
163
|
+
on an incompatible identity marker.
|
|
164
|
+
|
|
165
|
+
## 1.0.4
|
|
166
|
+
|
|
167
|
+
### Summary
|
|
168
|
+
|
|
169
|
+
Session lists no longer run synchronous tmux client probes for each displayed
|
|
170
|
+
terminal. A bounded asynchronous snapshot supplies display information while
|
|
171
|
+
live process and terminal observations continue to guard control actions.
|
|
172
|
+
|
|
173
|
+
### Highlights
|
|
174
|
+
|
|
175
|
+
- Share one short-lived tmux display snapshot across sessions. Cold, stale or
|
|
176
|
+
failed observations remain unknown, and pending probes stop with the runtime.
|
|
177
|
+
- Preserve live checks for terminal control, rebind, stop and ownership.
|
|
178
|
+
- Treat exited macOS zombie processes as dead, so shutdown waits can complete
|
|
179
|
+
while a parent has yet to reap the PID; malformed observations remain unknown.
|
|
180
|
+
- Include the HTTP method, request path, deadline and elapsed time in runtime
|
|
181
|
+
request failures, without request bodies, query parameters or credentials.
|
|
182
|
+
- Keep DeepSeek Harness on the existing npm `latest` channel.
|
|
183
|
+
|
|
184
|
+
### Validation
|
|
185
|
+
|
|
186
|
+
Targeted tests cover slow probes, stale and failed snapshots, refresh coalescing,
|
|
187
|
+
shutdown and request diagnostics. Full regression, official installed Harness,
|
|
188
|
+
registry readback and current-Mac model checks have separate verification records.
|
|
189
|
+
The earlier 1.0.3 macOS CI timeout remains historical evidence: removing a known
|
|
190
|
+
blocking path does not identify the specific cause of that earlier timeout.
|
|
191
|
+
Regression shutdown tracks the exact fixture process identity, distinguishes
|
|
192
|
+
reused PIDs and zombies, and retains bounded failure diagnostics before cleanup.
|
|
193
|
+
|
|
194
|
+
## 1.0.3
|
|
195
|
+
|
|
196
|
+
### Summary
|
|
197
|
+
|
|
198
|
+
This maintenance release keeps DeepSeek Harness on the normal npm `latest`
|
|
199
|
+
channel and repairs the CLI, native-session and Web regressions identified while
|
|
200
|
+
archiving 1.0.2. It retains the verified Cordis cleanup and recovery behavior.
|
|
201
|
+
|
|
202
|
+
### Highlights
|
|
203
|
+
|
|
204
|
+
- Preserve provider process identity during registration and discovery; update
|
|
205
|
+
owned hooks without discarding unrelated hooks or damaged user configuration.
|
|
206
|
+
- Keep explicit hook database routing and quote generated terminal arguments.
|
|
207
|
+
- Preserve the recorded origin of native submissions across restarts; peer
|
|
208
|
+
messages cannot gain local-user authority from their sender name or text.
|
|
209
|
+
- Keep managed state directories and database files private without replacing
|
|
210
|
+
existing data or changing external database parent permissions. Terminal stream
|
|
211
|
+
buffers follow each session's project.
|
|
212
|
+
- Bound streaming updates and long-message rendering while preserving complete
|
|
213
|
+
copied content, reader position, approval details and session ownership checks.
|
|
214
|
+
- Isolate request parsing failures, retain local/proxy access contracts, serialize
|
|
215
|
+
Web startup and resolve terminal assets with npm dependency hoisting.
|
|
216
|
+
- Native runtime ownership uses alternate ports for identifiable unrelated local
|
|
217
|
+
listeners while keeping one owner per project. Silent or legacy listeners are
|
|
218
|
+
rejected conservatively, and ownership remains until shutdown completes.
|
|
219
|
+
|
|
220
|
+
### Validation
|
|
221
|
+
|
|
222
|
+
The full restored regression suite and the installed official Harness package
|
|
223
|
+
checks run against this composed release. The frozen file manifest and verification
|
|
224
|
+
record live under `docs/verification/`; those source-only records are excluded
|
|
225
|
+
from the npm package. Publication, current-device activation and real-model
|
|
226
|
+
acceptance are recorded separately from source and CI checks.
|
|
227
|
+
|
|
228
|
+
## 1.0.2
|
|
229
|
+
|
|
230
|
+
### Summary
|
|
231
|
+
|
|
232
|
+
DeepSeek Harness now joins hello-cc through project hooks, a Cordis collaboration
|
|
233
|
+
bundle, and owned ACP workers. This release promotes the runtime verified in
|
|
234
|
+
`1.0.2-dsh.3` to the normal npm `latest` channel. Runtime code is unchanged from
|
|
235
|
+
that candidate; version metadata and release documentation identify this release.
|
|
236
|
+
|
|
237
|
+
### Highlights
|
|
238
|
+
|
|
239
|
+
- Harness Agents use their exact session and project identity for task, message,
|
|
240
|
+
lock, result, and handoff operations. Context acknowledgements follow committed
|
|
241
|
+
model input, and permission decisions retain the Harness policy chain.
|
|
242
|
+
- Owned ACP workers support queued prompts, scoped MCP tools, approvals,
|
|
243
|
+
interruption, session resume, and shutdown through the CLI and Web interface.
|
|
244
|
+
- Managed project configuration migrates verified paths from source checkouts to
|
|
245
|
+
installed packages while preserving user edits.
|
|
246
|
+
- Cordis sessions recover after a verified owner process exits; transient
|
|
247
|
+
database failures during retirement remain retryable while old tool authority
|
|
248
|
+
is revoked immediately.
|
|
249
|
+
- Node.js 24+ and official Harness `0.2.0-rc.2` are required. Supported hosts are
|
|
250
|
+
macOS and Linux; Windows uses WSL. Native Windows shells are not supported.
|
|
251
|
+
|
|
252
|
+
### Validation
|
|
135
253
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
254
|
+
The byte-identical preview runtime passed macOS real-model installation checks
|
|
255
|
+
(11), Linux container installation and deterministic collaboration checks (8 + 7),
|
|
256
|
+
and frozen-package recovery tests (17). Its registry download and all 216
|
|
257
|
+
installed files matched the candidate. This stable package receives independent
|
|
258
|
+
release, installation, and registry readback checks. Other-device and genuine
|
|
259
|
+
business acceptance remain separate stages.
|
|
139
260
|
|
|
140
261
|
## 1.0.2-dsh.3
|
|
141
262
|
|
package/README.md
CHANGED
|
@@ -43,20 +43,11 @@ grace. `hcc gc` retains history unless `--history` is explicit. `--tls` encrypts
|
|
|
43
43
|
the console; `--trust-proxy` requires a fixed `--proxy-origin`. Two risks remain
|
|
44
44
|
intentional: the default listener is plaintext HTTP on `0.0.0.0` for trusted
|
|
45
45
|
LANs, and an authenticated browser may select any existing server directory.
|
|
46
|
-
Managed `.hello-cc` state is private to the current OS user. Keep project roots
|
|
47
|
-
behind cross-user-stable paths for project-local storage. For a root that
|
|
48
|
-
another OS user could replace, hello-cc stores managed state under
|
|
49
|
-
`~/.hello-cc/projects/<root-hash>/` instead. An existing project-local state
|
|
50
|
-
must be migrated explicitly while every old writer is stopped:
|
|
51
|
-
`hcc --root DIR migrate-state --offline --yes`. Migration keeps the original
|
|
52
|
-
directory for recovery. If you set `--db` or `HCC_DB` outside managed state,
|
|
53
|
-
secure that database and its parent directory yourself.
|
|
54
46
|
|
|
55
47
|
## Highlights
|
|
56
48
|
|
|
57
49
|
- **Shared project memory**: peers, tasks, messages, locks, handoffs, and
|
|
58
|
-
events are stored in
|
|
59
|
-
roots, otherwise under the current user's home directory).
|
|
50
|
+
events are stored in `<project>/.hello-cc/mesh.db`.
|
|
60
51
|
- **Real terminal control**: Web attaches to the same local tmux pane as your
|
|
61
52
|
terminal, not a separate browser-only shell.
|
|
62
53
|
- **Claude/Codex awareness**: hooks inject live `hcc` state before model turns,
|
package/README.zh-CN.md
CHANGED
|
@@ -37,17 +37,10 @@ unknown 证据获得最长 120 秒宽限。`hcc gc` 默认保留历史,必须
|
|
|
37
37
|
`--history`。`--tls` 提供传输加密;`--trust-proxy` 必须固定
|
|
38
38
|
`--proxy-origin`。两项风险是有意保留的:默认在可信内网以明文 HTTP 监听
|
|
39
39
|
`0.0.0.0`,且已认证浏览器可以选择服务器上任意已存在目录。
|
|
40
|
-
默认的 `.hello-cc` 状态目录仅允许当前系统用户访问。不要把项目根目录放在
|
|
41
|
-
不可信系统用户可写的位置;如果其他系统用户可替换项目路径,受管状态会改存于
|
|
42
|
-
`~/.hello-cc/projects/<项目根路径哈希>/`。已有项目本地状态不会自动丢弃或迁移:
|
|
43
|
-
先停止所有旧进程及外部数据库写入者,再运行
|
|
44
|
-
`hcc --root 目录 migrate-state --offline --yes`;原目录保留供恢复。
|
|
45
|
-
若通过 `--db` 或 `HCC_DB` 将数据库放在受管状态目录之外,请自行保护数据库及其
|
|
46
|
-
父目录的权限。
|
|
47
40
|
|
|
48
41
|
## 特色
|
|
49
42
|
|
|
50
|
-
-
|
|
43
|
+
- **项目本地共享状态**:peers、tasks、messages、locks、handoffs 和 events 写入 `<project>/.hello-cc/mesh.db`。
|
|
51
44
|
- **Web 控制真实终端**:浏览器 attach 到和本地终端相同的 tmux pane,不是浏览器里另开的临时 shell。
|
|
52
45
|
- **Claude/Codex 感知项目状态**:hooks 会在模型回答前注入实时 `hcc` 状态。
|
|
53
46
|
- **减少编辑冲突**:通过 advisory lock 和 handoff 显式协调多 agent 修改。
|
|
@@ -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
|
@@ -14,36 +14,12 @@ authenticated access to any existing server directory are accepted risks.
|
|
|
14
14
|
|
|
15
15
|
```text
|
|
16
16
|
hcc update [--tag TAG] [--registry URL] [--dry-run]
|
|
17
|
-
hcc --root DIR migrate-state --offline --yes
|
|
18
17
|
hcc uninstall [--purge --yes]
|
|
19
18
|
```
|
|
20
19
|
|
|
21
|
-
`hcc update` updates the global npm install.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
offline migration: stop all hello-cc and external writers first, then run
|
|
25
|
-
`migrate-state --offline --yes`. It copies SQLite snapshots (including WAL
|
|
26
|
-
contents) and other validated state, keeps the old directory untouched, and
|
|
27
|
-
rebuilds managed DSH path-bound configuration. Do not restart an old writer
|
|
28
|
-
against the retained directory. `hcc uninstall` removes local hooks, shims,
|
|
29
|
-
and the shell PATH entry; add `--purge --yes` only when you also want to remove
|
|
30
|
-
the selected current project's managed data and guidance blocks. A retained
|
|
31
|
-
legacy migration source is not deleted by purge.
|
|
32
|
-
Private-state creation and purge leave a durable authority marker so a retained
|
|
33
|
-
or newly written project-local database cannot silently become active again.
|
|
34
|
-
After purge, a remaining legacy directory still requires an explicit offline
|
|
35
|
-
`migrate-state --offline --yes`; if no legacy directory remains, a fresh `init`
|
|
36
|
-
creates new private state. If a private store disappears without an explicit
|
|
37
|
-
purge, restore it from backup or use `uninstall --purge --yes` to deliberately
|
|
38
|
-
discard the missing state before starting fresh.
|
|
39
|
-
An interrupted private purge stays marked `purging`; normal access fails closed.
|
|
40
|
-
After confirming old writers are stopped, repeat `uninstall --purge --yes` to
|
|
41
|
-
finish deleting that private store. If the project root is replaced by a new
|
|
42
|
-
directory at the same path, its inode no longer matches the old private binding.
|
|
43
|
-
The CLI intentionally refuses automatic purge or rebinding: preserve and back
|
|
44
|
-
up both the old private store and its `.authority.json` marker, stop all writers,
|
|
45
|
-
and have an operator compare the old and new root identities before a manual
|
|
46
|
-
recovery. Do not delete the marker alone or point the new root at the old data.
|
|
20
|
+
`hcc update` updates the global npm install. `hcc uninstall` removes local
|
|
21
|
+
hooks, shims, and the shell PATH entry; add `--purge --yes` only when you also want to remove the
|
|
22
|
+
current project's `.hello-cc` data and guidance blocks.
|
|
47
23
|
|
|
48
24
|
## Read-only Diagnostics
|
|
49
25
|
|
|
@@ -78,9 +54,18 @@ Use `--local` to bind only `127.0.0.1`, `--token` or `HCC_WEB_TOKEN` to set an
|
|
|
78
54
|
explicit token, `HCC_RUNTIME_CA` to trust a private HTTPS Runtime API CA, and
|
|
79
55
|
`--no-token` only in trusted local/test environments. Use `hcc up` only when you
|
|
80
56
|
want coordination without the Web console or shims. Provider shims only join
|
|
81
|
-
projects with a
|
|
57
|
+
projects with a local `.hello-cc/runtime.json` from `hcc web`; they do not use a
|
|
82
58
|
global runtime to manage arbitrary directories.
|
|
83
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
|
+
|
|
84
69
|
## Native Workers
|
|
85
70
|
|
|
86
71
|
```text
|
package/docs/commands.zh-CN.md
CHANGED
|
@@ -12,28 +12,12 @@ unknown 证据获得 120 秒宽限;历史清理必须显式使用 `gc --histor
|
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
14
|
hcc update [--tag TAG] [--registry URL] [--dry-run]
|
|
15
|
-
hcc --root 目录 migrate-state --offline --yes
|
|
16
15
|
hcc uninstall [--purge --yes]
|
|
17
16
|
```
|
|
18
17
|
|
|
19
|
-
`hcc update` 更新全局 npm
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
迁移会复制包含 WAL 内容的 SQLite 快照和其他经检查的状态,保留原目录,
|
|
23
|
-
并重建由 hello-cc 管理且绑定旧绝对路径的 DSH 配置。不要让旧版写入者继续写原目录。
|
|
24
|
-
`hcc uninstall` 移除本机 hooks、shims 和 shell PATH 配置;只有在确定也要删除
|
|
25
|
-
当前项目选定的受管数据和指导块时,才加 `--purge --yes`。迁移后保留的旧目录
|
|
26
|
-
不会被 purge 删除。
|
|
27
|
-
新建或 purge 私有数据后仍保留持久的权威标记,防止保留或后来写入的项目本地数据库
|
|
28
|
-
自动重新生效。purge 后若旧目录仍在,必须停止所有旧写入者并显式执行
|
|
29
|
-
`migrate-state --offline --yes`;若旧目录已不存在,可重新运行 `init` 创建新的私有
|
|
30
|
-
状态。如果私有目录未经 purge 就丢失,请从备份恢复,或通过
|
|
31
|
-
`uninstall --purge --yes` 明确放弃已丢失的状态后重新初始化。
|
|
32
|
-
私有状态的 purge 若中断,会保留 `purging` 标记并拒绝正常访问。确认旧写入者均已停止后,
|
|
33
|
-
再次运行 `uninstall --purge --yes` 完成删除。若项目根目录在同一路径被新目录替换,
|
|
34
|
-
新 inode 与旧私有绑定不符;CLI 会拒绝自动 purge 或重绑。请先保留并备份旧私有状态目录
|
|
35
|
-
及其 `.authority.json` 标记,停止所有写入者,由管理员核对新旧根目录身份后再人工恢复。
|
|
36
|
-
不要只删除标记,也不要让新根目录直接使用旧数据。
|
|
18
|
+
`hcc update` 更新全局 npm 安装。`hcc uninstall` 移除本机 hooks、shims 和 shell PATH 配置;
|
|
19
|
+
只有在确定也要删除当前项目的 `.hello-cc` 数据和指导块时,才加
|
|
20
|
+
`--purge --yes`。
|
|
37
21
|
|
|
38
22
|
## 只读诊断
|
|
39
23
|
|
|
@@ -64,9 +48,16 @@ runtime 生成 URL token。用 `--local` 可只绑定 `127.0.0.1`,用 `--token
|
|
|
64
48
|
`HCC_WEB_TOKEN` 可设置显式 token;私有 HTTPS Runtime API CA 用
|
|
65
49
|
`HCC_RUNTIME_CA` 指定。只有在可信本地/测试环境才使用 `--no-token`。
|
|
66
50
|
只想使用本地协作、不需要 Web 或 shims 时,再使用 `hcc up`。provider shim 只会加入
|
|
67
|
-
已经由 `hcc web`
|
|
51
|
+
已经由 `hcc web` 生成本地 `.hello-cc/runtime.json` 的项目,不会使用全局 runtime
|
|
68
52
|
去管理任意目录。
|
|
69
53
|
|
|
54
|
+
同一浏览器可以登录同一主机上不同监听端口的多个 Web 实例,刷新或退出其中
|
|
55
|
+
一个不会覆盖另一个的登录。Cookie 按协议与实际监听端口命名;可信反向代理
|
|
56
|
+
使用固定 `--proxy-origin` 的协议与端口。升级后需重新登录,旧版 Cookie 不会
|
|
57
|
+
被复用或清除。这用于避免实例间的意外覆盖,不是浏览器安全隔离边界。
|
|
58
|
+
若多个 SSH 隧道把相同的远端监听端口映射到不同本地端口,应使用独立浏览器
|
|
59
|
+
配置文件或不同主机名;服务端无法从直连配置识别此端口映射。
|
|
60
|
+
|
|
70
61
|
## Native 后台 worker
|
|
71
62
|
|
|
72
63
|
```text
|