Commit Graph
364 Commits
Author SHA1 Message Date
winewill c22b226b18 fix: address review threads on the fatal-diagnostics PR
- Agent Notes: cross-link the new decision with the native fatal recovery
  and fail-loud release notes both ways, rewrite the older note's
  console-retention and dialog-detail facts in place, and state the report's
  actual bounds.
- crash-report: cut the rendered error section at 256 KiB and prune only
  files matching the generated crash-<time>-<source>.log syntax.
- main: backendReady follows the backend state except during shutdown, so a
  failure while tearing down a ready backend still reads as running.
- subprocess-local: the temporary-file-cleaner hint is appended only for
  ENOENT; other codes rely on the appended error.
- client-modules: describeError is module-private; BootModuleRow.url's
  JSDoc names its fallback role.
2026-09-22 18:20:12 +08:00
winewill cafb9b93b4 fix: address adversarial review of the fatal-diagnostics branch
client-modules: a batch that already executed is never requested again,
even when its first importer was a row it did register — every executed
batch URL is remembered and a still-missing row goes straight to its
one-resource URL. The in-process module system test in test-support is
updated to the aggregated arrival message. describeError replaces three
inline non-Error ternaries and is covered.

subprocess-local: the spill path is published only after the exclusive
open succeeds, so a failed open (EEXIST on a planted entry included) can no
longer unlink a path this process did not create; a reporter that throws is
contained and written to stderr; logSpillFailure builds the owner reporter
for both the runtime and the SSH helper so the logging path is exercised
once instead of duplicated. Tests cover the runtime logger, the bare-caller
stderr default, EEXIST, and a throwing reporter.

desktop: a fatal failure during shutdown still writes its report; the
report phase follows the backend state so a failure during a restart is
'startup' again; writeReport is a required recovery operation and the
dialog tests await the write; the shell pid is labelled; the withheld
response-header list states why set-cookie is dropped.

app-boot, READMEs, Agent Note: "never resumes" is restated as control never
returning to the failed operation while the loop runs until release
settles; inspect output is bounded; incident inferences (who removed the
spill directory, which batch failure occurred) are written as inferences.
2026-09-22 14:41:10 +08:00
winewill cfa84ed4e3 fix(subprocess-local): contain spill file failures instead of killing the host
OutputCollector.spillAll ran openSync/writeSync inside the stream 'data'
listener with no containment. When the private per-process spill directory
had been removed by a temporary-file cleaner, the first overflowing chunk
threw ENOENT from Pipe.onStreamRead, became an uncaught exception in the
Desktop Host, and the Electron shell reported it as a fatal failure.

Spilling is best-effort by contract (spillPath is optional; a failed final
close already withholds it). Every filesystem failure while opening or
appending the spill file now discards the spill, reports once through the
owner's logger, and leaves in-memory collection untouched. Spill inputs move
into one SpillOptions object with the reporter, so tail-only collectors no
longer pass an empty directory; prepareManagedProcessBinding is the explicit
resolve step for the directory and reporter defaults, and the runtime and
SSH helper supply their plugin loggers.

Tests cover ENOENT on open (removed directory), ENOTDIR on open, and ENOSPC
on append after the file exists, asserting the tail stays byte-exact, the
spill file is withdrawn, and the reporter fires once.
2026-09-22 12:40:07 +08:00
turtle1999 112ce776ac release(dsh): 0.1.7-alpha.1 2026-09-22 11:59:16 +08:00
Tianyi Cui 580bdc7258 refactor: remove redundant unknown casts 2026-09-19 20:13:58 +08:00
Tianyi Cui d66b21894c merge: integrate latest master into session-log-v4
Merge master 62b700bba7bb71e66d2d5a3b850ba8f4dd0fd6b4 into release/session-log-v4 at 4825bc01a999f564e79172a6af28e34fc757c540. Preserve this pinned integration checkpoint before any later upstream movement so the dependent session-format repairs have an immutable rebase base.

Keep release projection-backed child catalogs, independent Session references, exact fork behavior, V4 writer, and existing migration data. Adapt the incoming subagent sidebar chat to refreshProjections rather than the removed dedicated catalog API, preserve title projections in complete projection fixtures, and retain both sidebar actions and release lineage/status behavior. Remove the duplicate SessionProjectionMap import introduced by automatic merging.

Preserve both disjoint archive seals without changing any existing hash. Regenerate current Cordis and documentation catalogs from the combined source, retaining release session methods plus master slot factories. The frozen V0-V3 runtime paths are unchanged. Initial validation passed the full build, 93 focused Client tests, and all 1905 archived artifact seals; remaining integration and snapshot checks follow on this checkpoint.
2026-09-17 23:23:48 +08:00
creatixchu 6b1808f432 release(dsh): 0.1.6-alpha.2 2026-09-17 21:11:19 +08:00
Dudu-0223 453348fcef Merge remote-tracking branch 'origin/master' into codex/issue-3997-citations
# Conflicts:
#	packages/client/ui-deliverables/README.i18n.yaml
#	packages/client/ui-deliverables/README.md
#	packages/client/ui-deliverables/README.zh.md
2026-09-17 10:33:22 +08:00
Tianyi Cui 0a1e2691ab merge: integrate master into session-log-v4 2026-09-17 00:12:27 +08:00
Tianyi Cui 1ccef293fa fix(tests): keep Windows Job fixture cleanup with its owner 2026-09-16 23:29:08 +08:00
07akioni f8b1309fe5 fix(subprocess): hide Windows shell console windows at creation 2026-09-16 18:56:39 +08:00
Dudu-0223 8040a599ac Merge origin/master into issue-3997-markdown-file-links 2026-09-16 13:29:27 +08:00
Dudu-0223 cc872a39b9 test(subprocess): verify owned exit listeners on disposal 2026-09-15 16:39:42 +08:00
Yichen Jiang 149ed69912 test(subprocess-local): cover configured ZDOTDIR without zsh 2026-09-15 13:08:03 +08:00
Yichen Jiang ad8a00c291 Merge remote-tracking branch 'origin/master' into worktree/sidebar-session-recovery
# Conflicts:
#	packages/subprocess/subprocess-local/src/index.ts
2026-09-15 12:15:20 +08:00
Yichen Jiang 281723bed8 fix(web): isolate terminal bindings and validate saved layouts 2026-09-15 12:07:01 +08:00
imccyu 232ab768a9 perf(runtime): defer optional native dependencies 2026-09-15 11:06:43 +08:00
Yichen Jiang ccd6121c99 Merge remote-tracking branch 'origin/master' into worktree/sidebar-session-recovery
# Conflicts:
#	apps/web/tests/sidebar-terminal.e2e.ts
#	packages/client/ui-sidebar-terminal/src/client/TerminalBody.module.css
2026-09-15 10:29:08 +08:00
Yichen Jiang b25c5ad82e feat(web): restore sidebar layouts and reclaim unattended terminals 2026-09-15 10:27:44 +08:00
creatixchu ea53423b60 release(dsh): 0.1.6-alpha.1 2026-09-15 09:35:57 +08:00
creatixchu 0eb87a4590 test: fix upload expectations and exited process cleanup 2026-09-14 21:34:38 +08:00
Yichen Jiang 444c801718 Merge pull request #3864 from deepseek-harness/worktree/web-sidebar-terminal
feat(web): add interactive sidebar terminals
2026-09-14 13:47:12 +08:00
Yichen Jiang 1b7b50bbe1 Merge remote-tracking branch 'origin/master' into worktree/web-sidebar-terminal
# Conflicts:
#	apps/web/package.json
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/api/remotes/src/client/index.ts
#	packages/e2b/subprocess-e2b/README.md
#	packages/e2b/subprocess-e2b/README.zh.md
#	packages/e2b/subprocess-e2b/src/index.ts
#	packages/e2b/subprocess-e2b/src/terminal.ts
#	packages/e2b/subprocess-e2b/tests/subprocess.spec.ts
#	packages/e2b/subprocess-e2b/tests/terminal.spec.ts
#	packages/mcp/mcp-resources/README.i18n.yaml
#	pnpm-lock.yaml
#	scripts/verify-package-readme-model-experience.ts
#	snapshots/session/cordis-inspect-jsdoc/session.v3.jsonl
#	tsconfig.base.json
#	tsconfig.client.json
#	tsconfig.host.json
2026-09-14 10:36:31 +08:00
turtle1999 c8370240a8 test(ci): pin gallery time and dispose projection cache fixtures 2026-09-13 00:42:12 +08:00
turtle1999 d9ec28ed3b Merge branch 'master' of https://github.com/deepseek-harness/deepseek-harness into turtle/master-ci-platform-tests 2026-09-13 00:37:52 +08:00
Tianyi Cui dd55f38614 docs(subprocess): record signal error isolation and fixture safety 2026-09-12 19:44:51 +08:00
Tianyi Cui 71334b9c78 fix(subprocess): preserve direct outcomes on signal failure 2026-09-12 19:14:34 +08:00
Tianyi Cui c07df5aa65 fix(subprocess): confirm direct SIGKILL after group delivery 2026-09-12 18:49:15 +08:00
Tianyi Cui 4b99ace8fb fix(subprocess): await direct fallback settlement before scope failure 2026-09-12 17:55:53 +08:00
turtle1999 fabbcf8c76 test(ci): cover control requests and fix cross-volume fixtures 2026-09-12 17:38:12 +08:00
Tianyi Cui 561bfc3bbb fix(ssh): join authenticated stream teardown and validate package closure 2026-09-12 15:03:03 +08:00
Tianyi Cui abb7c6a49d fix(ssh): join transport cleanup and preserve collected output 2026-09-12 15:03:03 +08:00
Tianyi Cui 4fb0fdac68 feat(ssh): checkpoint POSIX helper and remote providers 2026-09-12 15:03:03 +08:00
Tianyi Cui e53c526320 test(subprocess): cover retained control endpoint teardown 2026-09-12 15:03:01 +08:00
Tianyi Cui f5ef951ec5 test(subprocess): type rejected lifecycle results as unknown 2026-09-12 15:03:01 +08:00
Tianyi Cui 562e7f364e fix(subprocess): await control endpoint closure during disposal 2026-09-12 15:03:01 +08:00
Tianyi Cui 838da1d07e fix(subprocess): separate process quiescence from caller control streams 2026-09-12 15:03:01 +08:00
Tianyi Cui 96e12ddaf4 test(subprocess): cover source-only control launches and refresh generated references 2026-09-12 15:03:01 +08:00
Tianyi Cui 83a45679df fix(subprocess): create control carriers for overlapped Windows I/O 2026-09-12 15:03:00 +08:00
Tianyi Cui 63d462f28b test(subprocess): cover control disposal and runner forwarding 2026-09-12 15:03:00 +08:00
Tianyi Cui 1e5259c463 test(subprocess): type binary reads and native test spies precisely 2026-09-12 15:03:00 +08:00
Tianyi Cui 3ccb898cd5 test(subprocess): close control endpoint after the write callback 2026-09-12 15:03:00 +08:00
Tianyi Cui b9dfb8da1c test(subprocess): verify control inheritance and document channel ownership 2026-09-12 15:03:00 +08:00
Tianyi Cui d8efd4f8cd feat(subprocess): carry a duplex control pipe through managed launches 2026-09-12 15:03:00 +08:00
Tianyi Cui c49db8bc8c refactor(e2b): retire remote execution providers 2026-09-11 22:12:55 +08:00
Dudu-0223 dafff8e51c fix(subprocess): settle consumed empty scopes before exit notification 2026-09-11 17:05:15 +08:00
turtle1999 18a1955b7e fix(ci): handle scope termination races and cyclic process snapshots 2026-09-11 14:50:46 +08:00
Yichen Jiang 59f2e3be33 Merge release/dsh-0.1.5 version 0.1.5-rc.2 into master sync branch 2026-09-10 21:53:53 +08:00
Yichen Jiang a305303422 release(dsh): 0.1.5-rc.2 2026-09-10 21:38:20 +08:00
turtle1999 989b3d4390 Merge hosted-image test fixes for Blacksmith CI 2026-09-10 17:53:36 +08:00