mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-10-20 17:01:24 -07:00
* test: add headless end-to-end harness and CI job Boot the built app against a real mpv, a synthetic clip, a fixture Yomitan dictionary, and a fake AnkiConnect inside a private Xvfb display, then assert on the overlay DOM and the AnkiConnect requests. Adds the test:e2e lane, an e2e session CLI for exploratory checks, and a three-platform CI job. * ci: set e2e temp dir from a step * test: make e2e session startup robust on slow machines Bun caps node:test hooks at 5s, so boot the session inside the first test. Keep pausing until the app's resume retries stop, read cue tokens in one round trip, and resolve Electron through its package entry so CI downloads the binary. * test: harden e2e harness for CI runners Fail fast when mpv cannot be spawned, read every Yomitan popup frame instead of trusting target order, and put the chocolatey mpv directory on PATH. * test: add e2e failure diagnostics and mark Windows job experimental Report what the overlay showed when a cue never renders, dispose the session when the overlay cannot be opened, skip popup frames that vanish mid-poll, and turn off AniSkip lookups in the harness config. * test: read the lookup popup entry from textContent * test: capture renderer console and main-side subtitle state in e2e failures * test: expose the Electron main-process inspector to the e2e harness Adds session.mainProcess() and 'e2e eval main', and reports main's window list alongside the overlay state when a cue never renders. * test: tap subtitle sends and receipts in e2e failure diagnostics * test: probe alternate main-to-renderer paths in e2e failure diagnostics * test: select the visible overlay layer, not the primed modal window Windows and macOS pre-create a hidden modal window that loads the same renderer document, and the harness could attach to it instead of the visible overlay. Drops the delivery taps that found this. * ci: run the Windows e2e job as a normal matrix entry * test: address review on e2e harness Slice the app log at a byte offset before decoding, create the session state file owner-only since it carries the inspector URL, and keep the cue failure when inspector diagnostics are unavailable. * test: create the e2e session state file exclusively
2.5 KiB
2.5 KiB
name, description
| name | description |
|---|---|
| subminer-change-verification | Verify SubMiner changes with repo-native cheap-first test lanes. Use after code, config, launcher, plugin, runtime, stats, documentation, or workflow changes; do not use for read-only questions. |
SubMiner Change Verification
Verify the behavior claimed by a change without running unrelated expensive checks by default.
Workflow
- Inspect the requested scope and changed paths with
git status --shortandgit diff. - Read
docs/workflow/verification.mdas the source of truth for maintained lanes. - Run the cheapest lane or lanes that cover the changed behavior.
- Escalate to the full handoff gate only for substantial or cross-boundary changes.
- Report exact commands, results, skipped checks, blockers, and remaining risk.
Do not use hidden wrapper commands. Verification commands are owned by package.json and the workflow documentation.
Lane Selection
- Internal docs,
AGENTS.md, or.agents/skills/**:bun run test:docs:kb - User-facing
docs-site/**:bun run docs:test, thenbun run docs:build - Config/schema/defaults:
bun run test:config- If defaults or templates changed, also run
bun run generate:config-exampleandbun run verify:config-example.
- If defaults or templates changed, also run
- General TypeScript source:
bun run typecheck, thenbun run test:fast - Launcher or mpv plugin:
bun run test:launcherorbun run test:env, based on the behavior changed - Runtime compatibility or dist-sensitive wiring:
bun run test:runtime:compat - Stats dashboard:
bun run test:stats - Overlay, renderer, mpv, or mining behavior in the running app:
bun run build, thenbun run test:e2e - Build/release scripts:
bun run test:scripts
For substantial changes, use the full gate documented in AGENTS.md and docs/workflow/verification.md.
Runtime Escalation
Real runtime checks are required when the claim depends on actual Electron, mpv, overlay, focus, window tracking, launch, or socket behavior. Run the relevant application flow when the environment supports it. Otherwise, report the missing runtime dependency and do not present cheaper checks as authoritative runtime validation.
Pre-Handoff Checks
Before handoff, reconcile both questions:
- Do behavior, defaults, flags, shortcuts, ports, APIs, architecture, or workflow changes require documentation updates?
- Does the change require a current-outcome fragment under
changes/according tochanges/README.md?
Complete required updates before handoff or report the blocker.