docs(backlog): fix stale WP-19 CI description; add per-step model guidance
CI / frontend (push) Successful in 2m9s
CI / e2e (push) Canceled after 0s
CI / semgrep (push) Canceled after 0s
CI / api-client-drift (push) Canceled after 0s
CI / backend (push) Canceled after 1m10s
CI / storybook-a11y (push) Canceled after 3m19s

WP-19: the Files section still described the originally-planned CI approach
(background servers with & + wait-on); the actual implementation (documented in
ci.yml's own comment and playwright.config.ts) moved server lifecycle into
Playwright's webServer to fix the 2-hour e2e hang. Recorded as a Deviation entry
and corrected the Files section to match reality. Spot-checked the rest of the WP
(retryClicked wiring, the currentScenario() claim, the still-open retry gaps in
registration-detail/aanvraag-detail/brief) against current code — all still hold.

Session protocol: replace the removed model mandate with per-step guidance —
Opus for planning, Sonnet for implementation, Haiku subagents for simple
read-only CLI checks — so cost matches the step's difficulty, not the whole WP.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
eho
2026-07-27 13:19:28 +02:00
co-authored by Claude Sonnet 5
parent c475384a63
commit 9c54b18144
2 changed files with 19 additions and 4 deletions
+13 -4
View File
@@ -46,10 +46,11 @@ wired together — the thing a demo/reference app should be able to prove first.
- New `e2e/error-state.spec.ts` — the `?scenario=error` path.
- `package.json` — add `"e2e": "playwright test"` script; `@playwright/test` devDependency.
- `.github/workflows/ci.yml` — new job `e2e`, steps: checkout, setup-node, setup-dotnet,
`npm ci`, `npx playwright install --with-deps chromium`, start backend
(`dotnet run --project backend/src/BigRegister.Api &`), `npm start &` (or `ng
serve` backgrounded), wait-on both ports, `npm run e2e`. `timeout-minutes: 15`
per the hardened workflow convention already in `ci.yml`.
`npm ci`, `npx playwright install --with-deps chromium`, `npm run e2e`.
`timeout-minutes: 15` per the hardened workflow convention already in `ci.yml`. Playwright's
own `webServer` config (`playwright.config.ts`) starts + waits-for-ready + tears down both
the backend and `ng serve` inside that one step — see the "backgrounding servers" deviation
below for why this replaced the originally-planned `&`/`wait-on` approach.
## Steps
@@ -80,6 +81,14 @@ serve` backgrounded), wait-on both ports, `npm run e2e`. `timeout-minutes: 15`
## Deviation from the original plan
- **Backgrounding servers as separate CI steps doesn't work.** The Files section originally
planned starting the backend and `ng serve` with `&` in one step, then `wait-on`-ing both
ports in a later step. A process backgrounded with `&` in one GitHub/Gitea Actions `run:`
step is killed when that step's shell exits — so the later `wait-on` step hung forever on
servers that were already gone (**the 2-hour e2e hang**). Fixed by moving server lifecycle
into Playwright itself: `playwright.config.ts`'s `webServer` array starts both processes,
waits for each to be ready, runs the suite, and tears them down — all inside the single
`npm run e2e` process/step, so it's self-contained locally and in CI alike.
- **Found and fixed a real bug while writing the error-path spec**: `AsyncComponent`'s
built-in `retry()` only calls `.reload()` on a `[resource]` input — every real page
(`dashboard`, `registration-detail`, `aanvraag-detail`, `brief`) feeds `<app-async>`