Commit Graph
6350 Commits
Author SHA1 Message Date
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 357d9749d1 Merge remote-tracking branch 'origin/master' into fix/web-fetch-ssrf
# Conflicts:
#	apps/web/tests/preview-boot.e2e.ts
2026-08-24 21:13:00 +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 9f2ba9f5aa Merge origin/master (regenerate config catalog) 2026-08-24 19:51:16 +08:00
creatixchu 5183bc2b65 fix(compaction): 摘要收缩改按路由价并补齐定价访问路径
ds-review-bot 首轮意见修复:

- 摘要收缩比较改用所选节点的路由价 shadowedRouteTokenCount,修复图片消息启发式价低于带框摘要时压缩被误拒;日志影子价仍为启发式
- DeepSeek 定价经序列化器同一套 access 解析构建句柄与占位文本,消除逐图数十 token 的低估;uncatalogued 分支 JSDoc 指明复现 projectImagesForTextModel 替换
- llm-replay 在加载时拒绝纯文本模型上的 imageRequestTokens 声明
- contextBreakdown 的 README 与 JSDoc 改为等于 heuristicTokens 之和,不再声称等于路由价 surfaceTokens
2026-08-24 19:48:52 +08:00
creatixchu 42164508c8 feat(llm): 在 compaction 中按路由为图片请求压力计价
Closes #2848.

- dsh-llm 新增 LlmAdapter.imageRequestPricing 同步钩子与 LlmImageRequestPricing/LlmImageRequestPrice 词汇,ctx.llm 按路由解析
- llm-deepseek 用官方公布的 v4 视觉计算器逐句移植(14px patch、3:1 降采样、384 上限、最坏对齐 pad)实现该钩子,复现请求投影的最旧优先 offload 与像素预算缩放;纯几何 requestImageDimensions 上移到 dsh-attachment
- token-meter 表层 fold 存储与路由无关的节点事实,measure() 按生效 envelope 的路由为图片出现处定价;锚点存快照并按同一路由重定价;TokenSurfaceNode 同时携带路由价 tokens 与固定启发式 heuristicTokens
- compaction 触发、保留与选段读取同一套路由价,记录的 shadowedTokenCount 保持启发式以维持 O(1) 投影 fold 一致
- llm-replay 支持按模型的 imageRequestTokens 声明;新增 keyless 的 image-compaction ACP 快照场景端到端验证装配应用
2026-08-24 19:15:30 +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
pku-xht fe8a961348 feat(subagent): configure Codex provider models 2026-08-24 18:31:02 +08:00
pku-xht a043395c2d feat(subagent): configure Claude Code provider models 2026-08-24 18:30:49 +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
_Kerman 334dd53c92 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2781
# Conflicts:
#	.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.i18n.yaml
#	.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.md
#	.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.zh.md
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/api/session-controller/tests/session-cold.host.spec.ts
#	packages/bundle/web-app/package.json
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/session/session-projection-cache/package.json
2026-08-24 15:13:10 +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
Dudu-0223 9fbcea099b feat(web): require one-shot fetch approval 2026-08-24 13:38:06 +08:00
_Kerman 9deabe717f Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery 2026-08-24 13:17:57 +08:00
_Kerman 015d7e0752 docs(session-projection): keep registry contract unchanged 2026-08-24 13:14:21 +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
Dudu-0223 b2219bba63 fix(web): block non-public fetch destinations 2026-08-24 11:47:08 +08:00
_Kerman 71a179a305 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672 2026-08-24 11:13:56 +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
Yichen Jiang 925eac4b2e Merge remote-tracking branch 'origin/master' into fix/derive-shipped-preset-root-per-composition 2026-08-24 10:36:24 +08:00