.qwen/e2e-tests/2026-08-28-web-shell-workspace-overview.md
Issue: https://github.com/QwenLM/qwen-code/issues/10399
Design: docs/design/web-shell/web-shell-workspace-overview.md
main @ d853f09f: a workspace row shows the folder name, untrusted /
read-only badges and a git chip. The ⋮ menu has one entry, Remove
workspace, and only on removable secondary workspaces.GET /workspaces/:w/{mcp,skills,extensions,channels,memory,hooks}
and PATCH /workspaces/:w (rename) and POST /workspaces/:w/reload.npm run build from the repository root so dist/cli.js bundles the
Web Shell from this branch.QWEN_HOME with a settings.json that registers one stdio MCP
server that cannot start (for example command: /nonexistent) plus one
that can, and at least one project skill under .qwen/skills.node dist/cli.js serve --workspace <primary> --workspace <secondary>
on loopback; open the served Web Shell.Expand the primary workspace with one session running a prompt.
Expected:
●1 (success tone) and the total session count; a
session waiting for permission adds a warning-tone count.MCP a/b · Skills n · Extensions n · Channels n · Context n. The MCP chip is warning-toned and
its tooltip names the failed server count.— with tooltip "not initialized yet", never 0.
The Context chip is answered by the daemon from disk and settles at its
file count (0 for a workspace without a QWEN.md) as soon as the first
round lands.With the Network panel filtered to /workspaces/:
Hover a trusted secondary workspace and open ⋮.
Expected:
dynamic_workspace_registration),
Copy path, New task, New worktree task, Reload runtime, Remove workspace.POST /workspaces/<cwd>/reload and refreshes the
chips.On the primary workspace the menu additionally shows a Manage group (MCP servers, Skills, Extensions, Channels, Settings) with the chip counts; each opens the corresponding page. Secondary workspaces do not get the group.
Mount <WebShell sidebar={{ workspaceOverview: false }} />.
Expected: folder headers, path line, chips and Projects count are gone; the
⋮ menu still offers the non-overview actions.
packages/web-shell/client/components/sidebar/{workspaceOverviewModel,useWorkspaceOverview,WorkspaceOverview,WorkspaceMenu,WorkspaceRenameDialog}.test.*packages/web-shell/client/components/sidebar/WebShellSidebar.workspace-removal.test.tsx
(menu gating, rename, reload, management targets)packages/web-shell/client/e2e/web-shell.workspace-overview.spec.ts
(chips, counts, request gating, menu contents against the mock daemon)