diff --git a/.opencode/skills/app-e2e-tests/SKILL.md b/.opencode/skills/app-e2e-tests/SKILL.md index ac57961b9f6..d8afe92c366 100644 --- a/.opencode/skills/app-e2e-tests/SKILL.md +++ b/.opencode/skills/app-e2e-tests/SKILL.md @@ -122,9 +122,9 @@ Run from `packages/app`: ## When CI flakes -- **Find it.** e2e runs on pull requests that affect `@opencode/app` or `@opencode/stories`, including their workspace dependencies, and on every manual dispatch (`.github/workflows/check-test.yml:50-62`). It never runs on dev (`:28`). +- **Find it.** e2e runs on every push to dev and beta, on nightly and manual runs, and as the gate `release.yml` calls before a stable release. Pull requests never run it. On a push the `affected` gate still skips it when nothing in `@opencode/app` or `@opencode/stories`, or their workspace dependencies, changed (`.github/workflows/check-test.yml`). - Each OS has the legs `app-1` and `app-2` (the shards), `session-ui-components` and `app-components`. - - The required `e2e (linux)` and `e2e (windows)` checks only aggregate those legs (`:329-352`). + - The `e2e (linux)` and `e2e (windows)` checks only aggregate those legs. - A pass on retry leaves a leg green. Check each Windows shard report's Flaky list, and make sure your new tests are not on it. - **Download:** `gh run download -n playwright-windows-app-2-1 -D `. Artifacts are named `playwright---` (`check-test.yml:314-327`). App e2e results are in `/app/e2e/`. - **In CI, the failing first attempt has no trace and no video** (`playwright.config.ts:62-65`). diff --git a/.opencode/skills/component-tests/SKILL.md b/.opencode/skills/component-tests/SKILL.md index 530a6166856..cea29788039 100644 --- a/.opencode/skills/component-tests/SKILL.md +++ b/.opencode/skills/component-tests/SKILL.md @@ -101,11 +101,11 @@ From the owning package (`packages/session-ui` or `packages/app`): 5. **Windows.** Check platform keys and labels and font-dependent geometry. The Windows component legs are the authoritative check. - Do not skip on Windows, and do not raise `config.ts` timeouts, retries or the `mount` wait. - If one test does genuinely expensive work, call `story.setTimeout(...)` in that test, with a comment that names the work. -6. **Confirm CI ran the component legs.** E2E never runs on pushes to dev (`check-test.yml:28`), so no post-merge run catches a regression. - - The `affected` gate filters on `@opencode/app` and `@opencode/stories` (`check-test.yml:60-61`). `ui`, `session-ui` and `gui-plugins` count through app's dependencies. `workflow_dispatch` forces the legs on (`check-test.yml:56-59`). +6. **Confirm CI ran the component legs.** Pull requests run only the affected unit tests on Linux, so the component legs come from a push to dev or beta, a nightly run or the release gate. + - The `affected` gate filters on `@opencode/app` and `@opencode/stories`. `ui`, `session-ui` and `gui-plugins` count through app's dependencies. Manual runs force the legs on. - `check-test.yml` is listed in `globalDependencies` (`turbo.json:8`), so editing it marks every package affected. - - The required `e2e (linux)` and `e2e (windows)` checks also pass when no leg was needed (`check-test.yml:329-352`). Look for `e2e (, session-ui-components)` and `e2e (, app-components)`. - - If CI skipped them, report your local cold run in the PR. + - The `e2e (linux)` and `e2e (windows)` checks also pass when no leg was needed. Look for `e2e (, session-ui-components)` and `e2e (, app-components)`. + - If no push has run them, report your local cold run in the PR. ## When CI flakes