Turtle and Tianyi Cui
747cbf13b6
Describe the ask approval policy by its meaning
...
Replace the literal "Approval policy: ask." runtime-context sentence
with a statement parallel to the never-policy sentence, and refresh the
current-generation fixtures that persist it.
Co-authored-by: Tianyi Cui <[email protected] >
2026-10-22 23:13:19 +08:00
Yichen Jiang
fb378dacf2
fix(web): offer DeepSeek web tools whenever a credential exists
...
The DeepSeek search and Search/Fetch API providers now report readiness
from credential presence alone, on any model route: the account token
first on the deepseek-account route, then a literal apiKey or a
configured apiKeyEnv reference. A conversation on another provider's
model keeps web_search and web_fetch while a DeepSeek key is configured,
as on master, so the route refusal WEB_PROVIDER_ROUTE_DISABLED and its
upgrade guide are removed.
The pi-ai-conversation-updates and deepseek-messages-system-prompt
snapshots replay their master recordings again, the headless keyless
smoke points its search key reference at an unset variable, and the
readiness Agent Note records the rejected route and endpoint rules.
2026-10-22 15:38:16 +08:00
Yichen Jiang
1922f322aa
fix(web): gate the DeepSeek web providers on the model route alone
...
Review found two faults in the endpoint and configuration checks. The
providers took the official chat route's endpoint from the first active
dsh-llm-deepseek-api-key Loader row, so a composition that isolates several
instances answered for an unrelated one: a correct route lost search, or a
gateway's key reached DeepSeek. And a key saved on the Web search settings
page lands under the default DEEPSEEK_API_KEY reference, so the inference
that search had its own configuration never saw it.
Both DeepSeek web packages now serve only the deepseek-account and
deepseek-official routes, whatever key they are configured with, and no
longer compare the chat endpoint with their own. ready() checks the route
and then credential presence as before; the API-key resolver repeats the
route check and refuses with WEB_PROVIDER_ROUTE_DISABLED. The packages no
longer read Loader rows or depend on dsh-llm-deepseek-api-key, so the
lockfile, the module graph, and the keyless smoke expectations that the
endpoint check had changed return to master's.
An upgrade guide covers conversations on other providers' models, which
lose DeepSeek web search and, with the Search and Fetch APIs selected,
web_fetch.
2026-10-22 13:48:53 +08:00
Yichen Jiang
d373778fd8
Merge remote-tracking branch 'origin/master' into worktree/web-search-dynamic-tool-e26c2b
...
# Conflicts:
# packages/web/tool-web/tests/tool-web.spec.ts
# snapshots/session/pi-ai-conversation-updates/session.v4.jsonl
2026-10-22 10:32:41 +08:00
Yichen Jiang
207b30d299
Merge remote-tracking branch 'origin/master' into worktree/dynamic-tool-activation-pr-64796e
...
# Conflicts:
# docs/config-catalog.md
# docs/config-catalog.zh.md
# 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
# docs/persistence-schema.json
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/tool-calls.ts
# packages/core/agent-loop/tests/tool-updates.spec.ts
# packages/core/system-prompt/README.i18n.yaml
# packages/core/system-prompt/README.md
# packages/core/system-prompt/README.zh.md
# packages/core/tool-executor-ptc/src/ptc.ts
# packages/core/tool-executor-ptc/tests/ptc.spec.ts
# packages/core/tools/README.i18n.yaml
# packages/core/tools/README.md
# packages/core/tools/README.zh.md
# packages/core/tools/src/index.ts
# packages/extensions/tool-cordis/src/api-catalog.ts
# packages/plan/plan-mode/tests/plan-mode.spec.ts
# snapshots/session/cordis-inspect-jsdoc/session.v4.jsonl
2026-10-21 23:32:15 +08:00
_Kerman
a53ecb2f3a
Merge origin/master into xtr/tool-executor-plugins
2026-10-21 15:56:44 +08:00
Yichen Jiang
7f32f6c3cc
test(snapshots): declare exit_plan_mode only in plan mode
...
Keyless session, SDK, ACP, and Web snapshots, the subagent-inheritance
expected output, and the Python dynamic-tools snapshot no longer list
exit_plan_mode outside plan mode, and the collapse-timing goldens count one
fewer added tool. In plan-review, the approved exit now removes the tool on
the next step: its header records a change that starts a series and a
tool-removal developer message, which the expanded Web timeline shows.
cordis-inspect-jsdoc records the new tools service signatures. The pwsh
tool-turn pins are edited by hand because pwsh is unavailable for a local
refresh; their only change is the removed schema.
2026-10-21 15:15:29 +08:00
Yichen Jiang
7a75f225c5
Merge remote-tracking branch 'origin/master' into worktree/web-search-dynamic-tool-e26c2b
...
# Conflicts:
# apps/cli/tests/profiles/headless/tests/fixtures/cli.patch.yml
# apps/cli/tests/profiles/sdk/keyless-smoke.e2e.ts
# apps/web/tests/expected/plugin-config/official.expected.md
# apps/web/tests/expected/plugin-manager/live-enabled.expected.md
# apps/web/tests/expected/plugin-manager/manager.expected.md
# apps/web/tests/expected/plugin-manager/refresh.expected.md
# apps/web/tests/plugin-config.e2e.ts
# apps/web/tests/plugin-manager.e2e.ts
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.md
# docs/module-graph.zh.md
# docs/subsystems/web.i18n.yaml
# docs/subsystems/web.md
# docs/subsystems/web.zh.md
# packages/client/ui-settings-web-search/README.i18n.yaml
# packages/client/ui-settings-web-search/README.md
# packages/client/ui-settings-web-search/README.zh.md
# packages/web/tool-web/README.i18n.yaml
# packages/web/tool-web/README.md
# packages/web/tool-web/README.zh.md
# packages/web/web-search-deepseek/README.i18n.yaml
# packages/web/web-search-deepseek/README.md
# packages/web/web-search-deepseek/README.zh.md
# packages/web/web-search-deepseek/src/provider.ts
# packages/web/web-search-deepseek/tests/deepseek.spec.ts
# packages/web/web/src/index.ts
# snapshots/session/web-search-endpoint-guidance/session.v4.jsonl
2026-10-21 14:47:47 +08:00
_Kerman
78b577faa4
refactor(profiles): select PTC execution through overlays
2026-10-19 17:34:49 +08:00
_Kerman
2f69e7f181
test: finish executor fixture migration and await readiness
2026-10-19 15:41:31 +08:00
_Kerman
b907ff53d9
test(cli): probe the public tool batch entry in profile resolution
2026-10-19 15:06:41 +08:00
_Kerman
31a49c6629
Merge remote-tracking branch 'origin/master' into xtr/tool-executor-plugins
...
# Conflicts:
# docs/capability-seams.i18n.yaml
# docs/tool-catalog.i18n.yaml
# packages/bundle/base/package.json
# packages/core/agent-loop/tests/serial-listener-review.spec.ts
# packages/core/agent-tool-presentation/package.json
# packages/experimental/auto-review/tests/auto-review.spec.ts
# packages/lsp/tool-lsp/package.json
# packages/subagent/tool-subagent/tests/list-models.spec.ts
# scripts/check-workspace-constraints.ts
# scripts/type-equiv.manifest.json
# tsconfig.base.json
2026-10-19 14:53:33 +08:00
_Kerman
455686626d
refactor(tools): separate scoped executors from tool registration
2026-10-19 14:49:55 +08:00
_Kerman
c18f5bd3c0
Merge remote-tracking branch 'origin/master' into xtr/session-model-selection
...
# Conflicts:
# docs/capability-seams.i18n.yaml
# docs/capability-seams.md
# docs/capability-seams.zh.md
# docs/config-catalog.md
# docs/config-catalog.zh.md
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.md
# docs/module-graph.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.md
# docs/persistence-catalog.zh.md
# docs/persistence-schema.json
# packages/api/session-controller/src/types.ts
# packages/bundle/base/package.json
# packages/bundle/headless/README.i18n.yaml
# packages/bundle/headless/README.md
# packages/bundle/headless/README.zh.md
# packages/bundle/headless/package.json
# packages/bundle/headless/tsconfig.json
# packages/subagent/tool-subagent/tests/model-selection-settings.spec.ts
# scripts/type-equiv.manifest.json
2026-10-19 11:30:55 +08:00
Tianyi Cui
55fddb3424
refactor(auto-review): recognize existing user task sources
2026-10-18 11:44:14 +08:00
Tianyi Cui
e0dffac6fa
fix(headless): refine Auto policy reporting and fixtures
2026-10-18 11:44:14 +08:00
Tianyi Cui
7181effc69
feat(headless): support unattended experimental Auto review
2026-10-18 11:44:14 +08:00
Tianyi Cui
d6e6550caf
test(auto-review): type the restore timestamp assertion
2026-10-18 11:44:13 +08:00
Tianyi Cui
928c3a872b
test(auto-review): pin restore and live reload behavior
2026-10-18 11:44:13 +08:00
Tianyi Cui
4923f3cb4c
fix(auto-review): preserve Auto during application shutdown
2026-10-18 11:44:13 +08:00
Tianyi Cui
cec41e73e0
fix(headless): validate invocation policy across custom profiles
2026-10-18 11:13:48 +08:00
Tianyi Cui
29630d9fa6
feat(headless): support supervised worktree tasks
2026-10-18 11:13:48 +08:00
Dudu-0223
1448360b66
refactor(subagent): make model discovery explicitly opt-in
2026-10-17 14:02:01 +08:00
Dudu-0223
50d57a5969
test(subagent): refresh CLI and Python control tool histories
2026-10-17 13:41:01 +08:00
Dudu-0223
4df09d37d5
refactor(subagent): register shared control tools together
2026-10-17 13:28:17 +08:00
_Kerman
3551b06833
test(cli): select the next-step effort before step preparation
...
agent/request now rejects reasoning-effort changes, so the keyless mock
records off effort with ctx.agentModel.select() after the first step's
tool call. The headless session expectation gains that model/selection
event, and the sdk-minimal built config dump lists dsh-agent-model.
2026-10-16 16:34:11 +08:00
Dudu-0223
219be197c9
fix(agent-team): inject member identity through required runtime context
2026-10-13 11:12:49 +08:00
Dudu-0223
c6f60e68f0
Merge pull request #6008 from deepseek-harness/fix/subagent-depth-awareness
...
fix(subagent): announce exhausted delegation depth
2026-10-13 10:55:07 +08:00
Magolor
5249d9a4ce
fix: prefer saved credentials and use environment keys in headless ( #5483 )
...
* ui: show locked API key environment reference
* fix(ui-settings-models): skip unused pi-ai credential reference
* fix(ui-settings-models): show active provider auth source
* test(llm): cover provider auth check failures
* docs(ui-settings-models): clarify active provider authentication
* test(web): update model key copy snapshots
* fix(ui-settings-models): clarify native authentication source hint
* fix: address PR 5483 review feedback
* docs(llm): state empty auth lookup behavior
* fix: refresh auth hints with credential snapshots
* fix: require credential refresh revision
* test: cover auth status projection
* fix: refresh catalog and browser expectations after rebase
* fix: keep auth status projection internal and explicit
* fix: preserve credential source checks with signed-in account rows
* test: pin Models authentication instead of inheriting host keys
* fix: prioritize stored credentials across providers
* fix: use one environment fallback hint
* docs: refresh credential contract
* docs: refresh config catalog
* test: align provider hint verification
* fix: use provider-native auth hints and endpoints
* fix: cover oauth-capable provider auth hints
* fix: show canonical endpoint defaults
* fix: avoid misleading endpoint fallback
* fix: label catalog endpoint defaults
* fix: shorten auth hints with hover details
* fix: clarify native auth resolution
* test: align DeepSeek endpoint hint
* fix: pair help button corner shape
* fix: address credential precedence review
Record the stored-credential precedence in a superseding Agent Note and
an upgrade guide, and align the credentials subsystem page, package
READMEs, and JSDoc with the order file > launch env > $cwd/.env >
$DSH_HOME/.env.
Report each pi-ai route's catalog endpoint and native-auth environment
names through the provider directory, check the names against the
installed pi-ai resolvers, and remove the llm/checkAuth and credential
describe operations that no Models page code calls.
Restore the route-derived key reference and the home expansion that
reads the home directory only for a leading ~.
* fix: clarify model authentication guidance
* fix: explain native provider OAuth requirements
* fix: keep authentication guidance method neutral
* fix: show credential reference source in model editor
* fix: use environment authentication in headless profile
* fix: validate headless authentication and current provider metadata
* test: retain authentication guidance coverage with account catalog updates
* test: retain writable Models credentials with the pinned environment
2026-10-13 10:10:06 +08:00
ZiyaZhang
2998eb0311
Merge master and fix depth-limit snapshot CI
2026-10-12 00:25:05 -07:00
fz
e75e13313c
Merge pull request #5531 from deepseek-harness/fix/5520-job-session-timestamps
...
fix(jobs): persist owned lifecycle timing in sessions
2026-10-12 14:15:56 +08:00
Turtle
f34e5cc59b
Merge pull request #5938 from deepseek-harness/fix/persistence-disposal-order
...
fix(session): retain JSONL resources through provider-triggered teardown
2026-10-12 14:14:36 +08:00
fz
88a0be8486
Merge master after separating plugin-manager fix
2026-10-12 13:04:25 +08:00
turtle1999
dfca3c3c6f
fix(session): use namespace exports for JSONL persistence plugin
2026-10-09 15:10:49 +08:00
turtle1999
22d0bd19a3
fix(session): preserve JSONL persistence default plugin import
2026-10-09 14:10:52 +08:00
turtle1999
4d9047be2d
fix(session): retain JSONL resources through provider-triggered teardown
2026-10-09 13:46:43 +08:00
fz
e493fd40dc
fix(jobs): use short UUIDs for visible job ids
2026-10-08 21:04:58 +08:00
creatixchu
b7dbd7bb03
Merge master into feat/persistent-ptc
2026-10-08 20:58:22 +08:00
fz
7af8741513
Merge origin/master into fix/5520-job-session-timestamps
2026-10-08 20:02:49 +08:00
Yichen Jiang
d0dda93064
Merge remote-tracking branch 'origin/master' into worktree/web-search-dynamic-tool-e26c2b
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-31-web-default-search.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# packages/web/tool-web/README.i18n.yaml
# packages/web/web-search-deepseek/README.i18n.yaml
# packages/web/web/README.i18n.yaml
# snapshots/sdk/subagent-dsh-sdk-dynamic-route/session.1.v4.jsonl
# snapshots/sdk/subagent-dsh-sdk-dynamic-route/session.v4.jsonl
2026-10-08 18:56:11 +08:00
涂轶翔
abd3380a52
Merge pull request #4934 from deepseek-harness/feat/pi-ai-087
...
feat(llm-pi-ai): support in-history system prompts and tool updates
2026-10-08 18:18:18 +08:00
fz
5e6b0a5c53
Merge origin/master into fix/5520-job-session-timestamps
2026-10-08 16:56:04 +08:00
fz
54c13688a8
fix(jobs): use one durable job id and ordered shutdown
2026-10-08 16:17:52 +08:00
Dudu-0223
e3c0599a47
Merge master into refactor/agent-team-direct-steer
2026-10-08 14:54:48 +08:00
Yixiang Tu
5209845a7d
test(cli): cover pi-ai Kimi prompt and tool updates through the headless profile
2026-10-08 14:38:55 +08:00
creatixchu
bc2bd61f6f
Merge master into feat/persistent-ptc
2026-10-08 14:17:51 +08:00
fz
2be7329142
fix(jobs): preserve lifecycle order and headless settlement
2026-10-08 12:47:48 +08:00
fz
672b384eea
Merge master into job lifecycle timing and refresh owned fixtures
2026-10-08 11:02:16 +08:00
Tianyi Cui
ffb88d331e
feat(llm): resolve minimum reasoning during call preparation
2026-10-07 14:33:23 +08:00
Tianyi Cui
8a199f81eb
test(session-title): refresh the settlement expectation on the rebased master
...
Master changed the same recorded scenario, so its title-request line is
regenerated against the current base.
2026-10-06 15:16:17 +08:00