test(launcher): add e2e smoke suite and CI gates

This commit is contained in:
2026-02-21 16:56:12 -08:00
parent 16b8d80498
commit 2a5830c4c5
11 changed files with 392 additions and 17 deletions

View File

@@ -63,6 +63,7 @@ electron . --background # tray/background mode, minimal de
```bash
bun run test:config # Source-level config schema/validation tests
bun run test:launcher # Launcher regression tests (config discovery + command routing)
bun run test:launcher:smoke:src # Launcher e2e smoke: launcher -> mpv IPC -> overlay start/stop wiring
bun run test:core # Source-level core regression tests (default lane)
bun run test:subtitle # Subtitle pipeline tests (build + run)
bun run test:fast # Source-level config + core lane (no build prerequisite)
@@ -70,6 +71,8 @@ bun run test:fast # Source-level config + core lane (no build prerequisi
Dist-level tests are now an explicit smoke lane used to validate compiled/runtime assumptions.
Launcher smoke artifacts are written to `.tmp/launcher-smoke` locally and uploaded by CI/release workflows when the smoke step fails.
Smoke and optional deep dist commands:
```bash

View File

@@ -224,4 +224,7 @@ SubMiner.AppImage --help # Show all CLI options
You should see the overlay appear over mpv. If subtitles are loaded in the video, they will appear as interactive text in the overlay.
Release/pre-release gate: run `bun run test:launcher:smoke:src` to validate launcher -> mpv IPC socket -> overlay start/stop wiring.
If the smoke lane fails, inspect `.tmp/launcher-smoke` artifacts locally; CI/release quality gates upload the same artifacts on failure.
Next: [Usage](/usage) — learn about the `subminer` wrapper, keybindings, and YouTube playback.

View File

@@ -55,5 +55,5 @@ Read first. Keep concise.
| `opencode-task79-runtime-reducers-20260221T235652Z-n4p7` | `opencode-task79-runtime-reducers` | `Execute TASK-79 explicit runtime state transitions/reducers in main via plan-first workflow` | `done` | `docs/subagents/agents/opencode-task79-runtime-reducers-20260221T235652Z-n4p7.md` | `2026-02-22T00:10:51Z` |
| `opencode-task79-sliceb-20260222T000253Z-m2r7` | `opencode-task79-sliceb` | `Implement TASK-79 slice B invariants coverage/tests and composition-boundary docs updates without commit` | `done` | `docs/subagents/agents/opencode-task79-sliceb-20260222T000253Z-m2r7.md` | `2026-02-22T00:04:21Z` |
| `opencode-task80-ipc-contract-20260222T001728Z-obrv` | `opencode-task80-ipc-contract` | `Execute TASK-80 IPC contract typing + runtime payload validation end-to-end without commit` | `planning` | `docs/subagents/agents/opencode-task80-ipc-contract-20260222T001728Z-obrv.md` | `2026-02-22T00:17:28Z` |
| `opencode-task82-smoke-20260222T002150Z-p5bp` | `opencode-task82-smoke` | `Execute TASK-82 e2e smoke suite for launcher/mpv/ipc/overlay end-to-end without commit` | `planning` | `docs/subagents/agents/opencode-task82-smoke-20260222T002150Z-p5bp.md` | `2026-02-22T00:21:50Z` |
| `codex-task82-smoke-20260222T002523Z-3j7u` | `codex-task82-smoke` | `Execute TASK-82 e2e smoke suite for launcher/mpv/ipc/overlay end-to-end without commit` | `planning` | `docs/subagents/agents/codex-task82-smoke-20260222T002523Z-3j7u.md` | `2026-02-22T00:25:23Z` |
| `opencode-task82-smoke-20260222T002150Z-p5bp` | `opencode-task82-smoke` | `Execute TASK-82 e2e smoke suite for launcher/mpv/ipc/overlay end-to-end without commit` | `done` | `docs/subagents/agents/opencode-task82-smoke-20260222T002150Z-p5bp.md` | `2026-02-22T00:54:29Z` |
| `codex-task82-smoke-20260222T002523Z-3j7u` | `codex-task82-smoke` | `Execute TASK-82 e2e smoke suite for launcher/mpv/ipc/overlay end-to-end without commit` | `done` | `docs/subagents/agents/codex-task82-smoke-20260222T002523Z-3j7u.md` | `2026-02-22T00:53:25Z` |

View File

@@ -2,9 +2,9 @@
- alias: `codex-task82-smoke`
- mission: `Execute TASK-82 e2e smoke suite for launcher/mpv/ipc/overlay end-to-end without commit`
- status: `planning`
- status: `done`
- start_utc: `2026-02-22T00:25:23Z`
- last_update_utc: `2026-02-22T00:25:23Z`
- last_update_utc: `2026-02-22T00:53:25Z`
## Intent
@@ -30,3 +30,17 @@
## Log
- `2026-02-22T00:25:23Z` session started; reading backlog + subagent context; entering planning.
- `2026-02-22T00:53:25Z` implemented TASK-82 smoke suite + workflow/docs wiring; verified smoke/launcher/fast/docs lanes; finalized backlog TASK-82 Done (build/dist smoke blocked by unrelated TASK-80 IPC typing errors).
## Files Touched
- `launcher/smoke.e2e.test.ts`
- `package.json`
- `.github/workflows/ci.yml`
- `.github/workflows/release.yml`
- `docs/development.md`
- `docs/installation.md`
## Next Step
- Wait for user review; optional follow-up is rerunning build/dist smoke after TASK-80 IPC typing fixes land.

View File

@@ -2,9 +2,9 @@
- alias: `opencode-task82-smoke`
- mission: `Execute TASK-82 e2e smoke suite for launcher/mpv/ipc/overlay end-to-end without commit`
- status: `planning`
- status: `done`
- start_utc: `2026-02-22T00:21:50Z`
- last_update_utc: `2026-02-22T00:21:50Z`
- last_update_utc: `2026-02-22T00:54:29Z`
## Intent
@@ -19,7 +19,8 @@
- `package.json`
- `.github/workflows/*.yml`
- `docs/development.md`
- `docs/RELEASING.md`
- `docs/installation.md`
- `backlog/tasks/task-82 - Add-end-to-end-smoke-suite-for-launcher-mpv-ipc-and-overlay-runtime.md`
## Assumptions
@@ -29,3 +30,4 @@
## Log
- `2026-02-22T00:21:50Z` session started; backlog context loaded; moving to planning.
- `2026-02-22T00:54:29Z` completed TASK-82 implementation slice: stabilized `launcher/smoke.e2e.test.ts`, wired `test:launcher:smoke:src` into CI/release with artifact upload on failure, updated docs (`development`, `installation`), and verified lanes: `test:launcher:smoke:src`, `test:launcher`, `test:fast`, `build`, `test:smoke:dist`, `docs:build`.

View File

@@ -74,3 +74,5 @@ Shared notes. Append-only.
- [2026-02-22T00:17:28Z] [opencode-task80-ipc-contract-20260222T001728Z-obrv|opencode-task80-ipc-contract] starting TASK-80 via Backlog MCP + writing-plans/executing-plans; scope IPC contract typing/runtime payload validation + malformed payload tests; will parallelize independent slices where possible.
- [2026-02-22T00:21:50Z] [opencode-task82-smoke-20260222T002150Z-p5bp|opencode-task82-smoke] starting TASK-82 via Backlog MCP + writing-plans/executing-plans; scope e2e smoke suite for launcher mpv ipc overlay startup + workflow/docs wiring, no commit.
- [2026-02-22T00:25:23Z] [codex-task82-smoke-20260222T002523Z-3j7u|codex-task82-smoke] overlap note: taking active TASK-82 execution; reusing existing task context/plan artifact, scoping edits to launcher smoke test + workflow/docs wiring + backlog evidence updates only.
- [2026-02-22T00:54:29Z] [opencode-task82-smoke-20260222T002150Z-p5bp|opencode-task82-smoke] completed TASK-82 implementation pass: launcher smoke e2e stabilized (`launcher/smoke.e2e.test.ts`), CI/release smoke + artifact upload wired, docs updated (`docs/development.md`, `docs/installation.md`), and verification lanes green (`test:launcher:smoke:src`, `test:launcher`, `test:fast`, `build`, `test:smoke:dist`, `docs:build`).
- [2026-02-22T00:53:25Z] [codex-task82-smoke-20260222T002523Z-3j7u|codex-task82-smoke] completed TASK-82: added `launcher/smoke.e2e.test.ts`, wired `test:launcher:smoke:src` + CI/release smoke gates with `.tmp/launcher-smoke` failure artifact upload, docs updated (`docs/development.md`, `docs/installation.md`), launcher/fast/docs lanes green; `build + test:smoke:dist` still blocked by unrelated TASK-80 IPC typing errors.