deepseek-harness/docs
Yichen Jiang 6dfc568ec2 feat(web): author agent presets from a settings page
A composition is a file, but "edit it on the filesystem" is not a browser
affordance. The roster gains `read`/`write`/`remove` beside `select`, and
the browser gains a settings section over them: the presets as rows, one
composition open in a YAML editor at a time, and per-row default, duplicate,
and delete.

All four authoring methods are loopback-pinned. A composition names the
plugins a session runs, so reading one is reconnaissance, writing one is
arbitrary capability, and selecting one can move a session onto a preset
that edits the live runtime. `agentPreset.list` deliberately stays ordinary
and now reports `authorable`, so a surface knows whether creating is
possible at all rather than offering a button whose save always fails.

Authoring starts by duplicating: a shipped preset opens read-only because
the deployment's copy is what a broken local one is compared against. Ids
are contained before they become directory names, and the text is parsed
with the loader's own schema, so a save cannot leave a file no session
could load.

Fixes a defect the real-composition test found: a preset written under the
user's home could never mount, because the loader resolves a row against the
composition's own directory and Node's `node_modules` walk from there never
reaches the installed harness. The mount now records the host base and sends
bare specifiers there, leaving relative paths resolving from the preset.

Also closes the coverage the earlier surfaces in this stack shipped without —
the General row, the composer seat, and the plugin halves now have tests.
2026-08-07 00:41:50 +08:00
..
cookbook Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification 2026-08-05 20:43:30 +08:00
cordis-catalog feat(web): author agent presets from a settings page 2026-08-07 00:41:50 +08:00
cordis-tutorial docs: profile scheme across guides, notes, and generated catalogs; Agent Note 2026-08-06 06:29:06 +08:00
core-data-structures fix(web): correct the preset-layer contracts review found stale 2026-08-07 00:35:30 +08:00
i18n docs: apply hierarchy across the corpus 2026-08-05 16:13:28 +08:00
postmortem docs: finish hierarchy rescan after rebase 2026-08-05 16:18:58 +08:00
user docs: tutorial for packaging and installing a plugin bundle 2026-08-06 17:28:40 +08:00
agent-lifecycle.md fix inbox lifecycle downstream contracts 2026-07-31 22:00:39 +08:00
AGENTS.md docs: define hierarchy and document forms 2026-08-05 16:13:27 +08:00
architecture.i18n.yaml docs(agent-presets): bring the note and the architecture map up to what shipped 2026-08-07 00:40:43 +08:00
architecture.md docs(agent-presets): bring the note and the architecture map up to what shipped 2026-08-07 00:40:43 +08:00
architecture.zh.md docs(agent-presets): bring the note and the architecture map up to what shipped 2026-08-07 00:40:43 +08:00
capability-seams.md fix(agent-presets): bound the mount registry on a host that never reads it 2026-08-07 00:33:40 +08:00
config-catalog.md feat(web): choose the default agent preset from General settings 2026-08-07 00:38:11 +08:00
cordis-paper.pdf docs: add cordis paper 2026-07-31 15:54:36 +08:00
cordis-primer.i18n.yaml docs(i18n): proofread active Chinese documentation 2026-08-04 17:36:14 +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): proofread active Chinese documentation 2026-08-04 17:36:14 +08:00
defensive-patterns.i18n.yaml Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification 2026-08-05 20:43:30 +08:00
defensive-patterns.md Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification 2026-08-05 20:43:30 +08:00
defensive-patterns.zh.md Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification 2026-08-05 20:43:30 +08:00
development.i18n.yaml docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
development.md docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
development.zh.md docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
event-producer-consumer.md feat(agent-presets): compose each session's agent from a preset cordis.yml 2026-08-06 21:03:18 +08:00
glossary.i18n.yaml docs(i18n): address proofreading review findings 2026-08-04 18:42:13 +08:00
glossary.md docs: align Goal Round step cardinality 2026-07-24 12:10:40 +08:00
glossary.zh.md docs(i18n): address proofreading review findings 2026-08-04 18:42:13 +08:00
graph-atlas.md cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
module-graph.md fix(web): record which preset a session actually runs 2026-08-07 00:38:11 +08:00
persistence-catalog.md fix(web): record which preset a session actually runs 2026-08-07 00:38:11 +08:00
testing.i18n.yaml docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
testing.md docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
testing.zh.md docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
tool-catalog.md Merge remote-tracking branch 'origin/master' into feat/profile-plugin-management 2026-08-06 06:55:42 +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: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
web-styling.md docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
web-styling.zh.md docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00