4.8 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | |
|---|---|---|---|---|---|---|---|
| 04-prove-auto-run-flows | Prove Auto-run browser flows | done | 4 |
|
plan.md | ../../specs/ui/requirements/message-queue-run.md |
Task 04: Prove Auto-run browser flows
Intent
Prove real desktop and phone behavior for finish-current pause, FIFO resume, targeted Send Now resume, reload persistence, Cancel consistency, and clarification safeguards.
Acceptance
- Desktop E2E toggles OFF while a slow response has A, B, C behind it, proves that response finishes, and proves no queued turn starts. Toggling ON then runs A, B, C as separate FIFO turns.
- From OFF, desktop E2E uses row Send Now on B and proves Auto-run becomes ON, B replaces the captured turn without ordinary Cancel effects, and A then C run as separate turns without a second queue-control click.
- Reload E2E proves OFF and the held backlog survive browser state loss. Explicit Cancel with a backlog projects OFF and ON resumes it.
- Clarification E2E proves the switch may report ON without bypassing the pending clarification.
- Pixel 5 E2E repeats OFF, reload, ON, and targeted resume through touch; verifies a 44-pixel effective target and zero document horizontal overflow.
- No E2E uses removed header
queue-drain-nextorqueue-send-nowselectors; per-rowqueue-entry-send-nowremains covered.
Verification
cd apps
pnpm install --frozen-lockfile
pnpm --dir web e2e:run --project chromium tests/session/pause-resume-recovery.spec.ts tests/chat/message-queue.spec.ts tests/chat/clarification.spec.ts -- --grep 'Auto-run|Send Now resumes' --retries=0
pnpm --dir web e2e:run --project mobile-chrome tests/session/mobile-pause-resume-recovery.spec.ts tests/chat/mobile-message-queue-management.spec.ts tests/chat/mobile-clarification.spec.ts -- --grep 'Auto-run|Send Now resumes' --retries=0
if rg -n 'queue-drain-next|data-testid="queue-send-now"' web/e2e; then exit 1; fi
Confirm each Playwright command discovers the intended test count before recording it as evidence. The managed runner owns production builds and teardown.
Files likely touched
apps/web/e2e/tests/session/pause-resume-recovery.spec.tsapps/web/e2e/tests/session/mobile-pause-resume-recovery.spec.tsapps/web/e2e/tests/chat/message-queue.spec.tsapps/web/e2e/tests/chat/mobile-message-queue-management.spec.tsapps/web/e2e/tests/chat/clarification.spec.tsapps/web/e2e/tests/chat/mobile-clarification.spec.ts- queue-specific E2E helpers if causal setup needs a reusable slow-turn or transcript-order assertion
Dependencies
Task 03. Final copy, selectors, status projection, and responsive layout must exist before browser proof.
Parallelism
Sequential. Tests consume Task 03 and produce the evidence required by public documentation.
Inputs
- Spec scenarios for OFF, ON, Send Now, persistence, Cancel, clarification, transfer safety, and mobile parity.
- Existing queue and cancellation recovery E2E files listed above.
/e2emanaged-runner, causal-wait, mobile-discovery, and cleanup rules.
Risks
- Fast mock turns can reserve the next row before OFF. Use a deliberately slow active response and wait for the acknowledged switch result, not sleeps.
- Prove separate transcript turns and B, A, C order, not just final queue emptiness.
- Reload persistence must refetch backend state rather than retain an in-memory store value.
mobile-chromediscovers onlymobile-*.spec.ts; keep paths aligned.
Output contract
Report exact discovered/passed counts, production-build and teardown evidence,
files changed, artifacts on failure, blockers, and residual risks. Set this
task to done, record results below, and synchronize plan.md before Task 05.
Results
- Desktop managed E2E discovered and passed 4/4 Chromium scenarios: pending clarification, targeted Send Now with B/A/C separate-turn order, OFF across current-turn completion and reload with FIFO resume, and explicit Cancel parking a backlog OFF.
- Mobile managed E2E discovered and passed 3/3
mobile-chromescenarios: clarification deferral, targeted Send Now order with touch geometry and no horizontal overflow, and Cancel/OFF persistence across reload with resume. - The first desktop run exposed that queue-status broadcasts omitted the
persisted
auto_runvalue. Backend publisher contract tests failed first; both queue publisher paths now emit completeauto_runandmerge_enabledprojections, and the focused Go tests pass. - The production backend and Vite assets were rebuilt by the managed runner. Final no-build reruns used those artifacts; every managed run completed its owned teardown.
rgfound no remaining E2E references to removedqueue-drain-nextor headerqueue-send-nowselectors. Per-rowqueue-entry-send-nowremains covered on desktop and mobile.