Resolved in spikersoft-backend PR #99 (merged to master). Keyed DI gives the safety gate a dedicated always-subprocess SafetyCheck executor — resident mode no longer hits the ModelDir…
W5 — Python-native eventhandlers: recommendation (for your sign-off)
Researched the .py-native-vs-.NET-wrapper question against the actual code. **Recommendation: confirm your hypothesis —…
W3 (full PBR map sets) domain slice merged in spikersoft-backend PR #98. The platform can now carry/store/expose/export full PBR map sets — additive, byte-identical for today's single-texture…
W4 (rig-method chain) domain slice merged in spikersoft-backend PR #97. Restores rig-method breadth + records which method actually produced each result — additive, builds on W1/W1.5.
-…
Node-side heartbeat emitter merged in spikersoft-backend PR #96 — completes U5 into a functional loop (nodes report VRAM → coordinator consumes). Opt-in per node (GpuHeartbeat:Enabled,…
Deliverable 2 staged as spikersoft-backend PR #95 — NOT merged, needs your call (flagging a latent prod-safety issue it uncovered).
⚠️ Discovery: the write-side already landed on master…
Backend foundation slice merged in spikersoft-backend PR #94 (additive + behavior-preserving — no endpoint's gating changed).
SpikerSoftRolesconstants (canonical lowercase…
Deliverable 1 (read-only incidents API) merged in spikersoft-backend PR #93. api/ops/incidents (paged list, filters node/kind/status/severity/time), .../{id} (detail), .../summary…
match)
match)
Resolved in spikersoft-backend PR #91 (merged to master). Added the pure PythonVersionGate (parse python --version, compare by major.minor), a CodeExecution:MinimumPythonVersion floor…
match)
U5 (heartbeat-driven capacity) coordinator-side merged in spikersoft-backend PR #90. New gpu.node.heartbeat exchange/queue + GpuNodeHeartbeatMessage; VramBudgetTracker.ApplyHeartbeat…
U2 (coordinator-side placement-aware routing) merged in spikersoft-backend PR #89 — best-fit/bin-packing in VramBudgetTracker.TryAllocate (the U1-documented seam), behind **`GpuCoordinator:P…
W6 (staff curation) backend slice merged in spikersoft-backend PR #88. Additive-only (embedded CurationRatings on ArtAsset mirroring QuarantinedArtifacts, #369 legacy-safe): staff quality…
Fix ready for your browser check — spikersoft-angular PR #129 (NOT merged, held for you). Implements the ranked fix: (1) checkLoginIframe: false + silentCheckSsoFallback: true in…
Resolved (code) in spikersoft-backend PR #86 (merged to master) — Option A, de-privilege. JournalAccessMode=MountedDirectory (default) reads the already-mounted host journal via `journalctl…
Layer 2 root cause — pinned end-to-end (high confidence). The blank shell is a pre-bootstrap hang in keycloak.init():
- Angular adds a bootstrap-level PendingTask (
core.mjs:650) and…
D1+D2 merged in spikersoft-backend PR #85 (to master). Observe-only Redis cluster auto-remediation now lives in SystemRemediation:
- D1 detection —
RedisClusterProbepolls `CLUSTER…