Commit Graph

11828 Commits

Author SHA1 Message Date
ZiyaZhang dd65c9557d fix(ci): refresh merged module graph pairing 2026-08-11 02:42:06 -07:00
Tianyi Cui c626d5f53c Merge origin/master into worktree/pr2177-export-fixes-20260811
Refresh PR #2258 onto master at 5427cbcc19 so the session-log export fixes are evaluated and mergeable against the current repository.\n\nPreserve master's SDK-toolchain removal, client theme bootstrap, and Python finish-reason changes intact. The only textual overlap is the generated config-catalog pairing record: both English and Chinese catalogs merge cleanly with the PR's compression setting and master's package moves, so regenerate that sidecar from the merged owners instead of choosing either stale hash.
2026-08-11 17:39:19 +08:00
NI0317 d06a7e07e5 feat(web): show command inputs in the human transcript 2026-08-11 17:19:51 +08:00
Ziya c92954d930 Merge branch 'master' into feat/produced-files-folder 2026-08-11 17:10:25 +08:00
Tianyi Cui 1d12ae62e7 Merge pull request #2242 from deepseek-harness/worktree/remove-sdk-project-toolchain
Remove the unreleased SDK project toolchain
2026-08-11 17:09:21 +08:00
Ziya 6e573475ec Merge branch 'master' into feat/produced-files-folder 2026-08-11 17:02:30 +08:00
creatixchu e611e825b1 feat(web): align attachment display with DeepSeek Chat via ui-attachment atoms
Single-click original preview in the composer rail and chat history; remove
control inside the thumbnail, revealed on hover/focus (always on touch);
hidden-scrollbar rail overflow paged by edge arrows with wheel panning and
end-reveal on add; image-intake rejections and prompt failures announce as a
transient top-center toast instead of inline strips.

The attachment atoms move to a new zero-cordis package
@deepseek-ai/dsh-client-ui-attachment (rail, message gallery, lightbox),
seeded as a platform module; the toast is a ui-primitives atom. Strings
arrive as label props bridged from the conversation dictionary.
2026-08-11 17:01:29 +08:00
Tianyi Cui f9e8375f66 Merge remote-tracking branch 'origin/master' into worktree/remove-sdk-project-toolchain 2026-08-11 17:00:05 +08:00
Yichen Jiang ef869277de Merge remote-tracking branch 'origin/master' into worktree/minimal-profiles-bare-runtime 2026-08-11 16:59:22 +08:00
_Kerman a661eeeba0 Merge pull request #2257 from deepseek-harness/xtr/python-sdk-finish-reason
fix(python): report run finish reason
2026-08-11 16:56:51 +08:00
Tianyi Cui 4d6dc77a1f Merge remote-tracking branch 'origin/master' into worktree/remove-sdk-project-toolchain 2026-08-11 16:54:34 +08:00
_Kerman ed39516c20 test(client): type session timestamp assertions 2026-08-11 16:49:29 +08:00
_Kerman 79b9f3d524 style(client): reduce expanded search height 2026-08-11 16:49:26 +08:00
_Kerman fcbe3ac836 fix(client): preserve sidebar drag ordering 2026-08-11 16:49:21 +08:00
_Kerman dbbe55fdb1 fix(python): reject malformed finish reasons 2026-08-11 16:48:41 +08:00
_Kerman 5b1da441d5 fix(client): refine workspace view controls 2026-08-11 16:46:52 +08:00
imccyu ea574b5fca Merge pull request #2180 from deepseek-harness/worktree-dark
fix(client): apply theme before plugin loading
2026-08-11 16:41:50 +08:00
Tianyi Cui 175d252f77 chore: remove remaining SDK toolchain residue 2026-08-11 16:37:29 +08:00
_Kerman 6896fd1545 fix(python): report run finish reason 2026-08-11 16:25:59 +08:00
Tianyi Cui f21977383b Merge remote-tracking branch 'origin/master' into worktree/pr2177-export-fixes-20260811
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/subsystems/persistence.i18n.yaml
#	packages/session/session-persistence-jsonl/README.i18n.yaml
#	packages/session/session-persistence/README.i18n.yaml
2026-08-11 16:18:28 +08:00
Tianyi Cui af8a8e1384 Merge remote-tracking branch 'origin/master' into worktree/pr2177-export-fixes-20260811
# Conflicts:
#	docs/config-catalog.i18n.yaml
2026-08-11 16:11:30 +08:00
Tianyi Cui 8a2a22db84 fix(apiproxy): configure session export compression
Session-log ZIP entries always used DEFLATE level 6 even though compression level is a deployment tradeoff: CPU-constrained hosts may prefer low latency while bandwidth-constrained hosts may prefer smaller archives. A hardcoded level also violated the repository rule that deployment-varying plugin choices live in validated Config.

Add sessionExportCompressionLevel to ApiProxyService.Config as an integer 0-9 with default 6, resolve the same default once for direct createApiProxy callers, and pass the required level into the streaming module. Tests prove schema defaulting and rejection as well as a level-0 versus level-9 archive-size difference with identical extracted content. The generated config catalog, bilingual gateway README, and feature note document the knob and its tradeoff.
2026-08-11 16:11:09 +08:00
Tianyi Cui 1419671f3f fix(session-export): wait for response pull capacity
The ZIP loop checked desiredSize only after a push and responded to an overfull queue with setTimeout(0). A timer turn does not mean the consumer drained anything, so a slow or disconnected client still allowed the producer to enqueue the complete compressed archive while later artifact and attachment reads ran eagerly.

Give the ReadableStream a 64 KiB byte queuing strategy and block the single producer on a pull-released capacity gate whenever desiredSize is non-positive. Cancellation wakes that gate through the existing producer signal; synchronous fflate output is therefore bounded to the queue high-water mark plus one input push. A regression test exhausts timer turns without consuming and proves the next media entry remains unread until response pulling begins, and the bilingual contracts now describe the real bound.
2026-08-11 16:09:50 +08:00
Tianyi Cui 192840e198 fix(session-export): propagate download cancellation
Only the root raw-artifact read received the request signal. Lineage discovery and descendant reads could continue after disconnect, response-body cancellation did not stop the producer, and the root error boundary converted an abort rejection into an ordinary HTTP 500.

Combine request and response-consumer cancellation into the ZIP producer signal, forward it through every cancellable read, check it around the attachment seam, and terminate fflate exactly once when production stops. The pre-stream boundary now rethrows the original abort instead of translating it. Regression tests cover signal propagation, exact cancellation identity at the HTTP boundary, and a reader cancellation interrupting an in-flight descendant read; the bilingual host contract records these lifecycle semantics.
2026-08-11 16:09:27 +08:00
Tianyi Cui 52f0b09e76 fix(session-export): flush live logs before raw reads
The exporter read persistence artifacts directly even when the requested root or a descendant was still live. Buffered session events could therefore be omitted from a successful download, so the advertised verbatim-artifact guarantee described storage accurately but captured an arbitrarily stale durability boundary.

Resolve each id against SessionStore and cross its authoritative flush barrier immediately before readRaw. Cold sessions remain a no-op, while live roots and descendants are made durable independently; this intentionally yields a per-session read-boundary snapshot rather than claiming an atomic lineage snapshot. A host-path regression test proves both artifacts change from stale to durable only through flush, and the bilingual host contract and Agent Note document the boundary.
2026-08-11 16:08:47 +08:00
ZiyaZhang bb9d5db361 fix(ci): refresh merged doc pairings 2026-08-11 01:06:47 -07:00
_Kerman 34e90dc3fe test(client): accept session creation timestamps 2026-08-11 16:03:13 +08:00
_Kerman bc390318ac Merge remote-tracking branch 'origin/master' into xtr/sidebar-workspace-controls 2026-08-11 15:59:40 +08:00
_Kerman 2ad471123d fix(client): persist workspace drag order 2026-08-11 15:57:43 +08:00
_Kerman 31768a348e fix(client): update recency from user messages 2026-08-11 15:57:34 +08:00
Tianyi Cui 454e06c8c1 Merge origin/master into worktree/remove-sdk-project-toolchain
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml
#	.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.md
#	.agents/notes/implemented/feature/2026-07-21-continuable-background-subagents.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-21-continuable-background-subagents.md
#	.agents/notes/implemented/feature/2026-07-21-continuable-background-subagents.zh.md
#	.agents/notes/proposed/architecture/2026-07-15-sdk-project-editing-architecture.i18n.yaml
#	.agents/notes/proposed/architecture/2026-07-15-sdk-project-editing-architecture.md
#	.agents/notes/proposed/feature/2026-07-14-sdk-developer-projects.i18n.yaml
#	.agents/notes/proposed/feature/2026-07-14-sdk-developer-projects.md
#	.agents/notes/proposed/feature/2026-07-14-sdk-developer-projects.zh.md
#	packages/README.i18n.yaml
#	packages/README.md
#	packages/scaffold/create-sdk/README.md
#	packages/scaffold/create-sdk/src/args.ts
#	packages/scaffold/scripts/src/args.ts
#	packages/sdk/README.i18n.yaml
#	scripts/verify-package-readme-model-experience.ts
2026-08-11 15:56:06 +08:00
Yichen Jiang 2b5c17ab6b Merge remote-tracking branch 'origin/master' into worktree/minimal-profiles-bare-runtime
# Conflicts:
#	examples/jsonrpc-agent/README.i18n.yaml
#	examples/jsonrpc-agent/README.md
2026-08-11 15:51:03 +08:00
Ziya 21a23db789 Merge branch 'master' into feat/produced-files-folder 2026-08-11 15:43:31 +08:00
_Kerman d672eace2f style(client): refine drag insertion markers 2026-08-11 15:42:44 +08:00
imccyu f0a6c25291 fix(client): apply theme before plugin loading 2026-08-11 15:35:32 +08:00
Turtle 5d591e55c1 Merge pull request #610 from deepseek-harness/codex/replace-surface-terminology
Replace overloaded surface terminology
2026-08-11 15:34:34 +08:00
Yichen Jiang 9c06f682c4 Merge pull request #2207 from deepseek-harness/worktree/custom-provider-edit-parity-f8c160
fix(web): 自定义提供方的显示名称与 API 协议可编辑
2026-08-11 15:33:50 +08:00
_Kerman 3f09330f4b docs(web): record workspace sidebar behavior 2026-08-11 15:25:11 +08:00
_Kerman 6e303ac0b7 test(web): cover workspace sidebar behavior 2026-08-11 15:25:11 +08:00
_Kerman 8005ab78bd fix(client): keep flat sessions ordered by recency 2026-08-11 15:25:11 +08:00
_Kerman c4affa852c style(client): reduce conversation tab indicator 2026-08-11 15:25:11 +08:00
_Kerman 23889483cf style(client): refine conversation tab indicator 2026-08-11 15:25:11 +08:00
_Kerman 3f315a0134 feat(client): refine workspace sidebar interactions 2026-08-11 15:25:11 +08:00
_Kerman d86ecf7b29 style(client): collapse search into header action 2026-08-11 15:25:11 +08:00
_Kerman 4ce51888be fix(client): inherit current workspace for new sessions 2026-08-11 15:25:11 +08:00
_Kerman a46a7bf912 style(client): simplify expanded workspace icon 2026-08-11 15:25:11 +08:00
_Kerman 325da4dab1 fix(client): preserve workspace browser interactions 2026-08-11 15:25:11 +08:00
_Kerman e713cc820d style(client): polish sidebar spacing 2026-08-11 15:25:11 +08:00
_Kerman 1a1729a138 feat(client): refine workspace sidebar interactions 2026-08-11 15:25:11 +08:00
_Kerman b3e843056e feat(workspace): support persistent workspace ordering 2026-08-11 15:25:11 +08:00