Resolved in spikersoft-angular PR #195 (merged to master) — the recommended option 1. A mediaUrl() helper prepends environment.baseUrl to root-relative media URLs in all three consuming…
Resolved in spikersoft-angular PR #194 (merged to master). The runner query in language-playground-shell.component.ts is now the optional viewChild(LanguageRunner) — every sidebar/result…
Resolved — verified in production ✅
spikersoft-backend#316 merged (commit a30ea3b) and deployed. After the swarm rolling update landed (~8.5 min post-merge), the same prod curl that…
Second root cause found — the online/signed-in symptom was NOT the WASM path
The merged WASM work (#313 / frontend) localizes the offline in-browser attempt starter. But the symptom…
Resolved in spikersoft-backend PR #314 (merged to master). Added bounded retry to the SpikerSoft.Secrets OpenBao overlay — VaultSecretSource now retries AppRole login + KV reads on…
Resolved in spikersoft-backend PR #311 (merged to master). Quiz.DegradedPageNumbers (#559) and Quiz.UnvalidatedQuestionDropCount (#564) were non-nullable properties added after the schema…
PRs opened (merge/deploy together):
- Backend: spikersoft-backend #313 (
feat/wasm-curriculum-i18n) — embedses/*.json+ the locale overlay intoSpikerSoft.Wasm, `GetAttempt(lessonNumber,…
x86 content fan-out is done — backend PR spikersoft-backend#310 (branch feat/296-x86-starter-es, not merged yet).
Added per-dialect codeTemplates Spanish overlays to all 33…
Phase 2 kicked off — Stage 0 up (spikersoft-backend PR #309). With Phase 0/1 closed the vault is live, so the SpikerSoft.Secrets overlay (built 2026-07-14) can finally be adopted.
**Plan…
Phase 1 complete. All three repos migrated to the OpenBao bao-secrets AppRole fetch — spikersoft-backend, spikersoft-angular (PR #192), spikersoft-artpipe (PR #21) — every CI credential…