Files
deepseek-harness/packages/settings/README.zh.md
Yichen Jiang ec0786e099 feat(settings): add user-settings seam (ctx.settings) + file provider
Two-package capability family mirroring session-persistence/:

- dsh-settings: abstract Settings service — namespace registry with
  caller-fiber effect registrations, layered resolution (schema defaults
  < composition base < user document), schemastery validation,
  per-namespace deep-equal commit detection, and the settings/updated
  event. Boot/registration validation fails loud; provider publishes
  keep last-good per namespace.
- dsh-settings-local: settings.yaml/.json provider — resolveSpec
  defaulting to $DSH_HOME/settings.yaml, chokidar hot reload,
  content-equality self-write suppression, atomic 0600 tmp+rename
  writes, comment-preserving YAML namespace patching.

Consumers register inside ctx.inject(['settings'], …), so every
composition works unchanged without a mounted provider. Real Loader +
Include composition test proves cordis.yml boot and external-edit hot
propagation; HMR disposal test proves registry cleanup. Both packages
hold per-file 100% coverage.

Doc budgets rise 1705→1710 (AGENTS.md) and 835→845 (packages/README.md):
one structural line per file for the new package group.

Agent Note: .agents/notes/implemented/architecture/2026-07-28-user-settings-seam.md
2026-07-29 10:19:32 +08:00

893 B
Raw Blame History

settings/ — 用户设置能力族

English | 中文

用户设置 seam 及其 provider。接口包拥有抽象 Settings 服务——namespace 注册、分层解析与变更提交provider 实现原始文档存储并把外部修改推入 seam。全部为产品包。

角色 ctx key
settings/ 设置 seamnamespace 注册表、分层解析、提交事件 ctx.settings
settings-local/ 文件 providersettings.yaml/.json),热重载与保留注释的写回 (注册 ctx.settings

接口位于 settings/settings/provider 平级并列。网络配置中心 provider例如 nacos 类后端)加入本组并注册到 ctx.settings。组合配置仍留在 cordis.ymlsettings namespace 只承载用户可编辑子集,解析顺序为 schema 默认值、注册方的组合 base、用户文档。