3.6 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | |
|---|---|---|---|---|---|---|---|
| 02-build-responsive-explorer | Build the responsive explorer | done | 2 |
|
plan.md | ../../specs/platform/requirements/mcp-session-observability.md |
Task 02: Build the Responsive Explorer
Acceptance
- A click on the desktop MCP trigger opens a wide, accessible server dialog. Selecting Kandev shows the current tool names and descriptions.
- A phone tap opens a full-height drawer. Server selection opens one focused detail view with a visible Back control and one scroll owner.
- Third-party rows show safe status metadata and explain the catalog limit.
All user copy uses the
tasklocale namespace.
Verification
cd apps && pnpm install --frozen-lockfile
cd apps && pnpm --filter @kandev/web exec vitest run components/task/chat/mcp-explorer components/task/chat/chat-input-toolbar.test.tsx
cd apps/web && pnpm run typecheck
cd apps/web && pnpm run i18n:check
cd apps/web && pnpm run i18n:ratchet
Write failing view-model and component tests before the implementation. Use keyboard events for focus, Escape, selection, Back, and focus return.
Files likely touched
apps/web/lib/types/session-runtime-payloads.tsapps/web/lib/state/slices/session-runtime/types.tsapps/web/components/task/chat/chat-input-toolbar-primitives.tsxapps/web/components/task/chat/chat-input-toolbar.test.tsxapps/web/components/task/chat/mcp-explorer/mcp-indicator.tsxapps/web/components/task/chat/mcp-explorer/mcp-server-explorer.tsxapps/web/components/task/chat/mcp-explorer/mcp-server-list.tsxapps/web/components/task/chat/mcp-explorer/mcp-server-detail.tsxapps/web/components/task/chat/mcp-explorer/mcp-explorer-view-model.tsapps/web/components/task/chat/mcp-explorer/mcp-explorer-view-model.test.tsapps/web/components/task/chat/mcp-explorer/mcp-server-explorer.test.tsxapps/web/src/locales/en/task.jsonapps/web/src/locales/pseudo/task.jsonapps/web/src/locales/pt-pt/task.jsonapps/web/src/locales/zh-cn/task.jsonapps/web/src/locales/zh-hk/task.jsonapps/web/src/locales/zh-tw/task.json
Dependencies
Task 01 provides the catalog fields and bounds.
Parallelism
Sequential. This task owns the shared explorer components and locale files.
Inputs
- Spec section
User experienceand related scenarios. - Mobile UI language rules for master-detail and dense content.
- Existing GitHub connection dialog and full-height Azure detail drawer.
Output contract
Report the desktop and touch compositions, shared state, accessibility behavior, localized copy, files changed, tests run, blockers, and risks. Update this task and the plan status in the same session.
Results
Implemented a shared MCP explorer view model and responsive server surfaces.
Desktop uses a wide two-pane dialog. Touch devices use a full-height drawer
with a list view, focused detail view, visible Back control, safe-area padding,
and one active scroll owner. Selection defaults to kandev and falls back when
live session updates remove the selected server.
The detail view renders the bounded Kandev catalog as plain text and explains why third-party catalogs are unavailable. The trigger keeps a short localized tooltip on desktop and a 44px touch target. New copy is present in all six task catalogs and the old compact indicator was removed from toolbar primitives.
Verification:
pnpm install --frozen-lockfile: passed
Vitest: 5 tests passed in 3 files
typecheck: passed
i18n:check: passed, with the repository's existing advisory real-locale parity warnings
i18n:ratchet: passed, 0 added + 5 modified files clean