deepseek-harness/packages/client/runtime/tests
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
..
client-apply.spec.ts refactor(client): keep pending interaction change UI-scoped 2026-08-04 20:28:23 +08:00
compact-checkpoint-pin.spec.ts fix(web): address transcript review follow-ups 2026-07-30 17:10:45 +08:00
context-provenance.spec.ts feat(web): declare the remaining context forms on every shipped producer 2026-08-05 17:11:48 +08:00
conversation.spec.ts feat(gui): step1 skeleton — dsc web serves built web UI over booted harness host 2026-07-22 16:24:44 +08:00
event-script.ts refactor(agent): simplify inbox-driven turn admission 2026-08-02 00:27:37 +08:00
fake-api.ts feat(web): author agent presets from a settings page 2026-08-07 00:41:50 +08:00
history-fold.spec.ts Merge remote-tracking branch 'origin/master' into worktree/context-source-cards 2026-08-06 11:28:48 +08:00
invariant.spec.ts refactor(gui): slot system standard — single register, four props shares, framework store seat 2026-07-23 03:25:11 +08:00
lineage.spec.ts feat(web): done dot on sessions that finished while unviewed 2026-08-06 11:12:48 +08:00
manager.spec.ts feat(web): done dot on sessions that finished while unviewed 2026-08-06 11:12:48 +08:00
node-half.spec.ts feat(gui): step1 skeleton — dsc web serves built web UI over booted harness host 2026-07-22 16:24:44 +08:00
notifier.spec.ts feat: optimize chat think 2026-08-04 14:37:35 +08:00
partial.spec.ts perf(ui-trajectory): reuse finalized stream projections 2026-07-30 18:05:49 +08:00
projection-store.spec.ts show subagent usage and active duration 2026-08-02 23:31:24 +08:00
queue-store.spec.ts refactor(agent-loop): drop the steering/message session event 2026-08-03 16:04:26 +08:00
request-inspection.spec.ts Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification 2026-08-05 21:42:33 +08:00
scope.spec.ts feat: slash system / input service / agent scope 2026-07-27 03:28:39 +08:00
session-history-source.spec.ts fix(trajectory): preserve state across history prepends 2026-08-04 16:53:52 +08:00
session.spec.ts refactor(client): keep pending interaction change UI-scoped 2026-08-04 20:28:23 +08:00
sessions-service.spec.ts fix(web): synchronize subagent navigation state 2026-08-02 12:51:11 +08:00
slots-service.spec.ts feat(client): inject slot declaration lifetimes 2026-08-06 11:28:46 +08:00
store.spec.ts refactor(client-runtime): home the snapshot-store engine in contract/ 2026-07-23 10:37:15 +08:00
transcript-adapter.spec.ts Merge remote-tracking branch 'origin/master' into worktree/context-source-cards 2026-08-06 12:03:15 +08:00
wire-events.spec.ts refactor(client): expose loopback state through connection 2026-08-03 18:35:26 +08:00
workspaces-service.spec.ts fix(client): address CI and review findings on blank-session reuse 2026-08-05 12:21:09 +08:00