Commit Graph
8144 Commits
Author SHA1 Message Date
creatixchu c36a40656b refactor(cua): move native provider into experimental 2026-10-09 15:46:42 +08:00
creatixchu 17bfa6fd3c Merge updated persistent PTC into native CUA 2026-10-09 15:43:43 +08:00
turtle1999 dfca3c3c6f fix(session): use namespace exports for JSONL persistence plugin 2026-10-09 15:10:49 +08:00
creatixchu 42cf8c5ee0 Merge remote-tracking branch 'origin/master' into codex/ptc-review-policy
# Conflicts:
#	apps/desktop/tests/ptc-runtime.spec.ts
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	packages/ptc-runtime/ptc-runtime-node/README.i18n.yaml
#	packages/ptc-runtime/ptc-runtime-node/README.md
#	packages/ptc-runtime/ptc-runtime-node/README.zh.md
#	packages/ptc-runtime/ptc-runtime-node/src/index.ts
#	packages/ptc-runtime/ptc-runtime-node/src/launch.ts
#	packages/ptc-runtime/ptc-runtime-node/tests/launch.spec.ts
2026-10-09 15:10:13 +08:00
creatixchu 9b9630e6d8 fix(ptc): preserve standalone runtime composition 2026-10-09 15:07:42 +08:00
creatixchu 31783b2845 test(ptc): align policy cleanup fixtures with typed APIs 2026-10-09 15:04:17 +08:00
creatixchu 244ca73755 fix(ptc): keep policy cleanup waits inside PTC 2026-10-09 15:02:01 +08:00
Turtle 0155017b73 fix(plan-mode): exit plan mode only on approval in plan guidance
A dismissed review now returns a successful exit_plan_mode result, so
the plan policy must not treat any success as leaving plan mode. Also
update the user-facing description of a dismissed review.
2026-10-09 14:58:20 +08:00
Yichen Jiang 02f5423070 fix(models): hide unconfigured DeepSeek models and unavailable selections 2026-10-09 14:56:27 +08:00
fz 3d89cded59 refactor(jobs): remove launcher shutdown registry 2026-10-09 14:21:29 +08:00
turtle1999 22d0bd19a3 fix(session): preserve JSONL persistence default plugin import 2026-10-09 14:10:52 +08:00
creatixchu 258a0f65e7 fix(cua): finish shared socket cleanup without waiting for timers 2026-10-09 13:57:05 +08:00
turtle1999 4d9047be2d fix(session): retain JSONL resources through provider-triggered teardown 2026-10-09 13:46:43 +08:00
turtle1999 2075717e2f docs(cordis): audit cleanup dependency lifetimes as P0 2026-10-09 13:42:52 +08:00
creatixchu 6539baeda5 test(cua): cover shared capture cancellation and connection cleanup 2026-10-09 13:35:49 +08:00
imccyu a0a9aef5ec feat(ui-chat): add independent collapse timing and viewport-scoped flow 2026-10-09 13:35:16 +08:00
Turtle 039fe73c55 Merge pull request #5917 from deepseek-harness/docs/error-handling-style
docs: define error handling responsibilities and failure guarantees
2026-10-09 13:28:43 +08:00
turtle1999 1875ec4ab8 docs: keep error handling guidance concise and clarify ownership 2026-10-09 13:09:59 +08:00
Yichen Jiang fdd29b45b8 refactor(web-search): open search to every route once search has its own setup
Replace the `routes` allowlist with the user's own configuration. A search
whose key or endpoint the user configured (a literal apiKey, an apiKeyEnv
other than DEEPSEEK_API_KEY, baseURL, or $DEEPSEEK_SEARCH_BASE_URL) serves
every model route without the route or endpoint check. Without such
configuration the key is the DeepSeek chat key: only the DeepSeek account and
official routes may use it, and only toward a search endpoint on the official
chat route's origin. The account token rule stays as before.

Both refusals now name the settings that give search its own setup.
2026-10-09 13:04:22 +08:00
Yudong d6042ca0d7 fix(speech-to-text-sensevoice): restore the onset a cold VAD drops
Silero cannot back-date the first segment of a cold detector, so it
reports a start index several frames after speech actually began. Every
recording therefore lost its opening audio: measured across 50
utterances the median loss was 102 ms and the worst 230 ms — a full
syllable, which surfaced as dropped leading words ("麻烦把发票…" →
"把发票…", "用 Python…" → "写一个 Python…").

Only the first segment is affected; later segments aligned within 3 ms
because the detector retains history by then. Tuning cannot fix it:
lowering minSpeechSeconds from 0.25 s to 0.05 s left the median loss at
110 ms, and lowering the threshold to 0.2 still lost up to 174 ms while
risking false triggers.

Restore the dropped onset from the recording itself, bounded by the new
vadOnsetPaddingSeconds (default 0.3 s, zero disables). Measured on the
same corpus with identical DSH settings, this recovers the full no-VAD
accuracy and in the technical domain exceeds it, since segmentation also
trims silence:

  语料        条件     无VAD    VAD丢起音  VAD+回填   改善
  audio      clean   12.50%    16.33%    12.50%   23.5%
  audio      noisy10 17.74%    19.15%    17.94%    6.3%
  audio_tech clean   10.34%    15.65%     9.81%   37.3%
  audio_tech noisy10 25.73%    30.50%    26.26%   13.9%

Inference cost is unchanged (2.6 s vs 2.6 s on both clean corpora).
2026-10-09 12:51:54 +08:00
Dudu-0223 648ab5167e refactor(subagent): compose new children through presets 2026-10-09 12:12:02 +08:00
yudshj 89f35fe2e9 fix: download optional Python runtime resources explicitly 2026-10-09 12:06:50 +08:00
turtle1999 4c8d377a23 docs: define error handling responsibilities and failure guarantees 2026-10-09 11:51:51 +08:00
Yichen Jiang 15c10e0e87 Merge pull request #5064 from deepseek-harness/worktree/ssh-helper-binaries
feat(ssh): ship standalone helper runtimes for Linux and macOS
2026-10-09 11:46:00 +08:00
Yichen Jiang d6a699591b Merge remote-tracking branch 'origin/master' into worktree/sleepy-grothendieck-64df7b
# Conflicts:
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/api/session-controller/README.i18n.yaml
#	packages/extensions/cordis-client-runner/tests/api-catalog.client.spec.ts
2026-10-09 11:38:51 +08:00
Yichen Jiang 5087220bea fix(preset): keep a blank Session that already runs the selected preset
The Creator entry names cordis in its session.create request, and its chip may
still select cordis when the Session list updates before the new projection
arrives. select recomposed and logged unconditionally, so that race appended a
second agent-preset/selected record and announced tools/change again. select
now leaves a blank Session that records the preset and runs its current
revision unchanged; a replaced definition still recomposes and logs. The
Creator Web scenario pins a single selection record.
2026-10-09 11:29:26 +08:00
Yichen Jiang 3c1e357132 fix(web): join only the latest Workspace connection and restore logged presets
Keep one Workspace navigation options type: StartSessionOptions now carries
agentPreset, and openWorkspace and connectWorkspace take its preset field.
A connection joins the latest in-flight connection to its Workspace only when
both name the same preset, so a superseding request always reaches the Host,
and the map is keyed by the branded WorkspaceId instead of a composite
string. The fresh New Session path no longer accepts a preset it would drop.
Restoring a saved blank reloads that Session's projections first, because
listed values are cached hints that can lag the log after an unclean exit.
The New Session upgrade guide points to the session.create reuse guide.
2026-10-09 11:29:17 +08:00
Yichen Jiang e2b2760589 feat(web-search): send the DeepSeek API key only for DeepSeek routes and their chat origin
DeepSeek native search is served by DeepSeek's endpoint, so two checks now
gate the API key, in ready() and again in the key resolver of every search:

- Route: a model request on a route other than deepseek-account,
  deepseek-official, and the new `routes` setting is refused with
  WEB_PROVIDER_ROUTE_DISABLED, so another provider's conversation does not
  bill DeepSeek unless a deployment lists the route.
- Endpoint: the official chat route's own key reference goes only to a
  search endpoint on that route's chat origin, read from the active
  dsh-llm-deepseek-api-key Loader row with that package's resolver;
  otherwise WEB_PROVIDER_ENDPOINT_MISMATCH. A literal key, a separate key
  reference, or a search endpoint on the chat origin passes.

The provider passes a resolver's own WebError through unchanged. A real
Loader composition pins the endpoint check. The pi-ai-conversation-updates
scenario gets its own tool sidecar without web_search, and the legacy
deepseek-messages route loses web_search in deepseek-messages-system-prompt.
2026-10-09 11:14:49 +08:00
imccyu a561924313 test(web): migrate reasoning fixtures and refresh slot catalogs 2026-10-09 01:56:26 +08:00
imccyu 3385180b9b refactor(web): compose reasoning content through a shared slot factory 2026-10-09 01:43:17 +08:00
Tianyi Cui 0454b67568 Merge pull request #5902 from deepseek-harness/fix/stable-conversation-titles
fix(session-title): keep adequate conversation titles unchanged
2026-10-09 00:24:22 +08:00
Dudu-0223 a9afe76200 feat(subagent): select and restore presets for spawned agents 2026-10-09 00:13:17 +08:00
Ziya 76a60e0f0c Merge pull request #5891 from deepseek-harness/ux/reasoning-translation-toggle
fix(web): 简化思考原文与译文切换入口
2026-10-08 09:10:35 -07:00
Tianyi Cui 353fe00d63 refactor(session-title): separate provider model strategies 2026-10-08 23:37:11 +08:00
creatixchu 4431c95da1 Merge feat/persistent-ptc into feat/experimental-dsh-cua 2026-10-08 21:49:23 +08:00
fz e493fd40dc fix(jobs): use short UUIDs for visible job ids 2026-10-08 21:04:58 +08:00
creatixchu b7dbd7bb03 Merge master into feat/persistent-ptc 2026-10-08 20:58:22 +08:00
Yixiang Tu fad2076073 Clarify recorded compatibility decisions and review output 2026-10-08 20:26:57 +08:00
Yixiang Tu de4a771c72 Simplify same-version acknowledgements to explicit decisions 2026-10-08 20:26:57 +08:00
Yixiang Tu 1d6128d77e Correct V4 record compatibility review guidance 2026-10-08 20:26:57 +08:00
Yixiang Tu 5c5b51257a Allow reviewed same-version Session schema changes 2026-10-08 20:26:57 +08:00
Turtle fd78c948a5 Merge pull request #5551 from deepseek-harness/turtle/request-extension-fail-bc456a3d035d
fix(llm): keep request-extension failures from blocking model requests
2026-10-08 20:23:32 +08:00
fz 7af8741513 Merge origin/master into fix/5520-job-session-timestamps 2026-10-08 20:02:49 +08:00
Yichen Yan ac080346f0 Support native HTTPS Web listeners 2026-10-08 19:49:01 +08:00
Yichen Yanandliukx0205 4f8e70f936 Support concrete Web listener bind addresses (#3979)
Co-authored-by: liukx0205 <[email protected]>
2026-10-08 19:48:56 +08:00
imccyu b492219bd2 Merge pull request #5508 from deepseek-harness/worktree-waitmigration
feat(session): guard migration in sidebar fork and subagent catalogs
2026-10-08 19:47:55 +08:00
Yichen Jiang d0dda93064 Merge remote-tracking branch 'origin/master' into worktree/web-search-dynamic-tool-e26c2b
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-31-web-default-search.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/web/tool-web/README.i18n.yaml
#	packages/web/web-search-deepseek/README.i18n.yaml
#	packages/web/web/README.i18n.yaml
#	snapshots/sdk/subagent-dsh-sdk-dynamic-route/session.1.v4.jsonl
#	snapshots/sdk/subagent-dsh-sdk-dynamic-route/session.v4.jsonl
2026-10-08 18:56:11 +08:00
Yichen Yanandliukx0205 cb9a590c86 Support concrete Web listener bind addresses
Co-authored-by: liukx0205 <[email protected]>
2026-10-08 18:25:43 +08:00
Yichen Yan d394af8ee8 Merge pull request #4200 from deepseek-harness/yyc/web-directory-picker-reviewed
fix(web): use in-page directory picker for trusted remote hosts
2026-10-08 18:25:38 +08:00
creatixchu 046d722c14 fix(ptc): preserve caller context across process control callbacks 2026-10-08 17:45:18 +08:00