Commit Graph
5090 Commits
Author SHA1 Message Date
Tianyi Cui d35459e3c1 refactor(sdk): remove unused root tool filter 2026-08-25 12:21:50 +08:00
creatixchu dde6c8d7fc Merge remote-tracking branch 'origin/master' into worktree/2986-trajectory-image-attachments 2026-08-25 10:50:06 +08:00
imccyu 075a46cdec fix(client): preserve combo source identities 2026-08-25 06:43:25 +08:00
imccyu 83463aa896 feat(client): use bounded plugin combo URLs 2026-08-25 06:43:24 +08:00
imccyu 08ed5a54a8 refactor(webserver): minimize HTTP gzip integration 2026-08-25 06:43:24 +08:00
imccyu 1229292497 docs(session): refresh architecture and generated contracts 2026-08-25 06:10:25 +08:00
Tianyi Cui e73c8a9fce fix(repo): close examples migration review gaps 2026-08-24 22:02:44 +08:00
Tianyi Cui 4125514a08 refactor(repo): retire top-level examples 2026-08-24 22:02:44 +08:00
Tianyi Cui 6ea8a52e22 fix(test): harden snapshot corpus invariants 2026-08-24 21:37:57 +08:00
Tianyi Cui e4a3918e87 docs: refresh module dependency graph 2026-08-24 21:37:14 +08:00
Tianyi Cui caf386f59c fix(test): use expected-output naming 2026-08-24 21:37:14 +08:00
Tianyi Cui 1cfe0f9942 refactor(test): reserve snapshots for session recordings 2026-08-24 21:37:14 +08:00
Tianyi Cui d4e81b6af7 test(snapshot): verify final workspace state 2026-08-24 21:37:14 +08:00
Tianyi Cui 6ca682733f refactor(test): drive sessions through owning profiles 2026-08-24 21:37:13 +08:00
Tianyi Cui 6189e4a374 test(web): separate session snapshots from goldens 2026-08-24 21:36:31 +08:00
Tianyi Cui 33faf7f35f test(snapshot): separate headless sessions from goldens 2026-08-24 21:36:31 +08:00
Tianyi Cui da1cb2c06e test(snapshot): centralize SDK session corpus 2026-08-24 21:36:31 +08:00
Tianyi Cui 5c67cf898c test(snapshot): centralize ACP session corpus 2026-08-24 21:36:31 +08:00
Tianyi Cui 30762b63c9 refactor(test): make session snapshots transport neutral 2026-08-24 21:36:31 +08:00
Dudu-0223 ca0e6f9707 Merge remote-tracking branch 'origin/master' into codex/pr-365-fixes 2026-08-24 21:07:22 +08:00
Dudu-0223 202a2fe60f Merge remote-tracking branch 'origin/master' into codex/pr-365-fixes 2026-08-24 20:53:45 +08:00
imccyu 9c3a0893f6 perf(client-modules): defer per-plugin revision hashing
Preserve sourcemaps through the production Client build and verify batched loading across Host, HMR, and Web Worker paths.
2026-08-24 20:49:13 +08:00
lsdsjy 5bbaf168d9 perf(client-modules): batch startup plugin scripts 2026-08-24 20:48:12 +08:00
imccyu 82aa8906e5 Merge pull request #2905 from deepseek-harness/turtle/local-build-banner-version
Show build version in local Web banner
2026-08-24 20:46:43 +08:00
Dudu-0223 a0c1f7a6a7 Merge remote-tracking branch 'origin/master' into codex/pr-365-fixes 2026-08-24 20:31:27 +08:00
creatixchu 00d3c82563 Merge remote-tracking branch 'origin/master' into worktree/2986-trajectory-image-attachments 2026-08-24 19:12:37 +08:00
creatixchu 15d53e228a docs: 同步模块依赖关系图 2026-08-24 19:10:18 +08:00
Tianyi Cui 8101a0d097 fix(python): make Windows release paths native
Run the GitHub Windows runtime leg under the runner’s native PowerShell instead of inheriting the POSIX Bash body. POSIX and Windows now own explicit output resolution, virtual-environment setup, environment scrubbing, and keyless/live black-box commands, while portable build commands continue to use each runner’s default shell.

Put the pinned uv installation on the GitLab Windows job PATH before either the smoke or release builder invokes it. Reject a runtime executable whose basename does not match the selected platform manifest, and reject Intel macOS at platform selection instead of reporting a misleading missing artifact.

Add a complete PowerShell path to the published Python tutorial and record the three-phase shutdown-time bound in the Windows runtime decision. Workflow, Python, and bilingual documentation tests pin the resulting behavior.
2026-08-24 19:09:40 +08:00
Tianyi Cui 28442337cf feat(python-example): select the persistent shell by platform
Make the checked-in minimal SDK overlay disable both one-shot shell rows and mount exactly one persistent PTY stack: Bash on Linux/macOS and PowerShell on Windows. The SDK server, explicit dsh home, persistence, editor, timeout, and reduced tool catalog remain unchanged.

Update the runnable example and tutorial to list Windows x64 as supported, describe the platform-selected shell, and remove the obsolete POSIX-only restriction. This keeps the documented first Python task executable through the packaged Windows dsh profile instead of advertising a Linux-only overlay on a Windows-capable SDK.
2026-08-24 19:09:40 +08:00
creatixchu d420292400 fix(web): 处理评审发现的图片记录边界情况
- 图片错误结果在 Result 页签保留错误名称与代码
- 空文本块加图片的记录按纯图片标注,不再空行
- sourceBlock 的持久化图片守卫检查 attachmentId 字段
- 移除 ui-chat 对 util/crypto 的过期 tsconfig 引用
- 同步 slots.md 层级图与 2026-08-20 所有权 Note
2026-08-24 18:58:25 +08:00
Dudu-0223 f76a225a7d Merge pull request #2663 from deepseek-harness/feat/subagent-provider
让 subagent 按需发现并选择子 Agent 模型
2026-08-24 18:23:42 +08:00
Tianyi Cui e2920f0109 fix(sdk-minimal): make the SDK model argument authoritative
Stop narrowing the standalone DeepSeek adapter to a DSH_MODEL-derived one-entry catalog. The direct adapter already accepts model ids outside its advisory catalog, so retain only the DSH_CONTEXT_WINDOW fallback and let the JSON-RPC initialize model be the single runtime selection.

Remove model mirroring from minimal.py and the packaged smoke. The keyless process now initializes deepseek-v4-pro without DSH_MODEL, while the packaged scenario continues to use its unlisted smoke-model; together they prove both cataloged and arbitrary SDK model arguments reach the adapter directly.

Update the bundle, tutorial, SDK/example references, and owning Agent Notes to keep DSH_MODEL only as minimal.py's optional default input, never as a second value callers must synchronize.
2026-08-24 17:28:29 +08:00
Tianyi Cui 7a11f5fde3 docs(python): define the standalone minimal profile
Record sdk-minimal as the narrow repository-owned exception to base-first profile composition: callers still launch only dsh and cannot provide an arbitrary Cordis tree, while the shipped bundle may own a complete explicit roster. Cross-link the launcher, profile-bundle, Python-runtime, minimal-agent, snapshot, and telemetry decisions; the supersession audit keeps each older note active because its remaining rationale is independent.

Update the CLI, architecture, Python tutorial/reference, example, runtime-wheel reference, and bundle documentation. The docs distinguish the full sdk profile from sdk-minimal, explain explicit-home/plugin/patch customization, state the minimal permission and persistence choices, and retain the separately packaged web profile and frontend assets for direct dsh use.

Correct dsh-base descriptions to cover base-backed profiles, make SDK startup configuration visible in the generated config catalog, add sdk-minimal to the module graph, and regenerate the base-composition graph. English and Chinese pairs are re-recorded at the exact reviewed contents.
2026-08-24 17:28:29 +08:00
Tianyi Cui c2ad69344f fix(python-sdk): make the minimal profile an explicit allowlist
Give the SDK JSON-RPC server a per-root tool filter and let deployments mark the configured persona as the complete system prompt. The checked-in minimal overlay now names only bash and str_replace_editor, so later global tools and unrelated guidance from dsh-base cannot appear implicitly.

Keep the shared SDK host services and packaged Web capability intact. Only workspace instructions, compaction, and the conflicting one-shot Bash row remain disabled. Unit coverage pins the configuration paths, and a real dsh profile smoke proves the assembled prompt and exact two-tool request.
2026-08-24 17:28:28 +08:00
Tianyi Cui f0f9b294dd docs(python): make the dsh profile runtime current
Document dsh as the only application launcher across architecture, CLI, SDK, app-boot, Python package, contributor, tutorial, and example references. Explain explicit home selection, profile and patch precedence, persistent external plugin installation, the Node-free runtime path, and the absence of complete-config or ~/.dsh fallbacks.

Record the Python profile-runtime decision and update the active naming, installed-wheel, and SEA packaging notes with precise supersession. Regenerate the configuration catalog and module graph after deleting the carrier, update both reviewed languages and pairing records, and classify the retained standalone Cordis files as lower-level test fixtures rather than launch interfaces.
2026-08-24 17:28:27 +08:00
creatixchu 30704dc1df fix(attachment): budget master pixels and share the encoding ladder
Master dimensions move from a 2048 long-edge rule to a total-pixel
budget (normalizedImageMaxPixels, default 2048x2048) with an 8192
long-edge cap, so extreme aspect ratios keep short-edge resolution.
The shared quality ladder and lazy execution move to encoding.ts,
review-round doc fixes land across attachment and llm packages, and
the superseded facts in the unified-image-pipeline note now describe
the shipped routing.
2026-08-24 17:10:59 +08:00
Dudu-0223 32d7092c84 Merge remote-tracking branch 'origin/master' into codex/pr-365-fixes 2026-08-24 16:33:31 +08:00
Dudu-0223 a268aada8c fix(spill-local): harden startup cleanup 2026-08-24 16:33:15 +08:00
creatixchu ebb8010b56 Merge remote-tracking branch 'origin/master' into worktree/2885-image-compression
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	packages/llm/llm-deepseek/README.i18n.yaml
#	packages/llm/llm-deepseek/README.md
#	packages/llm/llm-deepseek/README.zh.md
#	packages/llm/llm-deepseek/src/adapter.ts
2026-08-24 16:23:34 +08:00
creatixchu 4863890535 fix(attachment): route image encoding by alpha over shared quality ladders
Delete the 5-bit colour-count classifier and palette PNG branch that
misrouted high-frequency photographic JPEGs (issue #2885 images 23/24)
into an encoder 100x slower with 4x larger output. Both normalization
and request-image encoding now route by the decoded alpha fact alone:
opaque sources down a JPEG ladder and alpha sources down a WebP
effort-0 ladder, each at qualities 85/75/60. Byte budgets become ladder
targets: the downscale retry loop is gone and a ladder-exhausted encode
keeps its smallest output, while provider byte caps stay enforced at
the transmitting route. Request transforms move to request-image-v5.
2026-08-24 16:14:32 +08:00
creatixchu 5c799a9520 fix(attachment): 修正 Windows 只读发布顺序 2026-08-24 15:44:42 +08:00
Dudu-0223 545d177911 fix(spill-local): make startup cleanup race-safe 2026-08-24 15:36:51 +08:00
Dudu-0223 2f430f2fbd feat(spill-local): one-shot startup cleanup for local spill files
The local spill backend never reclaimed its files, so configured roots
grew without bound and default per-process dsh-spill-* temp roots piled
up across runs. Immediate deletion is unsafe because persisted, resumed,
and forked sessions may still reference an older locator.

Add a fiber-owned, best-effort sweep that runs once after activation
(never delaying availability, awaited on disposal): it deletes regular
files older than cleanupPeriodDays (default 30; 0 disables) across the
configured root and prior default temp roots, prunes emptied dirs, and
skips symlinks/unknown entries. Every filesystem failure is contained
and logged, so the sweep cannot fail activation or a concurrent write.
2026-08-24 15:36:51 +08:00
Turtle 749c4ef93e fix: sample dev web metadata at startup 2026-08-24 15:04:01 +08:00
Turtle 65a8d6be1b feat(client): show build version in local banner 2026-08-24 15:04:00 +08:00
creatixchu 558f08780c refactor(attachment): 分离宿主位置与模型访问路径 2026-08-24 14:51:03 +08:00
creatixchu 7f4cf99eeb 修正图片路径访问与只读存储 2026-08-24 13:11:04 +08:00
creatixchu bd4e4173e7 feat(attachment): expose model-readable image paths 2026-08-24 12:08:26 +08:00
Yichen Jiang 02d6af9d05 Merge pull request #2864 from deepseek-harness/fix/derive-shipped-preset-root-per-composition
fix(cli): derive the shipped agent-preset root per composition
2026-08-24 10:54:29 +08:00
imccyu ce1247d953 docs(client): sync injected module graph contract 2026-08-24 10:37:06 +08:00