Updated diagnosis (2026-07-17, from #625 — closing that as a duplicate of this): the pull now runs with sudo in the deploy jobs, which fixed the root-owned-checkout permission error described…
Done in the 2026-07-16 spikersoft-angular deps pass — PRs #204–#211, landing as batch 6 (PR #211): Angular 22.0.6, Nx 23, TypeScript 6, ESLint 10 (plus ng-packagr 22 and the batch 1–5…
Resolved in spikersoft-backend PR #326 (merged to master, 4d22c0bb — PR-0 of the reader plan): UserBookmark re-keyed to Keycloak username strings, all three bookmark endpoints no longer…
Code fix merged: spikersoft-angular PR #216 → master (051258e). Verified: unit tests (41 green), nx build clean, and the prod tokenless-401 repro.
Holding this open for one last check…
Timeline correction (verified via git blame): the [Authorize] on GET /api/book/{id}/file predates #618 — it dates to commit 3a2314d (2026-04-09, "breaking files out"), when file serving…
Timeline validated against the full Unit Tests task history: last green run was 9e9a137c (2026-07-16 22:30); the Batch S PR run itself failed (c3dd9a1d, 22:10) and every run since — including…
Both vectors are now closed and deployed:
Part 1 — authenticated API leak:
- spikersoft-backend #331 (merged):
BookAccess.CanRead/ReadableByguard on every read endpoint (404-no-oracle),…
Verified against the live swarm: the service is absent (99 services running, none matching lesson/video) — lesson-video transcoding has never been deployed via CI. Fix PR: spikersoft-infrastru…
Resolved across two vectors, all PRs now merged to master. Closing.
Vector 1 — authenticated API (the reported hole): book read-authorization is centralized in `SpikerSoft.Business/Domain/B…
Resolved in spikersoft-angular PR #214 (merged to master, merge commit fcd0c169). Patched rete-angular-plugin@2.7.1 via pnpm patch to stop injecting the removed-in-Angular-22 `ComponentFactoryR…
Update on part 1 (authenticated API). After the audit against the intended parent-approval model (see epic #621 for what's actually built vs. aspirational), the authenticated-API vector is…