Feature complete and live: backend #440/#441/#442 + angular #505/#506/#507 all merged and deployed. Verified in prod: role/family-scoped DMs, live badge+ding, presence, roster incl. admin-parent…
Deploy verified: avatars now serve from MinIO in prod (both test users 200, byte-exact vs migrated objects). GridFS profile-images.files/.chunks archived to ~/backups/gridfs-profile-images-20260721…
Phase 1 merged in spikersoft-angular PR #507: axe gate live in CI, vendored Kenney page excluded, 18 findings fixed, 4 accepted as correct ARIA in SonarQube. Batch 2 (~60 long-tail findings) in…
Resolved across spikersoft-backend PR #441 (roster additive buckets — merged) and PR #442 (corrected avatar-key resolution — merged + deployed; verified live: both test users' avatars now serve…
Resolved in spikersoft-angular PR #506 (merged to master, deployed): FAB badges unclipped (overflow:visible on both glass FABs), WebAudio ding on incoming DMs, visibility-aware auto-read +…
Phase 1 shipped for review: spikersoft-angular PR #507 (see #772). Epic reshape: the 72-image alt pile was entirely the vendored Kenney Overview.html (now sonar-excluded) — real app debt is ~82…
Correction shipped in backend PR #442: the #441 avatar coalesce passed ProfileImageId (a GUID referencing Images[]) straight to storage, which would 500 on ObjectId.Parse for gallery-picture users…
Implementation up: spikersoft-backend PR #442 + spikersoft-infrastructure PR #134. Data migration ALREADY EXECUTED against prod: bucket profile-images created, api-svc granted rw (verified…
Resolved (2026-07-21 ~08:30 UTC). Recovery executed per remediation plan:
- Dispatched
ModelEnvImages(images: prodstages) in spikersoft-artpipe → success. New 17.25 GB layer has fresh…
Implementation up for review: spikersoft-backend PR #440 (Mongo persistence, api/messaging endpoints, permission matrix, NotificationsHub presence + ReceiveDirectMessage fan-out) and spikersoft-ang…