deepseek-harness/docs
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
..
cookbook refactor(agent): clarify turn lifecycle event names 2026-07-27 17:38:42 +08:00
cordis-catalog feat(settings): add user-settings seam (ctx.settings) + file provider 2026-07-29 10:19:32 +08:00
cordis-tutorial docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
core-data-structures refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
i18n Merge remote-tracking branch 'origin/master' into worktree-i18n-update-workflow 2026-07-27 09:39:54 +08:00
postmortem docs(i18n): mirror ACP-automation edits into the zh pairs from master 2026-07-25 01:58:42 +08:00
user Merge remote-tracking branch 'origin/master' into xtr/agent-loop-message-machine 2026-07-27 16:48:38 +08:00
agent-lifecycle.md refactor(agent): return request retry action 2026-07-27 21:17:49 +08:00
AGENTS.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
architecture.i18n.yaml refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
architecture.md refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
architecture.zh.md refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
capability-seams.md feat(settings): add user-settings seam (ctx.settings) + file provider 2026-07-29 10:19:32 +08:00
config-catalog.md feat(settings): add user-settings seam (ctx.settings) + file provider 2026-07-29 10:19:32 +08:00
cordis-primer.i18n.yaml docs(i18n): clarify Cordis and test wording 2026-07-24 14:21:15 +08:00
cordis-primer.md Merge remote-tracking branch 'origin/master' into worktree/pr343-retarget-latest-master 2026-07-23 13:40:29 +08:00
cordis-primer.zh.md docs(i18n): clarify Cordis and test wording 2026-07-24 14:21:15 +08:00
defensive-patterns.i18n.yaml Merge remote-tracking branch 'origin/master' into worktree/pr343-retarget-latest-master 2026-07-24 21:20:17 +08:00
defensive-patterns.md Merge remote-tracking branch 'origin/master' into worktree/pr343-retarget-latest-master 2026-07-24 21:20:17 +08:00
defensive-patterns.zh.md Merge remote-tracking branch 'origin/master' into worktree/pr343-retarget-latest-master 2026-07-24 21:20:17 +08:00
development.i18n.yaml refactor(dev-infra): narrow worktree hook safety checks 2026-07-28 00:05:31 +08:00
development.md refactor(dev-infra): narrow worktree hook safety checks 2026-07-28 00:05:31 +08:00
development.zh.md refactor(dev-infra): narrow worktree hook safety checks 2026-07-28 00:05:31 +08:00
event-producer-consumer.md feat(settings): add user-settings seam (ctx.settings) + file provider 2026-07-29 10:19:32 +08:00
glossary.i18n.yaml docs: align Goal Round step cardinality 2026-07-24 12:10:40 +08:00
glossary.md docs: align Goal Round step cardinality 2026-07-24 12:10:40 +08:00
glossary.zh.md docs(i18n): allow zero-step Goal Rounds 2026-07-23 21:13:34 +08:00
graph-atlas.md docs(graphs): retain archived rationale link 2026-07-26 23:08:47 +08:00
module-graph.md Merge branch 'master' into fix/worker-timer-clamp 2026-07-28 01:06:22 +08:00
persistence-catalog.md refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
testing.i18n.yaml Merge remote-tracking branch 'origin/master' into worktree/packed-chunks-default-rfc 2026-07-27 03:31:33 +08:00
testing.md Merge remote-tracking branch 'origin/master' into worktree/packed-chunks-default-rfc 2026-07-27 03:31:33 +08:00
testing.zh.md Merge remote-tracking branch 'origin/master' into worktree/packed-chunks-default-rfc 2026-07-27 03:31:33 +08:00
tool-catalog.md Restore Cordis mount and unmount names 2026-07-27 21:20:06 +08:00
tool-execution-pipeline.md Merge remote-tracking branch 'origin/master' into feat/send-unify 2026-07-23 22:41:45 +08:00
web-styling.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
web-styling.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
web-styling.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00