Yichen Jiang
fe31cd7609
Merge remote-tracking branch 'origin/master' into claude/unified-environment-credentials-c8841a
...
# Conflicts:
# apps/cli/src/profile-boot.ts
# apps/cli/src/web.ts
2026-08-06 22:34:46 +08:00
Tianyi Cui
4b1528bcec
Merge retargeted parent into Claude Code subagent provider
2026-08-06 21:38:47 +08:00
Yichen Jiang
5e139ac64e
Merge remote-tracking branch 'origin/master' into claude/unified-environment-credentials-c8841a
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-20-dsh-cli-personal-config.i18n.yaml
# .agents/notes/implemented/feature/2026-07-20-dsh-cli-personal-config.md
# .agents/notes/implemented/feature/2026-07-20-dsh-cli-personal-config.zh.md
# apps/cli/config/base.cordis.yml
# apps/cli/package.json
# apps/cli/reference/README.i18n.yaml
# apps/cli/reference/README.md
# apps/cli/reference/README.zh.md
# apps/cli/src/app-cli-entry.ts
# apps/cli/src/args.ts
# apps/cli/src/bin.ts
# apps/cli/src/config.ts
# apps/cli/src/dump-config.ts
# apps/cli/src/headless.ts
# apps/cli/src/web.ts
# apps/cli/tests/args.spec.ts
# apps/cli/tests/built-bin.e2e.ts
# apps/cli/tests/headless-shutdown.e2e.ts
# apps/cli/tsconfig.json
# docs/user/guide/config.i18n.yaml
# docs/user/guide/config.md
# docs/user/guide/config.zh.md
# examples/mcp-memory/README.i18n.yaml
# examples/mcp-memory/README.md
# examples/mcp-memory/README.zh.md
# packages/bundle/web-app/cordis.patch.yml
# packages/cordis/repository-plugin/README.i18n.yaml
# packages/cordis/repository-plugin/README.md
# packages/cordis/repository-plugin/README.zh.md
# packages/credentials/credentials-local/README.i18n.yaml
# packages/credentials/credentials-local/README.md
# packages/credentials/credentials-local/README.zh.md
# packages/ui/app-boot/README.i18n.yaml
# packages/ui/app-boot/README.md
# packages/ui/app-boot/README.zh.md
# packages/ui/app-boot/src/index.ts
# packages/ui/app-boot/tests/config-reload.spec.ts
# packages/ui/app-boot/tests/user-patches.spec.ts
# pnpm-lock.yaml
2026-08-06 21:34:45 +08:00
Tianyi Cui
0748ebee39
Merge latest master into Codex subagent provider
2026-08-06 21:26:31 +08:00
Turtle
a51b88d2aa
Merge remote-tracking branch 'origin/master' into feat/profile-plugin-management
...
# Conflicts:
# apps/cli/src/headless.ts
# docs/event-producer-consumer.md
# packages/host/apiproxy/README.i18n.yaml
2026-08-06 20:03:22 +08:00
Turtle
20acfdb71d
docs: tutorial for packaging and installing a plugin bundle
...
Adds docs/user/develop/basic/publish.md (+ zh pair, website entry) to the
basics path: the bundle-vs-profile manifest split, dsh plugin add into a
profile, the five-layer loading order, and the GitHub-install build-script
catch — git specs ship sources, so the author owns a self-contained prepare
script and the user owns an allowBuilds allowance that is install-time code
execution; built tarballs and npm need neither.
2026-08-06 17:28:40 +08:00
Turtle
62d0f26fd6
refactor(cli)!: namespace the profile and bundle manifests under dsh.profile and dsh.bundle
...
A profile manifest and a bundle manifest are different kinds and shared one
flat `dsh` section: `dsh.plugins` listed bundles (not plugins) and `dsh.patch`
declared a bundle's layer. Each kind now names its role — a bundle declares
`dsh.bundle.patch`, a profile declares `dsh.profile.bundles` — so a
package.json states which role it plays and the list name matches its contents.
`DEFAULT_PROFILE_PLUGINS` becomes `DEFAULT_PROFILE_BUNDLES`, and
`DshManifestSection` splits into `DshBundleManifest`/`DshProfileManifest`.
Pre-release: no compatibility shim; turtle-ui moved with it (bd5ff10).
2026-08-06 17:28:30 +08:00
_Kerman
d0224d239c
Merge remote-tracking branch 'github/master' into feat/agent-event-payload
...
# Conflicts:
# docs/core-data-structures/core.i18n.yaml
2026-08-06 17:10:01 +08:00
Yichen Jiang
bce4a038c9
Merge remote-tracking branch 'origin/master' into claude/unified-environment-credentials-c8841a
...
# Conflicts:
# docs/config-catalog.md
# packages/llm/llm-pi-ai/src/config.ts
# packages/llm/llm-pi-ai/src/index.ts
# packages/llm/llm-pi-ai/tests/sdk-options.spec.ts
2026-08-06 16:52:19 +08:00
Yichen Jiang
a6a0788108
Merge remote-tracking branch 'origin/master' into claude/unified-environment-credentials-c8841a
2026-08-06 15:28:40 +08:00
_Kerman
262d044642
fix(agent): route loop dispatches through prebuilt fused dispatcher
...
Address review feedback on PR #1738 :
- ReactLoopAgent builds its AgentEventDispatch once in the constructor and
routes every emit/serial/waterfall through it, so hot-path dispatches no
longer allocate a carrier and dispatcher per call; the public carrier
field is gone (fused dispatcher is private).
- agentEvents accepts an optional prebuilt carrier.
- The fused payload builder spreads the payload before the injected agent
so a structurally acceptable payload carrying an agent field can never
override the subject.
- Regenerate doc graphs; re-record core + architecture + affected Agent
Note translation pairs; add payload-object event contract Agent Note.
2026-08-06 13:44:23 +08:00
_Kerman
23671848c3
Merge remote-tracking branch 'github/master' into feat/agent-event-payload
2026-08-06 13:26:04 +08:00
Yichen Jiang
42b9ee7a53
Merge branch 'claude/web-llm-pi-ai-config-385e24' into claude/pi-ai-model-discovery
...
# Conflicts:
# docs/core-data-structures/core.i18n.yaml
# docs/event-producer-consumer.md
2026-08-06 13:05:15 +08:00
Yichen Jiang
98b894f8eb
Merge remote-tracking branch 'origin/master' into claude/web-llm-pi-ai-config-385e24
...
# Conflicts:
# docs/event-producer-consumer.md
2026-08-06 13:03:40 +08:00
_Kerman
f535f590d6
docs: re-record core translation pair and refresh doc graphs
2026-08-06 12:17:54 +08:00
_Kerman
ee44980c51
docs(session): refresh generated catalogs after agent event payload rework
...
Regenerate persistence catalog (types.ts line drift from retired
PreStepContext/RequestFailureContext) and drop the retired PreStepContext
entry from the type-equiv manifest.
2026-08-06 12:16:23 +08:00
_Kerman
ccebba2349
refactor(agent): unify agent-scoped event signatures as payload objects
...
All agent/* and agent-loop/config-start-failed events take one payload
object carrying the agent subject; waterfall/serial payloads require a
signal and keep next as the final argument. PreStepContext and
RequestFailureContext are unfolded into payloads and retired.
goal/changed follows the same shape so agentEvents keeps its listener
error containment. ReactLoopAgent builds its scope carrier once in the
constructor. Regenerates scope resolvers, tool-cordis api catalog, and
docs catalogs; updates all affected listeners, tests, and the
core-data-structures docs (en + zh).
2026-08-06 12:13:14 +08:00
creatixchu
e90e419273
Merge remote-tracking branch 'origin/worktree/context-source-cards' into worktree/context-forms-remaining
2026-08-06 12:03:50 +08:00
creatixchu
851fe793c4
Merge remote-tracking branch 'origin/master' into worktree/context-source-cards
...
# Conflicts:
# packages/client/runtime/src/client/sessions/transcript-adapter.ts
# packages/client/ui-conversation/README.i18n.yaml
2026-08-06 12:03:15 +08:00
creatixchu
cc06d3c04b
Merge remote-tracking branch 'origin/worktree/context-source-cards' into worktree/context-forms-remaining
...
# Conflicts:
# apps/web/tests/snapshots/queue-actions/layout.expected.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/goal.i18n.yaml
# docs/core-data-structures/goal.md
# docs/core-data-structures/goal.zh.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/goal-snapshots/goal-session/session.expected.jsonl
# examples/acp-agent/tests/goal-snapshots/goal-wrapup/session.expected.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/acp-agent/tests/snapshots/bash-spill/session.jsonl
# examples/acp-agent/tests/snapshots/bash-tool-turn/session.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/cancel-tool-calls/session.jsonl
# examples/acp-agent/tests/snapshots/cancel/session.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/empty-response-retry/session.jsonl
# examples/acp-agent/tests/snapshots/error-finish/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/fs-edit/session.jsonl
# examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/fs-policy-reject/session.jsonl
# examples/acp-agent/tests/snapshots/fs-read-window/session.jsonl
# examples/acp-agent/tests/snapshots/fs-read/session.jsonl
# examples/acp-agent/tests/snapshots/fs-write-overwrite/session.jsonl
# examples/acp-agent/tests/snapshots/fs-write/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-invalid-matcher/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-block/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-stop-continue/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-invalid-matcher/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-block/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-pretool-block/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-stop-continue/session.jsonl
# examples/acp-agent/tests/snapshots/lsp-definition/session.jsonl
# examples/acp-agent/tests/snapshots/missing-sandbox-runner/session.jsonl
# examples/acp-agent/tests/snapshots/multi-turn/session.jsonl
# examples/acp-agent/tests/snapshots/packed-chunks/session.jsonl
# examples/acp-agent/tests/snapshots/parallel-tool-calls/session.jsonl
# examples/acp-agent/tests/snapshots/partial-landlock-child-failure/session.jsonl
# examples/acp-agent/tests/snapshots/pty-tools/session.jsonl
# examples/acp-agent/tests/snapshots/repeat-tool-guard/session.jsonl
# examples/acp-agent/tests/snapshots/session-query-spill/session.jsonl
# examples/acp-agent/tests/snapshots/session-sandbox-root/session.jsonl
# examples/acp-agent/tests/snapshots/session-title-after-turn/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-continuable/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-continuable/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-list-agents/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-list-agents/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-published-run-failure/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-report/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-report/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# examples/acp-agent/tests/snapshots/todo-write/session.jsonl
# examples/acp-agent/tests/snapshots/tool-call-turn/session.jsonl
# examples/acp-agent/tests/snapshots/web-fetch/session.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/session.1.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-edit/session.jsonl
# examples/headless-agent/tests/snapshots/goal-tools/stream-json.expected.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/stream-json.expected.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/child.expected.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/parent.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/persistent-tools/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/persistent-tools/session.jsonl
# packages/bash/tool-bash/tests/integration.spec.ts
# packages/context/time-context/src/index.ts
# packages/context/tmux-context/src/index.ts
# packages/core/agent-loop/src/agent.ts
# packages/core/system-prompt/src/index.ts
# packages/goal/goal/src/domain.ts
# packages/goal/goal/src/index.ts
# packages/goal/goal/src/render.ts
# packages/plan/plan-mode/src/index.ts
2026-08-06 11:49:03 +08:00
imccyu
e5810d450e
Merge remote-tracking branch 'origin/master' into mergebot/pr1667
2026-08-06 11:42:14 +08:00
creatixchu
d0d8cd5365
Merge remote-tracking branch 'origin/master' into worktree/context-source-cards
...
# Conflicts:
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
2026-08-06 11:29:50 +08:00
creatixchu
6747c2d44d
Merge remote-tracking branch 'origin/master' into worktree/context-source-cards
...
# Conflicts:
# .agents/notes/implemented/simplification/2026-07-31-web-ui-no-steer-entry-or-interjection-chrome.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-31-web-ui-no-steer-entry-or-interjection-chrome.md
# .agents/notes/implemented/simplification/2026-07-31-web-ui-no-steer-entry-or-interjection-chrome.zh.md
# apps/web/tests/seeded-history.e2e.ts
# apps/web/tests/snapshots/queue-actions/layout.expected.md
# docs/core-data-structures/core.i18n.yaml
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# 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
# examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/tests/history-fold.spec.ts
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/chat/MessageItem.tsx
# packages/client/ui-conversation/tests/chat-branch-tails.spec.tsx
# packages/context/workspace-context/src/index.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/skill/tool-skill/README.i18n.yaml
# packages/skill/tool-skill/README.md
# packages/skill/tool-skill/README.zh.md
# packages/skill/tool-skill/src/index.ts
# packages/skill/tool-skill/tests/tool-skill.spec.ts
2026-08-06 11:28:48 +08:00
Yichen Jiang
a358d9d68a
Merge remote-tracking branch 'origin/master' into claude/unified-environment-credentials-c8841a
...
# Conflicts:
# examples/headless-agent/tests/headless.snapshot.ts
# examples/headless-agent/tests/snapshots/missing-credential/stream-json.expected.jsonl
# packages/llm/llm-deepseek/tests/adapter.spec.ts
2026-08-06 10:52:32 +08:00
Yichen Jiang
4bd66d8e7c
Merge branch 'claude/web-llm-pi-ai-config-385e24' into claude/pi-ai-model-discovery
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/core-data-structures/core.i18n.yaml
# docs/event-producer-consumer.md
# packages/host/apiproxy/README.i18n.yaml
# packages/llm/llm/README.i18n.yaml
2026-08-06 10:50:20 +08:00
Yichen Jiang
17c86bbb25
Merge remote-tracking branch 'origin/master' into claude/web-llm-pi-ai-config-385e24
...
# Conflicts:
# packages/llm/llm-pi-ai/tests/adapter.spec.ts
# packages/llm/llm/README.i18n.yaml
2026-08-06 10:47:36 +08:00
imccyu
e89b1e612f
fix(session): address restore review feedback
2026-08-06 10:40:32 +08:00
imccyu
28df863bdd
docs(jsonl): refresh generated catalogs
2026-08-06 10:40:31 +08:00
imccyu
03983ff986
perf(jsonl): scan decoded frames incrementally
2026-08-06 10:40:31 +08:00
imccyu
53a17a8491
fix: docs
2026-08-06 10:25:17 +08:00
imccyu
e37aa41f87
fix(session-persistence): close preparation races
2026-08-06 10:19:51 +08:00
Turtle
0556c989b5
docs: regenerate config catalog for the web-app surfaceContext field
2026-08-06 09:35:51 +08:00
Turtle
af5f528903
Merge remote-tracking branch 'origin/master' into feat/profile-plugin-management
...
# Conflicts:
# apps/cli/src/headless.ts
# packages/host/apiproxy/README.i18n.yaml
2026-08-06 06:55:42 +08:00
Turtle
07d24b005f
docs: profile scheme across guides, notes, and generated catalogs; Agent Note
...
Update every doc referencing base.cordis.yml/web.cordis.yml, --config, -p, or
$DSH_HOME/config.yaml to the profile vocabulary with bilingual counterparts
re-recorded; regenerate the catalogs and graphs; add the
profile-plugin-bundles Agent Note recording the design and its rejected
alternatives.
2026-08-06 06:29:06 +08:00
imccyu
2f98f29992
fix(session): address restore review feedback
2026-08-06 05:13:26 +08:00
Turtle
2ee2ee2f96
refactor(webserver): extract SPA dist serving to the frontend-static fallback seat
...
The webserver's built-in static dist serving becomes a single-owner fallback
seat (registerFallback/applyIndexTaps); the SPA server moves to the new
@deepseek-ai/dsh-frontend-static plugin so the composing application owns its
dist as composition, not carrier config. distIndex leaves the webserver
schema; unclaimed fallback answers 404.
2026-08-06 04:39:52 +08:00
imccyu
ede74b1926
fix(session-persistence): invalidate stale preparations
2026-08-06 04:11:58 +08:00
imccyu
feb2c35cef
fix(session-persistence): address preparation review feedback
2026-08-06 04:11:58 +08:00
imccyu
2b9428f35d
fix(session-persistence): satisfy preparation gates
2026-08-06 04:11:57 +08:00
imccyu
e089ef92d8
docs: document session preparation flow
2026-08-06 04:11:57 +08:00
imccyu
59df683ef1
fix(token-meter): bound projection state via logged shadow prices
...
The contextBreakdown and contextPressure units carried the full priced
surface, so each session's persisted projection checkpoint grew without
bound. A surface replacement is now priced by the shadow-price event
logged directly before it — compact/summary for compaction, the new
compact/prune from tool-result pruning (priced through the injected
token meter) — and the unit states shrink to a fixed handful of numbers.
Regenerate the persistence/cordis/module/config catalogs.
2026-08-06 02:50:38 +08:00
imccyu
a17eebcaca
docs(metrics): clarify projection and latency contracts
2026-08-06 00:22:09 +08:00
imccyu
b0d1d9445e
Merge remote-tracking branch 'origin/master' into mergebot/pr1667
...
# Conflicts:
# apps/web/tests/snapshots/queue-actions/preserved.expected.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/session.i18n.yaml
# packages/client/runtime/src/client/session-history/history-fold.ts
# packages/client/ui-conversation/README.i18n.yaml
# packages/core/session/src/index.ts
2026-08-05 22:56:57 +08:00
Huanqi Cao
17ff1e0d4a
Merge pull request #1624 from deepseek-harness/feat/pwsh-ui-parity
...
feat(pwsh): render pwsh calls as bash-shaped terminal cards in the Web UI
2026-08-05 22:20:11 +08:00
Huanqi Cao
ca65cf1e14
Merge remote-tracking branch 'origin/master' into feat/pwsh-ui-parity
...
# Conflicts:
# apps/web/tsconfig.json
2026-08-05 21:51:31 +08:00
_Kerman
dc2e2821b9
Merge follow-up: re-record translation hashes and fix e2e fixture shape
2026-08-05 21:42:59 +08:00
_Kerman
207e32493c
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
Resolve translation-pairing hashes after the merge and adapt the
math-rendering e2e fixture to the simplified turn/start event shape.
2026-08-05 21:42:33 +08:00
_Kerman
488b8df547
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/cookbook/extension-cookbook.i18n.yaml
# docs/cookbook/extension-cookbook.md
# docs/cookbook/extension-cookbook.zh.md
# docs/core-data-structures/llm-streaming.i18n.yaml
# docs/core-data-structures/session.i18n.yaml
# docs/defensive-patterns.i18n.yaml
# packages/acp/acp/README.i18n.yaml
# packages/client/runtime/README.i18n.yaml
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-goal/README.i18n.yaml
# packages/compact/compact-basic/README.i18n.yaml
# packages/context/README.i18n.yaml
# packages/context/README.md
# packages/context/README.zh.md
# packages/context/session-reference/README.i18n.yaml
# packages/context/session-reference/README.md
# packages/context/session-reference/README.zh.md
# packages/context/tmux-context/README.i18n.yaml
# packages/core/session/README.i18n.yaml
# packages/core/session/README.md
# packages/core/session/README.zh.md
# packages/goal/command-goal/README.i18n.yaml
# packages/goal/goal-session/README.i18n.yaml
# packages/goal/goal-session/README.zh.md
# packages/guard/README.i18n.yaml
# packages/guard/README.md
# packages/guard/README.zh.md
# packages/guard/repeat-tool-guard/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
# packages/plan/plan-mode/README.i18n.yaml
# packages/sdk/sdk-client/README.i18n.yaml
# packages/sdk/sdk-client/README.md
# packages/sdk/sdk-client/README.zh.md
# packages/session-persistence/session-persistence/README.i18n.yaml
# packages/subagent/subagent-dsh-sdk/README.i18n.yaml
# python/sdk/README.i18n.yaml
2026-08-05 20:43:30 +08:00
_Kerman
208ec20dd9
docs(agent): mark claim as the loop-internal step-boundary operation
2026-08-05 20:26:46 +08:00
Yichen Jiang
2dd4b8e78d
fix(host): pin model discovery to loopback and drop its unread wire field
...
llm.discoverModels was reachable from any declared trusted host. The
method takes a caller-supplied baseURL and makes the host issue a GET to
it, then reports the status or the parsed body — so on a LAN deployment
an anonymous caller had a probe for whatever the host can reach and the
browser cannot, plus a path that carries a draft credential. The
PRIVILEGED_METHODS doc already states the rule this broke: trustedHosts
is a DNS-rebinding fence, not authentication, so the configuration plane
stays loopback-same-origin. It is in that set now, asserted both against
the hand-built fence and over real HTTP beside the catalog reads that
deliberately stay reachable.
supportsDiscovery and listModelDiscoveryNamespaces are gone. The field
was required on the wire and read by nobody: its own contract said a
surface should offer the action "instead of naming an adapter family it
would have to hardcode", while the surface hardcodes llm-pi-ai in two
places and gates the button on whether there is anything to probe. Its
shape did not fit the second caller either — the create card has no row
to read a per-row field from. Keeping a required field alive for a
consumer that may never arrive costs every producer and fixture a value
nobody consults, which is exactly how the fixtures drifted. The registry
that fed it had no other production consumer, so registration and
disposal are now observed through the offer itself.
The Agent Note claimed the key is never logged, which the wire schema
beside it already contradicts, and predated both the provider field and
the catalog-answer path. The two new public types pointed at core.md
without a type-equiv block or manifest entry, so the generated service
catalog named documentation that did not exist.
2026-08-05 19:51:11 +08:00