deepseek-harness/scripts
Turtle f290a8b851 refactor(cli)!: one shared base config with per-surface overlays
`dsh` shipped two config trees that were 43 rows the same: apps/cli/cordis.yml
composed web as 74 flat rows, while the TUI booted examples/tui-agent/cordis.yml
whose single `@deepseek-ai/dsh-tui-demo` row mounted twelve plugins behind a
twenty-key pass-through Config. Neither file was what its location claimed —
apps/cli hardcoded the "example" as the product default and the "demo" bundle
was the application — and every capability change had to be made twice.

- apps/cli/base.cordis.yml holds the 43 shared rows; tui.cordis.yml and
  web.cordis.yml are patch lists stating only what differs per surface
- overlays apply as SIBLING patch lists at one include level, because include
  patches never cross an include boundary. Precedence: base < surface <
  (--config | personal ~/.dsh/config.yaml) < launcher flag/profile patches
- `--config` now applies an overlay INSTEAD OF the personal one, so a demo or
  test tree never inherits the user's route; new `--config-replace` boots a file
  as the entire tree (the old `--config` behaviour). Both survive /resume
- vendor/include: index each `insert`ed row as it is added so a later patch can
  configure or disable it. Upstream built the id index once before the patch
  loop, leaving every surface-only row — the whole TUI front door — silently
  unpatchable from user config. Logged as local modification 8
- session identity moves to dsh-agent-loop's CONFIGURED_AGENT_IDENTITIES_KEY;
  dsh-tui's MAIN_SESSION_ID_KEY is deleted (only the bundle read it)
- delete examples/tui-agent, examples/cordis-agent, packages/examples/tui-demo;
  TUI tests → apps/cli/tests, cordis e2e → packages/cordis/tool-cordis/tests,
  examples/code-mode survives as an overlay leaf
- `dsh web` gains --config, threaded into AppCLIEntry as an extra overlay

Three latent defects surfaced and are fixed here: the TUI captured the optional
sessionQuery service once at construction and could permanently disable /resume
when it won the mount race; the session-store root silently reverted to a
project-local ./.sessions; --config-replace was dropped by the resume handoff.

Verified by booting each tree through the real Loader (TUI 55 entries, web 75,
zero unsettled) rather than reading YAML. All eight terminal snapshots replay
byte-identically; 14/14 PTY smoke, 112/112 snapshots, 25/25 doc-sync, hygiene
and lint clean.
2026-07-29 21:15:42 +08:00
..
fixtures/translation-prompt fix(i18n): harden prompt response handling 2026-07-23 23:12:56 +08:00
snapshots refactor(cli)!: one shared base config with per-surface overlays 2026-07-29 21:15:42 +08:00
agent-note-tree.ts fix(notes): keep archive helpers internal 2026-07-26 23:29:46 +08:00
AGENTS.md docs(windows): clarify portability rules 2026-07-18 13:03:44 +08:00
archived-agent-notes.spec.ts Merge remote-tracking branch 'origin/master' into worktree/archive-agent-notes-20260726 2026-07-27 00:53:07 +08:00
archived-agent-notes.ts fix(notes): anchor archive seals to prior Git state 2026-07-27 00:01:39 +08:00
build-exe-for-python-sdk.ts Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
build-python-release.py python: derive release version from repository 2026-07-13 17:49:01 +08:00
change-scope.spec.ts refactor(dev-infra): narrow change scope report 2026-07-28 01:02:43 +08:00
change-scope.ts refactor(dev-infra): narrow change scope report 2026-07-28 01:02:43 +08:00
check-expected-filenames.sh ci: reject golden filenames on matching PRs 2026-07-19 21:24:42 +08:00
check-vendor-manifest.sh
check-workspace-constraints.ts feat(tui): personal TUI rework, integrating upstream model reasoning-effort selection 2026-07-27 18:55:13 +08:00
ci-workflow.spec.ts fix(ci): isolate pnpm setup per runner 2026-07-29 00:45:52 +08:00
clean.spec.ts fix(build): contain clean targets within repository 2026-07-26 02:51:58 +08:00
clean.ts fix(build): contain clean targets within repository 2026-07-26 02:51:58 +08:00
client-bundle-purity.spec.ts refactor(gui): one plugin-package shape — dshClient manifests, clientBundle preset, purity gate over all nine 2026-07-24 02:09:42 +08:00
client-tsconfig.spec.ts fix(ci): make local Wine gate portable on macOS 2026-07-27 18:43:00 +08:00
cordis-config-files.spec.ts Stabilize master CI across platforms 2026-07-25 00:10:37 +08:00
cordis-config-files.ts fix(ci): ignore translation records in Cordis config scan 2026-07-23 00:39:55 +08:00
cordis-core-api.spec.ts docs: restore generated Cordis core API 2026-07-20 16:33:44 +08:00
cordis-core-api.ts docs: restore generated Cordis core API 2026-07-20 16:33:44 +08:00
cordis-walk.ts refactor(core): fold initiator scope into agents 2026-07-19 13:30:45 +08:00
demo-code-mode.mjs refactor(cli)!: one shared base config with per-surface overlays 2026-07-29 21:15:42 +08:00
demo-cordis.mjs refactor(cli)!: one shared base config with per-surface overlays 2026-07-29 21:15:42 +08:00
dev-web.ts refactor(scripts): consolidate gate scripts on mdast fences, parseArgs, and globSync 2026-07-26 23:14:28 +08:00
doc-budgets.manifest.json Merge remote-tracking branch 'origin/master' into doc/host-client-group-readmes 2026-07-29 01:08:17 +08:00
doc-typecheck-paths.spec.ts fix(docs): map exact source aliases in built checks 2026-07-19 19:26:38 +08:00
doc-typecheck-paths.ts feat(gui): step1 skeleton — dsc web serves built web UI over booted harness host 2026-07-22 16:24:44 +08:00
doc-typecheck.ts Merge remote-tracking branch 'origin/master' into nih-imp-gates 2026-07-27 06:21:53 +08:00
gen-config-catalog.ts Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
gen-cordis-api.ts refactor(agent): align delivery method names 2026-07-24 15:08:36 +08:00
gen-cordis-catalog.ts Merge origin/master: web permission sandbox, default pi-ai providers 2026-07-29 21:15:34 +08:00
gen-doc-graphs.ts refactor(cli)!: one shared base config with per-surface overlays 2026-07-29 21:15:42 +08:00
gen-module-graph.ts refactor(acp): reduce bridge to automation protocol 2026-07-24 01:40:25 +08:00
gen-persistence-catalog.ts docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
gen-scoped-events.ts refactor(tsconfig): single root solution graph over host/client aggregates 2026-07-23 03:59:05 +08:00
gen-tool-catalog.ts refactor(cli)!: one shared base config with per-surface overlays 2026-07-29 21:15:42 +08:00
gen-translation-brief.ts feat(i18n): unit-mapped briefings with mechanical --apply, adopting the #684 planner mechanics 2026-07-27 02:31:07 +08:00
install-lefthook.mjs fix(dev-infra): migrate copied worktree hooks 2026-07-29 13:38:55 +08:00
install-lefthook.spec.ts fix(dev-infra): migrate copied worktree hooks 2026-07-29 13:38:55 +08:00
install.sh feat(install): consolidate checkouts under ~/.dsh/source and route PATH through a stable current symlink 2026-07-27 19:08:26 +08:00
jsdoc.ts feat: slash system / input service / agent scope 2026-07-27 03:28:39 +08:00
markdown.ts fix(scripts): address review findings on the gate consolidation 2026-07-27 12:02:39 +08:00
migrate-packed-session-fixtures.ts feat(session): default JSONL writes to packed rows 2026-07-26 23:44:52 +08:00
package-graph.ts fix: normalize glob paths with split(sep).join('/') on Windows 2026-07-15 19:11:20 +08:00
package-invariants.spec.ts fix(invariants): harden runtime contracts and gates 2026-07-21 00:25:38 +08:00
package-invariants.ts fix(invariants): harden runtime contracts and gates 2026-07-21 00:25:38 +08:00
paired-markdown-derivatives.spec.ts docs: deduplicate paired code-block checks 2026-07-26 02:52:48 +08:00
paired-markdown-derivatives.ts docs: deduplicate paired code-block checks 2026-07-26 02:52:48 +08:00
prepare-ci-bubblewrap.sh docs: record final larger-runner evidence 2026-07-22 16:55:39 +08:00
project-doc-site.spec.ts docs(site): publish translated core data pages 2026-07-24 18:07:56 +08:00
project-doc-site.ts fix duplicate documentation homepage content 2026-07-20 15:25:47 +08:00
publint-all.spec.ts feat(dev-infra): make gate plans inspectable and replayable 2026-07-27 21:27:42 +08:00
publint-all.ts fix(scripts): address review findings on the gate consolidation 2026-07-27 12:02:39 +08:00
repo-files.ts Merge remote-tracking branch 'origin/master' into worktree/archive-agent-notes-20260726 2026-07-27 00:53:07 +08:00
run-gates.spec.ts simplify gate graph validation 2026-07-28 15:33:20 +08:00
run-gates.ts refactor(cli)!: one shared base config with per-surface overlays 2026-07-29 21:15:42 +08:00
session-fixture-layout.snapshot.ts feat(session): default JSONL writes to packed rows 2026-07-26 23:44:52 +08:00
session-fixture-layout.spec.ts fix(scripts): complete fixture migration diagnostics 2026-07-27 03:54:33 +08:00
session-fixture-layout.ts fix(scripts): complete fixture migration diagnostics 2026-07-27 03:54:33 +08:00
smoke-python-runtime.py Merge remote-tracking branch 'origin/master' into worktree/pr743-merge-20260727 2026-07-27 23:59:33 +08:00
test-invariants.spec.ts Merge origin/master into codex/invariant-service-seam 2026-07-21 00:44:39 +08:00
test-invariants.ts Merge origin/master into codex/invariant-service-seam 2026-07-21 01:13:28 +08:00
translation-brief.spec.ts feat(i18n): unit-mapped briefings with mechanical --apply, adopting the #684 planner mechanics 2026-07-27 02:31:07 +08:00
translation-brief.ts feat(i18n): unit-mapped briefings with mechanical --apply, adopting the #684 planner mechanics 2026-07-27 02:31:07 +08:00
translation-pairing-git.ts fix(i18n): pin translation snapshots against gc 2026-07-28 10:28:49 -07:00
translation-pairing.manifest.json docs(subprocess): bilingual pair for the consumer-migration Agent Note 2026-07-26 15:51:24 +08:00
translation-pairing.spec.ts fix(i18n): pin translation snapshots against gc 2026-07-28 10:28:49 -07:00
translation-pairing.ts Merge remote-tracking branch 'origin/master' into worktree-i18n-update-workflow 2026-07-27 09:39:54 +08:00
translation-prompt.snapshot.ts fix(i18n): complete prompt v4 pipeline path 2026-07-23 22:41:53 +08:00
translation-prompt.spec.ts fix(i18n): harden prompt response handling 2026-07-23 23:12:56 +08:00
translation-prompt.ts fix(i18n): harden prompt response handling 2026-07-23 23:12:56 +08:00
ts-project.ts fix(build): reuse TypeScript config host 2026-07-26 00:30:20 +08:00
type-equiv.manifest.json docs: regenerate catalogs and settle the static gates for the goal surface 2026-07-28 23:34:19 +08:00
verify-agent-note-classification.ts Remove generated Agent Note index 2026-07-19 23:15:23 +08:00
verify-agent-note-format.ts Remove generated Agent Note index 2026-07-19 23:15:23 +08:00
verify-archived-agent-notes.ts fix(notes): anchor archive seals to prior Git state 2026-07-27 00:01:39 +08:00
verify-built-package-invariants.mjs refactor(scripts): consolidate gate scripts on mdast fences, parseArgs, and globSync 2026-07-26 23:14:28 +08:00
verify-built-package-invariants.spec.ts ci: enforce bounded build lanes 2026-07-21 20:15:09 +08:00
verify-client-domain-graph.ts refactor(scripts): consolidate gate scripts on mdast fences, parseArgs, and globSync 2026-07-26 23:14:28 +08:00
verify-cordis-config.ts refactor(cli)!: one shared base config with per-surface overlays 2026-07-29 21:15:42 +08:00
verify-doc-budgets.ts docs: rebalance prose cleanup and add trimming skill 2026-07-13 23:27:00 +08:00
verify-doc-refs.ts Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
verify-export-jsdoc.ts feat(sdk): add developer project tooling 2026-07-15 23:17:29 +08:00
verify-md-links.ts feat(skills): bundle and harden personal maintenance workflows 2026-07-27 18:53:30 +08:00
verify-md-wrap.ts docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
verify-mermaid.ts feat(skills): bundle and harden personal maintenance workflows 2026-07-27 18:53:30 +08:00
verify-node-next-types.ts fix(scripts): run publint/tsc via node JS entry, not a shell .cmd shim 2026-07-15 16:38:22 +08:00
verify-package-invariants.ts feat(invariants): implement package runtime checks 2026-07-20 00:38:37 +08:00
verify-package-paths.ts Merge remote-tracking branch 'origin/master' into nih-imp-gates 2026-07-27 06:21:53 +08:00
verify-package-readme-limitations.ts Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
verify-package-readme-model-experience.ts Merge origin/master: web permission sandbox, default pi-ai providers 2026-07-29 21:15:34 +08:00
verify-runtime-closure.ts refactor(scripts): consolidate gate scripts on mdast fences, parseArgs, and globSync 2026-07-26 23:14:28 +08:00
verify-translation-pairing.ts fix(i18n): persist uncommitted translation snapshots 2026-07-28 04:34:05 -07:00
verify-translation-prompt.ts fix(i18n): harden prompt response handling 2026-07-23 23:12:56 +08:00
verify-type-equiv.ts fix(scripts): address review findings on the gate consolidation 2026-07-27 12:02:39 +08:00
wine-windows-gates.sh fix(ci): retry the Wine lane's pnpm install on the hoisted-linker rename race 2026-07-28 16:16:10 +08:00