Commit Graph
100 Commits
Author SHA1 Message Date
creatixchu f800ea46e5 refactor(deliverables): group tool-present and workspace-changes under packages/deliverables
Both Host packages hand the turn's deliverables to the user and neither
is a filesystem capability, so they leave packages/fs for a new
packages/deliverables group. The Client package stays at
packages/client/ui-deliverables. Paths in tsconfig references and
aliases, gates, generated catalogs, READMEs, and the implemented notes
follow the move; archived notes and released schema records stay as
written.
2026-09-14 13:33:54 +08:00
creatixchu 88d40e28ab docs(config): refresh the workspace-changes catalog entry after the source moved 2026-09-14 13:04:26 +08:00
creatixchu 904e589573 test(web): keep the sentence the right-Sidebar scenario waits for 2026-09-14 12:39:59 +08:00
creatixchu 86a1bf1e80 fix(workspace-changes): resolve canonical paths lazily and make the tests portable
The packed worker deployment offers no realpathSync.native at plugin load, so
the home and temporary roots are now canonicalized asynchronously when a
Session first locates its repository. Windows-neutral tests replace chmod
and POSIX-only path expectations, and the right-Sidebar scenario enters
through the closing prose's file mention.
2026-09-14 12:37:22 +08:00
creatixchu 7f5f4e778a fix(web): keep line counts visible after a changed-files row opens
A completed native open no longer replaces the row's counts with a lasting
acknowledgement; only pending and failed opens do, for rows and the folder
header alike.
2026-09-14 11:53:19 +08:00
creatixchu 8ea92ce9b5 fix(workspace-changes): count argument-derived hunks, isolate per-turn state, and harden git handling
Review round fixes: a write that creates a file persists no hunks and
str_replace_editor persists none at all, so mutation calls now contribute
hunks from their arguments when the result carries none; each turn owns a
state object so a record still running for an interrupted turn cannot be
reset by the next turn; git add accepts exit code 1 from --ignore-errors;
rev-parse failures other than a missing repository fail loud; only a missing
index or store is tolerated; the temporary-root exclusion uses the repository
root; a row without a verified Host path previews in the Sidebar. The
recorded scenario now creates an ignored file.
2026-09-14 11:33:59 +08:00
creatixchu 8a52d27a93 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card
# Conflicts:
#	docs/persistence-changes/historical-formats/README.i18n.yaml
#	docs/persistence-changes/historical-formats/README.md
#	docs/persistence-changes/historical-formats/README.zh.md
#	docs/persistence-schema.json
2026-09-14 11:26:05 +08:00
creatixchu 3010cb3dba fix(workspace-changes): resolve the types subpath to source and complete exported JSDoc
Map @deepseek-ai/dsh-workspace-changes/types to src so the persistence catalog
links source instead of built output, and document every exported function
and recorder method.
2026-09-14 11:18:52 +08:00
creatixchu 0d2fcf22dc docs(persistence): refresh format facts after acknowledging the workspace/changes event 2026-09-14 11:08:18 +08:00
creatixchu a27cfb9bd3 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card
# Conflicts:
#	apps/web/package.json
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/persistence-catalog.i18n.yaml
#	docs/persistence-catalog.md
#	docs/persistence-catalog.zh.md
#	pnpm-lock.yaml
2026-09-14 11:07:18 +08:00
creatixchu cdfd8ab5b0 test(web): refresh the changed-files golden for the decorative header glyph 2026-09-14 10:59:38 +08:00
creatixchu d6634272d5 feat(workspace-changes): keep snapshot objects in a private store under the Harness home
Write every snapshot blob and tree into a per-repository object directory
under DSH_HOME/workspace-changes with the repository's objects attached as a
read-only alternate, so the user's repository gains no objects and the Harness
owns retention through objectStoreMaxBytes. The placement follows the
workspace change journal POC and costs nothing measurable.
2026-09-14 10:55:15 +08:00
creatixchu 2b1dabec86 Refresh merged SDK recordings and persistence documentation 2026-09-14 10:25:54 +08:00
creatixchu 27d52a4edb Update image tests for split adapters and durable offload failures 2026-09-14 10:21:54 +08:00
creatixchu a7070008e7 Merge master and integrate image offload with both DeepSeek protocols 2026-09-14 10:19:11 +08:00
creatixchu 63f1f6eca4 chore(workspace-changes): align the package version with the root after the master merge 2026-09-11 17:29:37 +08:00
creatixchu 51de5bbc4d fix(web): draw the changed-files header tile with the design's angle-bracket mark 2026-09-11 17:25:50 +08:00
creatixchu 0f8457a017 feat(workspace-changes): record only git repositories and add the recorded card scenario
Drop the shadow repository tier: a working directory outside any git
repository records nothing and the card stays absent, because a configured
exclude list cannot replace a missing .gitignore reliably. Seed a committed
repository in a new keyless Web scenario so the recorded turn exercises the
recorder, and retire the produced-files row from the affected goldens.
2026-09-11 17:22:15 +08:00
creatixchu 3c632ebf66 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card 2026-09-11 16:47:45 +08:00
creatixchu f937f4e23b feat(web): record turn file changes with git snapshots and render the changed-files card
Add the dsh-workspace-changes Host plugin that snapshots the working tree at
turn start and end through a private git index, diffs the two trees, folds in
file-tool hunks for ignored and out-of-tree files, and appends a log-only
workspace/changes event. The Web deliverables plugin renders that event as the
changed-files card in place of the mutation-call row, with default-app and
common-folder opening through a new authenticated route.
2026-09-11 16:47:40 +08:00
creatixchu 93581008aa docs: refresh the paired Session API record 2026-09-11 15:40:44 +08:00
creatixchu 653a4164b8 docs: sync the projection disposer signature 2026-09-11 15:38:19 +08:00
creatixchu 4e7193945d fix: expose the projection registration async disposer 2026-09-11 15:38:04 +08:00
creatixchu 325c8d880a build: admit pure message projection leaves in browser bundles 2026-09-11 15:35:55 +08:00
creatixchu 401c3ef977 test: type the stored projection fixture as format events 2026-09-11 15:29:33 +08:00
creatixchu 1d4d22c1ff test: complete projection fixtures and configuration catalog 2026-09-11 15:26:54 +08:00
creatixchu 413ac14b16 refactor: move image offload projection into its plugin 2026-09-11 15:24:45 +08:00
creatixchu bc49b2a15c Merge master 28a4010f7d into image offload branch 2026-09-11 14:22:36 +08:00
creatixchu c59d285f99 chore(compaction): mark existing history read for deferred migration 2026-09-11 13:43:02 +08:00
creatixchu ec3560c42e Merge master 16bf879af2 into image offload branch 2026-09-11 13:40:19 +08:00
creatixchu db6dff8f67 Merge remote-tracking branch 'origin/master' into worktree/issue-3929-v41-request-image 2026-09-11 13:16:24 +08:00
creatixchu f0f1988a7a Clarify token counts after aspect-preserving image projection 2026-09-11 11:14:33 +08:00
creatixchu d995331772 feat(web): start the turn-level code diff card for #3501 2026-09-11 11:07:25 +08:00
creatixchu 08dba5f5f6 test(compaction): record summary image recovery through ACP 2026-09-11 11:00:17 +08:00
creatixchu 73e10fb80c fix(compaction): preserve summary diagnostics on cancellation 2026-09-11 10:58:36 +08:00
creatixchu debb4b9a9c fix(compaction): recover durable image offload in summary requests 2026-09-11 10:56:48 +08:00
creatixchu 275af6a2e2 Merge remote-tracking branch 'origin/master' into worktree/issue-3929-v41-request-image 2026-09-11 10:42:03 +08:00
creatixchu ffa536712a Merge remote-tracking branch 'origin/master' into worktree/issue-3929-v41-request-image
# Conflicts:
#	packages/attachment/attachment-local/README.i18n.yaml
#	packages/attachment/attachment-local/README.md
#	packages/attachment/attachment-local/README.zh.md
2026-09-10 17:41:17 +08:00
creatixchu 4b1408e1df Merge origin/master into worktree/3041-image-offload-log-design 2026-09-10 17:20:54 +08:00
creatixchu 31f731cc6f Merge remote-tracking branch 'origin/master' into codex/pr-3440-resync-20260908
# Conflicts:
#	docs/subsystems/llm-streaming.i18n.yaml
#	docs/subsystems/llm-streaming.md
#	docs/subsystems/llm-streaming.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/request-pricing.ts
#	packages/llm/llm-deepseek/tests/request-pricing.spec.ts
2026-09-10 16:52:18 +08:00
creatixchu b5e7fca4a5 feat(compaction): record image offload decisions without message replacement 2026-09-10 16:47:50 +08:00
creatixchu ba30b73f7b refactor(attachment): 求解器留在 llm-deepseek,存储层只接收目标尺寸
ImageRequestPolicy 改为 ImageRequestTarget,只含目标宽、高和字节目标;dsh-attachment 删除 token-grid 投影联合和 tokenGridProjection,只保留提供方无关的 requestImageDimensions 与 longEdgeDimensions。v41 求解器回到 llm-deepseek 的 image-tokens.ts,新增 deepSeekRequestImageDimensions,resolveRequestImageTarget 为每张图算出目标并加 4096 单边上限;pi-ai 路由按自身像素预算推导目标。

按 review 意见修正:v41 计价 Note 里已删除常量的过期句子就地改写;ProjectedDimensions 登记到 attachment 子系统页与 type-equiv 清单;Note 区分发送尺寸与提供方补齐后的网格;短边取整的措辞改为「按路由预测」。
2026-09-10 16:46:28 +08:00
creatixchu e17a736cc3 docs: 同步请求图片投影文档与 Agent Note
更新 attachment、attachment-local、llm-deepseek 的 README,附件与 LLM 流式子系统文档,配置目录,type-equiv 清单,以及双语配对记录;新增请求图片投影的 Agent Note,并修正 v41 计价 Note 里关于 640,000 像素预算的说明。
2026-09-10 16:09:20 +08:00
creatixchu 06c491508f fix(llm-deepseek): 请求图片按 V4.1 token 网格投影
ImageRequestPolicy 改为投影规则加可选单边上限加字节目标,投影是 pixel-budget 或 token-grid 的封闭联合。token 网格求解器放在 dsh-attachment 的 request-projection 里,deepSeekImageTokens 复用同一个求解器计价。DeepSeek 路由默认按 14 px patch、3:1 降采样、1024 token 上限的网格投影,每张请求图片加 4096 像素单边上限,字节目标提高到 2 MiB;显式 imagePixelBudget 与 pi-ai 路由仍走总像素预算。缩放只按长边给定,短边由编码器四舍五入,与投影预测一致。变换版本升到 request-image-v6。

Closes #3929
2026-09-10 16:09:18 +08:00
creatixchu d0ba1a3c6c Merge remote-tracking branch 'origin/master' into worktree/composer-plus-menu 2026-09-10 16:00:13 +08:00
creatixchu 7910cd9e0b test(web): assert the shipped feedback command identity 2026-09-10 16:00:08 +08:00
creatixchu aed83d29ba Merge remote-tracking branch 'origin/master' into worktree/composer-plus-menu 2026-09-10 15:49:55 +08:00
creatixchu fff1ed7aa2 fix(plan): keep command identity independent of optional runtime 2026-09-10 15:48:25 +08:00
creatixchu 81d017bbaa docs: align generated catalog source links in both locales 2026-09-10 15:47:17 +08:00
creatixchu ca827aa2ad fix(commands): refresh catalogs and use type-only export identity 2026-09-10 15:44:30 +08:00
creatixchu 07413c2cc2 Merge remote-tracking branch 'origin/master' into worktree/composer-plus-menu 2026-09-10 15:38:30 +08:00
creatixchu 996278e6ce refactor: separate command identity and composer file action ownership 2026-09-10 15:38:13 +08:00
creatixchu ba2a931a23 Merge remote-tracking branch 'origin/master' into worktree/composer-plus-menu 2026-09-10 15:18:02 +08:00
creatixchu f657a3e87a Merge remote-tracking branch 'origin/master' into worktree/image-token-v41 2026-09-10 14:42:07 +08:00
creatixchu f24bc3c832 fix(llm-deepseek): correct image pricing documentation and edge-case evidence 2026-09-10 14:40:50 +08:00
creatixchu a64dc3a690 fix(llm-deepseek): 图片 token 预估器改用官方计算器 v41 配置
DeepSeek 图像理解指南改为 544×544 放大下限、约 1300×1300 缩小目标、
单图 1024 token 上限;官方图片 Token 计算器以 v41 配置承载该规则。
重写 image-tokens.ts 为 v41 的逐句移植:取消对齐 pad、宽高比钳制和
奇偶校正网格布局,估算值从最坏情况上界变为精确值。测试向量按官方
计算器重新固定,request-pricing 期望值、README 与 Agent Note 同步更新。
2026-09-10 14:05:04 +08:00
creatixchu 6fe445ea08 Merge origin/master into worktree/composer-plus-menu 2026-09-10 13:53:45 +08:00
creatixchu 1faab27329 Merge origin/master into PR #3440 2026-09-10 13:48:38 +08:00
creatixchu 5b8c445eeb fix(snapshots): preserve released inline image fixture 2026-09-09 19:46:13 +08:00
creatixchu 2025036158 Merge origin/master into PR #3440 2026-09-09 19:36:15 +08:00
creatixchu 0b3248e67d test(web): stabilize delivered-file snapshots across CI hosts 2026-09-09 18:21:45 +08:00
creatixchu b53fed39d7 Merge remote-tracking branch 'origin/master' into worktree/pr-3819-release-sync 2026-09-09 18:07:26 +08:00
creatixchu b9587ada12 fix(web): open delivered files using the viewed session scope 2026-09-09 18:07:16 +08:00
creatixchu 2ab73152ae Merge remote-tracking branch 'origin/master' into worktree/pr-3819-release-sync 2026-09-09 18:01:07 +08:00
creatixchu 7f69a3ec37 fix(web): complete shared file icon consumers and browser checks 2026-09-09 18:01:04 +08:00
creatixchu 43bf1d3f93 Merge remote-tracking branch 'origin/master' into worktree/pr-3819-release-sync 2026-09-09 17:56:14 +08:00
creatixchu 454caf0280 fix(web): reject empty sidebar splits and clarify page targeting 2026-09-09 17:56:11 +08:00
creatixchu 9961eedec8 fix(web): preserve office file icons and lazy sidebar replay 2026-09-09 17:48:47 +08:00
creatixchu 7c9b29563d Merge branch 'worktree/pr-3872-release-sync' into worktree/pr-3819-release-sync 2026-09-09 17:34:20 +08:00
creatixchu c6b3900d2a Merge remote-tracking branch 'origin/master' into worktree/pr-3872-release-sync 2026-09-09 17:33:47 +08:00
creatixchu 1d55cab9e6 fix(web): use shared file type icons in delivery cards 2026-09-09 17:23:07 +08:00
creatixchu 644f6abd7c Merge branch 'worktree/pr-3858-release-sync' into worktree/pr-3819-release-sync
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
2026-09-09 17:20:37 +08:00
creatixchu a7b5c8a043 Merge remote-tracking branch 'origin/master' into worktree/pr-3858-release-sync 2026-09-09 17:20:01 +08:00
creatixchu f5804826a8 Merge remote-tracking branch 'origin/master' into codex/pr-3819 2026-09-09 17:13:08 +08:00
creatixchu dfda1d6aaf fix(web): ship protocol runtime dependency for delivered file actions 2026-09-09 17:02:24 +08:00
creatixchu 99bffa7f9a fix(web): update delivery card snapshot and remove unused button segments 2026-09-09 16:52:04 +08:00
creatixchu b443c4d246 fix(present): resolve file services in live agent scope and refresh snapshots 2026-09-09 16:48:39 +08:00
creatixchu 7e4d9edc13 Merge remote-tracking branch 'origin/master' into codex/pr-3819 2026-09-09 16:45:05 +08:00
creatixchu 00bfdfbce6 fix(present): follow session filesystem access for deliverables 2026-09-09 16:44:51 +08:00
creatixchu 74bf7aaa2f fix(web): preserve artifact actions across reconnects and keyboard use 2026-09-09 16:18:24 +08:00
creatixchu a43fa81f82 test: respect startup and teardown budgets in Windows fixtures 2026-09-09 16:08:19 +08:00
creatixchu a8faac2850 Merge origin/master feedback dialog changes into worktree/composer-plus-menu 2026-09-09 15:31:33 +08:00
creatixchu 5a878f7c3e test(web): await restored theme before changing preference 2026-09-09 15:24:56 +08:00
creatixchu 883e7f80fc Merge origin/master into worktree/composer-plus-menu 2026-09-09 15:02:42 +08:00
creatixchu 0b5fca5c68 Merge remote-tracking branch 'origin/master' into worktree/issue-3515-feedback-dialog
# Conflicts:
#	apps/web/tests/message-feedback-layout.e2e.ts
2026-09-09 14:56:31 +08:00
creatixchu eff482c46b fix(web): stabilize composer command editing and scrolling 2026-09-09 14:27:51 +08:00
creatixchu 6c4a2fb294 Merge remote-tracking branch 'origin/master' into worktree/issue-3515-feedback-dialog
# Conflicts:
#	packages/client/ui-model-selection/tests/browser-plugin.client.spec.ts
2026-09-09 14:27:15 +08:00
creatixchu 224f75dc63 test(web): strengthen composer placeholder regression evidence 2026-09-09 14:15:25 +08:00
creatixchu a6ee97ebe1 Merge remote-tracking branch 'origin/master' into fix/3838-composer-placeholder 2026-09-09 14:04:23 +08:00
creatixchu 0f1164cdee fix(web): hide composer placeholder for whitespace drafts 2026-09-09 13:56:54 +08:00
creatixchu a4954e1bd2 test(web): follow the renamed launcher and capitalized rows in CI gates
Registers slash/input-pick-files with the cordis catalog walk exemptions
beside its sibling slash-input events, and points the web e2e at the
'Add files or run commands' launcher and the capitalized row titles the
paperclip removal and the menu presentation introduced.
2026-09-09 12:58:11 +08:00
creatixchu ba066ab5f8 Merge remote-tracking branch 'origin/master' into worktree/composer-plus-menu 2026-09-09 12:53:09 +08:00
creatixchu 00c2c47e19 fix(web): key the claim hint on the command name, not the claim token
A localized claim token (/目标 ) made the composer look up hint.目标, miss the
dictionary, and fall back to the Host's usage string. CommandClaim now carries
the catalog name beside the display token, the state projection keeps it, and
the hint lookup reads it.
2026-09-09 12:52:41 +08:00
creatixchu 0199633269 Merge remote-tracking branch 'origin/master' into worktree/issue-3515-feedback-dialog 2026-09-09 12:45:32 +08:00
creatixchu 700e8df91a test(feedback): cover the seed-failure and unmount paths of the Dislike control 2026-09-09 12:45:31 +08:00
creatixchu 4b88085c2a style(feedback): refine dialog proportions 2026-09-09 11:41:24 +08:00
creatixchu 6207453d36 Merge remote-tracking branch 'origin/master' into worktree/issue-3515-feedback-dialog 2026-09-09 10:44:25 +08:00
creatixchu d692289533 style(feedback): compact the dialog to a 540px card with lighter chips and a grown detail box 2026-09-09 10:42:06 +08:00
creatixchu 1094431de9 docs(feedback): document the FeedbackSurface fields for the export-jsdoc gate 2026-09-09 10:33:09 +08:00
creatixchu a25e5fd8a9 test(sdk): refresh the feedback expectations on the V3 base and restore the frozen v2 generation 2026-09-09 10:27:15 +08:00