Backend fix (spikersoft-backend PR #59) merged and verified live: /api/system/version now returns 9×200 then 429 with Retry-After: 60 (was 503).
Frontend follow-up open: spikersoft-angul…
Phase status refresh (2026-07-03, evening)
Resolved in spikersoft-angular PR #108 (merged to master). /keycloak-admin now carries RoleGuard + data.roles (parity with /admin/*), and the E2E manifest classifies it admin.…
Fix open: spikersoft-angular PR #108 — RoleGuard + data.roles added to /keycloak-admin (parity with /admin/*), manifest classification flipped auth → admin in the same change so the…
Fix open: spikersoft-backend PR #59 — RejectionStatusCode = 429 + Retry-After from lease metadata on the built-in limiter (the Redis limiter already returned 429). Will verify the live…
Progress — angular PR #107 (authenticated-suite foundation)
- Storage-state login fixture —
auth-setupPlaywright project performs one real Keycloak UI login (ids.spikersoft.com,…
Console-error tightening landed: spikersoft-angular PR #106 (merged). All five anonymous specs hard-fail on unexpected console errors (narrow allowlist in e2e/support/fixtures.ts), and the…
All three remaining items landed in spikersoft-angular PR #105 (merged to master as b667560): coverage reporter + drift gate, telemetry env wiring (CI job env + local .env.e2e), and the…
Resolved in spikersoft-angular PR #106 (merged to master). The progress fetch is now gated on keycloak.authenticated (ACTIVITY_AUTH_GATE pattern); anonymous visitors land on the existing empty…
Resolved in spikersoft-angular PR #106 (merged to master). Replaced the decorator @ViewChild with a signal viewChild + a run-once init effect, so Blockly initializes whenever the *transloco…