deepseek-harness/packages/client/ui-settings-general
CreatixChu aba776b179 Merge pull request #1056 from deepseek-harness/worktree/locale-browser-default
feat(web): open a fresh browser in the language it asks for
2026-07-31 17:32:52 +08:00
..
src docs(onboarding): document telemetry opt-out 2026-07-31 17:05:30 +08:00
tests Merge pull request #1056 from deepseek-harness/worktree/locale-browser-default 2026-07-31 17:32:52 +08:00
package.json Merge remote-tracking branch 'origin/master' into worktree/locale-browser-default 2026-07-31 16:42:37 +08:00
README.i18n.yaml docs(onboarding): document telemetry opt-out 2026-07-31 17:05:30 +08:00
README.md docs(onboarding): document telemetry opt-out 2026-07-31 17:05:30 +08:00
README.zh.md docs(onboarding): document telemetry opt-out 2026-07-31 17:05:30 +08:00
tsconfig.json feat(web): add versioned first-run welcome 2026-07-30 22:17:56 +08:00
tsdown.config.ts refactor(gui): copy-free settings shell; ui-settings-general owns ownerless copy 2026-07-26 12:40:17 +08:00

@deepseek-ai/dsh-client-ui-settings-general

English | 中文

Settings ownerless-copy and product-onboarding plugin: registers everything on the Settings surface that belongs to no single feature — the shell's trigger/header/close chrome content, the General section and its settings.general.item slot, the settings dictionaries, and the first ordered welcome step. Feature-owned rows (Permission, Language, Appearance), sections (Models), and conditional onboarding steps stay with their feature packages.

src/onboarding-copy.ts is the single editable owner of the complete notice plus WELCOME_NOTICE_VERSION; both supported GUI locales intentionally render the same Chinese copy. The Host half registers ui-onboarding in the user-settings seam; the browser compares welcomeNoticeVersion for exact equality and writes the current value only after Continue succeeds. The path mutation is idempotent across tabs and preserves sibling settings, while host/settings-changed makes an externally acknowledged notice advance without a reload. A different version deliberately presents the notice again. The welcome page preserves every authored paragraph, gives the requested clause in the final paragraph the sole emphasis, initially focuses the title, and has no close, Escape, mask-click, or secondary path. None of its copy or acknowledgement enters a Session log or model request. The notice identifies DSH_TELEMETRY_DISABLED=1 as the telemetry opt-out.

Model Experience

None, as the plugin renders browser settings UI; nothing here reaches a model request.

KV Cache effect

None; this package neither assembles nor sends a provider request.

Known Limitations and Deferred Work

  • The General section has no built-in rows; each row appears only when its owning feature plugin is mounted.