Commit Graph
16488 Commits
Author SHA1 Message Date
lsdsjy 40dc25fe1d Merge remote-tracking branch 'origin/master' into HEAD 2026-09-10 17:32:26 +08:00
lsdsjy 6d05765405 refactor(headless): keep the startup process seam out of the public entry
Address the Code Entropy finding on f67d722243: the `./startup` entry exported
`internals` only so tests could substitute process facts, which added avoidable
package API. Move the seam to `src/startup-internals.ts`, which no package
export names, and have the provider and its tests import it from there.
2026-09-10 17:29:15 +08:00
imccyu 25d554d46e Merge pull request #3650 from deepseek-harness/worktree-feqatest
feat(test-support): whole-client test tier over an endpoint-named Remote mock
2026-09-10 16:58:13 +08:00
07akioni 6fc0064b70 Merge pull request #3914 from deepseek-harness/fix/bundle-speed
perf(desktop): 优化运行时打包、启动及错误恢复
2026-09-10 16:54:32 +08:00
lsdsjy 9b330b653f docs(headless): correct the adopt-only wording and lockfile attribution
Address the ds-review-bot suggestions on 4099b84ee8:

- The post-resume comment scopes the write lease to other processes, so it no
  longer contradicts the post-idle re-check that defends against a same-process
  overlay writer.
- The Agent Note attributes `pnpm-lock.yaml` to the new
  `@deepseek-ai/dsh-session-query` workspace link instead of the shared chunk,
  which `scripts/check-workspace-constraints.ts` and the manifest publish.
- The package summary keeps "leaves nothing running behind", so it does not
  imply the runner leaves no persisted Session behind.
2026-09-10 16:52:43 +08:00
lsdsjy ef34e9d888 Merge remote-tracking branch 'origin/master' into turtle/issue-3848-headless-machine-readable-run 2026-09-10 16:42:31 +08:00
imccyu f74ca1e266 fix(remote-mock): abort stream handle on consumer return 2026-09-10 16:34:32 +08:00
imccyu 4ffc774e5c test(settings): exercise settings through the whole-client fixture 2026-09-10 16:34:31 +08:00
imccyu d58c5455dd test(api): migrate Session and Workspace specs to assembled clients 2026-09-10 16:34:30 +08:00
imccyu 627c0f741e feat(test-support): assemble real clients with native test fixtures 2026-09-10 16:34:29 +08:00
imccyu 48d83eca66 refactor(client): share boot and transport integration points 2026-09-10 16:34:28 +08:00
imccyu 3d6fa12a6d feat(remote-mock): expose typed native mocks and controlled streams 2026-09-10 16:34:27 +08:00
imccyu 0718711886 docs(testing): define the native-mock client assembly tier 2026-09-10 16:34:27 +08:00
CreatixChu 8f85739d7b Merge pull request #3745 from deepseek-harness/worktree/composer-plus-menu
optimize: inputbar slash group and locale
2026-09-10 16:31:39 +08:00
lsdsjy 31be030ccc fix(headless): keep --json stderr free of commander's error print
Address the ds-review-bot findings on 8724223621:

- The JSON error override throws commander's control-flow error instead of
  delegating to `program.error`, whose own printer wrote an unprefixed
  `error: …` line to stderr and broke the documented `--json` contract.
- Cover the post-idle adoptability re-check with a focused case: an overlay that
  appends a preset while the runner awaits idle is still rejected, and the stale
  "live Session" comment now names that residual writer.
- Scope the Agent Note change sentence to the product change so it no longer
  claims the whole patch is confined to one package.
2026-09-10 16:25:19 +08:00
07akioni ae7462c526 test: clarify live SDK smoke completion acknowledgement 2026-09-10 16:13:54 +08:00
lsdsjy f63fdd89f4 Merge pull request #3889 from deepseek-harness/turn-duration-hours-unit
feat(web): add hours to turn duration labels
2026-09-10 16:12:36 +08:00
lsdsjy 9098a58f94 refactor(loader-smoke): model the smoke cwd as a discriminated input
Address the review suggestion that a caller-provided `cwd` left
`tempDirPrefix`/`tempDirParent` as dead but still-required inputs. The options
are now a union of "expand a prefix into a fresh temporary cwd" and "reuse this
existing directory", so the type system rejects passing both; the two callers
that reuse a directory drop their unused prefix.
2026-09-10 16:03:46 +08:00
lsdsjy 8d56babe15 Merge remote-tracking branch 'origin/master' into turtle/issue-3848-headless-machine-readable-run 2026-09-10 16:01:12 +08:00
lsdsjy 9bcb1e214c fix(headless): refuse a live Agent identity and finish the adopt-only docs
Address the ds-review-bot findings on 472554a29e:

- resolveAgent refuses an Agent already live under the requested id: its owner
  may still drive it, and `whenIdle` is not a single-message signal, so the
  one-shot runner cannot own an exclusive run interval over it. The adoptability
  rules still run first so the refusal stays specific.
- Refresh the README intro, identity section, and limitations, and the Agent
  Note live-identity rule and change scope, for adopt-only.
- Clarify the loader-smoke `cwd` JSDoc (the prefix/parent inputs are ignored)
  and pin the resumed wake's final text in the two-wake e2e.
2026-09-10 16:00:53 +08:00
creatixchu d0ba1a3c6c Merge remote-tracking branch 'origin/master' into worktree/composer-plus-menu 2026-09-10 16:00:13 +08:00
creatixchu 7910cd9e0b test(web): assert the shipped feedback command identity 2026-09-10 16:00:08 +08:00
Turtle ac495c0b5f Merge pull request #3934 from deepseek-harness/turtle/fix-weighted-approval-run-identity
fix(ci): refresh weighted approvals after numbered review runs
2026-09-10 15:58:39 +08:00
turtle1999 e7b8ebedaf fix(ci): identify approval review runs by workflow path 2026-09-10 15:55:00 +08:00
lsdsjy f0724ba7e8 Merge remote-tracking branch 'origin/master' into turtle/issue-3848-headless-machine-readable-run 2026-09-10 15:54:21 +08:00
lsdsjy 249d583892 feat(web): add hours to turn duration labels
Turns running at or past 3600s now read 1小时05分03秒 / 1h 05m 03s in the
running clock, the settled Ran-for footer, and the turn-time dialog, which
share formatRunDuration. Below an hour the second and minute branches are
unchanged, and the hour rolls at the unit boundary so 60分00秒 never appears.
2026-09-10 15:51:43 +08:00
07akioni 9f27a45408 test: preserve immediate disposal and observe automatic terminal cleanup 2026-09-10 15:49:57 +08:00
creatixchu aed83d29ba Merge remote-tracking branch 'origin/master' into worktree/composer-plus-menu 2026-09-10 15:49:55 +08:00
creatixchu fff1ed7aa2 fix(plan): keep command identity independent of optional runtime 2026-09-10 15:48:25 +08:00
c31ac4fdfe feat(web): gate agent preset selection behind a setting (#3870)
* feat(web): gate agent preset selection behind a setting

* refactor(web): trim preset visibility diff

* refactor(web): simplify agent preset selection policy

* test(web): cover agent preset policy branches

* refactor(web): tighten agent preset policy flow

* fix(web): preserve preset default across picker toggle

* docs(web): align agent preset picker docs with the blank-task sync

Both picker transitions carry the effective default to the current blank task; started and historical sessions keep their labels, compositions, and recorded history. The Host README states the client rule and links the Web switch; the Agent Note English side matches the Chinese at line 64. Three i18n pairs re-recorded; doc-sync 34/34.

* refactor(web): simplify agent preset picker policy

* test(web): cover preset policy recovery

* docs(web): clarify disabled preset default copy

* fix(web): reconcile preset policy races

* fix(web): satisfy preset load lint

* fix(web): serialize preset roster refreshes

* fix(web): release preset refresh before notifying waiters

---------

Co-authored-by: ZiyaZhang <[email protected]>
Co-authored-by: Chinesezjc <[email protected]>
2026-09-10 07:48:06 +00:00
creatixchu 81d017bbaa docs: align generated catalog source links in both locales 2026-09-10 15:47:17 +08:00
creatixchu ca827aa2ad fix(commands): refresh catalogs and use type-only export identity 2026-09-10 15:44:30 +08:00
creatixchu 07413c2cc2 Merge remote-tracking branch 'origin/master' into worktree/composer-plus-menu 2026-09-10 15:38:30 +08:00
creatixchu 996278e6ce refactor: separate command identity and composer file action ownership 2026-09-10 15:38:13 +08:00
lsdsjy 349a84e81d Merge remote-tracking branch 'origin/master' into turtle/issue-3848-headless-machine-readable-run 2026-09-10 15:31:53 +08:00
CreatixChu 646c4c2f33 Merge pull request #3924 from deepseek-harness/worktree/image-token-v41
fix(llm-deepseek): 图片 token 预估器改用官方计算器 v41 配置
2026-09-10 15:22:37 +08:00
lsdsjy 127d2c8eb5 fix(headless): align the adopt-only docs and prove resume end to end
Address the ds-review-bot findings on 9aea4b0804:

- Drop the stale "freshly created" wording from the resolveAgent `@returns`
  and rewrite its leading comment for the two remaining identity paths.
- Rewrite the README run-flow paragraph (EN and ZH), the intro sentence, and
  the cordis.patch.yml header comment for adopt-only.
- Add a real-composition two-wake e2e: capture the generated id from the first
  `--json` wake, resume it by `--session-id`, and assert one persisted log holds
  both tasks. `runLoaderSmoke` gains an optional caller-owned `cwd` so both
  wakes share one world; the harness leaves that directory in place.
2026-09-10 15:19:17 +08:00
creatixchu ba2a931a23 Merge remote-tracking branch 'origin/master' into worktree/composer-plus-menu 2026-09-10 15:18:02 +08:00
07akioni 6becec9502 Merge master and retain its strict Linux startup cancellation handling 2026-09-10 15:13:38 +08:00
07akioni 6d103f8f7c Revert Windows dialog smoke acceptance of unavailable COM classes 2026-09-10 15:08:38 +08:00
Yichen Jiang 61b02efa84 Merge pull request #3916 from deepseek-harness/worktree/fix-deliverable-sidebar-preview
fix(web): preview delivered file links in the sidebar
2026-09-10 15:06:09 +08:00
07akioni d570f32f32 Merge latest master into fix/bundle-speed 2026-09-10 15:03:23 +08:00
Yichen Jiang 8d1e8acdec Merge pull request #3917 from deepseek-harness/worktree/composer-reference-previews
feat(web): preview file and skill references in the sidebar
2026-09-10 15:00:37 +08:00
Yichen Jiang b79a227cec fix(subprocess): preserve Linux cancellation before bootstrap consumption 2026-09-10 14:45:45 +08:00
lsdsjy ea84ad31b6 feat(headless): require --session-id to name an existing Session
`--session-id` now adopts only: an id with no stored Session fails before the
task runs instead of creating an empty history the caller believes it is
resuming. A first round omits the flag, and the runtime reports the minted
`session-<uuid>` identity in the opening `session` event, so a supervisor
persists it and names it on every later wake.

Updates the help text, the README pair, the Agent Note pair, the generated
config catalog, the unit suite, and the product-profile e2e.
2026-09-10 14:44:44 +08:00
creatixchu f657a3e87a Merge remote-tracking branch 'origin/master' into worktree/image-token-v41 2026-09-10 14:42:07 +08:00
creatixchu f24bc3c832 fix(llm-deepseek): correct image pricing documentation and edge-case evidence 2026-09-10 14:40:50 +08:00
07akioni a62fab00b7 test: distinguish unavailable Windows dialog classes in native smoke 2026-09-10 14:33:20 +08:00
07akioni 4c024cf252 fix: preserve early process cancellation and sample stream markers promptly 2026-09-10 14:28:18 +08:00
lsdsjy 25f95302fd Merge remote-tracking branch 'origin/master' into turtle/issue-3848-headless-machine-readable-run
# Conflicts:
#	packages/bundle/headless/README.i18n.yaml
#	packages/bundle/headless/README.zh.md
2026-09-10 14:20:35 +08:00