4723 Commits

Author SHA1 Message Date
_Kerman
2be3e12965 fix(apiproxy): harden cold session metadata probing 2026-08-13 15:09:21 +08:00
creatixchu
0dcf37fbaf Merge remote-tracking branch 'origin/master' into worktree/drop-beta-welcome-notice 2026-08-13 14:33:50 +08:00
Tianyi Cui
fcfc93896e Merge pull request #2435 from deepseek-harness/worktree/mark-repository-naming-note-implemented
docs: mark repository naming contract implemented
2026-08-13 14:31:52 +08:00
Turtle
3a1a4e2cd8 docs: address fragment review feedback 2026-08-13 14:30:17 +08:00
Turtle
bca790481c docs: document stable fragment aliases 2026-08-13 14:20:09 +08:00
Turtle
62080d49c2 docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
creatixchu
45f417fb6a Merge remote-tracking branch 'origin/master' into worktree/drop-beta-welcome-notice 2026-08-13 14:18:54 +08:00
creatixchu
37247ea705 Merge remote-tracking branch 'origin/master' into worktree/drop-beta-welcome-notice 2026-08-13 14:14:55 +08:00
creatixchu
b70a549714 fix(review): update smoke-real onboarding path and telemetry disclosure facts 2026-08-13 14:10:42 +08:00
imccyu
a213befd0f build(release): publish the vendored framework and the native packages publicly
The three release sequences shipped with publishConfig.access: restricted, so
nothing in the @deepseek-ai scope was installable from outside the organization.

A restricted dependency is what actually blocks a public consumer: every harness
package declares the vendored framework as a peerDependency, and
dsh-sandbox-local declares the Landlock entry as a dependency. Those two
sequences therefore go public first — the nine vendor/* packages and the three
native/landlock-run packages — while the dsh family stays restricted until its
own sequence is opened deliberately. No public package requires a restricted one
in this arrangement.

Access is now per sequence, so no publish path can pass --access: one flag
cannot express two levels and would override the manifest that owns the fact.
publish.ts stops passing it, matching the native workflow, and
check-workspace-constraints holds each manifest to its own sequence's level,
which is what stops the scope from drifting one package at a time.

Harness consumers reference the Landlock entry as workspace:^ instead of
workspace:*, so a published harness package accepts the entry's patch and minor
releases. The entry keeps workspace:* for its platform packages, where the
binary must match the entry version exactly.

Two rationales that named a private registry no longer describe the vendored
sequence; they now state the durable reason, which is that the verification must
not depend on the registry already carrying matching versions.
2026-08-13 14:05:48 +08:00
imccyu
1646b7617e fix(bundle): exclude product subagents from base
The Codex and Claude Code subagent providers were production dependencies of
@deepseek-ai/dsh-base and mounted by its Cordis composition, so every install of
the base bundle carried two providers that only some products want.

Drop both from the base bundle's dependencies and composition. The examples keep
them as explicit dependencies, base's tests lock their absence, and the product
preset e2e mounts the providers it needs explicitly.

Cherry-picked from #2387 (two commits squashed into one).
2026-08-13 14:05:46 +08:00
_Kerman
3c06c66ac4 fix(web): hide verified cold blank sessions 2026-08-13 14:04:16 +08:00
_Kerman
14cf3334be fix(web): keep older trajectory history loadable 2026-08-13 14:04:06 +08:00
Turtle
a312675d10 Merge pull request #2454 from deepseek-harness/codex/capitalize-service-provider
docs: capitalize Service Provider across repository
2026-08-13 14:03:57 +08:00
creatixchu
b37243a317 Merge remote-tracking branch 'origin/master' into worktree/drop-beta-welcome-notice 2026-08-13 14:01:24 +08:00
creatixchu
5061ec2ef0 feat(web): 移除首启内测声明,遥测保持默认关闭 2026-08-13 13:47:09 +08:00
Turtle
1540e76598 docs: capitalize Service Provider across repository 2026-08-13 13:31:30 +08:00
Yichen Jiang
914344d253 Merge branch 'master' into fix/withhold-oauth-only-providers 2026-08-13 13:20:44 +08:00
Yichen Jiang
a5a83bd1d9 fix(llm-pi-ai): withhold OAuth-only providers from the configurable directory
pi-ai resolves an OAuth provider from a stored OAuth credential alone, and
this adapter builds its Models collection with no credential store and runs
no login flow. `openai-codex` — the one installed provider declaring
`auth.oauth` with no `auth.apiKey` — was therefore offered on the Models page
with the keyless placeholder every pi-ai route carries, and every request on
it failed `Provider is not configured` before going out.

`catalogProviderTakesApiKey()` answers whether pi-ai's installed provider for
a route declares the one method this adapter can supply, and the directory
skips the catalog routes that fail it. Catalog membership is unchanged, so
`declared` still answers what pi-ai ships; the profile half of the union stays
unconditional, so a route a settings document already names keeps its entry
and can be edited or deleted.

Resolution is untouched: a profile naming `apiKeyEnv` on such a route still
builds a working provider.
2026-08-13 13:15:47 +08:00
Hypatia May
b6b6a72df7 feat(session-query): ship full-text session search opt-in via openAt never
The shipped bundles keep ctx.sessionQuery mounted but set the new
session-query-sqlite `openAt: never` phase: searchSessions/searchEvents
fail with the typed SESSION_QUERY_SEARCH_DISABLED code before any request
normalization, node:sqlite is never imported or opened, and no source
observation or reconciliation runs. Every inherited exact read, filter,
and trace — session export descendants, subagent-fork Workspace
inheritance, title reads — keeps working, and the Web sidebar search
degrades to its designed local title/workspace matching. Enabling content
search is a one-line openAt override in a later patch layer; the web e2e
scaffold keeps it enabled as the assembled opt-in coverage.
2026-08-13 11:46:37 +08:00
Tianyi Cui
137c3c9254 Merge pull request #2428 from deepseek-harness/fix/run-code-description-contract
让 run_code 的模型面说明点名必填的 description 参数
2026-08-13 11:17:48 +08:00
Yichen Jiang
3bcc1a0bf7 Merge remote-tracking branch 'origin/master' into worktree/minimal-no-runtime-context
# Conflicts:
#	packages/core/system-prompt/README.i18n.yaml
#	packages/core/system-prompt/README.md
#	packages/core/system-prompt/README.zh.md
#	packages/examples/agent-spine-demo/README.i18n.yaml
#	packages/examples/agent-spine-demo/README.md
#	packages/examples/agent-spine-demo/README.zh.md
#	packages/self-modification/tool-cordis/src/api-catalog.ts
2026-08-13 10:24:29 +08:00
Yichen Jiang
a135df8be6 Merge remote-tracking branch 'origin/master' into fix/run-code-description-contract
# Conflicts:
#	examples/headless-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
#	examples/headless-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
#	examples/headless-agent/tests/snapshots/advanced-toolchain/session.jsonl
2026-08-13 10:13:53 +08:00
Tianyi Cui
50c010d1b8 Merge origin/master into naming note stack
# Conflicts:
#	.agents/notes/proposed/architecture/2026-08-11-repository-naming-contract-and-rename-ledger.i18n.yaml
2026-08-13 05:39:58 +08:00
Tianyi Cui
0233b8b26b docs: mark repository naming contract implemented 2026-08-13 05:20:43 +08:00
imccyu
34dd480ae5 fix(session-query): rename session log export package 2026-08-13 05:02:00 +08:00
_Kerman
68e1d5a587 Merge remote-tracking branch 'origin/master' into dshw/pr-2423
# Conflicts:
#	packages/client/ui-sidebar/src/client/SidebarRoot.tsx
2026-08-13 04:32:57 +08:00
imccyu
a7d4cd8e1b fix: ci 2026-08-13 01:33:31 +08:00
imccyu
4064198560 • feat(self-modification): add dynamic Cordis plugin runtime and UI 2026-08-13 01:29:36 +08:00
Tianyi Cui
a2d0f7f411 refactor: apply repository naming contract
Apply the accepted pre-release package, service, type, directory, and role renames as one repository-wide change.
2026-08-13 00:54:38 +08:00
_Kerman
3ef05f8a85 review: address ds-review-bot findings on composer geometry
- Rewrite the 08-04 gutter-reservation note in place: the reservation is Chat's alone and the overlay branch points to the seat-width compensation note; the Testing section now describes the uncompensated control.
- Cross-reference the earlier rejection of the seat inset in the 08-12 note and record the engine-resolved-vs-fixed-8px drift as accepted residual cost instead of asserting Firefox resolves 8px.
- Pair --dsh-scrollbar-width with the mirrored ::-webkit-scrollbar rule and the compensation consumer in the scrollbar-styles gate; document the variable in the ui-theme README.
- Rename the e2e control to compareTabsWithoutCompensation and correct the vacuity-guard comment; rewrap the WorkspaceBrowser doc comment.
2026-08-12 23:51:46 +08:00
Yichen Jiang
63fecf2534 fix: name run_code's required description argument in its model-facing prose
The transport schema requires both `code` and `description`, but the tool
description and both SDK instruction flavors described the call as passing a
program. `description` was reachable only through the parameter schema, so a
model following the prose emitted `{code}` alone and lost the whole written
program to an INVALID_ARGS rejection.

The length and format guidance stays in RUN_CODE_DESCRIPTION_PARAM_DESCRIPTION
alone, so the schema and the prompt cannot drift.

Fixes #2426
2026-08-12 23:30:51 +08:00
Yichen Jiang
ece8645080 fix: suppress runtime context in minimal profiles 2026-08-12 23:28:15 +08:00
Chinesezjc
9523dff0fd fix(web): resolve the pwsh-terminal overlay duplicate-loader entry
The web E2E seed lane for the pwsh terminal card failed on every platform
with `duplicate loader entry id: tool-pwsh`. The overlay inserted a new
tool-pwsh row, but the base bundle has declared that id since the shell
platform layer moved into it, so the overlay's insert delivered a second
row with the same id and the loader rejected the pair at boot.

Enable the existing tool-pwsh row by id instead of inserting it, and
disable pwsh-sandbox so the inserted pwsh-local is the lone executor on
every platform (the base gates pwsh-sandbox on win32, which would
otherwise collide with the inserted executor there).
2026-08-12 23:27:45 +08:00
Ziya
e5e0b47cf2 Merge branch 'master' into agent/web-file-reference-prompt 2026-08-12 23:19:35 +08:00
_Kerman
de97ea0ba8 fix(sidebar): synchronize collapsed rail motion 2026-08-12 22:56:36 +08:00
_Kerman
7c4c118456 fix(web): reclaim overlay scrollbar gutter 2026-08-12 22:56:36 +08:00
Yichen Jiang
06e01b30dd Merge remote-tracking branch 'origin/master' into feat/plugin-owned-settings-surface
# Conflicts:
#	packages/client/ui-plugin-config/README.i18n.yaml
#	packages/client/ui-plugin-config/README.md
#	packages/client/ui-plugin-config/README.zh.md
#	packages/client/ui-plugin-config/src/client/PluginConfigSection.tsx
#	packages/client/ui-plugin-config/src/client/index.ts
#	packages/client/ui-plugin-config/tests/apply.client.spec.ts
#	packages/client/ui-plugin-config/tests/section.client.spec.tsx
2026-08-12 22:50:49 +08:00
ZiyaZhang
1ca6f68b17 fix(web): guide clickable file references 2026-08-12 07:30:53 -07:00
Chinesezjc
c4e24071d6 Merge pull request #2331 from deepseek-harness/ci/serial-drill-concurrency
ci: exempt only push from concurrency cancellation
2026-08-12 22:08:09 +08:00
07akioni
76949198df Merge branch 'master' into fix/stats 2026-08-12 21:52:31 +08:00
Chinesezjc
ae6b20ac14 Merge remote-tracking branch 'origin/master' into ci/serial-drill-concurrency 2026-08-12 21:51:07 +08:00
07akioni
62a437c082 review: address ds-review-bot findings on session-stats
- stateVersion starts at 1: the package is new, no persisted rows predate it
- pendingCalls pairs by own key so a provider callId naming a prototype
  property cannot fold toolMs to NaN on an unmatched crash-recovery result
- StatsLine folds the window fallback only when no sessionStats value is
  served, and gates the token group on actual token activity instead of
  steps, so failed-only sessions drop the zero-token group
- correct the crash-step counting semantics in the README and Agent Note:
  recovery closes interrupted steps with a synthetic step/end on reload
- reword the window-scoped alternative as a plain rejected option and name
  isTokenDelta's home beside the StreamChunk type
2026-08-12 21:43:35 +08:00
Yichen Jiang
fdb1c47896 docs(settings): scope the ordering claim and record the deferred wire gaps
Card registration order is stable only for cards one package installs
together: apply order between packages is unconstrained, so several
external cards can still reorder between boots. The note and README said
otherwise. Recorded alongside it: the redactor returns a secret reachable
only through a union, intersection, or transform verbatim, and serving
every registered namespace widens that gap to third-party schemas; and
the headline capability still lacks an assembled-composition test.

publish() now keeps its snapshot reference when neither the loaded flag
nor the dispatched namespaces moved, so an unrelated settings commit no
longer re-renders the card list.
2026-08-12 21:41:23 +08:00
ZiyaZhang
bf9eb7b538 docs: repair merged translation records 2026-08-12 06:37:56 -07:00
Yichen Jiang
5d9f026e55 fix(settings): correct the exposure analysis and satisfy the coverage and lint gates
The Agent Note claimed the plugin inventory page already exposed every
mounted plugin's effective configuration to the same browser, so the
removed allowlist blocked nothing a caller could not already read. That
is false: PluginInventoryEntry carries entryId, moduleName, enabled, and
fiberPhase, and the page's configuration row renders an enabled tag, not
a stored value. The allowlist did keep an unlisted namespace's resolved,
base, and user values off the wire; the note now says so and rests the
decision on the loopback pin, secret redaction, the user's own document,
and the fact that permission and agent-presets were already served.

The post-await disposal check reads through an opaque method, mirroring
the settings seam's isStopped(): control flow narrowed the field to false
across the await, so the lint gate saw the guard as dead.
2026-08-12 21:35:21 +08:00
07akioni
ae3f89e772 Merge remote-tracking branch 'origin/master' into fix/stats 2026-08-12 21:29:00 +08:00
Tianyi Cui
b3e2de873d Merge master into worktree/fix-1463-rich-content-bridge
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-20-code-mode-typed-tool-returns.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-20-code-mode-typed-tool-returns.zh.md
#	.agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md
#	.agents/notes/implemented/feature/2026-08-10-telemetry-default-off.i18n.yaml
#	.agents/notes/implemented/feature/2026-08-10-telemetry-default-off.md
#	.agents/notes/implemented/feature/2026-08-10-telemetry-default-off.zh.md
#	.agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.i18n.yaml
#	.agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.zh.md
#	apps/web/tests/scaffold.ts
2026-08-12 21:25:26 +08:00
Ziya
85c9aac5e9 Merge branch 'master' into feat/web-plugin-settings-tabs 2026-08-12 21:24:52 +08:00
07akioni
efb1857853 Merge remote-tracking branch 'origin/master' into fix/stats 2026-08-12 21:22:05 +08:00