2026-07-03 - 2026-08-03
Overview
There has been no commit activity in this period.
417 Issues closed from 2 users
Closed
#628 [Bug][CI][E2E] e2e.staff credential drift — OpenBao staff_password no longer authenticates against Keycloak (student from same secret works)
Closed
#894 Photo gallery: Florence-2 AI auto-tagging pipeline step (auto-tags + caption, suppressible, full backfill)
Closed
#786 [Bug][Prod][Calendar] GET events threw for every pre-#781 event — required non-nullable AffectsAvailability missing from old documents (backfilled)
Closed
#824 CI gap: strictTemplates / app-build errors merge to master green (nx build spikersoft not gated)
Closed
#805 [Feature][Art Studio] Serve display images as AVIF derivatives (small card + full), keep PNG for download
Closed
#807 Art Studio: let owners upload an edited .tif as a non-destructive stack variant
Closed
#822 GPU coordinator queue deadlocked after #467 node-routing deploy — Embeddings pinned to disabled SERVER lane wedges all GPU tenants
Closed
#540 [Bug][Infra][CI] SpikerSoft.EventHandlers.Scheduler is built nowhere and deployed nowhere — scheduled tasks (GeoIpUpdate incl.) never run
Closed
#848 Art Studio UI: show what made an asset, and let a user remake it (#842)
Closed
#843 Art Studio: record what actually produced each stage run (#842)
Closed
#851 GET api/Profile/images/{id} returns 500 — response compression grows already-compressed images past Content-Length
Closed
#888 OpenBao HA is silently degraded by sealed standbys — seal state has no monitoring, turning one node loss into a 2.5h write outage (#885 post-mortem)
Closed
#849 Art Studio: name storage keys for what they hold (#842)
Closed
#579 [Bug][CI][Infra] gitea-runners arm_v8_2 crash-looping on dreamstream6 since the #539 outage — ARM CI capacity silently down 3→2
Closed
#852 PROD: all Art Studio images 404 — #849 rename orphaned the legacy PascalCase artifact key
Closed
#853 Drop GridFS naming from Art Studio: rename to objectKey, migrate legacy docs, remove the #852 shim
Closed
#831 Sponsor family card: declutter header, consolidate member photos, promote the $ tracker
Closed
#850 CI: prune artpipe container pin tags — keep :latest + 3, they accumulate forever
Closed
#844 art_pipe: always seed generation, and record what made each image (#842)
Closed
#839 ModelEnvImages: triposg venv unbuildable (fvdb needs Python >=3.11, manifest pins 3.10) — aborts the serial loop and silently blocks 4 later images
Closed
#875 Fund-management admin page: recurrence/prize-kind enum drift (400s) + domain/action pickers
Closed
#873 exposeAgePublicly parental permission + Age on SponsorFamilyMember (consent-boundary design)
Closed
#871 TopAwards on SponsorFamilyListItem — public top-4 family prizes/skills aggregation
Closed
#870 Family card re-skin to approved mock (header, ringed avatars, image destination tiles, CTA banner)
Closed
#869 Destination background images: anonymous /destination-images MediaRoute from MinIO assets bucket
Closed
#863 Art Studio: artifacts only appear when the whole asset finishes, and the progress percentages are not honest
Closed
#860 hex-tower-defence: loadout effect re-subscribes to the art loader's httpResources, looping until the renderer is killed
Closed
#867 Rework /employment into a routed master-detail careers page with a globe
Closed
#881 book-upload preview binds bucket-relative coverImage key as <img src> — broken preview for MinIO-served books
Closed
#893 Photo gallery: free-form tags — editor, gallery filter/search, EXIF keyword seeding
Closed
#892 Photo gallery: poor thumbnail quality — Lanczos3 + edge-aware sharpening + fix ORF 160×120 thumbs
Closed
#891 Photo gallery: multi-select upload wrongly groups unrelated photos as a burst
Closed
#535 [Enhancement][ArtPipe][Angular] AI QR code generation — SDXL qrcode_monster ControlNet per-model lane + authenticated AI button in the QR tool
Closed
#877 [Bug][Infra][CI] ModelEnvImages rebuilds all 10 model images from scratch every push — a provenance LABEL above the expensive layers busts the cache (3h build, hits the runner cap)
Closed
#878 Sponsor family card UI/UX: spotlight bio clipped, duplicate family-page link, broken narrow-lane/mobile layout
Closed
#880 Offline book downloads don't persist the cover — downloaded books show broken covers once the presigned URL expires
Closed
#883 Duplicate System Activity gear FAB on /art-studio
Closed
#887 artpipe-model-blender:latest missing from registry — service Reject-loops every ~5s since the 04:11Z artpipe redeploy
Closed
#890 Restore QR-art rate limit to 6/hr after the #889 testing window
Closed
#889 QR Monster: add SD1.5 Monster v2 'classic' variant + per-variant tuning (gallery-quality blending)
Closed
#884 Sponsor family card: hover member tabs (locations/bio/awards) + dashboard sponsor grid layout
Closed
#882 CI red: 3 SponsorControllerTests family tests dial real MongoDB — #871 TopAwards reads not mocked
Closed
#885 OUTAGE: dreamstream4 down → RabbitMQ backbone unreachable since 12:17Z — consumers can't connect, redis node lost
Closed
#832 Art Studio: make the Hunyuan3D texturing lane actually run in production (never textured a single asset)
Closed
#837 Pixal3D PR-4: bake the pixal3d env image in CI
Closed
#836 Pixal3D PR-3: decouple model-queue binding from resident mode + per-model routing allow-list
Closed
#829 JWT tool: in-flight signature computation writes stale signature over cleared state (also reddens the full-suite SonarQube scan on master)
Closed
#814 QrCodeComponent: WiFi field escaping only escapes the first special char (regex missing /g)
Closed
#813 PhpInterpreterService: capabilities.canRun not reactive to setWorkspace (non-signal hasBlocks)
Closed
#815 CI red on master: deployment guard tests point at pre-reusable-pipeline workflow locations
Closed
#816 Angular CI: WASM bundle download flakes on HTTP/2 stream reset (curl exit 92)
Closed
#826 space-game KeybindingManager ctor wipes saved localStorage keybindings on every boot (custom binds lost on reload)
Closed
#827 Epic: Sponsor page — unified card grid, declutter donate buttons, and family shared-trip funds
Closed
#828 Angular master e2e-anonymous RED since #827 PR #564: /sponsor/donate-family/:familyKey unclassified in route-manifest → publish skipped, frontend not deploying
Closed
#823 master production app build is RED: photo-lightbox humanizeDuration(number|null) strictTemplates error
Closed
#817 Angular master CI red: Stylelint declaration-empty-line-before in sponsor-family.component.scss
Closed
#818 Angular lint: COVERAGE-LOOP.md trips prettier -c . on master
Closed
#819 e2e route-coverage red on master: location-fund routes unclassified + ratchet dip (regression from #552)
Closed
#806 Art Studio: serve AVIF renditions of PhotoStack stacks instead of the raw ~117MB .tif
Closed
#803 [Feature][Calendar] Subscription feeds — periodic .ics refresh via scheduler worker
Closed
#802 [Feature][Calendar] Import .ics calendars — one-shot file upload (Microsoft / Google / Apple)
Closed
#801 Gitea LFS storage → MinIO (keep 751MB of large assets off laptop-server host disk)
Closed
#800 spikersoft-angular: purge big binaries from git history (repo-size tier 3 — coordinated rewrite)
Closed
#791 KeycloakCacheService.refreshUserCache over-evicts users sharing an id prefix
Closed
#788 [Feature][Calendar] Family calendar overlay — parents see + manage children's events with per-child toggles (epic #781 adjacent)
Closed
#789 Library tsconfig.spec rootDir: "src" blocks cross-library-importing unit tests (38 libs)
Closed
#784 [Perf][ArtStudio] Serve artifact images via short-TTL presigned MinIO URLs + HTTP caching — stop streaming every image through the API (follow-up to #783, epic #413)
Closed
#556 [Bug][Backend][Infra] tiles.spikersoft.com has no backing service — API status/health canary fetches a terrain tile every few minutes and 404s 100% of the time
Closed
#551 [Bug][Infra][Jaeger] jaeger_elasticsearch crash-loops (0/1) — ES 7.17.0 image started against a data volume written by ES 8.11.0, restarting every ~30s
Closed
#518 [ArtPipe] Baked images Phase 2: stood-down residents blender/sdxl/triposr, hunyuan deferred (epic #515)
Closed
#517 [ArtPipe] Baked images Phase 1: SafetyCheck pilot image + cutover, incl. #486 fault isolation (epic #515)
Closed
#513 [Bug][Infra][Deploy] docker-monitor: new correctly-named stack exits 0 on startup (stuck 0/1) + duplicate misspelled 'spiekersoft-docker-monitor' stack running in parallel
Closed
#481 [Bug][Infra] jaeger_elasticsearch down ~24h on SERVER (exit 1) — MaxAttempts exhausted, tracing backend offline
Closed
#486 [Bug][Prod] SafetyCheck art-pipe resident worker missing 'torch' → ArtPipeProcessor host crash-loops (24x)
Closed
#534 [CI][ArtPipe] Route baked model-image builds (ModelEnvImages + tier-3 finals) to the 4090 runner, off laptop-server
Closed
#516 [ArtPipe] Baked images Phase 0: build scaffolding (Dockerfiles, CI, setup flags) + disk/limits go-no-go gates (epic #515)
Closed
#479 [Bug][Infra] sonarqube_backups stuck in reject-loop — no Sonar backups running (missing placement constraint)
Closed
#560 [Bug][Infra][GPU] gpu-coordinator arbitrates by declared bookings, not measured VRAM — over-budget tenants invisibly starve grantees (split from closed #553)
Closed
#419 [lint coverage] ~75 library projects are unlinted by CI + their eslint configs reference uninstalled plugins
Closed
#425 ProArt Art Studio: full local pipeline on Windows dev machines
Closed
#47 [Enhancement] Legacy Systems (v86): self-host OS/disk catalogue parity with copy.sh/v86 — remove third‑party CDN dependency
Closed
#348 [ArtStudio P2] ProArt GPU worker — RabbitMQ stage consumer wrapping art_pipe's worker protocol (modeling stage first)
Closed
#322 Decompose project knowledge into Cursor rules, skills, and AGENTS.md guardrails
Closed
#314 [E2E P1] Anonymous walk — every public route + primary actions
Closed
#278 # [Enhancement] Add dynamic State/Province selection or autocomplete in Profile configuration
Closed
#131 enhancement: One-shot bootstrap container for startup seeders (move out of API cold path)
Closed
#296 [Epic][Bug] Localize lesson code-template comments (Spanish) across all playgrounds
Closed
#706 [Bug][Blog][Angular] Media delete is broken end-to-end — placeholder handler AND a confirm button with no click binding (epic #705)
Closed
#707 [Bug][Blog][Angular] Comment identity is hardcoded — every comment posts as "Current User"/"current-user-id" (epic #705)
Closed
#699 [Bug][ArtStudio] Concept stage fails for every asset offline — SDXL loader completeness check + un-baked Lightning LoRA (fix: artpipe PR #25)
Closed
#686 [Angular][Tech-debt] Migrate off deprecated @angular/animations DSL + animations modules (Angular 22 — SonarQube S1874 ×85)
Closed
#614 [Bug][Prod][GPU] image-description fails every page — idle-unload races in-flight inference, batch_decode on a None processor
Closed
#716 [Security][Blog][Record] Create endpoints accepted spoofable client-supplied AuthorId — fixed by backend #423 (epic #705)
Closed
#723 platform-clang-runtime: 2 curriculum-pane specs fail on master (localStorage.getItem is not a function)
Closed
#729 Reading journey: let parents share their uploaded books with their children
Closed
#733 E4 regression: activity-manifest resource() blocks whenStable() — fundraiser + calendar suites hook-timeout on master
Closed
#727 Parent approval map never shows a domestic child's requested states (wishlistRegions unbound; orange 'requested' style gated to minor mode; no region approval store)
Closed
#658 [Reader][Offline] Read downloaded EPUBs offline + blob-URL resource rewriter
Closed
#655 [Reader][Offline] Read downloaded PDFs offline + auth.guard offline entry
Closed
#680 refactor(3dmodel): consolidate duplicated auth checks into TryGetUserId helper (S1192)
Closed
#654 [Reader][Offline] Profile "Offline books" section — list, remove, storage bar
Closed
#653 [Reader][Offline] Download-for-offline button on book cards
Closed
#718 [Epic][Photography] Photograph Upload · Photo Gallery · Photo Stack — photography as a first-class interest
Closed
#779 [Feature][Photography] Stack-aware gallery: EXIF burst auto-grouping, collapse to finished products, stack provenance + transparency panel (epic #718)
Closed
#755 note(art-studio): Stacked/Touchup saves are canvas exports — camera EXIF lost, photo-info panel sparse
Closed
#780 [UX][ArtStudio] Touch-Up: prominent selected-frame indicator + draggable compare divider (stacked vs selected frame) (epic #718)
Closed
#782 E2E parent/child account matrix + persona hydration tooling
Closed
#778 [Infra][MinIO] Final GridFS slices: vault-files + photograph-previews → MinIO sole store (completes epic #413's GridFS retirement)
Closed
#732 Epic: Accessibility hardening (SonarQube a11y backlog — alt text, keyboard equivalents, ARIA)
Closed
#776 test(backend): flaky BookPageImage ObjectId CreationTime tolerance (CI run 11622)
Closed
#720 [Infra][Data-integrity] Corrupt blob in MinIO-backed container registry — 17GB env-image layer unreadable at one part, blocked the #702 fix chain all night
Closed
#731 Bug: duplicate min-height in x86-playground SCSS (css:S4656)
Closed
#730 Sonar: exclude vendored interpreter.js (JS-Interpreter) from analysis
Closed
#758 [Bug][Backend][Profile] GET /api/Profile/images/6a5d78cacf3094d34c21faba 500s: stored image larger than advertised Content-Length; GlobalExceptionHandlerMiddleware then crashes writing after response start
Closed
#773 [Infra][MinIO] Sensitive documents (passports/travel docs): GridFS → MinIO sole store (slice of epic #413)
Closed
#771 [Infra][MinIO] Profile/team/sponsor images: GridFS → MinIO sole store (profile-images slice of epic #413)
Closed
#767 Direct messages: role/family-scoped 1:1 messaging with presence (FAB + drawer)
Closed
#772 a11y phase 1: axe-core e2e gate + vendored-asset exclusion + dev-tools/admin batch (epic #732)
Closed
#770 [Bug] DM roster: admin-parents don't see their children (exclusive role branches) + avatars generic for ProfileImageId users (#767 follow-up)
Closed
#769 [Bug] DM unread badge invisible on chat FAB (glass mixin overflow:hidden clips matBadge) + no audible cue on incoming message (#767 follow-up)
Closed
#768 [Bug][Infra] Corrupt 17GB registry blob in MinIO gitea-packages blocks all artpipe prodstages CI builds (unexpected EOF at fixed offset)
Closed
#766 Geography explorer: state map only renders after picking a trail-activating interest
Closed
#765 Dream globe: chip click flies globe to destination; polygon click offers "Explore in Geography"
Closed
#764 Dream globe: choropleth invisible while hovering and past a zoom threshold (small polygons)
Closed
#763 Dream globe: context countries nearly invisible; show grey state boundaries for supported countries
Closed
#759 ProfileMapper.ToDto omits 5 permission fields — child's own blogPosting etc. always read as defaults
Closed
#753 bug(blog): camera icon missing on pre-#746 gallery-sourced blog photos — backfill provenance + gallery picker in Add-more-media
Closed
#754 feature(photography): accept Canon/Nikon/Sony/Fuji/DNG raws on upload — widen allowlist + Raw-kind heuristic (no LibRaw needed on ingest)
Closed
#752 feature(sponsor): family card member spotlight + globe.gl choropleth dream globe on the family page
Closed
#751 [E6/emulators] alpine-linux + mac-plus emulator components are dead since the v86 catalogue (2025-11-22) — and orphan 158 MB of assets/emulators ROMs shipped in every image
Closed
#749 feature(sponsor): 'Sponsor a Journey' — family cards with shared destinations, destination chips, family detail page
Closed
#719 [Reading Journey][UX] Covers-only uniform shelf + responsive AVIF cover variants + book quick-view + blog-about-this-book (parent-gated)
Closed
#747 bug(blog): media removal is a placeholder — no backend endpoint, viewer button does nothing
Closed
#748 bug(blog): comment endpoints are anonymous and comment author identity is client-spoofable
Closed
#746 feature(blog): photography-info icon on blog photos sourced from the Photography gallery
Closed
#745 bug(blog): media 'Confirm Removal' button shown to all viewers + blog update/add-media endpoints missing authorization
Closed
#743 [Nx graph] spikersoft-environment consumer audit: all 18 lib consumers are URL-only (100 call sites); only the app needs full environment — migration report, not yet migrating
Closed
#740 [Nx graph] Split platform-activity-tracking into api (facade, 24 dependents) + impl (pipeline, app-registered) so impl churn stops invalidating a third of the graph
Closed
#744 Dungeon-crawler background music keeps playing after navigating to another game
Closed
#739 [Nx graph] Delete dead libs feature-dev-tools-voronoi + shared-utils-file-hash (zero consumers since May); keep feature-trellis-3d-generator (parked pending #412)
Closed
#741 feat(chemistry): periodic-table sizing fix + camera reset/axis views + in-scene element zoom
Closed
#738 feat(chemistry): Learn → Chemistry periodic-table landing (three.js CSS3D) — Phase 1
Closed
#736 Child's own profile drops 5 granted permissions — ProfileMapper.ToDto maps only 8 of 13 FeaturePermissions fields (child sees "Blog posting isn't turned on" despite parent grant)
Closed
#737 Registration e2e step-1 specs broken by E5 Signal Forms migration — [formcontrolname] locators no longer match (CI e2e-anonymous red on master)
Closed
#735 Child map never shows parent approval of a wishlisted state — minor-mode wishlist branch masks the approved style (profile → travel → map)
Closed
#734 Child book read-context never built on real tokens: bare FindFirst("sub") nulled by JWT inbound claim mapping (breaks #729 household grants; #618 child gate fail-opens)
Closed
#510 [Exploration][Infra] Resilience to SERVER node flaps — restart-policy windows, auto-reconcile sweep, de-SPOF the SERVER-pinned stateful tier
Closed
#414 [Infra][Architecture] Production deployment & secrets model for real hardware
Closed
#664 spikersoft-angular: root pnpm typecheck (tsc --noEmit) has ~9,200 pre-existing errors — unusable as a gate
Closed
#724 chore(calendar): upgrade FullCalendar v6 → v7 (@fullcalendar/angular 7.0.1) — new theme system, package restructure, API renames
Closed
#725 chore(a22): retire deprecated Angular packages — build-angular executor, @angular/animations, platform-browser-dynamic
Closed
#721 [ArtPipe][Bug] Export stage dead on first prod asset — Blender's glTF exporter missing numpy (--no-install-recommends dropped it) + probe chain masked the real error
Closed
#703 [Backend][Bug] Embeddings (and latent: quiz-generation) model self-provision fails — named cache volume root-owned, worker runs as app (#527 fallout)
Closed
#702 [ArtPipe][Bug] Modeling stage fails offline — TripoSR's DINO image encoder (facebook/dino-vitb16) never baked (same class as #699)
Closed
#701 Move My Journey into the playground curriculum pane as a Progress tab
Closed
#620 EPUB sidebar chapter nav is off by one (loads the page before the chapter)
Closed
#624 [Infra][CI] lesson-video-processor never deploys: swarm service name 67 chars exceeds 63-char limit (stack+service name doubled)
Closed
#690 [Security][Hardening] JWT validation deviates from secure defaults: RequireHttpsMetadata=false, ValidateIssuer=false
Closed
#672 PROD: sponsor/profiles + geography/travel-stats 500 — UserProfile.Social required-owned-nav throws on pre-#631 documents (schema drift)
Closed
#660 [Backend] KnowledgeDomainRegistry.ActionIdsByKey is write-only — dead code, or a missing action key→id accessor?
Closed
#644 [Security][Chat] CrossOrganization channels are accessible to EVERYONE — CanAccessChannel returns true unconditionally ('Simplified for now')
Closed
#652 [Backend] RedisClusterState derived projections re-filter+re-allocate on every access (SonarQube S2365 x3)
Closed
#678 CleanupOrphanData loads allUploadIds but never uses it — possible missing orphan-scan case (S1481)
Closed
#528 [Backend][MinIO] Replace API static-file media serving with S3-backed delivery (epic #413)
Closed
#526 [Infra][MinIO] Migrate quarantine dir to S3 (quarantine bucket, epic #413)
Closed
#525 [Infra][MinIO] Migrate /app/assets (ThreeDModel) to S3 (assets bucket, epic #413)
Closed
#524 [Infra][MinIO] Migrate dlls dir to S3 (dlls bucket, epic #413)
Closed
#523 [Infra][MinIO] Migrate lesson-videos + LessonVideoProcessor to S3 (lesson-videos bucket, epic #413)
Closed
#522 [Infra][MinIO] Migrate blogs dir + BlogMediaProcessor to S3 (blogs bucket, epic #413)
Closed
#493 [Infra][MinIO] Pilot: deploy MinIO + migrate security-scanner off /mnt/fusionio to S3 (proves the pattern for #413)
Closed
#656 [Backend][Bug] UpdateUserCommandHandler silently swallows all Keycloak failures — failed user updates report success
Closed
#657 [Backend][Bug] UTC timestamps parsed without RoundtripKind — TZ-dependent shift breaks phone-code expiry + ship/character DeletedAt (SonarQube S6580)
Closed
#697 [Maintainability] Fix CS8619 nullability mismatch on RabbitMQ message Headers (4 sites)
Closed
#695 [Robustness] Fundraiser RecordSale QuantitySold has no upper bound — absurd values can overflow accumulated totals
Closed
#694 [Security] GeneratorBrands write endpoints allow any authenticated user to modify CRM reference data (#689 follow-up)
Closed
#692 [Security] Phone verification codes (OTP) written to logs at Information level
Closed
#693 [Security] TwilioController outbound endpoints are unauthenticated — SMS/call/lookup abuse & cost
Closed
#691 [Security] Pre-registration email verification code is brute-forceable — attempts counted but never enforced
Closed
#689 [Security] Gate the remaining Mark Wilson CRM controllers to staff/admin (#688 follow-up)
Closed
#688 [Security] Broken access control: Mark Wilson customer-PII CRM is authenticated-only (no staff/admin role gate)
Closed
#685 [Security] SSRF in InfoVault URL caching — user-supplied vault URL fetched server-side with no internal-address guard
Closed
#676 Background-check + Keycloak base URLs hardcoded to production (no sandbox config) — S1075
Closed
#684 MediatR pipeline behaviors don't forward CancellationToken to next() (v11-style call on MediatR 14)
Closed
#683 Api: remove stale IsAotCompatible flag (abandoned AOT experiment emitting 115 IL2026/IL3050 warnings)
Closed
#682 perf(mcp): cache CalendarTools JsonSerializerOptions instead of per-call allocation (CA1869)
Closed
#681 perf(keycloak): cache JsonSerializerOptions instead of per-call allocation (CA1869)
Closed
#677 refactor(artstudio): consolidate 27 duplicated token-user-id auth checks into a helper (S1192)
Closed
#679 chore: remove dead SpaceZone methods (CreateTestSpacecraft, GetDockedChainExcluding) (S1144)
Closed
#675 chore: remove dead SpaceZone combat-damage duplicates (superseded by SpaceCombatSystem, S1144)
Closed
#674 Security: blog body sanitization uses bypassable regex (stored XSS) — replace with HtmlSanitizer
Closed
#673 CurriculumPythonInterpreter throws ArgumentNullException on unparseable Python version (CS8604)
Closed
#662 Adopt Angular 22 / Nx 23.1 optimizations: OnPush burn-down, strictTemplates, migration-artifact cleanup
Closed
#671 RPC consumers NRE on null handler response (payload.GetType() in PublishReplyAsync) — CS8604
Closed
#670 fix(calendar-reminders): null BasicProperties.Headers NREs the reminder publish when tracing is inactive (CS8602)
Closed
#667 chore: remove abandoned commented-out code blocks (S125)
Closed
#669 fix(notifications): null Twilio VerificationCheck.Status causes NRE + dropped audit in 2FA verify (CS8602)
Closed
#668 test: convert BroadcastToPlayersInRange tests to async/await (xUnit1031)
Closed
#666 fix(data): cast null to nullable JsonSerializerOptions in EF value converters (CS8600, 66 findings)
Closed
#665 fix(api): DecompileController drops request CancellationToken into MediatR (CA2016)
Closed
#661 perf(api): cache BookController JsonSerializerOptions instead of per-request allocation (CA1869)
Closed
#651 [Reader][Offline] IndexedDB offline book store (schema + CRUD foundation)
Closed
#650 [Reader][Perf] EPUB page prefetch/LRU + fix dead ngsw api-books cache group
Closed
#649 [Reader][Social] Community badge opens the sidebar on Chapters, not the Community tab
Closed
#648 [Backend] Final dead-code slice + AVIF failure diagnostics + Reader S927 renames (SonarQube S1144/S1481/S927 residue)
Closed
#647 [Backend] Remove 12 genuinely dead private parameters (SonarQube S1172) — the residue after the family's triage
Closed
#646 [GameServer][Bug] Hierarchical A* never worked: region identity collapsed to (0,0,0) via a placeholder IntToRegion — long-range pathfinding fell back to straight lines through obstacles
Closed
#639 [Backend] Telemetry-fidelity log-call family: S6667 (83) + S2139 (187) need per-site triage with a rubric, not bulk treatment
Closed
#641 [Backend] S1172 unused-parameter family (74, incl. 28 unused CancellationTokens): rubric batch after the #632 baseline lands
Closed
#640 [GameServer][Bug] Four command types were never ClientTick/Sequence-stamped on deserialization — the per-type stamp switch silently skipped them (found via SonarQube S1871)
Closed
#638 [Backend] Detector/rule-engine override parameters renamed to match their base declarations (SonarQube S927 x14) + proposal: drop CA1873/CA1861 imports from sonar (56% of all open issues)
Closed
#632 [CI][Backend] sonar-scan has uploaded nothing since 2026-07-14 — scanner gets a wrong SonarQube host and continue-on-error hides the failure
Closed
#637 [Backend] Minor-bug batch from SonarQube triage: freeze the remediation allowlist + spell registry, constrain generic event handlers, dead null-coalesce, poll-loop default cases
Closed
#636 [Backend][Tests] Five strict-mock tests carry no explicit assertion (SonarQube S2699 BLOCKER x6 — 5 fixed, 1 false-positived)
Closed
#635 [Backend] Duplicate placeholder names in structured-log templates render unbound holes and collide in Seq (SonarQube S6677 x3)
Closed
#631 [Reader][Social] Backend: shared bookmarks, upvotes, and reading lists (opt-in, child-safe)
Closed
#634 [Reader][Social] Frontend: profile Social tab, reader Community tab, upvotes, reading-list dialog
Closed
#566 [Backend][Refactor] Finish the SpikerSoft.Business decomposition — physically move the 13 linked source files into their slice projects, and adopt 'new code goes in the slice directory'
Closed
#630 [Reader][UX] Reading-journey landing: drop the hero + tabs, add a guided tour and per-book quiz icons
Closed
#629 [Bug][Reader][UI] Reader slides under the fixed app menu-bar — its toolbar/close button is obscured
Closed
#627 [Bug][Prod][Reader] PDF worker fails to load — nginx serves .mjs as application/octet-stream (strict MIME blocks the module script)
Closed
#596 [Bug][CI][Registry] #548 was closed but its fix NEVER LANDED — all 23 of 23 multi-arch workflows still --amend mutable :amd64/:arm64v8 tags, and the cancelled-run window from #590 makes mixed-commit :latest reachable today
Closed
#616 Activity-coverage page: content hidden under fixed menu bar; user scope requires raw KeycloakUserId
Closed
#580 [Bug][CI] arm64v8 image builds intermittently fail pulling mcr.microsoft.com base image over IPv6 — 'network is unreachable', ~1 in 6 arm jobs
Closed
#303 [Perf/i18n] Split Transloco into scoped, lazily-loaded translation files
Closed
#501 [Bug][Infra][GPU] artpipe lane down on 4090 — workers Rejected on missing /mnt/fusionio/spikersoft/art_pipe bind after artpipe-gpu label move (collateral of #500)
Closed
#587 [Bug][Prod][Registry] 14 images have no :latest manifest (manifest unknown / 404) — any reschedule onto a fresh node will fail to start
Closed
#626 [Bug][Prod][Reader] PDFs never open in the reader — pdf.js fetches /api/book/{id}/file tokenless (401); EPUBs unaffected
Closed
#623 [CI][Backend] Unit Tests red since Batch S (dcproj NU1105 via Directory.Build.props pins) + ArtPipe per-model images broken since CPM (Dockerfile.model missing Packages.props)
Closed
#344 [CI] SonarQube Scan workflow red on every spikersoft-angular run — CE task fails server-side during report processing
Closed
#527 [Infra][MinIO] Migrate /mnt/fusionio/spikersoft/ai → ai-models bucket for embeddings + quiz-generation (epic #413)
Closed
#592 [Bug][Prod][GPU] quiz-generation is green, consuming, and CANNOT generate a quiz — deployed with an empty Storage__SecretKey and no model bind (follow-on to #553 / infra #81)
Closed
#625 [Infra][CI] every deploy job's /mnt/infrastructure git pull fails under sudo (no credentials) — #584 stale-checkout guard is decorative
Closed
#219 chore: upgrade to Angular v22 + latest Nx
Closed
#617 [Bug][Prod][Reader] Every bookmark operation 500s — UserBookmark.UserId is ObjectId but requests are keyed by Keycloak username
Closed
#618 [Security][Backend][Books] Private books are listable and downloadable by any authenticated user — /api/book/all and /api/book/{id}/file have no visibility/ownership check
Closed
#622 Blueprint diagram: connection wires broken on Angular 22 — rete-angular-plugin injects removed ComponentFactoryResolver (flaky e2e tools-walk failure)
Closed
#612 [Bug][Prod][Uploads] Large book/video uploads quarantined as "Virus detected" — ClamAV 25 MiB scan cap < the app's 100 MB upload limit
Closed
#611 [Bug][Frontend] es→en language toggle leaves server-localized content in Spanish (lesson names et al.) — fetch-once surfaces never re-pull on locale change
Closed
#599 [Bug][Angular][Backend] Lesson-video and geography-media URLs are root-relative, so the browser asks nginx (learn.spikersoft.com) — which serves index.html with a 200 into the <video> element, never the media
Closed
#609 [Bug][Frontend] NG0951 console spam on C# playground load — viewChild.required(LanguageRunner) read during CD before the child mounts
Closed
#608 [Bug][Frontend][Backend] C# playground lessons don't switch to Spanish on language toggle — In-Browser (WASM) path is English-only by construction
Closed
#607 SpikerSoft.Secrets: add bounded retry to OpenBao AppRole login + KV read
Closed
#606 [Bug][Backend][Quiz] GET /api/Quiz 500s — Quiz.DegradedPageNumbers (#559) & UnvalidatedQuestionDropCount (#564) are required non-nullable, so pre-deploy quizzes fail to materialize
Closed
#544 [Security][Infra] OpenBao Phase 0: swarm stack + init/unseal runbook + Keycloak OIDC (epic #543)
Closed
#545 [Security][CI] OpenBao Phase 1: Gitea Actions secrets → AppRole fetch; rotate the committed runner token (epic #543)
Closed
#604 [Bug][Backend][CodeExecution] GitService stages files by absolute path — 2 unit tests fail on macOS (/var→/private/var symlink), and prod breaks if Git:RepositoryPath is ever a symlinked path
Closed
#381 [NodeAgent/SystemRemediation] Host disk-space probe — detect/alert on low disk before it stalls services
Closed
#594 [Bug][Backend][Observability] Serilog MinimumLevel is hardcoded to Debug in EventHandlerHostBuilder — EVERY appsettings log-level setting is dead config, and ~2.9M Debug events/day are shipped to Seq
Closed
#590 [Bug][CI][Deploy] cancel-in-progress on master kills DEPLOY jobs — back-to-back merges cancel each other and fixes silently never ship
Closed
#581 [Bug][CI][Deploy] lesson-video-processor has NEVER deployed — the VIDEOS_S3_SECRET_KEY Actions secret was never created, so its own deploy guard rejects every run
Closed
#585 [Bug][Prod][AI] Book embeddings are WRITE-ONLY — nothing in production ever reads them; RedisVectorSearchService is registered nowhere
Closed
#549 [CI][Angular] Frontend pipeline does 4x duplicate Angular builds + an unnecessary arm-runner build leg — dedupe via build-once/artifact + buildx multi-arch (PR incoming)
Closed
#557 [Bug][Backend] BookAnalysisService (ExtractChapters / AnalyzeBookWithLLM) silently ships degraded book data on GPU/model-load failure — same class as quiz-gen #553, different pipeline
Closed
#541 [Bug][Backend][DockerMonitor] All swarm node events published as 'docker.node.unknown' with empty hostname — ~21 junk RabbitMQ msgs/min for healthy nodes
Closed
#598 [Bug][Backend][MinIO] Cutover blocker: UploadOrchestrator reads BookPageImage.AbsoluteImagePath with raw File.Exists — dropping the /app/ebooks bind silently kills book image descriptions (epic #413, blocks #528/#529)
Closed
#597 [Bug][Backend][Observability] #575 was fixed in ONE publisher — BookController (5 publish sites) and 3 others still ship RabbitMQ messages with no traceparent, so user-initiated flows appear in Jaeger as disconnected orphan traces
Closed
#577 [Backend][Metrics] SpikerSoft.Business.Metrics is inert — IInfluxMetricsService has no consumer, metric models are duplicated, namespace doesn't match the project, and InfluxDashboard re-implements the aggregation
Closed
#571 [Bug][Backend][InfluxDashboard] dreamstream7 is invisible to the metrics dashboard — Hostnames config lists DreamStream1-6 while the swarm runs 7 jetson reporters
Closed
#568 [Backend][Search] API book search is a permanent no-op — implement SearchBooksRemoteQuery RPC to the embeddings worker so the live Redis vector index is reachable from the edge
Closed
#583 [Bug][CI] 28 of 30 path-filtered workflows still don't re-run when their own workflow file changes — #538 fixed only artpipe
Closed
#584 [Bug][CI][Deploy] 28 of 29 deploy jobs never 'git pull' /mnt/infrastructure — they deploy STALE stack files and report success
Closed
#569 [Bug][Backend][KeycloakEvents] Queue binds routing key '#' on amq.topic — subscribes to EVERY message on the exchange; a landmine for any future amq.topic publisher
Closed
#559 [Bug][Backend][Quality] Quiz pages whose LLM output fails JSON parsing silently contribute 0 questions (WRN only) — quizzes ship smaller than requested
Closed
#591 [Bug][Tests][Curriculum] CurriculumSmokeTests picks whatever python3 is first on PATH — macOS system Python 3.9 fails the match-statement lessons (21300/21301) with a raw SyntaxError
Closed
#574 [Bug][Backend][API] UploadBookCommandHandler.Lean reads its own RabbitMQ:* config with hardcoded 'dockerUser/dockerPassword' defaults — bypasses the shared messaging config path
Closed
#588 [Bug][Telemetry] Every service reports service.namespace='1.0.0' — AddService()'s 2nd positional arg is serviceNamespace, not serviceVersion. Spans also carry no node identity
Closed
#586 [Bug][Tests][QuizGeneration] ValidRequest_IsConsumedAcked_QuizCompletesWithFakedQuestions_AndNotifies fails on master — quiz contains questions from pages other than the expected page 4
Closed
#575 [Bug][Backend][Scheduler] ScheduledTaskPublisher does not propagate W3C trace context on publish — violates AGENTS.md non-negotiable #1; scheduled-task work is untraceable end-to-end
Closed
#564 [Bug][Backend][Quality] QuizGenerationService validation is fail-open — if the validation LLM call throws, the unvalidated question ships in the quiz
Closed
#573 [Bug][Backend][API] CodeExecutionResultConsumer uses autoAck:true — a student's execution result is silently lost if the API dies mid-handle
Closed
#565 [Bug][Backend] RedisVectorSearchService in-memory fallback caps the candidate pool at TopK keys BEFORE scoring — fallback returns arbitrary chunks, not the most similar ones
Closed
#552 [Bug][Infra][Node] dreamstream4 (manager) Down/Unreachable — keycloak postgres forced failover: 'No such image' reject-loop on ds6 (#511 signature), stale 2/1 task, DB changed nodes
Closed
#484 [Bug][Infra] API /healthz returns 503 — TileServerGL check failing (tiles.spikersoft.com 404s, no tile-server deployed)
Closed
#539 [Infra][Node] dreamstream6 (aarch64) down since ~16:30Z 2026-07-13 — heartbeat failure, host unreachable
Closed
#553 [Bug][Prod][GPU] quiz-generation silently degrades ALL quizzes — Mistral-7B load fails (CUDA alloc), image-description holds 18.2GiB > its 16GB lease on SERVER's 4090
Closed
#558 [Bug][Infra] SERVER root filesystem at 94% and climbing — remediation alerting every ~2min (occurrences 46+), alert-only with no cleanup path
Closed
#548 [CI][Backend] Multi-arch create_manifest amends MUTABLE :amd64/:arm64v8 tags — out-of-order arch pushes can stitch a mixed-commit :latest (all backend multi-arch workflows)
Closed
#536 [CI][ArtPipe] ModelEnvImages has no concurrency guard — concurrent runs race the same :latest tags (observed live)
Closed
#550 [Lint][Angular] testing/transloco-test-setup.ts violates @nx/enforce-module-boundaries x3 — surfaced by first-ever root-project lint
Closed
#537 [ArtPipe][CI] Phase 2 blocked: sdxllightning env image is 98 GB — unfiltered snapshot_download bakes the entire SDXL repo; push dies
Closed
#542 [Security][Prod] nginx root bind publicly serves quarantine, raw uploads, dlls — /spikersoft/<private-tree> downloadable
Closed
#533 [Backend][Refactor] Shared IObjectStore/S3 registration — dedupe per-service AmazonS3Client blocks (epic #413)
Closed
#22 [Enhancement] app-lesson-sidebar: contain long lesson list (100vh / internal scroll vs virtual scroll)
Closed
#480 [Bug][Infra] spikersoft-node-agent running on 1/10 nodes — rejected on missing /var/log/journal and /etc/timezone binds
Closed
#345 [Bug] Authenticated app bootstrap crashes with NG0200 (circular DI) — blank shell for logged-in users
Closed
#403 [infra drift] image-description & trellis3d deploy to /mnt/infrastructure folders that don't exist
Closed
#512 [Bug][Frontend] Author's own staff-removed blog posts show on the dashboard with no moderation indicator
Closed
#505 [Bug][Infra] MinIO single drive faulted under first sustained concurrent write load — writers aborted mid-stream, task left LB
Closed
#511 [Bug][Infra][Deploy] quiz-generation rolling update races the image push — 'No such image' reject loops + UpdateStatus=paused
Closed
#504 [Bug][Infra] MinIO doesn't recover after a transient /mnt/fusionio drive blip — stuck '0 drives provided', 'mc ready local' healthcheck misses it, needs manual restart
Closed
#509 [Bug][Backend][Data] BookPages inflation — quiz saw 6 pages on a 3-page book; one book linked 570 pages (staleness-retry double-processing suspected)
Closed
#507 [Bug][Backend] Zero-question quizzes are marked Completed and takeable — starting one insta-expires at 0/0
Closed
#497 [Bug][Prod] /mnt/fusionio/spikersoft/ai missing embedding model — book pipeline dies at embeddings (nomic-embed-text-v2-moe.f16.gguf not found)
Closed
#502 [Bug][Prod][GPU] image-description crash-loops on gated HuggingFace model — no HF token for Qwen3-VL-8B (401 GatedRepoError)
Closed
#500 [Bug][Infra][GPU] image-description lease starves — gpu-coordinator single-lane budget still on SERVER (8192MB) vs 16000MB needed; enable 4090 lane
Closed
#508 [Bug][Prod][GPU][CRITICAL] image-description crash-loops (0/1) — ModuleNotFoundError: 'message_failure' — phantom deploy of the #506 fix, Dockerfile missing COPY
Closed
#506 [Bug][Prod][GPU] image-description permanently dead-letters captions on null gpu_client — AttributeError misclassified as permanent (data loss)
Closed
#498 [Infra][MinIO] Move Gitea package/container-registry storage to the gitea-packages bucket
Closed
#499 [Bug][Backend] Book deletion leaves all artifacts behind — on disk AND in the MinIO ebooks bucket (no purge path exists)
Closed
#496 [Bug][Prod][Infra] DLL decompiler service is built but never deployed — uploads RPC-timeout (no consumer on decompile.dll.upload.requested)
Closed
#488 [Bug][Backend][Security] Data Protection keys are ephemeral + unencrypted (container-local) — redeploy logs users out, replicas can't share keys
Closed
#495 [Bug][Prod] ArtPipeProcessor image: /home/app not writable + no HF_HOME → HuggingFace cache PermissionError blocks model weight downloads
Closed
#494 [Bug] Dungeon Crawler: final 'Create Character' button unclickable — HUD hit-testing offset by the fixed app toolbar (same class as #492)
Closed
#492 [Bug] Space Game: "Select Your Ship" modal buttons unclickable — HUD hit-testing offset by the fixed app toolbar
Closed
#237 chore(deps): unpin ovenplayer (0.10.51 media-captions crashes under vitest/SSR)
Closed
#491 [Bug][Prod] GameServer rejects ALL player JWTs — audience config 'spikersoft-api' vs Keycloak's actual 'account' (regression from #407 hardening)
Closed
#490 [Bug][Backend] InfluxDB health check throws ArgumentException (duplicate 'write_successful' key) on query failure — masks real error
Closed
#487 [Bug][Backend] MediatR (Lucky Penny) commercial license expired — Error logged on every startup, renew before hard enforcement
Closed
#485 [Observability][Backend] Client-abort exceptions (OperationCanceled / 'client reset request stream') logged as Error + 500 — noise in Seq/traces
Closed
#235 chore(deps): pnpm 11.1.2 → 11.7.0 + config migration (deferred from #229)
Closed
#234 chore(deps): Node dev-tooling majors — concurrently 10, lint-staged 17, @babel/preset-typescript 8
Closed
#201 ## [Bug] Missing or Incomplete Translations in x86 Playground Interface
Closed
#371 [Infra][Incident] Redis cluster amputation 2026-07-05 — nodes .106/.107/.108 restarted with fresh identities; add persistent volumes for nodes.conf/data
Closed
#421 [dev-ex/Mac] No turnkey local full-app browse — frontend dev expects API :33333, Mac-native API binds :5290/5291
Closed
#467 [infra] Bump Keycloak 26.6 → 26.7 (keycloak/docker-stack.yml)
Closed
#382 [Epic][Art Studio UI] Port the ArtPipe experience into SpikerSoft's native Art Studio
Closed
#377 [API/Angular] School-operator status surface — capability-level rollup (api/status + read-only panel), separate from the #297 admin console
Closed
#395 [Art Studio UI] Playwright e2e coverage (compose→monitor→inspect→curate→download)
Closed
#458 [Art Studio] Observability follow-ups (C#/infra): register dropped ActivitySources + per-stack Deployment name
Closed
#466 [Backend][Prod] GetPlatformAdoption crashes: FormatException 'Cannot deserialize a String from BsonType Array' on user-submitted-code
Closed
#462 infra: pin redis/redis-stack-server to a digest; plan migration to redis:8
Closed
#464 [Mac local stack] Full site flow on the M5 — quiz generation + embeddings + book upload pipeline in mac-dev-up.sh
Closed
#468 System Activity overlay opens on global 'S' keypress, interfering with typing
Closed
#469 infra(traefik): bump Traefik v3.7.0 → v3.7.7 (latest)
Closed
#472 docs(artpipe runbook): §2 bootstrap shell command launches the .NET worker instead of bash
Closed
#471 ci(artpipe): image push only redeploys the modeling stack — five resident model stacks go stale; PR builds overwrite prod :latest
Closed
#470 infra(jaeger): bump Jaeger 2.17.0 → 2.19.0 (latest)
Closed
#476 Auditable blog post hide/remove for staff (two-tier moderation + immutable audit trail)
Closed
#473 Serve blog media via nginx static path instead of the API + prod config fixes
Closed
#418 [CI drift] lesson-video-processor is deployed but has NO build workflow → orphaned image
Closed
#478 Decompose SpikerSoft.Tests.Unit into live-along per-project test projects
Closed
#477 chore: update NuGet packages across the backend solution (July 2026)
Closed
#475 Blog posts stay publicly live when their media fails the security scan
Closed
#474 Traefik swarm cleanup: global HTTPS redirect, API compression, zero-downtime API deploys, security headers
Closed
#150 ## [Bug] Invalid or Non-Functional Social Media and External Links on Contact Page
Closed
#276 # [Bug] Broken external link: UnrealEngine Repository (GitHub)
Closed
#465 backend: expand integration coverage — art pipe messaging, safety RPC, GPU leases, quiz path
Closed
#454 [Art Studio] ArtPipe Generate-drawer composer parity — remaining deltas vs Eric's original (#446)
Closed
#456 [Art Studio] No text→3D capability — add Shap-E / Hunyuan3D text_to_3d modeling path (#378/#446)
Closed
#444 backend: bring SpikerSoft.Tests.Integration back online — prod-parity Redis fixtures, rot fixes, G7 RESP3/AllowAdmin coverage
Closed
#459 art_pipe observability activation: propagate JAEGER_ENDPOINT/SEQ_URL into the worker subprocess (#428)
Closed
#431 art_pipe observability #3 (Python): ship worker logs to Seq + stamp trace_id for log↔trace correlation
Closed
#430 art_pipe observability #2 (Python): OpenTelemetry spans with parent-context extraction from the job spec
Closed
#445 Art Studio: restart-from-stage 400 "Sequence contains no elements" (Mongo MaxAsync on empty)
Closed
#457 [Art Studio] End-to-end observability for the new ArtPipe worker stage actions (Jaeger spans + correlated Seq logs)
Closed
#363 [Bug][E2E flake] /geography/:countryCode click-through — Leaflet "Cannot read properties of undefined (reading 'appendChild')" pageerror on CI only
Closed
#450 SpikerSoft.Tests.Integration: test-host teardown flake — non-zero exit despite all tests passing when 3+ Lessons test classes share the TestContainers collection
Closed
#453 Bug: free-play C/C++ code execution never dispatches to the Clang executor
Closed
#452 Integration tests: Phase 5 multi-language grading (Python/Node/C/C++) delivered
Closed
#451 Lessons integration coverage: Phase 4 (tutorial completion, idempotent no-op, anti-spoof attempt-token enforcement) shipped
Closed
#449 Lessons integration coverage: Phase 3 (authenticated grading loop, skill auto-award, SignalR delivery) shipped
Closed
#448 Lessons integration coverage: Phase 0-2 (fixture infra, catalog/attempt, anonymous journey) shipped
Closed
#447 # [Bug] Misaligned Navbar Elements and Hover Text in Spanish Interface
Closed
#443 [Bug][Prod] GameServer crashes on startup under NativeAOT — MongoPlaySessionRepository index creation reflectively builds DowncastingSerializer
Closed
#442 [Security][Decision] Should HttpCallback scheduled-task creation be admin-only (vs admin,staff)?
Closed
#408 [Safety][Compliance][Go-live] Make fail-open safety gates fail closed (SMS/TCPA, ClamAV, passport PII)
Closed
#406 [Security][Go-live] Replace Assembly.Load of uploaded DLLs with metadata-only inspection
Closed
#401 [Security][CRITICAL] SignalR hubs missing class-level [Authorize] — CodeExecutionHub / DashboardHub / ClusterHub open to anonymous connections
Closed
#438 [Security][Decision] SSRF: HttpCallback scheduled task fetches an unrestricted payload-supplied URL (admin/staff-gated)
Closed
#410 [Reliability][Go-live] Fix silent data loss — count-only ValueComparer & missing publisher confirms
Closed
#441 [Security][low] Bearer confirmation token logged in plaintext (OrganizationsController:118) — only such site
Closed
#440 [Security][Go-live] Pre-registration email verification codes generated with System.Random (predictable)
Closed
#439 [Security][Go-live] CORS fails OPEN when Origins unconfigured — reflects any origin with credentials
Closed
#437 [Security][Hardening] Contain path traversal: identity/upload-derived path segments in blog-media move
Closed
#436 [Security][Go-live] Unescaped user input used as Mongo regex → ReDoS / regex-injection (incl. anonymous lesson search)
Closed
#420 [i18n] 94 devTools keys missing Spanish (commonCommandsHelper command catalog)
Closed
#433 [Reliability] MongoDB_HealthCheck constructs a new MongoClient on every invocation (connection-pool leak)
Closed
#424 [i18n tooling] i18n:scan always exits 1 on a honeypot false-positive → tool can't surface new hardcoded strings
Closed
#435 [Reliability] KeycloakAdminService.GetRoleMembersAsync news a per-call HttpClient (leak + inconsistent with the rest of the class)
Closed
#434 [Reliability] Scheduler TaskRunners create a new HttpClient per execution (socket exhaustion — use IHttpClientFactory)
Closed
#416 [Security] Remove anonymous access to Trails mutating endpoints (DELETE /{id}, DELETE /purge)
Closed
#429 art_pipe observability #1 (.NET): propagate W3C traceparent into the worker + per-stage child span
Closed
#427 Anonymous E2E walk fails on /cpu-dashboard: public route opens staff-gated DashboardHub
Closed
#423 [uploads] FileProcessingService ctor does filesystem I/O → 500s blog-upload endpoints on unwritable path
Closed
#422 [health-checks] HTTP probes have no timeout → a down dependency hangs /health up to ~75s
Closed
#399 # [Bug] Hover Misalignment on Close Button in Dictionary Sidebar/Panel
Closed
#400 # [Bug] Incorrect Literal Translation of Programming Syntax in Spanish Language Mode
Closed
#394 [Art Studio UI] Pipeline Builder node-graph (stretch)
Closed
#393 [Art Studio UI] Game-ready export & handoff ("Load into game")
Closed
#392 [Art Studio UI] Curation & review visual alignment
Closed
#391 [Art Studio UI] Metrics dashboard screen
Closed
#386 [Art Studio UI] Stage timeline + live-progress visual (git-rail, SignalR)
Closed
#388 [Art Studio UI] Asset detail depth — PBR channels, history graph, live console
Closed
#390 [Art Studio UI] System Activity panel (queue, HW, now-running, console)
Closed
#387 [Art Studio UI] Asset library grid parity + URL-synced filter bar
Closed
#385 [Art Studio UI] Generate composer parity — git-rail stage editor + batch/continuous/coverage
Closed
#384 [Art Studio UI] Studio theme layer & density tokens (light + dark)
Closed
#383 [Art Studio UI] First-class "Art Studio" menu category
Closed
#398 [Art Studio][Backend] Artifact bundle/zip download endpoint (enables detail-screen "Download Zip")
Closed
#397 [Art Studio][Backend] Wire api/artstudio/submit to apply stageMethodSelections, presetId & per-stage skip (composer selections currently dropped)
Closed
#396 [Art Studio][Backend] Emit quality-rating & curation-decision events so the #389 read-model can populate avg-quality + true accept-rate
Closed
#389 [Art Studio][Backend] Metrics & activity read-model (event-handler projection)
Closed
#286 [Enhancement] Remove deprecated /api/CSharpCodeRunner alias route (follow-up to #285)
Closed
#380 [ArtStudio][Bug] Safety gate uses the resident stage executor in resident mode → throws on every image (blocks #368 cutover)
Closed
#379 Code-execution Python probe should assert a minimum interpreter version (curriculum uses 3.10+ match)
Closed
#375 [NodeAgent] Restore real host access — journalctl in-image reading the mounted journal (de-privileged) vs per-node compose deployment
Closed
#372 [Bug] Redis Cluster healthcheck says "5 healthy, 0 unhealthy node(s)" while cluster_state is fail with 3 disconnected gossip nodes
Closed
#373 [Infra] redis-cluster: make persistence real — add --dir /data (volumes are currently decoys) + initiator/coverage hygiene
Closed
#365 [ArtStudio] Curriculum tie-in — "How game studios build a character" lesson using the student's own asset
Closed
#374 [NodeAgent] Journal-tail Seq flood: no backoff, swallowed stderr — and the host-access probe is tautological
Closed
#359 [ArtStudio M4] Entire stack on the MacBook — native ArtPipeProcessor (no GPU in Docker on macOS), compose.mac, dev-mode GpuCoordinator
Closed
#369 [Bug] GET /api/artstudio 500s for any user with pre-#353 asset documents — "Document element is missing for required non-nullable property 'GalleryStatus'"
Closed
#370 [Bug] Art Studio 3D viewer never rendered anything — static ViewChild inside *transloco never resolves; plus: no student-visible nav entry to Art Studio
Closed
#357 [ArtStudio M2] Mac-native pipeline profile — full Tier-A stage chain on MPS (concept → model → texture → rig → animate → export)
Closed
#356 [ArtStudio M1] Device abstraction in art_pipe core — cuda/mps/cpu seam (upstream to ProArt)
Closed
#366 [ArtStudio] Honest GPU queue position — GpuCoordinator lease-queue emit → worker → SignalR → timeline
Closed
#364 [ArtStudio] Studio UI polish follow-ups — queue position (needs GpuCoordinator emit), card thumbnails, delete confirm
Closed
#353 [ArtStudio P7] Class gallery + staff moderation + use-your-asset-in-games handoff, curriculum tie-in
Closed
#352 [ArtStudio P6] Safety, quotas & fairness — prompt moderation, NSFW gating policy, per-student GPU-minute quotas, queue fairness
Closed
#351 [ArtStudio P5] Frontend Art Studio — pipeline wizard, three.js viewer, SignalR progress + queue position, my-assets library
Closed
#355 [ArtStudio Spike] Apple Silicon dev path — can trellis-mac (MPS port) back the modeling stage for local development?
Closed
#349 [ArtStudio P3] Concept + texturing stages — SDXL concept image with safety checker, PBR texturing, stage chaining
Closed
#350 [ArtStudio P4] Rigging + animation stages — bone fallback chain, canonical humanoid schema, animation presets + previews
Closed
#362 [ArtStudio] Safety gate false-positives on texture atlases — Character plan fails at texturing at threshold 0.3
Closed
#361 [ArtStudio] ArtifactKinds derives kind from stage only — OBJ stored as kind "mesh-glb"
Closed
#360 [ArtStudio] Stage requests for unconsumed stages are silently dropped — asset hangs InProgress forever
Closed
#347 [ArtStudio P1] Backend foundation — ArtAsset domain, stage workflow docs, CQRS slice + endpoints
563 Issues created by 1 user
Opened
#345 [Bug] Authenticated app bootstrap crashes with NG0200 (circular DI) — blank shell for logged-in users
Opened
#346 [Epic] ProArt 3D Art Studio — student asset pipeline (concept → model → texture → rig → animate → game-ready GLB)
Opened
#347 [ArtStudio P1] Backend foundation — ArtAsset domain, stage workflow docs, CQRS slice + endpoints
Opened
#348 [ArtStudio P2] ProArt GPU worker — RabbitMQ stage consumer wrapping art_pipe's worker protocol (modeling stage first)
Opened
#349 [ArtStudio P3] Concept + texturing stages — SDXL concept image with safety checker, PBR texturing, stage chaining
Opened
#350 [ArtStudio P4] Rigging + animation stages — bone fallback chain, canonical humanoid schema, animation presets + previews
Opened
#351 [ArtStudio P5] Frontend Art Studio — pipeline wizard, three.js viewer, SignalR progress + queue position, my-assets library
Opened
#352 [ArtStudio P6] Safety, quotas & fairness — prompt moderation, NSFW gating policy, per-student GPU-minute quotas, queue fairness
Opened
#353 [ArtStudio P7] Class gallery + staff moderation + use-your-asset-in-games handoff, curriculum tie-in
Opened
#354 [ArtStudio Spike] Model × VRAM fit matrix on the 24 GB host — which ProArt backends we enable per stage
Opened
#355 [ArtStudio Spike] Apple Silicon dev path — can trellis-mac (MPS port) back the modeling stage for local development?
Opened
#356 [ArtStudio M1] Device abstraction in art_pipe core — cuda/mps/cpu seam (upstream to ProArt)
Opened
#357 [ArtStudio M2] Mac-native pipeline profile — full Tier-A stage chain on MPS (concept → model → texture → rig → animate → export)
Opened
#358 [ArtStudio M3] Metal extension reuse — TRELLIS via trellis-mac, then mtldiffrast/mtlgemm for InstantMesh, Hunyuan paint, UniRig
Opened
#359 [ArtStudio M4] Entire stack on the MacBook — native ArtPipeProcessor (no GPU in Docker on macOS), compose.mac, dev-mode GpuCoordinator
Opened
#360 [ArtStudio] Stage requests for unconsumed stages are silently dropped — asset hangs InProgress forever
Opened
#361 [ArtStudio] ArtifactKinds derives kind from stage only — OBJ stored as kind "mesh-glb"
Opened
#362 [ArtStudio] Safety gate false-positives on texture atlases — Character plan fails at texturing at threshold 0.3
Opened
#363 [Bug][E2E flake] /geography/:countryCode click-through — Leaflet "Cannot read properties of undefined (reading 'appendChild')" pageerror on CI only
Opened
#364 [ArtStudio] Studio UI polish follow-ups — queue position (needs GpuCoordinator emit), card thumbnails, delete confirm
Opened
#365 [ArtStudio] Curriculum tie-in — "How game studios build a character" lesson using the student's own asset
Opened
#366 [ArtStudio] Honest GPU queue position — GpuCoordinator lease-queue emit → worker → SignalR → timeline
Opened
#367 [ArtStudio/Infra] Unified elastic GPU capacity — one coordinator model that scales from a single 24 GB card to multi-node, and runs identically on the M5 dev Mac
Opened
#368 [ArtStudio] Model-resident workers — one always-loaded model per service instance, task queues per model, coordinator-arbitrated, scale by replicas
Opened
#369 [Bug] GET /api/artstudio 500s for any user with pre-#353 asset documents — "Document element is missing for required non-nullable property 'GalleryStatus'"
Opened
#370 [Bug] Art Studio 3D viewer never rendered anything — static ViewChild inside *transloco never resolves; plus: no student-visible nav entry to Art Studio
Opened
#371 [Infra][Incident] Redis cluster amputation 2026-07-05 — nodes .106/.107/.108 restarted with fresh identities; add persistent volumes for nodes.conf/data
Opened
#372 [Bug] Redis Cluster healthcheck says "5 healthy, 0 unhealthy node(s)" while cluster_state is fail with 3 disconnected gossip nodes
Opened
#373 [Infra] redis-cluster: make persistence real — add --dir /data (volumes are currently decoys) + initiator/coverage hygiene
Opened
#374 [NodeAgent] Journal-tail Seq flood: no backoff, swallowed stderr — and the host-access probe is tautological
Opened
#375 [NodeAgent] Restore real host access — journalctl in-image reading the mounted journal (de-privileged) vs per-node compose deployment
Opened
#376 [SystemRemediation] Redis cluster auto-remediation — InfrastructureProbe detection + signature-gated ghost-heal runbook (dry-run first)
Opened
#377 [API/Angular] School-operator status surface — capability-level rollup (api/status + read-only panel), separate from the #297 admin console
Opened
#378 [ArtStudio] ProArt capability parity — user/predefined workflows, multi-method stages, full PBR map sets, rig-method chain, curation (epic #346 phase 2)
Opened
#379 Code-execution Python probe should assert a minimum interpreter version (curriculum uses 3.10+ match)
Opened
#380 [ArtStudio][Bug] Safety gate uses the resident stage executor in resident mode → throws on every image (blocks #368 cutover)
Opened
#381 [NodeAgent/SystemRemediation] Host disk-space probe — detect/alert on low disk before it stalls services
Opened
#382 [Epic][Art Studio UI] Port the ArtPipe experience into SpikerSoft's native Art Studio
Opened
#383 [Art Studio UI] First-class "Art Studio" menu category
Opened
#384 [Art Studio UI] Studio theme layer & density tokens (light + dark)
Opened
#385 [Art Studio UI] Generate composer parity — git-rail stage editor + batch/continuous/coverage
Opened
#386 [Art Studio UI] Stage timeline + live-progress visual (git-rail, SignalR)
Opened
#387 [Art Studio UI] Asset library grid parity + URL-synced filter bar
Opened
#388 [Art Studio UI] Asset detail depth — PBR channels, history graph, live console
Opened
#389 [Art Studio][Backend] Metrics & activity read-model (event-handler projection)
Opened
#390 [Art Studio UI] System Activity panel (queue, HW, now-running, console)
Opened
#391 [Art Studio UI] Metrics dashboard screen
Opened
#392 [Art Studio UI] Curation & review visual alignment
Opened
#393 [Art Studio UI] Game-ready export & handoff ("Load into game")
Opened
#394 [Art Studio UI] Pipeline Builder node-graph (stretch)
Opened
#395 [Art Studio UI] Playwright e2e coverage (compose→monitor→inspect→curate→download)
Opened
#396 [Art Studio][Backend] Emit quality-rating & curation-decision events so the #389 read-model can populate avg-quality + true accept-rate
Opened
#397 [Art Studio][Backend] Wire api/artstudio/submit to apply stageMethodSelections, presetId & per-stage skip (composer selections currently dropped)
Opened
#398 [Art Studio][Backend] Artifact bundle/zip download endpoint (enables detail-screen "Download Zip")
Opened
#399 # [Bug] Hover Misalignment on Close Button in Dictionary Sidebar/Panel
Opened
#400 # [Bug] Incorrect Literal Translation of Programming Syntax in Spanish Language Mode
Opened
#401 [Security][CRITICAL] SignalR hubs missing class-level [Authorize] — CodeExecutionHub / DashboardHub / ClusterHub open to anonymous connections
Opened
#402 [Safety][Compliance] Add CSAM hash-detection + NCMEC reporting on user-uploaded images (the one residual beyond existing NSFW/malware/moderation controls)
Opened
#403 [infra drift] image-description & trellis3d deploy to /mnt/infrastructure folders that don't exist
Opened
#404 [Security][Go-live] Move all secrets out of source control & establish secret injection
Opened
#405 [Security][Go-live] Sandbox untrusted student code execution (C#/Python/JS)
Opened
#407 [Security][Go-live] Remove unauthenticated infra control planes (Docker 2375, GameServer JWT, MCP)
Opened
#406 [Security][Go-live] Replace Assembly.Load of uploaded DLLs with metadata-only inspection
Opened
#408 [Safety][Compliance][Go-live] Make fail-open safety gates fail closed (SMS/TCPA, ClamAV, passport PII)
Opened
#409 [Security][Frontend][Go-live] Remove EPUB sanitizer bypass & harden client-side XSS sinks
Opened
#410 [Reliability][Go-live] Fix silent data loss — count-only ValueComparer & missing publisher confirms
Opened
#411 [Reliability][Go-live] Eliminate availability bombs — Redis scans/flush, MongoClient-per-message, GPU ledger, poison requeue
Opened
#413 [Infra][Architecture] Provider-agnostic object storage (MinIO -> S3/Azure Blob) to replace GlusterFS/host-path model
Opened
#412 [Correctness][Go-live] Repair or gate non-functional features (Trellis 3D, decompiler, phone lookup)
Opened
#414 [Infra][Architecture] Production deployment & secrets model for real hardware
Opened
#415 [Security][Go-live] Add authorization FallbackPolicy; lock down anonymous-by-omission API endpoints
Opened
#416 [Security] Remove anonymous access to Trails mutating endpoints (DELETE /{id}, DELETE /purge)
Opened
#417 [Epic][Architecture] Anonymous-vs-authenticated surface — explicit public/protected split
Opened
#418 [CI drift] lesson-video-processor is deployed but has NO build workflow → orphaned image
Opened
#419 [lint coverage] ~75 library projects are unlinted by CI + their eslint configs reference uninstalled plugins
Opened
#420 [i18n] 94 devTools keys missing Spanish (commonCommandsHelper command catalog)
Opened
#421 [dev-ex/Mac] No turnkey local full-app browse — frontend dev expects API :33333, Mac-native API binds :5290/5291
Opened
#422 [health-checks] HTTP probes have no timeout → a down dependency hangs /health up to ~75s
Opened
#423 [uploads] FileProcessingService ctor does filesystem I/O → 500s blog-upload endpoints on unwritable path
Opened
#424 [i18n tooling] i18n:scan always exits 1 on a honeypot false-positive → tool can't surface new hardcoded strings
Opened
#425 ProArt Art Studio: full local pipeline on Windows dev machines
Opened
#426 art_pipe local dev: migrate to a CUDA 13 driver so default torch builds work
Opened
#427 Anonymous E2E walk fails on /cpu-dashboard: public route opens staff-gated DashboardHub
Opened
#428 Epic: End-to-end trace + log correlation for the art_pipe native-microservice integration (Jaeger + Seq)
Opened
#429 art_pipe observability #1 (.NET): propagate W3C traceparent into the worker + per-stage child span
Opened
#430 art_pipe observability #2 (Python): OpenTelemetry spans with parent-context extraction from the job spec
Opened
#431 art_pipe observability #3 (Python): ship worker logs to Seq + stamp trace_id for log↔trace correlation
Opened
#432 art_pipe: repo-vendoring model venvs miss cloned-repo requirements + need Python 3.10
Opened
#433 [Reliability] MongoDB_HealthCheck constructs a new MongoClient on every invocation (connection-pool leak)
Opened
#434 [Reliability] Scheduler TaskRunners create a new HttpClient per execution (socket exhaustion — use IHttpClientFactory)
Opened
#435 [Reliability] KeycloakAdminService.GetRoleMembersAsync news a per-call HttpClient (leak + inconsistent with the rest of the class)
Opened
#436 [Security][Go-live] Unescaped user input used as Mongo regex → ReDoS / regex-injection (incl. anonymous lesson search)
Opened
#437 [Security][Hardening] Contain path traversal: identity/upload-derived path segments in blog-media move
Opened
#438 [Security][Decision] SSRF: HttpCallback scheduled task fetches an unrestricted payload-supplied URL (admin/staff-gated)
Opened
#439 [Security][Go-live] CORS fails OPEN when Origins unconfigured — reflects any origin with credentials
Opened
#440 [Security][Go-live] Pre-registration email verification codes generated with System.Random (predictable)
Opened
#441 [Security][low] Bearer confirmation token logged in plaintext (OrganizationsController:118) — only such site
Opened
#442 [Security][Decision] Should HttpCallback scheduled-task creation be admin-only (vs admin,staff)?
Opened
#443 [Bug][Prod] GameServer crashes on startup under NativeAOT — MongoPlaySessionRepository index creation reflectively builds DowncastingSerializer
Opened
#444 backend: bring SpikerSoft.Tests.Integration back online — prod-parity Redis fixtures, rot fixes, G7 RESP3/AllowAdmin coverage
Opened
#445 Art Studio: restart-from-stage 400 "Sequence contains no elements" (Mongo MaxAsync on empty)
Opened
#446 Epic: Art Studio → faithful ArtPipe (ProArt) UI/UX — land on Pipeline, adopt Eric's 4-view GitHub-dark shell
Opened
#447 # [Bug] Misaligned Navbar Elements and Hover Text in Spanish Interface
Opened
#448 Lessons integration coverage: Phase 0-2 (fixture infra, catalog/attempt, anonymous journey) shipped
Opened
#449 Lessons integration coverage: Phase 3 (authenticated grading loop, skill auto-award, SignalR delivery) shipped
Opened
#450 SpikerSoft.Tests.Integration: test-host teardown flake — non-zero exit despite all tests passing when 3+ Lessons test classes share the TestContainers collection
Opened
#451 Lessons integration coverage: Phase 4 (tutorial completion, idempotent no-op, anti-spoof attempt-token enforcement) shipped
Opened
#452 Integration tests: Phase 5 multi-language grading (Python/Node/C/C++) delivered
Opened
#453 Bug: free-play C/C++ code execution never dispatches to the Clang executor
Opened
#454 [Art Studio] ArtPipe Generate-drawer composer parity — remaining deltas vs Eric's original (#446)
Opened
#455 [Bug][Prod] Art Studio 'modeling' stage fails — TripoSG model manifest missing on prod host
Opened
#456 [Art Studio] No text→3D capability — add Shap-E / Hunyuan3D text_to_3d modeling path (#378/#446)
Opened
#457 [Art Studio] End-to-end observability for the new ArtPipe worker stage actions (Jaeger spans + correlated Seq logs)
Opened
#458 [Art Studio] Observability follow-ups (C#/infra): register dropped ActivitySources + per-stack Deployment name
Opened
#459 art_pipe observability activation: propagate JAEGER_ENDPOINT/SEQ_URL into the worker subprocess (#428)
Opened
#460 art_pipe observability: install OpenTelemetry into model venvs so worker spans (#430) actually export (#428)
Opened
#461 ci: re-activate the integration-tests job when new CI hardware arrives
Opened
#462 infra: pin redis/redis-stack-server to a digest; plan migration to redis:8
Opened
#463 [ArtStudio][Epic] Equipment asset type — bespoke attachable-equipment pipeline (stage plan, sockets/grips, art_pipe capabilities)
Opened
#464 [Mac local stack] Full site flow on the M5 — quiz generation + embeddings + book upload pipeline in mac-dev-up.sh
Opened
#465 backend: expand integration coverage — art pipe messaging, safety RPC, GPU leases, quiz path
Opened
#466 [Backend][Prod] GetPlatformAdoption crashes: FormatException 'Cannot deserialize a String from BsonType Array' on user-submitted-code
Opened
#467 [infra] Bump Keycloak 26.6 → 26.7 (keycloak/docker-stack.yml)
Opened
#468 System Activity overlay opens on global 'S' keypress, interfering with typing
Opened
#469 infra(traefik): bump Traefik v3.7.0 → v3.7.7 (latest)
Opened
#470 infra(jaeger): bump Jaeger 2.17.0 → 2.19.0 (latest)
Opened
#471 ci(artpipe): image push only redeploys the modeling stack — five resident model stacks go stale; PR builds overwrite prod :latest
Opened
#472 docs(artpipe runbook): §2 bootstrap shell command launches the .NET worker instead of bash
Opened
#473 Serve blog media via nginx static path instead of the API + prod config fixes
Opened
#474 Traefik swarm cleanup: global HTTPS redirect, API compression, zero-downtime API deploys, security headers
Opened
#475 Blog posts stay publicly live when their media fails the security scan
Opened
#476 Auditable blog post hide/remove for staff (two-tier moderation + immutable audit trail)
Opened
#477 chore: update NuGet packages across the backend solution (July 2026)
Opened
#478 Decompose SpikerSoft.Tests.Unit into live-along per-project test projects
Opened
#479 [Bug][Infra] sonarqube_backups stuck in reject-loop — no Sonar backups running (missing placement constraint)
Opened
#480 [Bug][Infra] spikersoft-node-agent running on 1/10 nodes — rejected on missing /var/log/journal and /etc/timezone binds
Opened
#481 [Bug][Infra] jaeger_elasticsearch down ~24h on SERVER (exit 1) — MaxAttempts exhausted, tracing backend offline
Opened
#483 [Bug][Infra] InfluxDB rejecting a client every ~10s ("authorization not found") — stale/missing token on a poller
Opened
#482 [Bug][Infra] Keycloak Postgres TOAST corruption (pg_toast_2619 / pg_statistic) — ClearExpiredEvents failing, events not purged
Opened
#484 [Bug][Infra] API /healthz returns 503 — TileServerGL check failing (tiles.spikersoft.com 404s, no tile-server deployed)
Opened
#485 [Observability][Backend] Client-abort exceptions (OperationCanceled / 'client reset request stream') logged as Error + 500 — noise in Seq/traces
Opened
#486 [Bug][Prod] SafetyCheck art-pipe resident worker missing 'torch' → ArtPipeProcessor host crash-loops (24x)
Opened
#487 [Bug][Backend] MediatR (Lucky Penny) commercial license expired — Error logged on every startup, renew before hard enforcement
Opened
#488 [Bug][Backend][Security] Data Protection keys are ephemeral + unencrypted (container-local) — redeploy logs users out, replicas can't share keys
Opened
#489 [Bug][Backend] Missing reference data on prod — GeoLite2-City.mmdb + postal-code dataset absent, features degraded
Opened
#490 [Bug][Backend] InfluxDB health check throws ArgumentException (duplicate 'write_successful' key) on query failure — masks real error
Opened
#491 [Bug][Prod] GameServer rejects ALL player JWTs — audience config 'spikersoft-api' vs Keycloak's actual 'account' (regression from #407 hardening)
Opened
#492 [Bug] Space Game: "Select Your Ship" modal buttons unclickable — HUD hit-testing offset by the fixed app toolbar
Opened
#493 [Infra][MinIO] Pilot: deploy MinIO + migrate security-scanner off /mnt/fusionio to S3 (proves the pattern for #413)
Opened
#494 [Bug] Dungeon Crawler: final 'Create Character' button unclickable — HUD hit-testing offset by the fixed app toolbar (same class as #492)
Opened
#495 [Bug][Prod] ArtPipeProcessor image: /home/app not writable + no HF_HOME → HuggingFace cache PermissionError blocks model weight downloads
Opened
#496 [Bug][Prod][Infra] DLL decompiler service is built but never deployed — uploads RPC-timeout (no consumer on decompile.dll.upload.requested)
Opened
#497 [Bug][Prod] /mnt/fusionio/spikersoft/ai missing embedding model — book pipeline dies at embeddings (nomic-embed-text-v2-moe.f16.gguf not found)
Opened
#498 [Infra][MinIO] Move Gitea package/container-registry storage to the gitea-packages bucket
Opened
#499 [Bug][Backend] Book deletion leaves all artifacts behind — on disk AND in the MinIO ebooks bucket (no purge path exists)
Opened
#500 [Bug][Infra][GPU] image-description lease starves — gpu-coordinator single-lane budget still on SERVER (8192MB) vs 16000MB needed; enable 4090 lane
Opened
#501 [Bug][Infra][GPU] artpipe lane down on 4090 — workers Rejected on missing /mnt/fusionio/spikersoft/art_pipe bind after artpipe-gpu label move (collateral of #500)
Opened
#502 [Bug][Prod][GPU] image-description crash-loops on gated HuggingFace model — no HF token for Qwen3-VL-8B (401 GatedRepoError)
Opened
#503 [Bug][Infra][CRITICAL] SERVER node crash-looping — kernel 'BUG: Bad page state in process dockerd' (memory corruption / likely bad RAM); flaps all SERVER-pinned services
Opened
#504 [Bug][Infra] MinIO doesn't recover after a transient /mnt/fusionio drive blip — stuck '0 drives provided', 'mc ready local' healthcheck misses it, needs manual restart
Opened
#505 [Bug][Infra] MinIO single drive faulted under first sustained concurrent write load — writers aborted mid-stream, task left LB
Opened
#506 [Bug][Prod][GPU] image-description permanently dead-letters captions on null gpu_client — AttributeError misclassified as permanent (data loss)
Opened
#507 [Bug][Backend] Zero-question quizzes are marked Completed and takeable — starting one insta-expires at 0/0
Opened
#508 [Bug][Prod][GPU][CRITICAL] image-description crash-loops (0/1) — ModuleNotFoundError: 'message_failure' — phantom deploy of the #506 fix, Dockerfile missing COPY
Opened
#509 [Bug][Backend][Data] BookPages inflation — quiz saw 6 pages on a 3-page book; one book linked 570 pages (staleness-retry double-processing suspected)
Opened
#510 [Exploration][Infra] Resilience to SERVER node flaps — restart-policy windows, auto-reconcile sweep, de-SPOF the SERVER-pinned stateful tier
Opened
#511 [Bug][Infra][Deploy] quiz-generation rolling update races the image push — 'No such image' reject loops + UpdateStatus=paused
Opened
#512 [Bug][Frontend] Author's own staff-removed blog posts show on the dashboard with no moderation indicator
Opened
#513 [Bug][Infra][Deploy] docker-monitor: new correctly-named stack exits 0 on startup (stuck 0/1) + duplicate misspelled 'spiekersoft-docker-monitor' stack running in parallel
Opened
#514 [Infra][CI] Gitea Actions leaves GITEA-ACTION* volumes behind → build nodes recurrently fill up (need runner auto-cleanup / scheduled prune)
Opened
#515 [Epic][ArtPipe][Infra] Per-model baked Docker images — venvs + weights built at image build time, no /opt/art_pipe bind
Opened
#516 [ArtPipe] Baked images Phase 0: build scaffolding (Dockerfiles, CI, setup flags) + disk/limits go-no-go gates (epic #515)
Opened
#517 [ArtPipe] Baked images Phase 1: SafetyCheck pilot image + cutover, incl. #486 fault isolation (epic #515)
Opened
#518 [ArtPipe] Baked images Phase 2: stood-down residents blender/sdxl/triposr, hunyuan deferred (epic #515)
Opened
#519 [ArtPipe] Baked images Phase 3: prodstages image + live modeling-lane cutover (epic #515)
Opened
#521 [Infra][Registry] Gitea upstream-image mirror (skopeo → mirror/* org) + incremental stack repointing
Opened
#520 [ArtPipe] Baked images Phase 4: cleanup — retire legacy image/bind, runbook + docs, acid test (epic #515)
Opened
#522 [Infra][MinIO] Migrate blogs dir + BlogMediaProcessor to S3 (blogs bucket, epic #413)
Opened
#523 [Infra][MinIO] Migrate lesson-videos + LessonVideoProcessor to S3 (lesson-videos bucket, epic #413)
Opened
#525 [Infra][MinIO] Migrate /app/assets (ThreeDModel) to S3 (assets bucket, epic #413)
Opened
#524 [Infra][MinIO] Migrate dlls dir to S3 (dlls bucket, epic #413)
Opened
#526 [Infra][MinIO] Migrate quarantine dir to S3 (quarantine bucket, epic #413)
Opened
#528 [Backend][MinIO] Replace API static-file media serving with S3-backed delivery (epic #413)
Opened
#527 [Infra][MinIO] Migrate /mnt/fusionio/spikersoft/ai → ai-models bucket for embeddings + quiz-generation (epic #413)
Opened
#529 [Infra][MinIO] Uploads-tree coordinated batch cutover — 7 services off /mnt/fusionio (epic #413)
Opened
#531 [Infra][MinIO] Migrate Angular nginx root bind — presigned/proxy, LAST (epic #413)
Opened
#530 [Backend][MinIO] GeoLite2 → reference-data bucket; self-provisioning GeoIP (epic #413, resolves GeoIP half of #489)
Opened
#532 [Infra][MinIO] Optional: replace sftp stack with MinIO SFTP mode (epic #413)
Opened
#533 [Backend][Refactor] Shared IObjectStore/S3 registration — dedupe per-service AmazonS3Client blocks (epic #413)
Opened
#534 [CI][ArtPipe] Route baked model-image builds (ModelEnvImages + tier-3 finals) to the 4090 runner, off laptop-server
Opened
#535 [Enhancement][ArtPipe][Angular] AI QR code generation — SDXL qrcode_monster ControlNet per-model lane + authenticated AI button in the QR tool
Opened
#536 [CI][ArtPipe] ModelEnvImages has no concurrency guard — concurrent runs race the same :latest tags (observed live)
Opened
#537 [ArtPipe][CI] Phase 2 blocked: sdxllightning env image is 98 GB — unfiltered snapshot_download bakes the entire SDXL repo; push dies
Opened
#538 [Infra][Network] LAN traffic to *.spikersoft.com NAT-hairpins through the UDM — local DNS records + direct Gitea→MinIO path
Opened
#539 [Infra][Node] dreamstream6 (aarch64) down since ~16:30Z 2026-07-13 — heartbeat failure, host unreachable
Opened
#540 [Bug][Infra][CI] SpikerSoft.EventHandlers.Scheduler is built nowhere and deployed nowhere — scheduled tasks (GeoIpUpdate incl.) never run
Opened
#541 [Bug][Backend][DockerMonitor] All swarm node events published as 'docker.node.unknown' with empty hostname — ~21 junk RabbitMQ msgs/min for healthy nodes
Opened
#542 [Security][Prod] nginx root bind publicly serves quarantine, raw uploads, dlls — /spikersoft/<private-tree> downloadable
Opened
#543 [Epic][Security][Infra] Central secrets management — OpenBao vault + PKI, retire scattered passwords
Opened
#545 [Security][CI] OpenBao Phase 1: Gitea Actions secrets → AppRole fetch; rotate the committed runner token (epic #543)
Opened
#544 [Security][Infra] OpenBao Phase 0: swarm stack + init/unseal runbook + Keycloak OIDC (epic #543)
Opened
#546 [Security][Backend] OpenBao Phase 2: SpikerSoft.Secrets host-builder seam — service creds from Bao (epic #543)
Opened
#547 [Security][Infra] OpenBao Phase 3: PKI — internal CA, replace CI cert generation, mTLS for the stateful tier (epic #543)
Opened
#548 [CI][Backend] Multi-arch create_manifest amends MUTABLE :amd64/:arm64v8 tags — out-of-order arch pushes can stitch a mixed-commit :latest (all backend multi-arch workflows)
Opened
#549 [CI][Angular] Frontend pipeline does 4x duplicate Angular builds + an unnecessary arm-runner build leg — dedupe via build-once/artifact + buildx multi-arch (PR incoming)
Opened
#550 [Lint][Angular] testing/transloco-test-setup.ts violates @nx/enforce-module-boundaries x3 — surfaced by first-ever root-project lint
Opened
#551 [Bug][Infra][Jaeger] jaeger_elasticsearch crash-loops (0/1) — ES 7.17.0 image started against a data volume written by ES 8.11.0, restarting every ~30s
Opened
#552 [Bug][Infra][Node] dreamstream4 (manager) Down/Unreachable — keycloak postgres forced failover: 'No such image' reject-loop on ds6 (#511 signature), stale 2/1 task, DB changed nodes
Opened
#553 [Bug][Prod][GPU] quiz-generation silently degrades ALL quizzes — Mistral-7B load fails (CUDA alloc), image-description holds 18.2GiB > its 16GB lease on SERVER's 4090
Opened
#554 [Bug][Infra] jetson-influxdb fleet exit-0 churn — all 7 replicas print banner, hit 'I/O error', exit and restart every ~10s (since the 2026-07-13 17:01Z redeploy)
Opened
#555 [Bug][Infra][Alerting] Node outages are invisible to ops alerting — no node-down alerts, kernel alerts arrive after recovery and carry no kernel message, cooldown hides escalation
Opened
#556 [Bug][Backend][Infra] tiles.spikersoft.com has no backing service — API status/health canary fetches a terrain tile every few minutes and 404s 100% of the time
Opened
#557 [Bug][Backend] BookAnalysisService (ExtractChapters / AnalyzeBookWithLLM) silently ships degraded book data on GPU/model-load failure — same class as quiz-gen #553, different pipeline
Opened
#558 [Bug][Infra] SERVER root filesystem at 94% and climbing — remediation alerting every ~2min (occurrences 46+), alert-only with no cleanup path
Opened
#559 [Bug][Backend][Quality] Quiz pages whose LLM output fails JSON parsing silently contribute 0 questions (WRN only) — quizzes ship smaller than requested
Opened
#560 [Bug][Infra][GPU] gpu-coordinator arbitrates by declared bookings, not measured VRAM — over-budget tenants invisibly starve grantees (split from closed #553)
Opened
#561 [Bug][Infra][Data] Keycloak postgres pg_statistic toast corruption persists after #552 closed — ClearExpiredEvents/session purge failing every 15-min cycle since 02:29Z, repair never run
Opened
#562 [Bug][Infra][Deploy] Dreamstream nodes reject fresh tasks with 'No such image' for 1-3 minutes after (re)scheduling — 4th distinct service tonight; pulls likely fighting the UDM hairpin
Opened
#563 [Backend][MCPServer] Pre-deployment cleanup for SpikerSoft.AI.MCPServer — demo leftovers, unregistered prompts, no observability wiring, no stack/CI
Opened
#564 [Bug][Backend][Quality] QuizGenerationService validation is fail-open — if the validation LLM call throws, the unvalidated question ships in the quiz
Opened
#565 [Bug][Backend] RedisVectorSearchService in-memory fallback caps the candidate pool at TopK keys BEFORE scoring — fallback returns arbitrary chunks, not the most similar ones
Opened
#566 [Backend][Refactor] Finish the SpikerSoft.Business decomposition — physically move the 13 linked source files into their slice projects, and adopt 'new code goes in the slice directory'
Opened
#567 [CI][Backend] Scheduled benchmark run for regression detection + fresh baseline — SpikerSoft.Benchmarks is compile-only in CI, baseline is from 2025-12-08 with pre-move namespaces
Opened
#568 [Backend][Search] API book search is a permanent no-op — implement SearchBooksRemoteQuery RPC to the embeddings worker so the live Redis vector index is reachable from the edge
Opened
#569 [Bug][Backend][KeycloakEvents] Queue binds routing key '#' on amq.topic — subscribes to EVERY message on the exchange; a landmine for any future amq.topic publisher
Opened
#570 [QA][Perf] No measured figures exist for the non-GPU pipelines (coderunner, blog media, lesson video, decompile, OCR) — establish a benchmark/measurement pass so the READMEs can carry real numbers
Opened
#571 [Bug][Backend][InfluxDashboard] dreamstream7 is invisible to the metrics dashboard — Hostnames config lists DreamStream1-6 while the swarm runs 7 jetson reporters
Opened
#572 [Backend][Refactor] Extract the 'Mark Wilson / Marks-Site' client domain (generator-propane service business) out of the SpikerSoft platform codebase
Opened
#573 [Bug][Backend][API] CodeExecutionResultConsumer uses autoAck:true — a student's execution result is silently lost if the API dies mid-handle
Opened
#574 [Bug][Backend][API] UploadBookCommandHandler.Lean reads its own RabbitMQ:* config with hardcoded 'dockerUser/dockerPassword' defaults — bypasses the shared messaging config path
Opened
#575 [Bug][Backend][Scheduler] ScheduledTaskPublisher does not propagate W3C trace context on publish — violates AGENTS.md non-negotiable #1; scheduled-task work is untraceable end-to-end
Opened
#576 [Backend][Cleanup] Retire the pre-marker legacy manager classes (HexatileGameManager, ToolsManager, DBManager, CacheManager/ICacheManager) — DI-registered but architecturally superseded
Opened
#577 [Backend][Metrics] SpikerSoft.Business.Metrics is inert — IInfluxMetricsService has no consumer, metric models are duplicated, namespace doesn't match the project, and InfluxDashboard re-implements the aggregation
Opened
#578 [Backend][Cleanup] Dependency audit — unused NuGet references across projects inflate every service image (ExCSS, Ical.Net, Redis.OM, Newtonsoft.Json, Configuration.* and more)
Opened
#579 [Bug][CI][Infra] gitea-runners arm_v8_2 crash-looping on dreamstream6 since the #539 outage — ARM CI capacity silently down 3→2
Opened
#580 [Bug][CI] arm64v8 image builds intermittently fail pulling mcr.microsoft.com base image over IPv6 — 'network is unreachable', ~1 in 6 arm jobs
Opened
#581 [Bug][CI][Deploy] lesson-video-processor has NEVER deployed — the VIDEOS_S3_SECRET_KEY Actions secret was never created, so its own deploy guard rejects every run
Opened
#582 [Bug][Prod][GPU] #553 is CLOSED but the fix never reached production — quiz-generation still on SERVER's 8GB card, 13h and counting
Opened
#583 [Bug][CI] 28 of 30 path-filtered workflows still don't re-run when their own workflow file changes — #538 fixed only artpipe
Opened
#584 [Bug][CI][Deploy] 28 of 29 deploy jobs never 'git pull' /mnt/infrastructure — they deploy STALE stack files and report success
Opened
#585 [Bug][Prod][AI] Book embeddings are WRITE-ONLY — nothing in production ever reads them; RedisVectorSearchService is registered nowhere
Opened
#586 [Bug][Tests][QuizGeneration] ValidRequest_IsConsumedAcked_QuizCompletesWithFakedQuestions_AndNotifies fails on master — quiz contains questions from pages other than the expected page 4
Opened
#587 [Bug][Prod][Registry] 14 images have no :latest manifest (manifest unknown / 404) — any reschedule onto a fresh node will fail to start
Opened
#588 [Bug][Telemetry] Every service reports service.namespace='1.0.0' — AddService()'s 2nd positional arg is serviceNamespace, not serviceVersion. Spans also carry no node identity
Opened
#589 [Bug][Prod][Data-loss] 10 messages are permanently dead in DLQs with ZERO consumers — 5 of them are real user quizzes killed by #553, now replayable
Opened
#590 [Bug][CI][Deploy] cancel-in-progress on master kills DEPLOY jobs — back-to-back merges cancel each other and fixes silently never ship
Opened
#591 [Bug][Tests][Curriculum] CurriculumSmokeTests picks whatever python3 is first on PATH — macOS system Python 3.9 fails the match-statement lessons (21300/21301) with a raw SyntaxError
Opened
#592 [Bug][Prod][GPU] quiz-generation is green, consuming, and CANNOT generate a quiz — deployed with an empty Storage__SecretKey and no model bind (follow-on to #553 / infra #81)
Opened
#593 [Bug][Backend][Books] Chapter extraction is orphaned end-to-end — nothing ever populates Book.Chapters, and GET /books/{id}/chapters returns [] for every book, always
Opened
#594 [Bug][Backend][Observability] Serilog MinimumLevel is hardcoded to Debug in EventHandlerHostBuilder — EVERY appsettings log-level setting is dead config, and ~2.9M Debug events/day are shipped to Seq
Opened
#595 [Bug][Prod][ArtPipe] Concept-art is dead because ArtStudio:StageModelMap is EMPTY — API routes to the legacy in-process stage queue whose consumer can't boot, while the 5 resident model containers sit idle on queues nobody publishes to
Opened
#596 [Bug][CI][Registry] #548 was closed but its fix NEVER LANDED — all 23 of 23 multi-arch workflows still --amend mutable :amd64/:arm64v8 tags, and the cancelled-run window from #590 makes mixed-commit :latest reachable today
Opened
#597 [Bug][Backend][Observability] #575 was fixed in ONE publisher — BookController (5 publish sites) and 3 others still ship RabbitMQ messages with no traceparent, so user-initiated flows appear in Jaeger as disconnected orphan traces
Opened
#598 [Bug][Backend][MinIO] Cutover blocker: UploadOrchestrator reads BookPageImage.AbsoluteImagePath with raw File.Exists — dropping the /app/ebooks bind silently kills book image descriptions (epic #413, blocks #528/#529)
Opened
#599 [Bug][Angular][Backend] Lesson-video and geography-media URLs are root-relative, so the browser asks nginx (learn.spikersoft.com) — which serves index.html with a 200 into the <video> element, never the media
Opened
#600 SECURITY: live InfluxDB token committed in SpikerSoft.Api/appsettings.json — needs rotation, not just deletion
Opened
#601 Retire the three orphaned IInfluxMetricsRepository methods (QueryCpuMetricsAsync, QueryMetricsAsync, StreamMetricsAsync)
Opened
#602 [Bug][Telemetry][QA] #588 was closed but the fix never reached production — every .NET service STILL reports service.namespace=1.0.0 and no span carries node identity (verified in live Jaeger)
Opened
#603 [Bug][Infra][Observability][QA] node-agent shows a green 7/7 while missing on ds1/ds4/ds6 — global-service desired-count hides a 30% monitoring blind spot on exactly the degraded nodes
Opened
#604 [Bug][Backend][CodeExecution] GitService stages files by absolute path — 2 unit tests fail on macOS (/var→/private/var symlink), and prod breaks if Git:RepositoryPath is ever a symlinked path
Opened
#605 [Test][E2E] Split authenticated e2e into staff + student roles (two identities)
Opened
#606 [Bug][Backend][Quiz] GET /api/Quiz 500s — Quiz.DegradedPageNumbers (#559) & UnvalidatedQuestionDropCount (#564) are required non-nullable, so pre-deploy quizzes fail to materialize
Opened
#607 SpikerSoft.Secrets: add bounded retry to OpenBao AppRole login + KV read
Opened
#608 [Bug][Frontend][Backend] C# playground lessons don't switch to Spanish on language toggle — In-Browser (WASM) path is English-only by construction
Opened
#609 [Bug][Frontend] NG0951 console spam on C# playground load — viewChild.required(LanguageRunner) read during CD before the child mounts
Opened
#610 [Security][Infra] OpenBao: centralize public Let's Encrypt cert storage/distribution in Bao (Traefik acme.json → KV; mailserver + consumers pull) (epic #543)
Opened
#611 [Bug][Frontend] es→en language toggle leaves server-localized content in Spanish (lesson names et al.) — fetch-once surfaces never re-pull on locale change
Opened
#612 [Bug][Prod][Uploads] Large book/video uploads quarantined as "Virus detected" — ClamAV 25 MiB scan cap < the app's 100 MB upload limit
Opened
#613 [Bug][Infra][MinIO] file-movement's metadata-svc key can't write the quarantine bucket (Access Denied) — blocks #526/#529 cutover (epic #413)
Opened
#614 [Bug][Prod][GPU] image-description fails every page — idle-unload races in-flight inference, batch_decode on a None processor
Opened
#615 [Bug][CI][Infra] #584 not fixed — deploy job's git pull runs unprivileged on a root-owned /mnt/infrastructure, so every infra deploy silently ships a stale stack
Opened
#616 Activity-coverage page: content hidden under fixed menu bar; user scope requires raw KeycloakUserId
Opened
#617 [Bug][Prod][Reader] Every bookmark operation 500s — UserBookmark.UserId is ObjectId but requests are keyed by Keycloak username
Opened
#618 [Security][Backend][Books] Private books are listable and downloadable by any authenticated user — /api/book/all and /api/book/{id}/file have no visibility/ownership check
Opened
#619 [New Feature] Space game: procedural shader-based asteroid scan cutscene (replaces pre-rendered video)
Opened
#620 EPUB sidebar chapter nav is off by one (loads the page before the chapter)
Opened
#621 Epic: build the full parent-approval book model (upload approval chain, ApprovedBy audit, parent family/staff-uploads view, auto-Public-on-approval)
Opened
#622 Blueprint diagram: connection wires broken on Angular 22 — rete-angular-plugin injects removed ComponentFactoryResolver (flaky e2e tools-walk failure)
Opened
#623 [CI][Backend] Unit Tests red since Batch S (dcproj NU1105 via Directory.Build.props pins) + ArtPipe per-model images broken since CPM (Dockerfile.model missing Packages.props)
Opened
#624 [Infra][CI] lesson-video-processor never deploys: swarm service name 67 chars exceeds 63-char limit (stack+service name doubled)
Opened
#625 [Infra][CI] every deploy job's /mnt/infrastructure git pull fails under sudo (no credentials) — #584 stale-checkout guard is decorative
Opened
#626 [Bug][Prod][Reader] PDFs never open in the reader — pdf.js fetches /api/book/{id}/file tokenless (401); EPUBs unaffected
Opened
#627 [Bug][Prod][Reader] PDF worker fails to load — nginx serves .mjs as application/octet-stream (strict MIME blocks the module script)
Opened
#628 [Bug][CI][E2E] e2e.staff credential drift — OpenBao staff_password no longer authenticates against Keycloak (student from same secret works)
Opened
#629 [Bug][Reader][UI] Reader slides under the fixed app menu-bar — its toolbar/close button is obscured
Opened
#630 [Reader][UX] Reading-journey landing: drop the hero + tabs, add a guided tour and per-book quiz icons
Opened
#631 [Reader][Social] Backend: shared bookmarks, upvotes, and reading lists (opt-in, child-safe)
Opened
#632 [CI][Backend] sonar-scan has uploaded nothing since 2026-07-14 — scanner gets a wrong SonarQube host and continue-on-error hides the failure
Opened
#633 [Go-Live Checklist][Security] Rotate + Bao-migrate the dev-environment secrets before production
Opened
#634 [Reader][Social] Frontend: profile Social tab, reader Community tab, upvotes, reading-list dialog
Opened
#635 [Backend] Duplicate placeholder names in structured-log templates render unbound holes and collide in Seq (SonarQube S6677 x3)
Opened
#636 [Backend][Tests] Five strict-mock tests carry no explicit assertion (SonarQube S2699 BLOCKER x6 — 5 fixed, 1 false-positived)
Opened
#637 [Backend] Minor-bug batch from SonarQube triage: freeze the remediation allowlist + spell registry, constrain generic event handlers, dead null-coalesce, poll-loop default cases
Opened
#638 [Backend] Detector/rule-engine override parameters renamed to match their base declarations (SonarQube S927 x14) + proposal: drop CA1873/CA1861 imports from sonar (56% of all open issues)
Opened
#639 [Backend] Telemetry-fidelity log-call family: S6667 (83) + S2139 (187) need per-site triage with a rubric, not bulk treatment
Opened
#640 [GameServer][Bug] Four command types were never ClientTick/Sequence-stamped on deserialization — the per-type stamp switch silently skipped them (found via SonarQube S1871)
Opened
#641 [Backend] S1172 unused-parameter family (74, incl. 28 unused CancellationTokens): rubric batch after the #632 baseline lands
Opened
#642 [Infra][SonarQube] CE fails extracting LARGE uploaded reports: PGbytea ArrayIndexOutOfBoundsException reading ce_task_input (root cause of the old #344 crash)
Opened
#643 [Decision][SonarQube] Rule-level noise policy: CA1873 (3.5k), CA1861 (1.4k), S101 (663), S1192 (404), S1075 (74) — ~70% of open backend findings
Opened
#644 [Security][Chat] CrossOrganization channels are accessible to EVERYONE — CanAccessChannel returns true unconditionally ('Simplified for now')
Opened
#645 [GameServer][Bug] Projectile hit checks ignore the previous position (tunneling) and spam Warning-level logs per player per tick — CampZone + DungeonZone
Opened
#646 [GameServer][Bug] Hierarchical A* never worked: region identity collapsed to (0,0,0) via a placeholder IntToRegion — long-range pathfinding fell back to straight lines through obstacles
Opened
#647 [Backend] Remove 12 genuinely dead private parameters (SonarQube S1172) — the residue after the family's triage
Opened
#648 [Backend] Final dead-code slice + AVIF failure diagnostics + Reader S927 renames (SonarQube S1144/S1481/S927 residue)
Opened
#649 [Reader][Social] Community badge opens the sidebar on Chapters, not the Community tab
Opened
#650 [Reader][Perf] EPUB page prefetch/LRU + fix dead ngsw api-books cache group
Opened
#651 [Reader][Offline] IndexedDB offline book store (schema + CRUD foundation)
Opened
#652 [Backend] RedisClusterState derived projections re-filter+re-allocate on every access (SonarQube S2365 x3)
Opened
#653 [Reader][Offline] Download-for-offline button on book cards
Opened
#654 [Reader][Offline] Profile "Offline books" section — list, remove, storage bar
Opened
#655 [Reader][Offline] Read downloaded PDFs offline + auth.guard offline entry
Opened
#656 [Backend][Bug] UpdateUserCommandHandler silently swallows all Keycloak failures — failed user updates report success
Opened
#657 [Backend][Bug] UTC timestamps parsed without RoundtripKind — TZ-dependent shift breaks phone-code expiry + ship/character DeletedAt (SonarQube S6580)
Opened
#658 [Reader][Offline] Read downloaded EPUBs offline + blob-URL resource rewriter
Opened
#659 [Go-Live Checklist][Container] Docker hardening: non-root USER, --no-install-recommends, disable curl/wget redirects (SonarQube hotspots S6471/S6500/S6506)
Opened
#660 [Backend] KnowledgeDomainRegistry.ActionIdsByKey is write-only — dead code, or a missing action key→id accessor?
Opened
#661 perf(api): cache BookController JsonSerializerOptions instead of per-request allocation (CA1869)
Opened
#662 Adopt Angular 22 / Nx 23.1 optimizations: OnPush burn-down, strictTemplates, migration-artifact cleanup
Opened
#663 Reading Journey: quiz answer review never shows correct answers/explanations (no backend endpoint ships the answer key)
Opened
#664 spikersoft-angular: root pnpm typecheck (tsc --noEmit) has ~9,200 pre-existing errors — unusable as a gate
Opened
#665 fix(api): DecompileController drops request CancellationToken into MediatR (CA2016)
Opened
#666 fix(data): cast null to nullable JsonSerializerOptions in EF value converters (CS8600, 66 findings)
Opened
#667 chore: remove abandoned commented-out code blocks (S125)
Opened
#668 test: convert BroadcastToPlayersInRange tests to async/await (xUnit1031)
Opened
#669 fix(notifications): null Twilio VerificationCheck.Status causes NRE + dropped audit in 2FA verify (CS8602)
Opened
#670 fix(calendar-reminders): null BasicProperties.Headers NREs the reminder publish when tracing is inactive (CS8602)
Opened
#671 RPC consumers NRE on null handler response (payload.GetType() in PublishReplyAsync) — CS8604
Opened
#672 PROD: sponsor/profiles + geography/travel-stats 500 — UserProfile.Social required-owned-nav throws on pre-#631 documents (schema drift)
Opened
#673 CurriculumPythonInterpreter throws ArgumentNullException on unparseable Python version (CS8604)
Opened
#674 Security: blog body sanitization uses bypassable regex (stored XSS) — replace with HtmlSanitizer
Opened
#675 chore: remove dead SpaceZone combat-damage duplicates (superseded by SpaceCombatSystem, S1144)
Opened
#676 Background-check + Keycloak base URLs hardcoded to production (no sandbox config) — S1075
Opened
#677 refactor(artstudio): consolidate 27 duplicated token-user-id auth checks into a helper (S1192)
Opened
#678 CleanupOrphanData loads allUploadIds but never uses it — possible missing orphan-scan case (S1481)
Opened
#679 chore: remove dead SpaceZone methods (CreateTestSpacecraft, GetDockedChainExcluding) (S1144)
Opened
#680 refactor(3dmodel): consolidate duplicated auth checks into TryGetUserId helper (S1192)
Opened
#681 perf(keycloak): cache JsonSerializerOptions instead of per-call allocation (CA1869)
Opened
#682 perf(mcp): cache CalendarTools JsonSerializerOptions instead of per-call allocation (CA1869)
Opened
#683 Api: remove stale IsAotCompatible flag (abandoned AOT experiment emitting 115 IL2026/IL3050 warnings)
Opened
#684 MediatR pipeline behaviors don't forward CancellationToken to next() (v11-style call on MediatR 14)
Opened
#685 [Security] SSRF in InfoVault URL caching — user-supplied vault URL fetched server-side with no internal-address guard
Opened
#686 [Angular][Tech-debt] Migrate off deprecated @angular/animations DSL + animations modules (Angular 22 — SonarQube S1874 ×85)
Opened
#687 [Angular][Dead-code] Course class has 8 declared-but-never-assigned/read private fields (classes/course.ts)
Opened
#688 [Security] Broken access control: Mark Wilson customer-PII CRM is authenticated-only (no staff/admin role gate)
Opened
#689 [Security] Gate the remaining Mark Wilson CRM controllers to staff/admin (#688 follow-up)
Opened
#690 [Security][Hardening] JWT validation deviates from secure defaults: RequireHttpsMetadata=false, ValidateIssuer=false
Opened
#691 [Security] Pre-registration email verification code is brute-forceable — attempts counted but never enforced
Opened
#692 [Security] Phone verification codes (OTP) written to logs at Information level
Opened
#693 [Security] TwilioController outbound endpoints are unauthenticated — SMS/call/lookup abuse & cost
Opened
#694 [Security] GeneratorBrands write endpoints allow any authenticated user to modify CRM reference data (#689 follow-up)
Opened
#695 [Robustness] Fundraiser RecordSale QuantitySold has no upper bound — absurd values can overflow accumulated totals
Opened
#696 [Infra][MinIO] Cut over book/ebook artifacts to MinIO as sole store (ebooks slice of #413) + fix inline-mirror pipeline stall
Opened
#697 [Maintainability] Fix CS8619 nullability mismatch on RabbitMQ message Headers (4 sites)
Opened
#698 [Bug][Reliability] Workers pass healthcheck with a DEAD RabbitMQ consumer → pipeline stages silently stall (image.description: 128 msgs/0 consumers)
Opened
#699 [Bug][ArtStudio] Concept stage fails for every asset offline — SDXL loader completeness check + un-baked Lightning LoRA (fix: artpipe PR #25)
Opened
#700 [Bug][Infra][Gitea/MinIO] Large registry push restarts single-node MinIO → Gitea storage.Init crash-loops → full git+CI 404 outage
Opened
#701 Move My Journey into the playground curriculum pane as a Progress tab
Opened
#702 [ArtPipe][Bug] Modeling stage fails offline — TripoSR's DINO image encoder (facebook/dino-vitb16) never baked (same class as #699)
Opened
#703 [Backend][Bug] Embeddings (and latent: quiz-generation) model self-provision fails — named cache volume root-owned, worker runs as app (#527 fallout)
Opened
#704 [GpuCoordinator][Bug] Lease grant races physical VRAM eviction — quiz-generation grant-fail-release cycles to DLQ while ImageDescription yields correctly
Opened
#705 [Epic][Blog][UX] Blog management & UX overhaul — findings from the 2026-07-18 full review
Opened
#706 [Bug][Blog][Angular] Media delete is broken end-to-end — placeholder handler AND a confirm button with no click binding (epic #705)
Opened
#707 [Bug][Blog][Angular] Comment identity is hardcoded — every comment posts as "Current User"/"current-user-id" (epic #705)
Opened
#708 [Feature][Blog][Angular] "My posts" management view — surface drafts/pending/rejected in one place (epic #705)
Opened
#709 [Feature][Blog][Angular] Author edit UI — updateBlogPost exists server+service side, no surface calls it (epic #705)
Opened
#710 [Perf][Blog][Angular] List loads ALL posts and filters client-side — backend pagination discarded, no pagination UI (epic #705)
Opened
#711 [UX][Blog][Angular] Media grid hardcodes cols=3 — squashed tiles on mobile (epic #705)
Opened
#712 [UX][Blog][Angular] Create flow: setTimeout(1000) navigation + no unsaved-changes guard (epic #705)
Opened
#713 [UX][Blog][Angular] Small polish batch: moderation shield tooltip + theme-token colors in blog SCSS (epic #705)
Opened
#714 [Test][Blog][E2E] Blog has zero Playwright coverage — add an authenticated blog spec (epic #705)
Opened
#715 [TechDebt][Blog][Angular] Two base-URL sources — service uses API_BASE_URL token, media URLs use environment.baseUrl (epic #705)
Opened
#716 [Security][Blog][Record] Create endpoints accepted spoofable client-supplied AuthorId — fixed by backend #423 (epic #705)
Opened
#717 [CI][Backend] Tier-3 artpipe finals builds keep getting superseded/cancelled before pushing — dino fix (#702) never reached the registry
Opened
#718 [Epic][Photography] Photograph Upload · Photo Gallery · Photo Stack — photography as a first-class interest
Opened
#719 [Reading Journey][UX] Covers-only uniform shelf + responsive AVIF cover variants + book quick-view + blog-about-this-book (parent-gated)
Opened
#720 [Infra][Data-integrity] Corrupt blob in MinIO-backed container registry — 17GB env-image layer unreadable at one part, blocked the #702 fix chain all night
Opened
#721 [ArtPipe][Bug] Export stage dead on first prod asset — Blender's glTF exporter missing numpy (--no-install-recommends dropped it) + probe chain masked the real error
Opened
#722 EPIC: Angular 22 + Nx 23 full-leverage modernization (signal forms, resource APIs, affected CI, remote cache)
Opened
#723 platform-clang-runtime: 2 curriculum-pane specs fail on master (localStorage.getItem is not a function)
Opened
#724 chore(calendar): upgrade FullCalendar v6 → v7 (@fullcalendar/angular 7.0.1) — new theme system, package restructure, API renames
Opened
#725 chore(a22): retire deprecated Angular packages — build-angular executor, @angular/animations, platform-browser-dynamic
Opened
#726 Authenticated E2E walk: rpg-game, dungeon-crawler, duality-game fail with runtime TypeErrors (pre-existing on master)
Opened
#727 Parent approval map never shows a domestic child's requested states (wishlistRegions unbound; orange 'requested' style gated to minor mode; no region approval store)
Opened
#728 storybook: static build broken on master (addon-actions import, node built-ins, worker tsconfig)
Opened
#729 Reading journey: let parents share their uploaded books with their children
Opened
#730 Sonar: exclude vendored interpreter.js (JS-Interpreter) from analysis
Opened
#731 Bug: duplicate min-height in x86-playground SCSS (css:S4656)
Opened
#732 Epic: Accessibility hardening (SonarQube a11y backlog — alt text, keyboard equivalents, ARIA)
Opened
#733 E4 regression: activity-manifest resource() blocks whenStable() — fundraiser + calendar suites hook-timeout on master
Opened
#734 Child book read-context never built on real tokens: bare FindFirst("sub") nulled by JWT inbound claim mapping (breaks #729 household grants; #618 child gate fail-opens)
Opened
#735 Child map never shows parent approval of a wishlisted state — minor-mode wishlist branch masks the approved style (profile → travel → map)
Opened
#736 Child's own profile drops 5 granted permissions — ProfileMapper.ToDto maps only 8 of 13 FeaturePermissions fields (child sees "Blog posting isn't turned on" despite parent grant)
Opened
#737 Registration e2e step-1 specs broken by E5 Signal Forms migration — [formcontrolname] locators no longer match (CI e2e-anonymous red on master)
Opened
#738 feat(chemistry): Learn → Chemistry periodic-table landing (three.js CSS3D) — Phase 1
Opened
#739 [Nx graph] Delete dead libs feature-dev-tools-voronoi + shared-utils-file-hash (zero consumers since May); keep feature-trellis-3d-generator (parked pending #412)
Opened
#740 [Nx graph] Split platform-activity-tracking into api (facade, 24 dependents) + impl (pipeline, app-registered) so impl churn stops invalidating a third of the graph
Opened
#741 feat(chemistry): periodic-table sizing fix + camera reset/axis views + in-scene element zoom
Opened
#742 [workspace-plugin] library generator emits "^undefined" peer versions — reads rootPkg.dependencies but framework deps live in devDependencies since E0
Opened
#743 [Nx graph] spikersoft-environment consumer audit: all 18 lib consumers are URL-only (100 call sites); only the app needs full environment — migration report, not yet migrating
Opened
#744 Dungeon-crawler background music keeps playing after navigating to another game
Opened
#745 bug(blog): media 'Confirm Removal' button shown to all viewers + blog update/add-media endpoints missing authorization
Opened
#746 feature(blog): photography-info icon on blog photos sourced from the Photography gallery
Opened
#747 bug(blog): media removal is a placeholder — no backend endpoint, viewer button does nothing
Opened
#748 bug(blog): comment endpoints are anonymous and comment author identity is client-spoofable
Opened
#749 feature(sponsor): 'Sponsor a Journey' — family cards with shared destinations, destination chips, family detail page
Opened
#750 refactor(sponsor): migrate SponsorController to CQRS handlers
Opened
#751 [E6/emulators] alpine-linux + mac-plus emulator components are dead since the v86 catalogue (2025-11-22) — and orphan 158 MB of assets/emulators ROMs shipped in every image
Opened
#752 feature(sponsor): family card member spotlight + globe.gl choropleth dream globe on the family page
Opened
#755 note(art-studio): Stacked/Touchup saves are canvas exports — camera EXIF lost, photo-info panel sparse
Opened
#753 bug(blog): camera icon missing on pre-#746 gallery-sourced blog photos — backfill provenance + gallery picker in Add-more-media
Opened
#754 feature(photography): accept Canon/Nikon/Sony/Fuji/DNG raws on upload — widen allowlist + Raw-kind heuristic (no LibRaw needed on ingest)
Opened
#756 [Critical][Ops][Notifications] Ops alerting is silently dead — every system-remediation-alert email fails SMTP AUTH 535; critical disk/OOM alerts never delivered
Opened
#758 [Bug][Backend][Profile] GET /api/Profile/images/6a5d78cacf3094d34c21faba 500s: stored image larger than advertised Content-Length; GlobalExceptionHandlerMiddleware then crashes writing after response start
Opened
#757 [Infra][SERVER] Root disk hit 99% from accumulated stale deploy images — pruned 222.7GB (now 49%); add scheduled prune on service nodes + investigate OOM kills
Opened
#759 ProfileMapper.ToDto omits 5 permission fields — child's own blogPosting etc. always read as defaults
Opened
#760 marks-address: duplicate @for track keys for unsaved addresses + saveAddresses() is a stub
Opened
#761 Hygiene: event-modal debug console.logs ship to prod + 6 templates spam NG8011 projection warnings every build
Opened
#762 keycloak-admin user-roles: both role-search boxes are wired to nothing
Opened
#763 Dream globe: context countries nearly invisible; show grey state boundaries for supported countries
Opened
#764 Dream globe: choropleth invisible while hovering and past a zoom threshold (small polygons)
Opened
#765 Dream globe: chip click flies globe to destination; polygon click offers "Explore in Geography"
Opened
#766 Geography explorer: state map only renders after picking a trail-activating interest
Opened
#767 Direct messages: role/family-scoped 1:1 messaging with presence (FAB + drawer)
Opened
#768 [Bug][Infra] Corrupt 17GB registry blob in MinIO gitea-packages blocks all artpipe prodstages CI builds (unexpected EOF at fixed offset)
Opened
#769 [Bug] DM unread badge invisible on chat FAB (glass mixin overflow:hidden clips matBadge) + no audible cue on incoming message (#767 follow-up)
Opened
#770 [Bug] DM roster: admin-parents don't see their children (exclusive role branches) + avatars generic for ProfileImageId users (#767 follow-up)
Opened
#771 [Infra][MinIO] Profile/team/sponsor images: GridFS → MinIO sole store (profile-images slice of epic #413)
Opened
#772 a11y phase 1: axe-core e2e gate + vendored-asset exclusion + dev-tools/admin batch (epic #732)
Opened
#773 [Infra][MinIO] Sensitive documents (passports/travel docs): GridFS → MinIO sole store (slice of epic #413)
Opened
#774 [Bug][Infra][Deploy] backend deploy reports success while swarm rolls back on transient image-pull failure (silent non-deploy, #584 class)
Opened
#776 test(backend): flaky BookPageImage ObjectId CreationTime tolerance (CI run 11622)
Opened
#775 [Infra][Registry] Blob-integrity hardening: read-verify sweep + Gitea ignores Range on blob GETs + single-node MinIO cannot heal bitrot (consolidates #720/#768)
Opened
#777 [Content][Feature] Video captions: 8 media elements lack subtitle/description tracks (S4084, split from a11y epic #732)
Opened
#778 [Infra][MinIO] Final GridFS slices: vault-files + photograph-previews → MinIO sole store (completes epic #413's GridFS retirement)
Opened
#779 [Feature][Photography] Stack-aware gallery: EXIF burst auto-grouping, collapse to finished products, stack provenance + transparency panel (epic #718)
Opened
#780 [UX][ArtStudio] Touch-Up: prominent selected-frame indicator + draggable compare divider (stacked vs selected frame) (epic #718)
Opened
#781 Epic: Unified scheduling — recurrence engine + availability (calendar + iCal)
Opened
#782 E2E parent/child account matrix + persona hydration tooling
Opened
#783 [Infra][MinIO] art-asset-artifacts: the ACTUAL last GridFS bucket → MinIO (ArtStudio stage outputs, ~4.5GB) (epic #413)
Opened
#784 [Perf][ArtStudio] Serve artifact images via short-TTL presigned MinIO URLs + HTTP caching — stop streaming every image through the API (follow-up to #783, epic #413)
Opened
#785 Schedule tab: boundary months render with only their in-horizon weeks — pad split months with unschedulable placeholders (epic #781)
Opened
#786 [Bug][Prod][Calendar] GET events threw for every pre-#781 event — required non-nullable AffectsAvailability missing from old documents (backfilled)
Opened
#787 [Bug][Backend] images/{id} intermittent 500: response wrote 163840 bytes against Content-Length 163409 (post-MinIO recurrence of the #758 signature) + Traefik compresses images wastefully
Opened
#788 [Feature][Calendar] Family calendar overlay — parents see + manage children's events with per-child toggles (epic #781 adjacent)
Opened
#789 Library tsconfig.spec rootDir: "src" blocks cross-library-importing unit tests (38 libs)
Opened
#790 [Feature][Calendar] Create-for-child from the parent calendar — owner selector in the event modal (follow-up to #788)
Opened
#791 KeycloakCacheService.refreshUserCache over-evicts users sharing an id prefix
Opened
#792 ElementRegistry incompatibility lists reference unregistered elements (H→F/Cl, O→Na/K)
Opened
#793 EquipItem slot validation off by one — EquipmentSlot↔ItemEquipSlot ordinal cast mismatch
Opened
#794 shockwave_fire spell combo can never trigger — un-normalized case in GetComboType
Opened
#795 JsonPacketSerializer: EntityMovedEvent serialize throws NotSupportedException (JsonElement leak)
Opened
#796 BlogRateLimiter: HashSet counters collapse same-millisecond increments
Opened
#797 FileValidationService: outer catch NullRefs when fileData is null
Opened
#798 RabbitMQ_HealthCheck: QueueInfo ignores management API snake_case fields
Opened
#799 wasm-voxel chat formatter: §o applies bold instead of italic
Opened
#800 spikersoft-angular: purge big binaries from git history (repo-size tier 3 — coordinated rewrite)
Opened
#801 Gitea LFS storage → MinIO (keep 751MB of large assets off laptop-server host disk)
Opened
#802 [Feature][Calendar] Import .ics calendars — one-shot file upload (Microsoft / Google / Apple)
Opened
#803 [Feature][Calendar] Subscription feeds — periodic .ics refresh via scheduler worker
Opened
#804 [Bug][Art Studio] Display images never cache across visits — backend half of #784 (presigned display URL) was never built
Opened
#805 [Feature][Art Studio] Serve display images as AVIF derivatives (small card + full), keep PNG for download
Opened
#806 Art Studio: serve AVIF renditions of PhotoStack stacks instead of the raw ~117MB .tif
Opened
#807 Art Studio: let owners upload an edited .tif as a non-destructive stack variant
Opened
#808 PathManager.GetCachedObstacles always empty — CollectObstaclesInPlace never fills _obstacleArrayBuffer
Opened
#809 CourseModule constructor never assigns this.number — every module.number is undefined
Opened
#810 Boss.selectBossType() is a broken dead stub — throws on any call (empty bossTypesForFloor)
Opened
#811 wasm-voxel AES is broken — round function missing, keystream is input/IV-independent (not real AES)
Opened
#812 AutopilotHUD: target-type toggle unclickable — hit-area overlaps 'Go to Position' command button
Opened
#813 PhpInterpreterService: capabilities.canRun not reactive to setWorkspace (non-signal hasBlocks)
Opened
#814 QrCodeComponent: WiFi field escaping only escapes the first special char (regex missing /g)
Opened
#815 CI red on master: deployment guard tests point at pre-reusable-pipeline workflow locations
Opened
#816 Angular CI: WASM bundle download flakes on HTTP/2 stream reset (curl exit 92)
Opened
#817 Angular master CI red: Stylelint declaration-empty-line-before in sponsor-family.component.scss
Opened
#818 Angular lint: COVERAGE-LOOP.md trips prettier -c . on master
Opened
#819 e2e route-coverage red on master: location-fund routes unclassified + ratchet dip (regression from #552)
Opened
#820 ArtStudio/photo-gallery downloads 404: artpipe workers write GridFS while API reads MinIO (stale pre-#783 deploy)
Opened
#821 Registry blob corruption: artpipe-model-env-safetycheck 4.8 GB weights layer truncated in MinIO (unexpected EOF)
Opened
#822 GPU coordinator queue deadlocked after #467 node-routing deploy — Embeddings pinned to disabled SERVER lane wedges all GPU tenants
Opened
#823 master production app build is RED: photo-lightbox humanizeDuration(number|null) strictTemplates error
Opened
#824 CI gap: strictTemplates / app-build errors merge to master green (nx build spikersoft not gated)
Opened
#825 Art Studio MinIO migration: reader cutover preceded writer cutover → gap-window artifacts orphaned (500 on download)
Opened
#826 space-game KeybindingManager ctor wipes saved localStorage keybindings on every boot (custom binds lost on reload)
Opened
#827 Epic: Sponsor page — unified card grid, declutter donate buttons, and family shared-trip funds
Opened
#828 Angular master e2e-anonymous RED since #827 PR #564: /sponsor/donate-family/:familyKey unclassified in route-manifest → publish skipped, frontend not deploying
Opened
#829 JWT tool: in-flight signature computation writes stale signature over cleared state (also reddens the full-suite SonarQube scan on master)
Opened
#830 Flaky under load: keycloak-admin user-list spec settles resources with a fixed hop count (reddens full-suite SonarQube scan); 9 sibling specs share the pattern
Opened
#831 Sponsor family card: declutter header, consolidate member photos, promote the $ tracker
Opened
#832 Art Studio: make the Hunyuan3D texturing lane actually run in production (never textured a single asset)
Opened
#833 EPIC: Pixal3D as an Art Studio modeling backend
Opened
#834 Pixal3D PR-1: artpipe manifest + WRAP backend + runner
Opened
#835 Pixal3D PR-2: make the artpipe VRAM admission gate tunable
Opened
#836 Pixal3D PR-3: decouple model-queue binding from resident mode + per-model routing allow-list
Opened
#837 Pixal3D PR-4: bake the pixal3d env image in CI
Opened
#838 Pixal3D PR-5: deploy stack, method option, and routing cutover
Opened
#839 ModelEnvImages: triposg venv unbuildable (fvdb needs Python >=3.11, manifest pins 3.10) — aborts the serial loop and silently blocks 4 later images
Opened
#840 NetworkStatusService uses Inject() instead of inject() — DI is broken
Opened
#841 ArtPipeProcessor deploy: /mnt/infrastructure pull fails auth (stale checkout deployed, only a WARNING) + one stack's 'update out of sequence' aborts all later deploys
Opened
#842 EPIC: Art Studio — record and replay generation parameters (+ text+image concept)
Opened
#844 art_pipe: always seed generation, and record what made each image (#842)
Opened
#843 Art Studio: record what actually produced each stage run (#842)
Opened
#845 Art Studio: carry generation-parameter overrides to the worker (#842)
Opened
#848 Art Studio UI: show what made an asset, and let a user remake it (#842)
Opened
#847 Art Studio: reproduce and vary a recorded run (#842)
Opened
#846 Art Studio: text+image concept, and fix image-upload submissions (#842)
Opened
#849 Art Studio: name storage keys for what they hold (#842)
Opened
#850 CI: prune artpipe container pin tags — keep :latest + 3, they accumulate forever
Opened
#851 GET api/Profile/images/{id} returns 500 — response compression grows already-compressed images past Content-Length
Opened
#852 PROD: all Art Studio images 404 — #849 rename orphaned the legacy PascalCase artifact key
Opened
#853 Drop GridFS naming from Art Studio: rename to objectKey, migrate legacy docs, remove the #852 shim
Opened
#854 Latent #852 twin: UserProfile.Images uses Newtonsoft [JsonProperty] on a System.Text.Json column
Opened
#855 hex-tower-defence tab crash: art_pipe export stage never decimates (137k tris / 109 MB assets) + the game loads every slot concurrently
Opened
#856 PROD: GET /api/artstudio 500s — #853 objectKey rename deployed to the reader but not the artpipe writer
Opened
#857 SECURITY: container registry serves anonymous pull tokens over the public internet
Opened
#858 artpipe env images: two RUN loops produce 17 GB and 16 GB single layers — split per model
Opened
#859 artpipe: 33 GB of immutable weights/venvs are baked into every CI build — make them data, not image layers
Opened
#860 hex-tower-defence: loadout effect re-subscribes to the art loader's httpResources, looping until the renderer is killed
Opened
#861 artpipe: decimation to 6k faces tore 60% of the mesh surface open — relax it, and replace the simplifier
Opened
#862 [Bug][Backend][Data] Metadata extraction has no idempotency guard — a single upload inserted 2× full page sets (342 dupes, 2026-07-18); answers #509's open questions
Opened
#863 Art Studio: artifacts only appear when the whole asset finishes, and the progress percentages are not honest
Opened
#864 spikersoft-artpipe has no PR CI — its whole pytest suite is ungated
Opened
#865 Research: Origin Private File System (OPFS) as selective offline pin/outbox beside MinIO
Opened
#866 Research: Replace / drop npm libs with built-in browser APIs (2026) to slim spikersoft-angular
Opened
#867 Rework /employment into a routed master-detail careers page with a globe
Opened
#868 EPIC: Sponsor family card redesign — image-backed destination tiles, achievements strip, parent-gated age
Opened
#869 Destination background images: anonymous /destination-images MediaRoute from MinIO assets bucket
Opened
#870 Family card re-skin to approved mock (header, ringed avatars, image destination tiles, CTA banner)
Opened
#871 TopAwards on SponsorFamilyListItem — public top-4 family prizes/skills aggregation
Opened
#872 Family achievements strip on the card (ui-award-chips) + skills.service route fixes
Opened
#873 exposeAgePublicly parental permission + Age on SponsorFamilyMember (consent-boundary design)
Opened
#874 Skill awards can trigger fund payouts (server skill-awarded activity + earned-skill-count provider)
Opened
#875 Fund-management admin page: recurrence/prize-kind enum drift (400s) + domain/action pickers
Opened
#876 ApproveParentalLinkCommandHandler silently resets InfoVault (and any unlisted permission) to false
Opened
#877 [Bug][Infra][CI] ModelEnvImages rebuilds all 10 model images from scratch every push — a provenance LABEL above the expensive layers busts the cache (3h build, hits the runner cap)
Opened
#878 Sponsor family card UI/UX: spotlight bio clipped, duplicate family-page link, broken narrow-lane/mobile layout
Opened
#879 SW caches /api/book/* JSON for 7d while presigned cover URLs expire in hours — fallback serves dead cover links
Opened
#880 Offline book downloads don't persist the cover — downloaded books show broken covers once the presigned URL expires
Opened
#881 book-upload preview binds bucket-relative coverImage key as <img src> — broken preview for MinIO-served books
Opened
#882 CI red: 3 SponsorControllerTests family tests dial real MongoDB — #871 TopAwards reads not mocked
Opened
#883 Duplicate System Activity gear FAB on /art-studio
Opened
#884 Sponsor family card: hover member tabs (locations/bio/awards) + dashboard sponsor grid layout
Opened
#885 OUTAGE: dreamstream4 down → RabbitMQ backbone unreachable since 12:17Z — consumers can't connect, redis node lost
Opened
#886 ArtPipeProcessor host has no RabbitMQ startup retry/backoff — 7s crash-loop + Seq flood whenever the broker is away
Opened
#887 artpipe-model-blender:latest missing from registry — service Reject-loops every ~5s since the 04:11Z artpipe redeploy
Opened
#888 OpenBao HA is silently degraded by sealed standbys — seal state has no monitoring, turning one node loss into a 2.5h write outage (#885 post-mortem)
Opened
#889 QR Monster: add SD1.5 Monster v2 'classic' variant + per-variant tuning (gallery-quality blending)
Opened
#890 Restore QR-art rate limit to 6/hr after the #889 testing window
Opened
#891 Photo gallery: multi-select upload wrongly groups unrelated photos as a burst
Opened
#892 Photo gallery: poor thumbnail quality — Lanczos3 + edge-aware sharpening + fix ORF 160×120 thumbs
Opened
#893 Photo gallery: free-form tags — editor, gallery filter/search, EXIF keyword seeding
Opened
#894 Photo gallery: Florence-2 AI auto-tagging pipeline step (auto-tags + caption, suppressible, full backfill)
Opened
#895 2026-07-29 power outage: RabbitMQ mnesia corruption took down all consumers (recovered)
Opened
#896 /sponsor/family/{key} page renders under the fixed menu bar (hero cut off)
Opened
#897 Remove the command-line tool from learn.spikersoft.com
Opened
#898 [Bug] You still see (and can call) yourself in the video-call picker — self-filter compares sub against ChatHub's sid
Opened
#899 Support pasting images from clipboard in image upload areas
Opened
#900 Skill-management active toggle never persists — PUT payload omits isActive and the reload reverts the flip
Opened
#901 Decompiler search box and member-type filter chips are inert — getFilteredNamespaces() ignores both
Opened
#902 Geography facts admin: editing a fact with no source crashes the edit form (TypeError: this.field(...) is not a function)
Opened
#903 Keycloak admin: "create disabled user" confirmation dialog renders COMPLETELY EMPTY and cannot be closed (missing TranslocoDirective import)
Opened
#904 Menu bar: declutter top-level nav + drive desktop/mobile menus from one model
Opened
#905 Rebrand landing/marketing copy: children-first → family-inclusive
Opened
#906 Design: trip planner — day-by-day itinerary with costs, materials, and calendar tie-in
Opened
#907 Art Studio admin pages render content under the fixed menu bar
30 Unresolved Conversations
Open
#242
[Bug] SonarQube S7059: async operation inside a constructor
Open
#236
chore(deps): unpin @types/google.maps (3.65.x DrawingManager typings) (deferred from #230)
Open
#35
[Enhancement] Playground toolbar: Format document (Monaco API, shortcuts, per-language formatter hooks) — platform
Open
#6
[Future] TypeScript curriculum + in-browser transpile (pnpm typescript, no CDN)
Open
#3
[Future] OpenSC2K-style SimCity 2000 learning / creative sandbox (optional game)
Open
#38
[Enhancement] C# playground: Roslyn / dotnet formatter for Monaco
Open
#41
[Feature] Native Angular port: Regexp People (regex) — logic & inspiration from ManzDev (approved)
Open
#33
[Enhancement] C# playground: Monaco debugger toolbar — WASM + PDB (Blazor-class), breakpoints, stepping, vars
Open
#4
[Future] PHP in the browser (php-wasm) — learning / playground path
Open
#307
[Epic] Full-coverage Playwright E2E walk of the Angular app with live Jaeger + Seq telemetry
Open
#250
[Tech debt][Epic] SonarQube: frontend HIGH/BLOCKER maintainability smells (~1,675)
Open
#321
[E2E P8] Coverage gate — route-manifest report in CI, ratchet to 100%
Open
#125
Minecraft Bug - Water generation creates a visual barrier and some white spots resembling particles.
Open
#297
Ops console for host incidents & security alerts (API + Angular page), dev-ops/admin only
Open
#298
Specialize keycloak-admin library toward SpikerSoft staff roles & permission delineation
Open
#316
[E2E P4] Authenticated core journeys
Open
#318
[E2E P3] Registration & verification flow (email code + Twilio SMS hook)
Open
#71
[Enhancement] Chess: user-generated piece models via Trellis3D pipeline
Open
#319
[E2E P6] Staff/Admin surfaces
Open
#317
[E2E P5] Parent & family flows
Open
#21
[Enhancement] Playground: show historical graded output when revisiting completed lessons
Open
#306
[Spike] Stream code-execution output incrementally over the existing SignalR channel
Open
#304
[Perf/i18n] Deliver Concept Reference overlays per active locale (not all-languages-baked)
Open
#305
[Spike] Reactive query/cache layer for lesson catalog + progress (evaluate options, incl. TanStack)
Open
#281
# [Enhancement] Add visual and audio feedback for game results and moves in Chess module
Open
#2
[Future] Apache Guacamole + custom Angular 21 HTML5 remote desktop client
Open
#163
## [Enhancement] Add Interactive / ASMR-Style Video Explanations to Playgrounds
Open
#124
Bug: Minecraft - Playing Underwater
Open
#112
x86 lessons: add server-side Blink re-execution to close the trust gap in BlinkX86LessonGradingExecutor
Open
#108
enhancement: Calendar location field needs autocompletion and suggestions for accessibility