Resolved in spikersoft-backend PR #18 (merged to master on 2026-06-25, merge commit 4903eb9).
Root cause: after #225/#226/#227 moved all email sending into the `SpikerSoft.EventHandlers.Notifi…
Progress (safe extract-method pass continued):
- PR #15 (open) —
ZoneManagerhandlers:HandleCreateCharacterCommand,HandleLandOnPlanetCommand,HandleLaunchFromPlanetCommandsplit…
Progress update:
- PR #13 (merged) — 6 highest-complexity methods:
SpfHealthCheck.ValidateSpfRecord(72),DmarcHealthCheck.ValidateDmarcRecord(61),LessonValidator.ValidateLesson…
Two more offenders added to PR #13 (no behaviour change; all log messages + metric mappings preserved, 53 chunking/influx tests pass):
TextChunkingService.ChunkText— 43- …
First pass opened as spikersoft-backend PR #13 — the three highest-complexity methods, refactored with extracted helpers (no behaviour change; all healthData keys/values and validation messages…
Deferred (ticket stays open). On review, the four flagged sites are intentional patterns rather than accidental async-in-ctor:
activity-tracking.service.ts:87— deliberate `void this.manifestS…
Step 1 done in spikersoft-angular PR #73 (merged to master): added SonarQube exclusions for vendored/generated assets — assets/x86-playground/blinkenlib.js (Emscripten), assets/voxel-game/**…
Partially resolved in spikersoft-backend PR #12 (merged to master):
S2365—ActionKeysconverted to a cachedGetActionKeys()method (+ 5 callers).S3973— braces added to…