Found by the P1 anonymous walk after tightening the console-error assertion (#314, epic #307).
Symptom
Visiting /tree-of-knowledge signed out fires GET /api/activity/progress, which 401s. The component catch-handles it into its empty state (the page renders fine), but Chromium logs the failed request as a console error — flaky in the walk because the fetch races the spec's assertions.
Root cause
tree-of-knowledge.component.ts#ngOnInit fetches personal progress unconditionally. /tree-of-knowledge is a public route, but the progress endpoint (correctly) requires auth. Same class as #312, except here the endpoint should stay authenticated — anonymous visitors simply have no progress to fetch.
Fix
Gate the fetch on keycloak.authenticated (the app's established pattern — see ACTIVITY_AUTH_GATE wiring in main.ts) and land directly on the existing empty state.
Found by the P1 anonymous walk after tightening the console-error assertion (#314, epic #307).
## Symptom
Visiting `/tree-of-knowledge` signed out fires `GET /api/activity/progress`, which 401s. The component catch-handles it into its empty state (the page renders fine), but Chromium logs the failed request as a console error — flaky in the walk because the fetch races the spec's assertions.
## Root cause
`tree-of-knowledge.component.ts#ngOnInit` fetches personal progress unconditionally. `/tree-of-knowledge` is a public route, but the progress endpoint (correctly) requires auth. Same class as #312, except here the endpoint *should* stay authenticated — anonymous visitors simply have no progress to fetch.
## Fix
Gate the fetch on `keycloak.authenticated` (the app's established pattern — see `ACTIVITY_AUTH_GATE` wiring in `main.ts`) and land directly on the existing empty state.
spikerj
added the bug label 2026-07-03 18:09:00 +00:00
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 state, and a new unit spec covers the anonymous path. Closing.
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 state, and a new unit spec covers the anonymous path. Closing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found by the P1 anonymous walk after tightening the console-error assertion (#314, epic #307).
Symptom
Visiting
/tree-of-knowledgesigned out firesGET /api/activity/progress, which 401s. The component catch-handles it into its empty state (the page renders fine), but Chromium logs the failed request as a console error — flaky in the walk because the fetch races the spec's assertions.Root cause
tree-of-knowledge.component.ts#ngOnInitfetches personal progress unconditionally./tree-of-knowledgeis a public route, but the progress endpoint (correctly) requires auth. Same class as #312, except here the endpoint should stay authenticated — anonymous visitors simply have no progress to fetch.Fix
Gate the fetch on
keycloak.authenticated(the app's established pattern — seeACTIVITY_AUTH_GATEwiring inmain.ts) and land directly on the existing empty state.Resolved in spikersoft-angular PR #106 (merged to
master). The progress fetch is now gated onkeycloak.authenticated(ACTIVITY_AUTH_GATE pattern); anonymous visitors land on the existing empty state, and a new unit spec covers the anonymous path. Closing.