6.3 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, priority
| id | title | status | assignee | created_date | updated_date | labels | dependencies | priority | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-82 | Add end-to-end smoke suite for launcher mpv ipc and overlay runtime | Done |
|
2026-02-18 11:43 | 2026-02-22 00:55 |
|
|
high |
Description
Current coverage is strong at unit/service level but thin on end-to-end behavior across launcher, mpv socket lifecycle, IPC wiring, and overlay runtime initialization. This task introduces an observable e2e smoke suite to reduce refactor risk.
Suggestions
- Start with deterministic smoke flows, not full UI automation.
- Use minimal fixtures and fakeable mpv socket harness where possible.
- Treat this as release gate signal, with clear pass/fail logs.
Action Steps
- Define smoke scenarios:
- launcher command branch sanity
- mpv socket ready/not-ready handling
- IPC channel registration + key command dispatch
- overlay runtime bootstrap lifecycle
- Build test harness that can run headless in CI/local environments.
- Add stable fixtures/mocks for mpv and external tool boundaries.
- Produce concise logs/artifacts for failures.
- Integrate smoke suite into pre-release validation flow.
- Document smoke test usage and troubleshooting.
Acceptance Criteria
- #1 E2E smoke suite exists and runs in automated workflow
- #2 Core launcher/mpv/ipc/overlay startup scenarios are covered
- #3 Failures produce actionable logs/artifacts
- #4 Smoke suite documented in development/release docs
Implementation Plan
Plan-of-record (2026-02-22, codex-task82-smoke-20260222T002523Z-3j7u)
Goal
- Add deterministic e2e smoke coverage for launcher -> mpv IPC socket -> app overlay start/stop runtime wiring.
- Run suite in CI + release quality gates with actionable failure artifacts.
- Document command, coverage, and release-checklist linkage.
Execution slices (parallel where safe)
-
Launcher smoke harness (core implementation)
- Create launcher/smoke.e2e.test.ts with fake mpv + fake app fixtures in temp dir.
- Validate startup path, socket readiness, app --start args/env, and post-run --stop behavior.
- Emit actionable artifact logs under .tmp/launcher-smoke/.
-
Script + workflow wiring (can run in parallel after command exists)
- package.json: add test:launcher:smoke:src and include in launcher lane.
- .github/workflows/ci.yml: run launcher smoke suite and upload smoke artifacts on failure.
- .github/workflows/release.yml: mirror quality-gate step and failure artifact upload.
-
Docs wiring (parallel with workflows)
- docs/development.md: command usage + what it validates + artifact path.
- docs/installation.md: release/checklist reference to launcher smoke gate.
-
Validation + closure
- Run focused lane: bun run test:launcher:smoke:src and bun run test:launcher.
- Run integration lane: bun run test:fast.
- Run dist confidence lane: bun run build && bun run test:smoke:dist (or record unrelated blockers).
- Update TASK-82 AC/DoD checks with exact evidence and final summary.
Scope guardrails
- No commit/push in this run.
- Keep smoke suite dependency-free (local fakes only).
- If new required scope appears, pause and request user scope decision before expanding AC.
Implementation Notes
2026-02-22: Started execution with opencode-task82-smoke-20260222T002150Z-p5bp via writing-plans -> executing-plans workflow.
Implemented launcher e2e smoke suite in launcher/smoke.e2e.test.ts using local fake mpv + fake app binaries, temp config/runtime sockets, and assertions for mpv status readiness, launcher startup wiring (--backend, --socket), IPC socket forwarding, overlay env propagation (SUBMINER_MPV_LOG), and post-mpv overlay stop command.
Added automation wiring: package.json scripts (test:launcher:smoke:src) and CI/release quality-gate steps to run smoke suite plus upload .tmp/launcher-smoke/** artifacts on failure in .github/workflows/ci.yml and .github/workflows/release.yml.
Documented smoke workflow and artifact triage in docs/development.md and release/pre-release verification guidance in docs/installation.md.
Verification evidence: bun run test:launcher:smoke:src PASS, bun run test:launcher PASS, bun run test:fast PASS, bun run docs:build PASS. bun run build && bun run test:smoke:dist remains blocked by pre-existing unrelated TASK-80 IPC typing errors in src/core/services/ipc.ts + src/core/services/ipc.test.ts.
2026-02-22: Implemented launcher smoke suite at launcher/smoke.e2e.test.ts with deterministic fake mpv/app harness and preserved failure artifacts under .tmp/launcher-smoke/<case-id>.
2026-02-22: Wired source smoke lane into automation: package.json (test:launcher:smoke:src), .github/workflows/ci.yml and .github/workflows/release.yml now run the lane and upload .tmp/launcher-smoke/** artifacts on failure.
2026-02-22: Updated docs with smoke command + release gate reference and artifact guidance in docs/development.md and docs/installation.md.
2026-02-22 verification: bun run test:launcher:smoke:src, bun run test:launcher, bun run test:fast, bun run build && bun run test:smoke:dist, bun run docs:build.
2026-02-22 correction: bun run build && bun run test:smoke:dist passes in current workspace; prior note about TASK-80-related blockage is stale from earlier intermediate run.
Final Summary
Added an end-to-end launcher smoke suite that exercises launcher->mpv IPC socket lifecycle plus overlay start/stop runtime wiring using deterministic local fake mpv/app fixtures and artifact-preserving failure output. Integrated the smoke lane into CI and release quality gates with failure artifact uploads, documented local/release usage, and verified all required test/build/docs lanes pass.
Definition of Done
- #1 Smoke suite passes on baseline branch
- #2 Release checklist references smoke suite