Commit Graph
18711 Commits
Author SHA1 Message Date
Tianyi Cui 9baebd8f3f fix(benchmarks): keep composer focus during streamed input 2026-09-07 17:21:55 +08:00
Tianyi Cui 09e56a4b4a Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 17:18:19 +08:00
Tianyi Cui 201987b374 perf(llm): scan file content without per-array callbacks 2026-09-07 17:18:18 +08:00
Tianyi Cui a7661e2672 perf(llm): scan file content without per-array callbacks 2026-09-07 17:18:18 +08:00
Dudu-0223 5b91dbfba0 perf(session-query): materialize live observation events on first read 2026-09-07 17:15:35 +08:00
creatixchu 3599ff5119 Merge remote-tracking branch 'origin/master' into worktree/typert-forward-reexport 2026-09-07 17:15:32 +08:00
creatixchu fcb976d3dc refactor(llm): recover IMAGE_OFFLOAD_REQUIRED in llm-retry instead of a new plugin package
Remove the llm-image-offload package and every registration it needed. The
recovery branch lives in dsh-llm-retry, which already sits on the
agent/request-error waterfall: an IMAGE_OFFLOAD_REQUIRED failure advances the
image/offload watermark by the count the adapter names and retries the step
outside the provider retry budget. Drop pre-dispatch planning with it: routes
no longer declare a request-image budget on their model info, and the byte
checks that stay in the DeepSeek and pi-ai adapters are provisional until the
provider reports uncacheable images itself.
2026-09-07 17:03:23 +08:00
Tianyi Cui d718965f00 Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 16:58:53 +08:00
Tianyi Cui f277ec0e06 Merge published V3 root after master integration approval
Include the root merge ancestry from #3669. Preserve the already validated system-message child recording rather than restoring the root’s header-system representation. The resulting tree is unchanged from the preceding representation head.
2026-09-07 16:58:52 +08:00
CreatixChu cb602a0df5 Merge pull request #3507 from deepseek-harness/worktree/3410-model-switch-notice
feat(agent): announce model switches
2026-09-07 16:55:45 +08:00
_Kerman ead14339bc refactor(ui-chat): fold local-path media mapping into AssistantMarkdown
A single-consumer pure helper does not earn its own file: the mapping
now lives beside the prose vocabulary it serves (same shape as the
deliverables file-mention logic), and its unit cases merged into the
component spec.
2026-09-07 16:46:46 +08:00
Tianyi Cui 7ef325619f Merge branch 'master' into fix/pr-ci-reliability-20260906 2026-09-07 16:46:31 +08:00
Tianyi Cui 930e4d67ea Merge pull request #3669 from deepseek-harness/fix/spkv-root-latest-master
ci(session): bring protected V3 integration onto latest master
2026-09-07 16:45:19 +08:00
_Kerman 4b009e7f94 refactor(api): shrink media-references surface and reuse maintained libs
- /api/file module now exports only the SessionMediaReferences plugin
  contribution; MIME and range policy helpers are module-private and
  exercised entirely through the registered route.
- Replace the hand-rolled media extension table with mime-types (served
  categories image/video/audio, excluding image/svg+xml) and the
  hand-rolled Range parser with range-parser; keep the fail-closed
  workspace containment policy.
- Spec rewritten as route-level behavior tests (12 cases) covering the
  same branches; Agent Note facts updated in the same change.
2026-09-07 16:35:15 +08:00
Yichen Jiang 6a3582fe93 Merge branch 'feat/plugin-mgmt-3-settings' into feat/plugin-mgmt-4-web 2026-09-07 16:32:08 +08:00
Yichen Jiang 89fb3ef083 Merge branch 'feat/plugin-mgmt-2-manager' into feat/plugin-mgmt-3-settings
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/module-graph.i18n.yaml
2026-09-07 16:31:43 +08:00
Yichen Jiang 42764971ca refactor(agent-presets): remove the global-tool-mask package nothing composes
`dsh-global-tool-mask` wrapped `tools.restrict()` as a composition row so a
preset's user patch layer could hide a host tool. No shipped preset, the
plugin manager, and the settings UI compose such a row, so the package had a
README, a test, and no consumer. It goes, with its `apps/cli` dependency,
its `tsconfig.host.json` reference, the README example that named it, and the
generated catalogs. `tools.restrict()` stays: subagent tool filters call it.

Hiding a host tool from one preset is a per-preset setting for the
scope-resolved settings of the next layer, not a hand-written row; the Agent
Note records the removal under alternatives considered.
2026-09-07 16:29:41 +08:00
_Kerman f81c5072bd fix(api): close coverage edges in media-references route 2026-09-07 16:20:10 +08:00
creatixchu 48cc1cf1d6 feat(agent): announce model switches 2026-09-07 16:19:59 +08:00
Tianyi Cui b0ba955be2 Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 16:17:19 +08:00
Tianyi Cui 476918da0a Merge latest master teardown and migration waiter fixes
Observe actual shared-preparation waiter admission and settle both callers before cleanup, preserving current V3 migration expectations. Adopt master’s cross-platform teardown regressions without changing budgets or Session data.
2026-09-07 16:15:57 +08:00
Tianyi Cui a062772d7d Merge latest master teardown and migration waiter fixes
Observe actual shared-preparation waiter admission and settle both callers before cleanup, preserving current V3 migration expectations. Adopt master’s cross-platform teardown regressions without changing budgets or Session data.
2026-09-07 16:15:57 +08:00
_Kerman b685a9a6b0 fix(api): satisfy oxlint same-type operand rule in range header 2026-09-07 16:02:14 +08:00
07akioni 5fd247f64c Merge latest master into feat/electron 2026-09-07 16:02:13 +08:00
creatixchu b2a3a0335d fix(typert): follow package-local forwarding modules in cross-package references
A type imported by relative path from a module of the same package that
re-exports it from another package failed as a cross-package reference
without an explicit package import. The analyzer now resolves the relative
specifier, follows re-exports while the file stays inside the referencing
package, and applies the public-export check to the package specifier the
chain reaches. Relative paths into other packages and forwarded private
exports still fail.

Fixes #3525
2026-09-07 15:58:40 +08:00
creatixchu cea09de58c Merge remote-tracking branch 'origin/master' into worktree/3041-image-offload-log-design 2026-09-07 15:58:23 +08:00
creatixchu 8c7b023d6c refactor(llm): move image offload planning into a plugin and trim the change surface
Keep the agent loop unchanged: the new @deepseek-ai/dsh-llm-image-offload
plugin plans the image/offload watermark on agent/pre-step from the routed
model's budget and advances it on agent/request-error when an adapter fails
with IMAGE_OFFLOAD_REQUIRED, returning the retry action the loop already
honours. Drop PreparedLlmCall.imageRequest and its validation, the planner
wrapper, the replay adapter's imageRequestMaxBytes option, and the duplicate
ACP snapshot scenario; share the exact-byte overflow count between the
DeepSeek and pi-ai adapters through requiredImageOffload(). The SDK image
snapshot replays an authored IMAGE_OFFLOAD_REQUIRED attempt instead of a
replay-only budget.
2026-09-07 15:58:20 +08:00
_Kerman 7a715e7919 refactor(api): serve /api/file media by extension allowlist only
Drop the byte-signature sniff duplicated from fs/tool-fs's read_image tool:
the cross-file duplication gate forbids the clone, and no shared owner
exists without widening the attachment package's public API. The
extension allowlist keeps non-media content out; corrupt image payloads
fail in the browser, not on the route. Agent Note facts updated in the
same change.
2026-09-07 15:53:54 +08:00
_Kerman 0c823f4b6f chore(docs): re-record config catalog translation-pair record 2026-09-07 15:53:53 +08:00
Tianyi Cui 4ac4e3d014 Merge pull request #3668 from deepseek-harness/fix/windows-subagent-teardown-ci
test(ci): synchronize Windows waiters and complete teardown
2026-09-07 15:52:01 +08:00
Tianyi Cui 7ebde31dde Merge current master human inbox controls into in-history updates
Preserve in-history request ordering and native V3 system heads while incorporating master’s human inbox controls. Regenerate only the current SDK child recording through its actual owner; retained V2 predecessor bytes match master.
2026-09-07 15:50:05 +08:00
Tianyi Cui d9042f61e1 test(snapshot): refresh V3 human-steering child recording
Record current V3 output from master’s human inbox control scenario while retaining the V2 predecessor unchanged. No additional product behavior or validation change.
2026-09-07 15:48:25 +08:00
Tianyi Cui b7f66f4440 test(sdk): record native V3 human-steering inbox transitions
Refresh the current V3 child recording through the actual SDK scenario after master’s inbox-control change. Preserve the V2 predecessor inherited from master and retain system-message admission and current references.
2026-09-07 15:47:27 +08:00
Tianyi Cui 50cce9c28d Merge latest master human inbox controls into system-prompt layer
Preserve the V3 PTC SDK assertion and enable the new human-steering runtime fixture while carrying master’s inbox lifecycle changes. Retain prior deterministic CI repairs and immutable predecessor ownership.
2026-09-07 15:45:09 +08:00
Tianyi Cui fffd39b101 Merge latest master human inbox controls into V3 integration
Preserve the V3 PTC scenario while enabling the current subagent human-steering fixture environment. All product changes are inherited from master; no V3 migration semantics are altered.
2026-09-07 15:44:17 +08:00
_Kerman 2aaa88ca1a chore(docs): regenerate config catalog after session-controller import shift 2026-09-07 15:42:16 +08:00
Tianyi Cui ce9f124e0e Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 15:40:52 +08:00
Tianyi Cui e2b3800a7e fix(python): challenge fresh file state in live SDK smoke 2026-09-07 15:40:51 +08:00
Dudu-0223 96ead6091d feat(subagent): align human inbox controls (#3223)
* feat(subagent): align continuable human inbox controls

* fix: repair rebase documentation and close test persistence

* docs: refresh rebased module dependency graph
2026-09-07 07:39:39 +00:00
_Kerman 9da174c304 fix(web): display local media paths referenced in session prose
Assistant prose that references a workspace-contained local media path
(e.g. `![](/Users/.../x.png)`) now renders through a same-origin
`GET|HEAD /api/file?path=` route instead of inert alt text.

- ui-primitives: MarkdownText gains a settled-only MarkdownPathImages
  vocabulary gate (same posture as file mentions); no vocabulary means
  byte-identical output.
- ui-chat: AssistantMarkdown supplies a page-stable rewrite vocabulary
  for absolute POSIX paths (local-path-media.ts).
- session-controller: SessionMediaReferences plugin contribution mounts
  the route on the authenticated connection.fetch channel; per-request
  policy = workspace-root containment after realpath, regular file,
  allowlisted media extension (images additionally signature-checked),
  range/HEAD streaming, private no-store + nosniff, fail-closed statuses.
- Agent Note added (feature/2026-09-07-session-prose-local-media-display).

Closes #3662.
2026-09-07 15:34:19 +08:00
Tianyi Cui 275ff714cf Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 15:03:33 +08:00
Tianyi Cui f7b1658ff2 fix(benchmarks): reserve system heads in generated V3 histories 2026-09-07 15:03:32 +08:00
creatixchu 6b3681ae44 Merge remote-tracking branch 'origin/master' into worktree/3041-image-offload-log-design
# Conflicts:
#	docs/architecture.i18n.yaml
#	docs/architecture.md
#	docs/architecture.zh.md
2026-09-07 14:59:46 +08:00
Tianyi Cui 0d0914b814 fix(agent-loop): import message type for freeze provenance
Restore the explicit Message type import needed by master’s per-agent WeakSet after composing it with the in-history request builder.
2026-09-07 14:56:45 +08:00
Tianyi Cui 70ae2354d0 Merge latest master performance work and V3 preset migration
Freeze exactly the post-admission derived message array using the inherited per-agent provenance cache, preserving the prepared-route ordering and retry semantics. Adopt the root’s legacy preset migration without changing native V3 custom preset behavior. Request freeze, admission, projection and reconstruction regressions pass58 tests.
2026-09-07 14:55:12 +08:00
Tianyi Cui 19d167cec2 Merge latest master request-freeze and frontend performance work
Preserve the V3 system-prompt projection while adopting master’s per-agent frozen-message provenance and frontend performance gates. Keep benchmark workload admission and diagnostics fixes intact, and retain both migration and first-open/reopen lifecycle guarantees.
2026-09-07 14:53:00 +08:00
Tianyi Cui 95400aa52c Merge V3 preset-reference migration into system-prompt representation
Compose the root’s exact legacy code-to-ptc preset conversion with the existing structural system-head migration. Keep dense source events, audited payload admission, local reference mapping, and native V3 extension behavior unchanged. Preserve the historical preset migration fixture byte-for-byte and test unsupported sparse/opaque sources explicitly.
2026-09-07 14:51:05 +08:00
Tianyi Cui 85dcebcda4 Merge remote-tracking branch 'origin/master' into fix/spkv-root-latest-master 2026-09-07 14:48:39 +08:00
Tianyi Cui 8d0f45febc Merge remote-tracking branch 'origin/release/session-log-v3' into fix/spkv-root-latest-master 2026-09-07 14:47:55 +08:00
Tianyi Cui 5608528e14 Merge pull request #3637 from deepseek-harness/perf/frontend-scenarios
test(perf): gate long-session browser and reconnect workflows
2026-09-07 14:42:15 +08:00