Files
kandev/docs/plans/acp-shell-command-output/task-04-e2e-and-verification.md
T
2026-08-24 11:09:03 +00:00

65 lines
2.9 KiB
Markdown

---
id: "04-e2e-and-verification"
title: "Command output E2E verification"
status: done
wave: 3
depends_on: ["02-acp-live-updates", "03-frontend-command-row"]
plan: "plan.md"
spec: "../../specs/ui/requirements/acp-shell-command-output.md"
---
# Task 04: Command Output E2E Verification
## Acceptance
- Desktop E2E proves persisted success, failure, and unknown-exit command rows expand to the expected output and exact exit labels.
- Mobile E2E proves wrapped/truncated output and exit status remain readable without overlap or page-level horizontal overflow.
- Targeted E2E, backend tests/lint, frontend tests/typecheck/lint, and formatting complete successfully, with failures reported rather than hidden.
## Verification
```bash
make -C apps/backend fmt
(cd apps/backend && go test ./internal/agentctl/server/adapter/transport/acp)
(cd apps && pnpm --filter @kandev/web test -- components/task/chat/messages/tool-execute-message.test.tsx)
(cd apps/web && pnpm run typecheck)
(cd apps && pnpm --filter @kandev/web lint)
(cd apps/web && pnpm e2e:run --project chromium tests/chat/tool-execute-output.spec.ts)
(cd apps/web && pnpm e2e:run --no-build --project mobile-chrome tests/chat/mobile-tool-execute-output.spec.ts)
make -C apps/backend test
make -C apps/backend lint
make fmt
make typecheck
make test
make lint
```
## Files likely touched
- `apps/web/e2e/tests/chat/tool-execute-output.spec.ts` (new)
- `apps/web/e2e/tests/chat/mobile-tool-execute-output.spec.ts` (new)
- `apps/web/e2e/pages/session-page.ts` only if a small reusable command-row helper is justified
- `docs/specs/ui/requirements/acp-shell-command-output.md` only if implementation reveals a contract correction
- `docs/plans/acp-shell-command-output/plan.md`
## Dependencies
Tasks 02 and 03.
## Inputs
- All spec scenarios.
- Existing `seedSessionMessage` pattern in `mobile-repeated-tool-activity.spec.ts`.
- Existing desktop/mobile Playwright projects and active-chat scoping in `SessionPage`.
## Output contract
Report exact commands and pass/fail results, desktop/mobile projects exercised, failure artifact paths, files changed, blockers, and residual risks. Set this task to `done`, update `plan.md`, and change the spec to `shipped` only when all acceptance criteria pass.
## Completion Report
- Desktop Chromium covered success, failure, unknown exit, transcript expansion, and exact labels; mobile Chrome (Pixel 5) covered wrapping, truncation, exit readability, and horizontal overflow.
- The repository-root `make fmt`, `make typecheck`, `make test`, and `make lint` commands passed, along with generated web metadata, the production Vite build, and both targeted Playwright projects.
- Added the desktop/mobile chat specs and updated the plan, task reports, feature spec index, and ADR index. No failure artifacts or blockers remain.
- Residual risk is limited to new provider wire shapes and provider-side output omitted before ACP delivery.