Commit Graph
18711 Commits
Author SHA1 Message Date
imccyu b2e3b2a012 Merge pull request #3893 from deepseek-harness/worktree/release/dsh-0.1.5-alpha.2
release: [email protected]
dsh-v0.1.5-alpha.2
2026-09-09 22:13:03 +08:00
imccyu dd393c1820 release(dsh): 0.1.5-alpha.2 2026-09-09 22:02:09 +08:00
Tianyi Cui 7588e1ea11 Merge pull request #3901 from deepseek-harness/revert-3710-feat/mermaid-preview
Revert "feat(web): preview Mermaid, Graphviz, SVG, and HTML code fences"
2026-09-09 22:01:43 +08:00
Tianyi Cui 58956c1a8a Revert "feat(web): preview Mermaid, Graphviz, SVG, and HTML code fences" 2026-09-09 22:01:10 +08:00
07akioni d09b4accd3 feat: 打包 + 错误处理优化 2026-09-09 21:10:02 +08:00
lsdsjy a69933d3e5 fix(headless): omit step usage when any attempt lacks a sample
Address the ds-review-bot v12 critical on PR #3849: `addUsage` published the
sum of the attempts that reported usage while silently dropping the ones that
did not, so `step_end.usage` looked exact but under-counted billed tokens.
Track completeness per step and omit usage entirely when any attempt in the
step reports no sample, matching `deriveTurnTokenUsage`'s fail-closed rule.
2026-09-09 21:05:19 +08:00
Yichen Jiang 220678e57d feat(manifest): declare plugin format, tags, and host compatibility 2026-09-09 21:03:44 +08:00
lsdsjy 980b4b77af fix(headless): close the v11 review gaps in the json run surface
Address the ds-review-bot v11 review on PR #3849:

- Accumulate every attempt's usage into `step_end.usage`, including a retried
  attempt whose only sample sits in its discarded `assistant/attempt` stream.
- Re-check the adopted Session after the idle wait, so a preset selected in
  that window is still rejected.
- Reject a whitespace-only `sessionId` supplied through a Cordis overlay, which
  bypasses the CLI trim check.
- Narrow the documented error contract: a profile whose own plugins fail to
  load exits before the runner mounts and keeps only stderr diagnostics.
2026-09-09 20:46:16 +08:00
_Kerman 192cc03dc4 Merge origin/master and preserve PTC code inspector controls 2026-09-09 20:35:12 +08:00
Yudong Han 83253e0d16 Merge pull request #3710 from deepseek-harness/feat/mermaid-preview
feat(web): preview Mermaid, Graphviz, SVG, and HTML code fences
2026-09-09 20:24:43 +08:00
_Kerman 9087b275bf Merge remote-tracking branch 'origin/master' into HEAD 2026-09-09 20:22:14 +08:00
imccyu 9d83e3e534 Merge pull request #3890 from deepseek-harness/feat/sidebar-image-preview
feat(sidebar): preview image files
2026-09-09 20:17:43 +08:00
lsdsjy b3f6c5e991 fix(headless): count the line terminator inside the 32 KiB event cap
Address the ds-review-bot v10 review on PR #3849: `boundJsonLine` bounded the
serialized JSON but not the newline the writer appends, so an event that
serialized to exactly 32 KiB produced a 32 KiB + 1 byte record. Reserve the
terminator byte inside the cap, document the cap as newline-inclusive, and
assert the written record length in the boundary tests.
2026-09-09 20:16:58 +08:00
Chinesezjc 360354e38b Merge remote-tracking branch 'origin/master' into ci/failover-canary-leg 2026-09-09 20:04:23 +08:00
_Kerman 5e0e5d00a6 Merge remote-tracking branch 'origin/master' into HEAD 2026-09-09 20:02:08 +08:00
imccyu 8870a13aa9 feat(sidebar): preview image files 2026-09-09 20:01:24 +08:00
Tianyi Cui f05e0fb6b9 Merge pull request #3878 from deepseek-harness/fix/ci-cancel-superseded
fix(ci): cancel superseded PR and master validation
2026-09-09 20:00:13 +08:00
Yudong 7aa73877e6 Merge origin/master into feat/mermaid-preview 2026-09-09 19:53:42 +08:00
Yichen Jiang cfdfd7ccb9 Merge remote-tracking branch 'origin/master' into worktree/web-sidebar-terminal 2026-09-09 19:53:05 +08:00
lsdsjy 755b44bbcd fix(headless): require the query service for every --session-id run
Address the ds-review-bot v9 review on PR #3849:

- Require `sessionQuery` before the live fast path too: a later process has no
  live Agent and must find the id through the query service, so a live identity
  no longer bypasses the check.
- Soften the live `stat` comment to what it proves: a stored record rules out an
  in-memory registration, while write-handle ownership is not queryable.
- Complete the `parseArguments` JSDoc and fix the broken English sentence in
  README.md and the Agent Note.
2026-09-09 19:53:03 +08:00
Yichen Jiang d28625c6d5 fix(web): restore terminal snapshots across host and sidebar lifecycles 2026-09-09 19:52:55 +08:00
_Kerman 29c09d320f refactor(client): remove unused JSON disclosure locale keys 2026-09-09 19:52:42 +08:00
_Kerman b6858789f0 fix(trajectory): identify PTC calls from recorded tool metadata 2026-09-09 19:52:42 +08:00
_Kerman 2bc1a7e347 test(trajectory): pin thinking defaults when switching records 2026-09-09 19:52:42 +08:00
_Kerman e7fc4e8fdc fix(client): isolate JSON copy feedback and guard string measurement 2026-09-09 19:52:42 +08:00
_Kerman 573b044320 refactor(client): share the line wrapping icon 2026-09-09 19:52:42 +08:00
Yudong 516bfd5f30 test(web): cover preview import recovery and color schemes 2026-09-09 19:49:56 +08:00
_Kerman 0ed47fe860 fix(agent-loop): preserve standalone inbox registration 2026-09-09 19:49:12 +08:00
creatixchu 5b8c445eeb fix(snapshots): preserve released inline image fixture 2026-09-09 19:46:13 +08:00
lsdsjy 7a4a55f30b fix(headless): fail closed on malformed preset records and unroundtrippable args
Address the ds-review-bot v6 review on PR #3849:

- A persisted `agent-preset/selected` record whose `data.agentPreset` is not a
  non-empty string used to read as "no preset", letting the run continue under
  this bundle's composition. It now fails closed.
- A live identity now has to be known to `sessionPersistence` (`stat`), since
  an Agent registered only in memory has no write handle and would flush
  nothing.
- Tool arguments that JSON cannot round-trip (an overflowing number such as
  `1e400`) keep their raw text instead of the `null` JSON.stringify reports.
2026-09-09 19:39:31 +08:00
creatixchu 2025036158 Merge origin/master into PR #3440 2026-09-09 19:36:15 +08:00
_Kerman b11c94716f Merge remote-tracking branch 'origin/master' into HEAD 2026-09-09 19:25:21 +08:00
imccyu 16953f2b8e Merge pull request #3884 from deepseek-harness/feat/public-experimental-agent-team
release: publish experimental Agent Teams packages
2026-09-09 19:21:51 +08:00
imccyu fbfc8123e3 Merge pull request #3871 from deepseek-harness/worktree-fixworkerflock
fix(webworker): restore session and workspace writes
2026-09-09 19:21:07 +08:00
Chinesezjc acc8535390 docs(ci): record the canary failover value and the glob fix across internal notes
The failover runbook, the node-compatibility note, the native-Windows note,
and the serial-reference note record the third variable value's scope and
exclusions (bilingual, pairing re-recorded); a new implemented process note
owns the value's participating set, the dormant-by-default canary posture,
and the walker-fix rationale. .github/AGENTS.md points at both notes.
2026-09-09 19:20:29 +08:00
Chinesezjc d79294f23a fix(scripts): enumerate repo files with a dirent walker instead of node fs.glob
Node's internal fs.glob, from some 24.x releases, lstat-probes
<matched>/<next segment> while expanding a ** pattern over a symlinked
file and throws ENOTDIR instead of skipping (observed on node 24.13.0
scanning snapshots/acp/image-compaction's symlinked
system-prompt.expected.md, which failed verify-md-wrap inside
check:ci:static). uniqueRepoFiles now walks with dirent types, never
probing a path under a file, and mirrors fs.glob's dot:false and
follow:false semantics: the four repo-files gate pattern sets enumerate
identically. Broken or cyclic symlinks fail loudly in the caller's
realpathSync, and pattern forms the walker does not model (metacharacters,
a trailing **, empty segments) are rejected up front. repo-files.spec.ts
pins the symlink, broken-link, and rejection behavior.
2026-09-09 19:20:29 +08:00
07akioni fc7abdcfb5 feat: 优化 windows 安装包打包 2026-09-09 19:18:34 +08:00
lsdsjy a5c21a69b8 fix(headless): require persistence for every --session-id path
Address the ds-review-bot v6 review on PR #3849: the guard sat before the
create branch only, so adopting an already-live identity could still run a
session whose history dies at exit. Move it to the top of resolveAgent, where
it covers both the live and the create path, and add a rejection test for the
live path alongside the existing create-path one.
2026-09-09 19:17:01 +08:00
Yichen Jiang f030b544a9 Merge remote-tracking branch 'origin/master' into worktree/web-sidebar-terminal
# Conflicts:
#	packages/client/ui-sidebar-right/README.i18n.yaml
#	packages/client/ui-sidebar-right/README.md
#	packages/client/ui-sidebar-right/README.zh.md
2026-09-09 19:15:51 +08:00
Chinesezjc 9bae613128 ci: add an opt-in canary value to the CI pool failover switches
The per-platform failover repository variables (DSH_CI_FAILOVER_LINUX and
DSH_CI_FAILOVER_WINDOWS) accept a third value alongside the existing
selfhosted routing. Set by a repository writer, the value retargets the
always-on pull-request and master lanes onto the matching hosted-runner
labels (16-core pools map to the 16-vCPU tier, standard legs to 4-vCPU);
unset or any other value keeps today's runners, so the leg is dormant until
a writer opts in - a canary path for capacity fallback, never the default.

Participating jobs: the three enterprise Linux workers, the node-compat
legs, the four Windows lanes, and the all-checks-passed verdict in ci.yml;
expected-filenames; the sandbox bwrap leg; and the two manual benchmark
matrices (4-32 vCPU tiers map to equivalents; 64/96-core rows keep the
fleet labels). Everything pinned to its own runner by spec, credential, or
host capability keeps it under every value, and the release-shaped chains
stay entirely hosted. request-review.yml was retired on master while this
work was in flight and the branch takes the deletion.

Specs pin the new branches: ci-workflow.spec.ts asserts the labels appear
in the extended selectors, and ci-compatible-selfhosted.spec.ts evaluates
the routing mode.
2026-09-09 19:02:10 +08:00
lsdsjy 97e4565a04 Merge remote-tracking branch 'origin/master' into turtle/issue-3848-headless-machine-readable-run 2026-09-09 19:01:51 +08:00
lsdsjy b3756a89d1 fix(headless): fail loud when --session-id would create a non-durable session
Address the ds-review-bot v6 review on PR #3849:

- Require the composed sessionPersistence service before creating an exact
  --session-id identity, so a profile that keeps sessionQuery but drops
  persistence exits 1 instead of printing an id whose history dies at exit.
- Stop exporting the now-internal boundJsonEvent and describe it in the
  present tense; its test now exercises boundJsonLine.
- Say "64 levels or deeper" in the README and Agent Note, matching the
  depth budget (an input keeps 63 nested containers, the 64th is cut).

Tests: 77 headless unit tests with per-file 100% coverage on src, 14 profile
e2e tests, constraints/typecheck/lint/doc/pairing gates.
2026-09-09 19:00:06 +08:00
_Kerman af20a0f004 Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	packages/client/ui-primitives/src/markdown/CodeBlock.tsx
2026-09-09 18:57:48 +08:00
imccyu 63187de80f release: publish experimental Agent Teams packages 2026-09-09 18:54:14 +08:00
imccyu 9b308c9568 Merge pull request #3819 from deepseek-harness/feat/artifact-file-actions
feat(web): unify file icons, delivery actions, and sidebar interactions
2026-09-09 18:51:34 +08:00
_Kerman a9b5faef0b test(chat): collapse live thinking before checking its tail 2026-09-09 18:49:03 +08:00
_Kerman 4da3102130 Merge remote-tracking branch 'origin/master' into HEAD 2026-09-09 18:48:34 +08:00
Ruilin Geng 2b521b31f1 Merge pull request #3846 from deepseek-harness/fix/mcp-pagination-cycles
fix(mcp): reject repeated tool discovery cursors
2026-09-09 18:46:44 +08:00
_Kerman 508490b531 test(trajectory): omit absent optional fixture fields 2026-09-09 18:35:07 +08:00
lsdsjy a6fa383ba8 Merge remote-tracking branch 'origin/master' into turtle/issue-3848-headless-machine-readable-run 2026-09-09 18:34:16 +08:00