deepseek-harness/apps/web/tests
Yichen Jiang 5d86a284e5 fix(web-app,agent-presets): keep the task registry on the host plane
`tool-bash` resolves the background-task registry with `ctx.get('tasks')`,
and it sits at the preset's top level. The registry sat inside an
entry-local `isolate: { tasks: true }` realm, which is invisible to every
sibling row outside it, while the Web surface disabled the host row — so
both lookups missed and every `run_in_background` call answered
"background tasks unavailable" with `task_output`, `task_list`, and
`task_kill` still listed in the catalog. `task_list` returning
"(no background tasks)" is what made the outage read as an empty queue
rather than a severed producer.

That is the `goals` criterion read from inside the preset: a Service a row
outside its realm READS belongs to the plane both can see. `tasks` already
keys access by owning agent (`assertAccess` compares `task.owner.id`) and
mints an independent token per `attachSurface` call, so one host instance
serves every session exactly as before presets — the per-preset-standing-mounts
note records that sharing `tasks-local` is a return to its design.

`minimal` mounts no `tool-tasks`, and the `start()` control-surface gate is
a service-wide set that another preset's controls would open for it, so its
`tool-bash` disables `run_in_background` and drops the parameter from the
schema.

Fixes #2141
2026-08-10 14:18:41 +08:00
..
snapshots Merge pull request #1817 from deepseek-harness/feat/web-queue-steer-all 2026-08-10 12:58:20 +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 fix(agent-presets,web): broken presets are roster rows, not gaps 2026-08-09 02:17:56 +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 docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
assembled-boot.ts fix(client): restore built Tool presentation snapshots 2026-08-08 16:53:24 +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 test: update conversation assembly coverage and docs 2026-08-09 18:16:44 +08:00
chat-continuous-conversation.e2e.ts test: update conversation assembly coverage and docs 2026-08-09 18:16:44 +08:00
chat-long-interactions.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +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 docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +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 docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
composer-tab-geometry.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
conversation-column-overflow.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +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
declared-reasoning.e2e.ts fix(headless): dsh run is a direct core front door 2026-08-09 13:44:44 +08:00
declared-reasoning.overlay.yml fix(headless): dsh run is a direct core front door 2026-08-09 13:44:44 +08:00
default-model.e2e.ts docs: reserve seam for complete capabilities 2026-08-09 17:26:57 +08:00
default-model.overlay.yml docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +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 docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
live-interactions.e2e.ts docs: reserve seam for complete capabilities 2026-08-09 17:26:57 +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 test(web): await fork title projection 2026-08-09 23:50:46 +08:00
models-settings.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
navigation-panes.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +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 docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
plan-review.e2e.ts feat(client): surface pending session interactions 2026-08-04 17:15:10 +08:00
produced-file-mentions.e2e.ts feat(web): a prose mention of a produced file opens it 2026-08-07 03:02:10 -07: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 docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +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 docs: reserve seam for complete capabilities 2026-08-09 17:26:57 +08:00
scaffold-hermetic.e2e.ts fix(agent-presets): unify the session event entrypoint and re-address the hermetic skills probe 2026-08-09 23:42:44 +08:00
scaffold.ts Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-8-authoring 2026-08-09 23:02:37 +08:00
search-card.snapshot.ts test: update conversation assembly coverage and docs 2026-08-09 18:16:44 +08:00
seeded-history.e2e.ts Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire 2026-08-09 22:56:44 +08:00
settings-chrome.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
shipped-composition.e2e.ts fix(web-app,agent-presets): keep the task registry on the host plane 2026-08-10 14:18:41 +08:00
sidebar-scrollbar.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
sidebar-subagent-activity.e2e.ts docs: reserve seam for complete capabilities 2026-08-09 17:26:57 +08:00
skill-invocation-policy.e2e.ts test(web): cover user-only skill invocation end to end 2026-08-08 01:27:25 +08:00
skill-tool-row.e2e.ts feat(web): add dedicated skill tool row 2026-08-06 14:07:15 +08:00
skill-user-invoke.e2e.ts test: update conversation assembly coverage and docs 2026-08-09 18:16:44 +08:00
smoke-real.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
startup-auto-selection.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
steering.e2e.ts test(web): wait for the reasoning row before the steer-all mid snapshot 2026-08-10 11:30:33 +08:00
subagent-conversation.e2e.ts test(web): avoid replay timing assertions 2026-08-08 15:56:36 +08:00
subagent-interrupt-ui.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
subagent-interrupt.e2e.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +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 test: update conversation assembly coverage and docs 2026-08-09 18:16:44 +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 docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +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 docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00