deepseek-harness/apps/web/tests
Yichen Jiang b77fb9036c refactor(agent-presets,web): copy-only preset authoring with a path to the files
The web YAML editor is gone. agentPreset.write (arbitrary composition
text) became agentPreset.copy { from, agentPreset, name? }: a host-side
whole-directory copy of ids the host resolves itself — symlinks
dereferenced, modes re-tightened to owner-only with owner-execute kept,
metadata rewritten to keep the source's description but never its name or
roster order. No composition text or path crosses the wire in either
authoring direction, and the entryListSchema/!!js concern dissolves with
assertComposition itself.

The settings section becomes: a read-only viewer over shipped
compositions, a copy dialog (id + optional display name) as the only
create entry, delete for custom rows, and a location action leading into
the preset's own files — agentPreset.openDocument { agentPreset } resolves
the directory host-side and opens it natively, or answers
{ opened: false, path } for the row to show as text where the deployment
has no desktop. agentPreset.list reports hasDocument beside authorable;
the gateway's nativeOpen config pins the capability where
canOpenNativePath platform detection would mislead. The privileged set is
now read/copy/openDocument/remove.

With files as the only composition editor, standing mounts grew
stamp-keyed generations: ensureStanding compares the composition file's
mtime+size and starts the next generation for later sessions, while every
joined session keeps the generation it runs on.

New keyless web lane (agent-preset-authoring, overlay pins
nativeOpen: false so goldens render one branch on every platform) drives
view/copy/reveal/delete end to end; the real-composition CLI e2e switches
to copy semantics.
2026-08-08 22:35:26 +08:00
..
snapshots refactor(agent-presets,web): copy-only preset authoring with a path to the files 2026-08-08 22:35:26 +08:00
support fix(web): verify current GUI updates end to end 2026-07-29 11:22:48 +08:00
access-confirmation.e2e.ts Merge remote-tracking branch 'origin/master' into worktree/custom-deepseek-models 2026-08-03 16:20:55 +08:00
agent-preset-authoring.e2e.ts refactor(agent-presets,web): copy-only preset authoring with a path to the files 2026-08-08 22:35:26 +08:00
agent-preset-authoring.overlay.yml refactor(agent-presets,web): copy-only preset authoring with a path to the files 2026-08-08 22:35:26 +08:00
agent-preset-selection.e2e.ts feat(web): choose the agent preset on the new-session screen 2026-08-07 00:41:50 +08:00
approval-composer.e2e.ts Merge origin/master into worktree/composer-caret-binding 2026-08-04 14:44:09 +08:00
assembled-boot.ts fix(build): align Client build metadata 2026-08-08 12:02:58 +08:00
bash-abort-row.e2e.ts test(web): follow the structured abort message in the bash-abort-row scenario 2026-08-03 20:57:26 +08:00
built-boot.snapshot.ts docs(todo): drop stale plan-strip format claims and fix the note's counts 2026-08-06 13:00:14 +08:00
chat-continuous-conversation.e2e.ts test(web): align long-chat contracts with master 2026-08-04 14:23:34 +08:00
chat-long-interactions.e2e.ts test(web): await stopped queue state 2026-08-04 15:09:55 +08:00
chat-scroll-contract.e2e.ts Attribute reader scroll input through the observed-top ledger 2026-08-07 13:44:49 +08:00
chat-scroll-fixture.ts Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification 2026-08-05 21:42:33 +08:00
code-mode-round.e2e.ts fix: remove scoped bash 2026-07-31 20:47:55 +08:00
complex-history.perf.ts Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification 2026-08-05 13:53:35 +08:00
composer-draft-scroll.e2e.ts Merge origin/master into worktree/composer-caret-binding 2026-08-04 14:44:09 +08:00
composer-tab-geometry.e2e.ts Merge remote-tracking branch 'origin/master' into worktree/composer-scrollbar-gutter 2026-08-05 15:36:06 +08:00
conversation-column-overflow.e2e.ts test(web): stabilize the overflow mutation control 2026-08-05 19:09:26 +08:00
cordis-tool-round.e2e.ts Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification 2026-07-31 22:16:40 +08:00
core-web-profile.snapshot.ts test(web): cover core profile request header 2026-08-06 20:41:19 +08:00
default-model.e2e.ts fix(ui-models): three faults the running app surfaced 2026-08-07 16:45:50 +08:00
default-model.overlay.yml feat(ui): make a session that cannot send refuse to accept one 2026-08-07 15:26:42 +08:00
details-session-lifecycle.e2e.ts fix(ui): use official hero title casing 2026-08-07 23:05:55 +08:00
goal-bar.e2e.ts fix(web): single-flight goal clear 2026-07-31 20:54:23 +08:00
goal-bar.overlay.yml fix(web): single-flight goal clear 2026-07-31 20:54:23 +08:00
goal-multi-turn-actions.e2e.ts test(web): cover Goal actions across turns 2026-08-07 11:51:18 +08:00
hmr-live.e2e.ts fix(ui): use official hero title casing 2026-08-07 23:05:55 +08:00
lifecycle-chrome.e2e.ts fix(ui): use official hero title casing 2026-08-07 23:05:55 +08:00
live-interactions.e2e.ts test(web): wait on the request marker button, not the hairline row 2026-08-03 19:37:52 +08:00
markdown-cjk-strong.e2e.ts test: stabilize markdown web snapshots 2026-08-06 15:37:40 +08:00
markdown-images.e2e.ts test(web): pin the remaining markdown fixture's event times 2026-08-06 16:24:20 +08:00
markdown-inline-code-links.e2e.ts test: stabilize markdown web snapshots 2026-08-06 15:37:40 +08:00
math-rendering.e2e.ts fix(web): localize stats and close stale context meter 2026-08-06 00:21:34 +08:00
message-actions.e2e.ts feat(ui): make a session that cannot send refuse to accept one 2026-08-07 15:26:42 +08:00
models-settings.e2e.ts Merge origin/master at f1402327fa 2026-08-07 23:57:23 +08:00
navigation-panes.e2e.ts test(web): expand long-chat regression and performance coverage 2026-08-04 14:23:34 +08:00
onboarding-deepseek-config.e2e.ts Merge remote-tracking branch 'origin/master' into claude/unified-environment-credentials-c8841a 2026-08-06 22:34:46 +08:00
permission-policy-context.e2e.ts fix(web): pass the scaffold root in the new permission-policy scenario 2026-07-31 16:58:42 +08:00
pin-browse-picker.overlay.yml fix: retire leftovers of the removed $DSH_HOME/config.yaml personal overlay 2026-08-06 17:28:58 +08:00
plan-review.e2e.ts feat(client): surface pending session interactions 2026-08-04 17:15:10 +08:00
produced-files.e2e.ts refactor(web): open produced files through the Host, not over HTTP 2026-08-01 03:15:54 -07:00
pwa-manifest.e2e.ts feat(web): add install metadata 2026-08-06 23:00:01 +08:00
pwsh-terminal.e2e.ts fix(web): probe pwsh through the executor's path resolution 2026-08-05 11:42:43 +08:00
pwsh-terminal.overlay.yml feat(pwsh): render pwsh calls as bash-shaped terminal cards in the Web UI 2026-08-05 02:05:06 +08:00
question-composer.e2e.ts feat(client): surface pending session interactions 2026-08-04 17:15:10 +08:00
queue-actions.e2e.ts test(web): await stopped queue state 2026-08-04 15:09:55 +08:00
remote-welcome.e2e.ts fix(web): unblock remote welcome onboarding 2026-08-02 12:56:31 -07:00
replay-round-trip.e2e.ts Merge fix/web-agent-runtime-context into fix/web-gui-feedback-loop 2026-08-01 22:15:36 +08:00
scaffold-hermetic.e2e.ts fix(cli): declare the packages the shipped presets name 2026-08-07 02:51:09 +08:00
scaffold.ts Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-8-authoring 2026-08-08 15:09:37 +08:00
search-card.snapshot.ts test(client): mount TypeRT remote assembly in fixtures 2026-08-07 21:47:15 +08:00
seeded-history.e2e.ts Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire 2026-08-08 18:41:07 +08:00
settings-chrome.e2e.ts feat(web): add install metadata 2026-08-06 23:00:01 +08:00
shipped-composition.e2e.ts fix(web): keep both agents distinct in the shipped-composition test 2026-08-07 16:22:02 +08:00
sidebar-scrollbar.e2e.ts Merge origin/master into worktree/sidebar-scrollbar-reveal 2026-08-04 15:46:53 +08:00
skill-invocation-policy.e2e.ts cleanup(web): give adding a Workspace one route 2026-07-31 15:47:40 +08:00
skill-tool-row.e2e.ts feat(web): add dedicated skill tool row 2026-08-06 14:07:15 +08:00
smoke-real.e2e.ts Merge remote-tracking branch 'origin/master' into feat/profile-plugin-management 2026-08-06 06:55:42 +08:00
startup-auto-selection.e2e.ts fix(ui): use official hero title casing 2026-08-07 23:05:55 +08:00
steering.e2e.ts refactor(agent-loop): drop the steering/message session event 2026-08-03 16:04:26 +08:00
subagent-conversation.e2e.ts fix(web): preserve subagent catalog styling 2026-08-03 18:24:25 +08:00
support.ts Merge remote-tracking branch 'origin/master' into worktree/custom-deepseek-models 2026-08-03 16:20:55 +08:00
todo-row.snapshot.ts fix(web): align the plan summary's usable-content rule with the tool 2026-08-06 13:31:40 +08:00
trajectory-virtualization.e2e.ts fix(trajectory): bound work during long streams 2026-08-04 20:37:33 +08:00
turn-tail-actions.e2e.ts fix(web): drop the branch action from user and steering bubbles 2026-08-06 17:46:18 +08:00
vite-entry.e2e.ts fix(web): verify current GUI updates end to end 2026-07-29 11:22:48 +08:00
web-search-round.e2e.ts fix(ui-primitives): keep two-digit source markers out of the scroll clip 2026-08-03 18:58:44 +08:00
workspace-management.e2e.ts fix(client): address CI and review findings on blank-session reuse 2026-08-05 12:21:09 +08:00