Files
deepseek-harness/packages/bundle/sdk-app
Tianyi Cui fd814589fb refactor(profiles): make module HMR opt-in
Move the shared module-reload policy into dsh-base by inserting its HMR row disabled, then remove the redundant disabled overrides from Web, headless, SDK, and ACP. No shipped profile enables server module reload; live profile patch watching continues through the launcher-owned config-only fallback, and browser client HMR remains a separate mechanism.

A later profile layer can opt into source-module reload explicitly with disabled: false while retaining the base root configuration. Composition tests cover every shipped mode and the explicit enable path, and the bundle references plus launcher Agent Notes document the resulting ownership and safety rationale.
2026-08-23 10:59:01 +08:00
..

@deepseek-ai/dsh-sdk-app

English | 中文

The SDK stdio application as a dsh profile bundle over dsh-base. It inherits the base's disabled module-HMR policy; its patch sets the coding-agent persona, mounts an app-owned zero-option command provider, and starts dsh-sdk-jsonrpc-server only after that provider accepts the invocation. dsh --profile sdk --help therefore writes help and exits without claiming stdin or stdout.

The startup provider binds stdin EOF to the launcher's bounded successful shutdown. SDK protocol shutdown, SIGINT, and SIGTERM retain their owning server or launcher paths; disposal drains the root profile tree and persistence. Stdout is reserved for newline-delimited JSON-RPC frames. The bundle disables model-generated session titles because the SDK exposes no title surface; deterministic fallback titles remain durable without an auxiliary model request. A deployment selects a different complete composition through profile bundles and patch files, not another app bin.

DSH_MAX_TOKENS_AS_SUCCESS retains the SDK deployment mapping: unset or JSON true reports token-limited subagent completion as accepted, while JSON false reports it as an error. Provider/model and workspace cwd arrive through the SDK initialization request; the base profile owns adapters, tools, persistence, policy, settings, and credentials.

Model Experience

SDK coding-agent persona

What the model sees

The profile supplies You are a coding agent powered by the {{model}} model. Your working directory is {{cwd}}. before the base tool and context contributions. The exact SDK initialization route and session cwd resolve the placeholders.

Token effect

One short stable persona plus the data-dependent base prompt sections and selected tool schemas.

KV Cache effect

Stable for a fixed profile, provider, model, and tool roster. Profile changes take effect on the next process because the shipped SDK profile uses startup-only patches.

Known Limitations and Deferred Work

  • A profile can omit the SDK server — a custom profile selected by the TypeScript client must retain this bundle or another dsh-sdk-jsonrpc-server row; client initialization fails when no peer answers.
  • User plugins can violate stdout purity — profile and per-launch patches are trusted application composition. The shipped bundle writes no non-protocol stdout, but it cannot contain an arbitrary inserted plugin.
  • Configuration changes require restart — the shipped sdk profile uses patchReload: startup so one stdio connection never observes a replacement server or Agent dependency.