2026-02-03 - 2026-08-03
Overview
709 Issues closed from 3 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
#813 PhpInterpreterService: capabilities.canRun not reactive to setWorkspace (non-signal hasBlocks)
Closed
#814 QrCodeComponent: WiFi field escaping only escapes the first special char (regex missing /g)
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
#818 Angular lint: COVERAGE-LOOP.md trips prettier -c . on master
Closed
#817 Angular master CI red: Stylelint declaration-empty-line-before in sponsor-family.component.scss
Closed
#823 master production app build is RED: photo-lightbox humanizeDuration(number|null) strictTemplates error
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
#516 [ArtPipe] Baked images Phase 0: build scaffolding (Dockerfiles, CI, setup flags) + disk/limits go-no-go gates (epic #515)
Closed
#534 [CI][ArtPipe] Route baked model-image builds (ModelEnvImages + tier-3 finals) to the 4090 runner, off laptop-server
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
#314 [E2E P1] Anonymous walk — every public route + primary actions
Closed
#322 Decompose project knowledge into Cursor rules, skills, and AGENTS.md guardrails
Closed
#278 # [Enhancement] Add dynamic State/Province selection or autocomplete in Profile configuration
Closed
#296 [Epic][Bug] Localize lesson code-template comments (Spanish) across all playgrounds
Closed
#131 enhancement: One-shot bootstrap container for startup seeders (move out of API cold path)
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
#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
#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
#680 refactor(3dmodel): consolidate duplicated auth checks into TryGetUserId helper (S1192)
Closed
#655 [Reader][Offline] Read downloaded PDFs offline + auth.guard offline entry
Closed
#658 [Reader][Offline] Read downloaded EPUBs offline + blob-URL resource rewriter
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
#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
#730 Sonar: exclude vendored interpreter.js (JS-Interpreter) from analysis
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
#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
#772 a11y phase 1: axe-core e2e gate + vendored-asset exclusion + dev-tools/admin batch (epic #732)
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
#737 Registration e2e step-1 specs broken by E5 Signal Forms migration — [formcontrolname] locators no longer match (CI e2e-anonymous red on master)
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
#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
#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
#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
#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
#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
#607 SpikerSoft.Secrets: add bounded retry to OpenBao AppRole login + KV read
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
#511 [Bug][Infra][Deploy] quiz-generation rolling update races the image push — 'No such image' reject loops + UpdateStatus=paused
Closed
#505 [Bug][Infra] MinIO single drive faulted under first sustained concurrent write load — writers aborted mid-stream, task left LB
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
#464 [Mac local stack] Full site flow on the M5 — quiz generation + embeddings + book upload pipeline in mac-dev-up.sh
Closed
#462 infra: pin redis/redis-stack-server to a digest; plan migration to redis:8
Closed
#469 infra(traefik): bump Traefik v3.7.0 → v3.7.7 (latest)
Closed
#468 System Activity overlay opens on global 'S' keypress, interfering with typing
Closed
#470 infra(jaeger): bump Jaeger 2.17.0 → 2.19.0 (latest)
Closed
#471 ci(artpipe): image push only redeploys the modeling stack — five resident model stacks go stale; PR builds overwrite prod :latest
Closed
#472 docs(artpipe runbook): §2 bootstrap shell command launches the .NET worker instead of bash
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
#276 # [Bug] Broken external link: UnrealEngine Repository (GitHub)
Closed
#150 ## [Bug] Invalid or Non-Functional Social Media and External Links on Contact Page
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
#392 [Art Studio UI] Curation & review visual alignment
Closed
#393 [Art Studio UI] Game-ready export & handoff ("Load into game")
Closed
#391 [Art Studio UI] Metrics dashboard screen
Closed
#386 [Art Studio UI] Stage timeline + live-progress visual (git-rail, SignalR)
Closed
#387 [Art Studio UI] Asset library grid parity + URL-synced filter bar
Closed
#390 [Art Studio UI] System Activity panel (queue, HW, now-running, console)
Closed
#388 [Art Studio UI] Asset detail depth — PBR channels, history graph, live console
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
#396 [Art Studio][Backend] Emit quality-rating & curation-decision events so the #389 read-model can populate avg-quality + true accept-rate
Closed
#397 [Art Studio][Backend] Wire api/artstudio/submit to apply stageMethodSelections, presetId & per-stage skip (composer selections currently dropped)
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
Closed
#341 [Bug] /api/system/version rate limiter rejects with 503 instead of 429 (RejectionStatusCode default)
Closed
#340 [Bug] /keycloak-admin is reachable by any authenticated account — AuthGuard only, no RoleGuard
Closed
#313 [E2E P0] Harness & telemetry foundation
Closed
#343 [Bug] /tree-of-knowledge calls GET /api/activity/progress anonymously → 401 console error (class of #312)
Closed
#342 [Bug] Blockly tool crashes on load — ViewChild resolves undefined under *transloco (same class as diagram #314 finding)
Closed
#323 [Epic] Playground uniformity & lesson content layers (C / C++ / JavaScript / Python / C#)
Closed
#328 [Playgrounds P5] Videos layer — official per-lesson + student-submitted / staff-approved per lesson block
Closed
#337 [Playgrounds P5b] Video media pipeline — upload, virus scan, transcode + thumbnail, storage/serving (event-driven)
Closed
#339 [Playgrounds P5d] Videos tab in the playground shell + submit flow (frontend)
Closed
#338 [Playgrounds P5c] Admin moderation queue for community videos (frontend)
Closed
#336 [Playgrounds P5a] Videos backend foundation — LessonVideo model, submission + moderation endpoints, approved-read path
Closed
#330 [Spike] Duolingo-style progression visualization — optional, menu-launched, sounds, younger audience
Closed
#327 [Playgrounds P4] Text layer — SpikerSoft-authored prose per section (our own book, in-shell)
Closed
#326 [Playgrounds P3] Books layer — curated book links per subject/section in the shared shell
Closed
#334 feat(lessons): thin GET /api/Lessons/journey aggregation for My Journey
Closed
#333 feat(my-journey): winding-path progression visualization — optional, menu-launched (frontend)
Closed
#329 [Spike] Completion-ratio unlocks for anonymous users — contribute to see more; account unlocks everything
Closed
#332 [Ratio unlocks 2/2] Frontend: anon lesson mode, horizon locks, claim celebration, funnel events
Closed
#331 [Ratio unlocks 1/2] Backend: anonymous sessions, graded anon progress, horizon, sign-in claim
Closed
#335 feat(my-journey): daily streaks + streak-milestone feedback (fast-follow, deferred from #330)
Closed
#325 [Playgrounds P2] Shell parity audit — C / C++ / Python vs C# small-gap sweep
Closed
#324 [Playgrounds P1] Migrate JavaScript playground onto LanguagePlaygroundShellComponent
Closed
#315 [E2E P2] data-testid selector convention across walked components
Closed
#312 GET /api/interests requires auth but the public /geography page calls it anonymously (401)
Closed
#311 Rate-limited API responses (429) carry no CORS headers — browser masks them as CORS errors
Closed
#310 /blog crashes with uncaught exception when the posts API is unreachable
Closed
#309 /ai renders blank for anonymous visitors — app-root stays visibility:hidden
Closed
#308 /geography crashes on anonymous load — uncaught exception, component body never mounts
Closed
#249 [Tech debt] SonarQube: assorted backend code smells (S2699, S2365, S3973, S131, email-verified.html)
Closed
#302 [Bug] Frontend CI: profile.component.spec.ts fails with NG0201 (No provider found for Keycloak)
Closed
#271 # [Bug] Missing translations at C++ Playground
Closed
#301 Localize the Concept Reference dictionary panels (C#, Python, C, C++ playgrounds)
Closed
#284 # [Enhancement] Reposition misplaced UI containers for better visibility in WASM Voxel Game
Closed
#300 Add unit test coverage for #287 host remediation + security monitoring services
Closed
#283 # [Bug] “Book Processing” button visible during gameplay in WASM Voxel Game
Closed
#282 # [Bug] Unintended HUD element movement during fast clicking in Deploy Defender
Closed
#277 # [Bug] Scroll malfunction in Cyborg Joey chat container
Closed
#198 ## [Bug] Missing or Incomplete Translations in Python Playground Lessons
Closed
#202 ## [Bug] Missing or Incomplete Translations in Regex Playground Lessons
Closed
#200 ## [Bug] Missing or Incomplete Translations in C++ Playground Lessons
Closed
#199 ## [Bug] Missing or Incomplete Translations in C Playground Lessons
Closed
#197 ## [Bug] Missing or Incomplete Translations in C# Playground Lessons
Closed
#196 ## [Bug] Incomplete or Missing Translations in JavaScript Playground Instructions
Closed
#203 ## [Bug] Missing or Incomplete Translations in SQL Playground Lessons
Closed
#274 # [Bug] Missing translations at SQL Playground
Closed
#273 # [Bug] Missing translations at Regex Playground
Closed
#272 # [Bug] Missing translations at x86 Playground
Closed
#270 # [Bug] Missing translations at C Playground
Closed
#268 # [Bug] Missing translations at Python Playground
Closed
#269 # [Bug] Missing translations at JavaScript Playground
Closed
#267 # [Bug] Missing translations at C# Playground
Closed
#299 [Epic #296 follow-up] codeTemplate overlay never reaches C/C++/x86/SQL/Regex starters (plan-embedded, not BuiltAttempt.CodeTemplate)
Closed
#294 # [Bug] Missing Spanish Translations in Regex Playground Hints
Closed
#293 # [Bug] Missing Spanish Translations in Assembler (x86) Playground Lessons
Closed
#291 # [Bug] Missing Spanish Translations in C Playground Lessons
Closed
#290 # [Bug] Missing Spanish Translations in JavaScript Playground Lessons
Closed
#289 # [Bug] Missing Spanish Translations in Python Playground Lessons
Closed
#288 # [Bug] Missing Spanish Translations in C# Playground
Closed
#295 # [Bug] Missing Spanish Translations in SQL Playground Lessons
Closed
#292 # [Bug] Missing Spanish Translations in C++ Playground Lessons
Closed
#285 [Enhancement] Rename CSharpCodeRunnerController to a language-agnostic name
Closed
#287 Host-level remediation + security monitoring across the swarm
Closed
#280 # [Bug] Lesson submission fails with “400 OK” error in JavaScript Playground
Closed
#279 [Content] Spanish lesson instructions & hints untranslated across all playground tracks
Closed
#275 # [Bug] Language switch inconsistency across all playgrounds
Closed
#34 [Enhancement] Python (Pyodide) playground: Monaco debugger toolbar — sys.settrace, stepping, vars, Monaco bridge
Closed
#231 chore(deps): PDF viewer stack major — ngx-extended-pdf-viewer 28 + pdfjs-dist 6
Closed
#239 chore(deps): patch roll-up — amcharts5 5.19.1, storybook 10.4.6
Closed
#261 Twilio Verify worker handlers read wrong config key (Twilio:VerificationServiceSid vs Twilio:VerifyServiceSid)
Closed
#251 Contact page overhaul: real messaging, staff-aware live support, management inbox
Closed
#265 Language playground UX enhancements: unified action buttons + results in right pane (no-scroll layout)
Closed
#266 Self-service account deletion + personal data export (GDPR-style "delete my account" / "download my data")
Closed
#263 [Bug] Notifications worker crashes on SendVerificationCodeCommand — IMongoClient is never registered
Closed
#264 [Bug] Twilio SMS config-key mismatch — handlers read Twilio:PhoneNumber, but appsettings + deploy docs use Twilio:FromNumber (dead MessagingServiceSid)
Closed
#262 Registration Date of Birth field: auto-format typed dates (insert slashes) as MM/DD/YYYY
Closed
#260 Pre-registration phone verification broken: API resolves NoOpTwilioVerifyService edge stub instead of dispatching to Notifications worker
Closed
#259 complete-tutorial browser-grading allowlist is stale — omits RoslynCSharp, DuckDbSql, ClangC, ClangCpp
Closed
#253 Server-verify C# In-Browser Compile passes (award skills + cross-device sync)
Closed
#252 C# local-grading (In-Browser Compile) lesson completion reverts after a force reload
Closed
#257 [Bug] Registration password does not enforce uppercase/lowercase/special-character complexity
Closed
#256 [Bug] Registration password strength label (WEAK/MEDIUM/STRONG) is not translated
Closed
#255 [Bug] Basic Info step: availability error banner persists after the error is corrected
Closed
#254 [Bug] Join SpikerSoft signup accepts spaces in the username
Closed
#258 [Bug] Registration verification email never delivered — notifications email worker is not built/deployed (+ Email/Smtp config-key mismatch)
Closed
#247 [Tech debt] SonarQube S2696: static field written from instance method (3 backend)
Closed
#248 [Tech debt] SonarQube S2368: public method exposes jagged/multidimensional array (TrailGeometry)
Closed
#245 [Tech debt] SonarQube S4487: remove unread private fields (12 backend)
Closed
#246 [Tech debt] SonarQube S1215: remove GC.Collect() calls (8 backend)
Closed
#241 [Bug] SonarQube S2871: Array.sort() without a reliable comparator
Closed
#243 [Bug] SonarQube: assorted single-site reliability bugs (S7497, S7930, S3516, S7727)
Closed
#240 [Bug] SonarQube S4275: property setter assigns the wrong field (FileUploadScan)
Closed
#238 test: library specs fail on cold cache (missing Storage polyfill in vitest setup)
Closed
#232 chore(deps): Blockly 12 → 13 (major)
Closed
#233 chore(deps): @fortawesome/angular-fontawesome 4 → 5 (major)
Closed
#230 chore(deps): frontend app-runtime libraries — minor & patch roll-up
Closed
#229 chore(deps): frontend dev/build/test tooling — minor & patch roll-up
Closed
#91 Regex curriculum: systemic starter-flags fix + hover-discoverability hints + per-lesson audit
Closed
#164 ## [Bug] Code Container Scroll Not Working in Playgrounds
Closed
#182 Bug: C# Sandbox - Cannot type code, keyboard input unresponsive
Closed
#157 C#: Sandbox — The text shifts while typing
Closed
#193 ## [Bug] Text Input Box Unresponsive and Text Not Displayed Correctly in Fundraising Creation Modal
Closed
#181 Bug: Calendar section - Event creation form fields unresponsive
Closed
#228 [Bug] Minecraft (wasm-voxel) leaks global mouse/keyboard listeners that break input app-wide after leaving the game
Closed
#227 [Observability] Add deep SMTP health check (TLS + AUTH) to SpikerSoft.EventHandlers.Notifications
Closed
#225 [Bug] Registration verification email never sent in Production — InitiatePreRegistration hits the NoOpEmailService API edge stub
Closed
#226 [Tech debt] Migrate remaining IEmailService callers to SendEmailCommand (follow-up to #225)
Closed
#82 Refactor: extract synthetic-file binding (.prettierrc) out of LanguageRunner into a dedicated helper
Closed
#77 Add monaco-prettier-formatter.service.spec.ts: lazy load, register idempotency, error channel
Closed
#10 [Bug] Registration / Verify account: SMS code field stays disabled after email verified (mdc-text-field--disabled)
Closed
#73 [Bug] Offline pass with unverified server response regresses on next refresh
Closed
#80 LanguageRunner: .prettierrc binding effects re-run on every Prettier option toggle even in beginner/lesson mode
Closed
#76 Blockly interpreter: "Stepped back" message lands at the end of the output log instead of inline
Closed
#81 JS playground: .prettierrc canonicalizes user content immediately on successful parse (mid-edit surprise)
Closed
#75 JS step debugger: expandHandle() doesn't validate handle freshness across prepare()
Closed
#78 JS formatting popover: format errors are silently dropped if user closes popover before async format completes
Closed
#167 Bug: Minecraft - Water visual glitch shows flat panel reflection
Closed
#89 fishing game works?
Closed
#133 JavaScript Playground: Start debugging runs lesson code after switching to sandbox
Closed
#123 bug in regular expressions test tex
Closed
#122 bug: blocky visual code delete button
Closed
#104 bug: text rendering issues appear while scrolling down
Closed
#113 bug: Blog interests list has rendering glitches when scrolling
Closed
#128 bug Space Game: Text is not visible and does not occupy the proper space on the screen.
Closed
#192 ## [Bug] SQL Playground Returns 404 Error When Accessed from Integration Tests
Closed
#127 bug: space game - Top-right text not visible.
Closed
#144 Visual Bug: Space Game Text
Closed
#224 Bug: Space Game - clicking the viewport grabs pointer lock and makes modal HUDs (e.g. "Select Your Ship") unclickable; add keyboard navigation
Closed
#145 Bug: Space game not working
Closed
#135 JS Playground: Swap Files panel with Variables/Console column + persist
Closed
#136 JS Playground: File / Mode / View / Options / Help menu bar + Guided Tour right
Closed
#134 JS Playground: CDK resizable panes (files, editor, variables, console) + localStorage
Closed
#126 bug: dungeon crawler menu
Closed
#137 C++ playground / lessons: in-browser compile & run (wasm-clang-style)
Closed
#166 Bug: Dungeon Crawler - Menu does not respond after character creation
Closed
#156 ## [Bug] Intermittent Scroll Behavior in “Concept” Container
Closed
#147 ## [Bug] Incorrect Mouse Click Behavior in HexTile Game # 2
Closed
#146 ## Issue Report [BUG]: Incorrect Mouse Control Instructions in HexTile Game
Closed
#223 [Bug] Progress can be lost in "In-Browser Compile" mode after completing a lesson then hard-refreshing
Closed
#215 Bug: C# Hello World exercise partially translated
Closed
#214 Bug: C# Hello World lesson - grading error due to browser compilation conflict
Closed
#222 ## [Bug] Lesson Code Temporarily Visible After Hard Refresh Before Lesson Instructions Load
Closed
#109 bug: Calendar event color changes not saved/persisted when editing
Closed
#107 bug: Calendar event description text displays as corrupted/garbled characters
Closed
#114 bug: Profile Mailing Address — State/Province field appears blank because Country must be selected first, but Country comes after State in the form
Closed
#111 enhancement: Links section should open external links in new tabs
Closed
#221 ## [Bug] Lesson Progress and Account State Are Lost After ~10 Minutes of Inactivity (AFK)
Closed
#161 ## [Bug] Missing or Incorrect Hover Definitions in Python Playground Lessons
Closed
#153 ## [Bug] Missing Hover Definitions and Concept Registry in Python Playground Lessons
Closed
#220 ## [Bug] Untranslated Literal “Playground lessons and sandbox” in C# Lesson Header
Closed
#216 ## [Bug] Missing or Unimplemented Translations in Login Page
Closed
#213 Bug: Concepts section - inconsistent translation
Closed
#212 Bug: Partial translation in View dropdown menu
Closed
#211 Bug: Partial translation in lesson dropdown menu
Closed
#210 Bug: C# Lesson 6 - missing translation (partially untranslated)
Closed
#208 Bug: C# Lesson 4 - missing translation (partially untranslated)
Closed
#207 Bug: C# Lesson 3 - missing translation (partially untranslated)
Closed
#206 Bug: C# Lesson 2 - missing translation (partially untranslated)
Closed
#204 Bug: Learn C# - reload example in editor button not working
Closed
#183 Navigation bug when switching between C# lessons with Sandbox open
Closed
#171 Bug: Hex Tower Defense - Blurry text in menus and gameplay
Closed
#170 Bug: Deploy Defender - Black screen on start, game does not load
Closed
#169 Bug: Space Game - White screen after ship creation, game does not load
Closed
#165 C# Bug: Lesson 5 button "Try" in the editor does nothing
Closed
#160 ## [Enhancement] Unlock “Next Lesson” Button After Successful Submission
Closed
#159 Problem with the header when translating with Google Translate
Closed
#158 ## [Enhancement] Add Post-Submission Notifications and Improved Lesson Navigation in Playgrounds
Closed
#155 ## [Bug] Code Reset After Submission in Python Playground
Closed
#154 C# Suggestion: Unnecessary double-tap on the Continue button
Closed
#152 ## [Bug] JavaScript Playground Stuck on “Running Tests” After Submission
Closed
#151 ## [Bug] Incorrect Escape Sequence Handling in C++ Playground Output
Closed
#176 Bug: Contact AI assistant - Chat input and file upload unresponsive
Closed
#194 ## [Bug] Placeholder Text Overlaps and Causes Interaction Issues in Fundraiser Item Name Field
Closed
#195 ## [Bug] Cost Input Field Accepts Non-Numeric Characters and Prevents Saving in Fundraiser Setup
Closed
#149 ## [UI] Missing Icon for X Button in Social Media Section
Closed
#179 Suggestion: Icon-text alignment issues in Contact/Company Info
Closed
#177 Suggestion : Contact/Company Info - Learning platform link text barely legible
Closed
#184 ## [Bug] Text on Home Page Should Not Be Selectable
Closed
#217 ## [Bug] Low Contrast Between Text and Background in Calendar Action Buttons
Closed
#168 Bug: Space Game - Start text hidden behind page header
Closed
#218 ## [Bug] Twitter (X) SVG Icon Fails to Render Correctly in Social Media Section
Closed
#178 Bug: Contact page - X (Twitter) icon does not load, shows empty blue container
Closed
#70 [crash] unexpected crash at WASM Voxel Game after destroying bedrock
Closed
#191 ## [Bug] Unexpected Crash in Space Game — Firefox Window Turned White
Closed
#110 bug: Calendar new event creation fails with "Bad request" error
Closed
#148 ## [Bug] Unexpected Empty Container and Non-Functional AI Chat at Contact Page
Closed
#175 Bug: Contact AI chat - Empty square, never loads, backend not responding
Closed
#101 [Bug]: ReferenceError 'TouchEvent is not defined' on main screen
Closed
#106 [critical]: Loading animation triggers on every keystroke (accessibility hazard)
Closed
#162 Error: Http failure response body: Error: Http failure response for https://api.spikersoft.com/api/CSharpCodeRunner/run: 500 OK
Closed
#205 Bug: Execute code in sandbox returns 500 error
Closed
#209 Bug: C# Lesson 5 - missing translation (partially untranslated)
Closed
#173 Bug: Detective SQL - Backend texts not translated (incomplete i18n)
Closed
#172 Bug: Game dropdown menu - Some game names not translated to Spanish
Closed
#187 ## [Bug] Incorrect Spanish Translation of “Stories from the Road”
Closed
#174 Bug: Jobs board - Mixed translation in job cards (some fields translated, others not)
Closed
#189 ## [Bug] Country Data Displayed in English While Spanish Mode Is Active
Closed
#185 ## [Enhancement] Move Language Selector to Navigation Header with Flag Icon
Closed
#190 ## [Bug] Interest Filter Labels Displayed in English While Spanish Mode Is Active
Closed
#186 ## [Bug] Translation Error in Homepage Headline
Closed
#188 ## [Bug] Translation Tone Issue in Call-to-Action Section
Closed
#180 Bug: Incomplete translation in Sponsorship section - main info still in English
Closed
#143 Visual Bug: Space Game Text
Closed
#142 SQL Playground: Cross-pane keyword highlighting between lesson instructions and Data Sources
Closed
#132 architecture: SQL Playground as first-class LessonStrategy — DuckDB WASM + worker grading + language-runner parity
Closed
#140 sql: theme-switch UX polish — feedback, output reset, lesson instructions reload
Closed
#139 sql: sandbox starter schema — give the empty DuckDB connection something to query
Closed
#138 sql: authoritative server-side regrade — SqlLessonGradingExecutor + worker registration
Closed
#141 sql: SqlStudentCodeHintAnalyzer — pre-flight hints for the classic SQL pitfalls
Closed
#94 create x86 playground lessons
Closed
#105 bug: DLL Compiler icon not rendering in tools menu
Closed
#130 enhancement: Configure OpenTelemetry sampling for API/workers so telemetry stays cheap on constrained hosts
Closed
#115 bug: Admin sidebar Sponsorship badge count doesn't update after approving a pending profile
Closed
#129 bug: Parent's child sponsorship toggle bypasses the profile-completion check that admin approval enforces
Closed
#103 bug: Fishing Game icon not displaying on main screen
Closed
#121 bug: The compiler DLL has no icon
Closed
#118 Image-to-icon converter. It does not work as expected.
Closed
#119 Image-to-Icon Converter: icono pixelado
Closed
#120 Image-to-Icon Converter: icono pixelado
Closed
#117 bug: Activity tracking yanks anonymous visitors to the Keycloak login page
Closed
#116 x86 grader: 64-bit register expected values lose precision over the wire
Closed
#18 github snake wont display properly in browser fullscreen mode
Closed
#102 test issue
Closed
#100 [Bug] /api/Cluster/nodes 500s in prod — API container can't reach Docker daemon (EADDRNOTAVAIL)
Closed
#99 [Bug] Video-call invite never reaches callee — VideoCallHub uses sub claim but picker addresses callee by sid from ChatHub
Closed
#98 [Bug] You can see (and try to call) yourself in the video-call user picker — chatService.userId non-reactive race
Closed
#97 [Bug] Video-call hub WebSocket fails in prod — /hubs/video-call missing from JWT auth allowlist
Closed
#92 Base64 tool: add editor-style menubar (File via ToolFileMenu, Encode/Decode toggles, Help + Tour right-aligned)
Closed
#93 JWT tool: add editor-style menubar (File via ToolFileMenu, Decode/Encode toggles, Help + Tour right-aligned)
Closed
#72 [Bug] Lessons passed offline appear locked again after page refresh
Closed
#96 Activity telemetry: code-execution commands misattribute Python/JavaScript runs to csharp-playground domain
Closed
#45 [Enhancement] JavaScript playground: per-lesson completion tracking (tools:javascript-playground)
Closed
#44 [Enhancement] Python playground: per-lesson completion tracking (tools:python-playground)
Closed
#43 [Enhancement] C# playground: per-lesson completion tracking (tools:csharp-playground)
Closed
#95 Video call component: hardcoded 64px toolbar reservation over-reserves on mobile
Closed
#88 clue for sql-off‑screen elementsThe elements at the top are not visible because they fall outside the screen area. This is noticeable as soon as the game starts.
Closed
#74 JS step debugger: stepInto/Over/Out can freeze the tab on heavy steps
Closed
#15 issue: new issue while offline mode: progress in tasks/lessons wont be saved
Closed
#9 Lesson 101: greetTarget Function Returns Undefined
Closed
#90 Regex lesson 3: start with g off + guided discoverability (flag pulse + hint highlights)
Closed
#79 Consider trimming endOfLine from the JS formatting options panel (no visible effect in browser-only playground)
Closed
#23 [Enhancement] Playground Guided tour: match /tools base64 button style and right-align in row
Closed
#11 [Enhancement] passport-scan: open MRZ crop/tilt immediately after upload or capture; run OCR from one clear “Extract / Scan MRZ” action
Closed
#42 [Feature] Native port: RegExr-style regex tool (#tools regex) — client UX; GPL; baseline gskinner/regexr
Closed
#46 [Enhancement] Move Tree of Life Knowledge from Learn menu to user dropdown (below User Profile, above Admin Panel)
Closed
#5 [Future] x86-64 assembly learning — Blink WASM + native Angular 21 UI
Closed
#86 Import Colorado trail data to production
Closed
#87 Import Honduras trail data to production
Closed
#85 Import Pennsylvania trail data to production
Closed
#84 Import West Virginia trail data to production
Closed
#83 Two-way trail marker/list selection on geography map
Closed
#36 [Enhancement] JS/TS playground: Prettier-backed Format provider for Monaco
Closed
#32 [Enhancement] JavaScript playground: Monaco debugger toolbar — Acorn AST–based stepping, breakpoints, vars, line decorate
Closed
#40 [Enhancement] Chess: Three.js display from partner chess3d; keep SpikerSoft logic
Closed
#31 [Enhancement] Migrate Clue-for-SQL (clue-for-sql.component) SQL editor from CodeMirror to Monaco — feature parity
Closed
#30 [Enhancement] Migrate lib-json-to-csv editors from CodeMirror to Monaco — feature parity
Closed
#29 [Enhancement] Migrate lib-csv-to-json editors from CodeMirror to Monaco — feature parity
Closed
#27 [Enhancement] Migrate lib-tools-json-to-csharp (QuickType) from CodeMirror to Monaco — feature parity
Closed
#28 [Enhancement] Migrate lib-tools-difference (DiffEditor / CodeMirror) to Monaco Diff Editor — feature parity
Closed
#26 [Enhancement] Migrate lib-diagram code panel from CodeMirror to Monaco — feature parity
Closed
#25 [Enhancement] Migrate lib-blockly generated code pane from CodeMirror to Monaco — feature parity
Closed
#24 [Enhancement] Migrate app-language-runner playgrounds (C#/Python/JS) from CodeMirror (@acrodata/code-editor) to Monaco — feature parity
Closed
#57 [High] Trail handlers return HTTP 400 instead of 404 for missing trails
Closed
#69 [Medium] Chess test suite asserts the weak move generator, not full legality (stalemate/checkmate gaps)
Closed
#55 [Critical] Chess: getPossibleMovesForPiece is incomplete (missing castling, en passant, double pawn push) - breaks checkmate/stalemate detection
Closed
#60 [High] Activity/knowledge query handlers load entire UserProfiles/UserActivities tables into memory
Closed
#62 [Medium] AggregateKnowledgeCommandHandler has N+1 queries per domain group
Closed
#56 [High] canRun enables Run button while local runtime is still loading (when SignalR is connected)
Closed
#58 [High] C# free-play CodeExecutionOptions dropped end-to-end on server path
Closed
#54 [Critical][Security] IDOR on GET /progress/domain/{domainKey} - any authenticated user can read another user's activity
Closed
#66 [Medium] FreePlayCodeExecutorFactory silently picks last duplicate registration
Closed
#64 [Medium] domain-detail route has no auth guard but API requires Authorize
Closed
#61 [High] requestNewAttempt failures are silently swallowed in language-runner
Closed
#63 [Medium] TrailValidator does not validate GeoJSON type or coordinate structure
Closed
#67 [Medium] quick-type activity tracking serializes full settings into metadata (privacy/size)
Closed
#68 [Medium] github-snake :host-context(:fullscreen) selector may not match when host enters fullscreen
Closed
#59 [High] Code execution TimeoutSeconds not enforced on worker
Closed
#65 [Medium] Dead BSON conversion methods in GetTrailByIdQueryHandler
Closed
#53 Section Learn > Legacy Systems, emulators wont works
Closed
#8 Lesson 100: Submission Error - Attempt Expired
Closed
#12 Err at C# 100
Closed
#1 Err at submit while printing Hello World; JavaScript Playground
Closed
#52 BUG at Chess game
Closed
#13 issue at C# Playground 102 while running locally
Closed
#51 bug while playing chess
Closed
#14 found display issue while at 50% width tab (browser pc);
Closed
#16 issue at Geography section at SM display items won't show on the left sidebar
Closed
#49 issue at starting page console return errs
Closed
#39 [Bug] Hiring: show menu for logged-out users; avoid Keycloak redirect for nav; keep backend protected
Closed
#20 [Bug] Playground: output pane shows previous lesson’s grade after navigating to another lesson
Closed
#48 issue at Learn > Legacy Systems
Closed
#50 Test issue from MCP automation
Closed
#7 Test Issue - MCP Integration Verification
905 Issues created by 3 users
Opened
#1 Err at submit while printing Hello World; JavaScript Playground
Opened
#2 [Future] Apache Guacamole + custom Angular 21 HTML5 remote desktop client
Opened
#3 [Future] OpenSC2K-style SimCity 2000 learning / creative sandbox (optional game)
Opened
#4 [Future] PHP in the browser (php-wasm) — learning / playground path
Opened
#5 [Future] x86-64 assembly learning — Blink WASM + native Angular 21 UI
Opened
#6 [Future] TypeScript curriculum + in-browser transpile (pnpm typescript, no CDN)
Opened
#7 Test Issue - MCP Integration Verification
Opened
#8 Lesson 100: Submission Error - Attempt Expired
Opened
#9 Lesson 101: greetTarget Function Returns Undefined
Opened
#10 [Bug] Registration / Verify account: SMS code field stays disabled after email verified (mdc-text-field--disabled)
Opened
#11 [Enhancement] passport-scan: open MRZ crop/tilt immediately after upload or capture; run OCR from one clear “Extract / Scan MRZ” action
Opened
#12 Err at C# 100
Opened
#13 issue at C# Playground 102 while running locally
Opened
#14 found display issue while at 50% width tab (browser pc);
Opened
#15 issue: new issue while offline mode: progress in tasks/lessons wont be saved
Opened
#16 issue at Geography section at SM display items won't show on the left sidebar
Opened
#18 github snake wont display properly in browser fullscreen mode
Opened
#20 [Bug] Playground: output pane shows previous lesson’s grade after navigating to another lesson
Opened
#21 [Enhancement] Playground: show historical graded output when revisiting completed lessons
Opened
#22 [Enhancement] app-lesson-sidebar: contain long lesson list (100vh / internal scroll vs virtual scroll)
Opened
#23 [Enhancement] Playground Guided tour: match /tools base64 button style and right-align in row
Opened
#24 [Enhancement] Migrate app-language-runner playgrounds (C#/Python/JS) from CodeMirror (@acrodata/code-editor) to Monaco — feature parity
Opened
#25 [Enhancement] Migrate lib-blockly generated code pane from CodeMirror to Monaco — feature parity
Opened
#26 [Enhancement] Migrate lib-diagram code panel from CodeMirror to Monaco — feature parity
Opened
#27 [Enhancement] Migrate lib-tools-json-to-csharp (QuickType) from CodeMirror to Monaco — feature parity
Opened
#28 [Enhancement] Migrate lib-tools-difference (DiffEditor / CodeMirror) to Monaco Diff Editor — feature parity
Opened
#30 [Enhancement] Migrate lib-json-to-csv editors from CodeMirror to Monaco — feature parity
Opened
#29 [Enhancement] Migrate lib-csv-to-json editors from CodeMirror to Monaco — feature parity
Opened
#31 [Enhancement] Migrate Clue-for-SQL (clue-for-sql.component) SQL editor from CodeMirror to Monaco — feature parity
Opened
#32 [Enhancement] JavaScript playground: Monaco debugger toolbar — Acorn AST–based stepping, breakpoints, vars, line decorate
Opened
#33 [Enhancement] C# playground: Monaco debugger toolbar — WASM + PDB (Blazor-class), breakpoints, stepping, vars
Opened
#34 [Enhancement] Python (Pyodide) playground: Monaco debugger toolbar — sys.settrace, stepping, vars, Monaco bridge
Opened
#35 [Enhancement] Playground toolbar: Format document (Monaco API, shortcuts, per-language formatter hooks) — platform
Opened
#36 [Enhancement] JS/TS playground: Prettier-backed Format provider for Monaco
Opened
#37 [Enhancement] Python (Pyodide) playground: Black or equivalent Formatter for Monaco
Opened
#38 [Enhancement] C# playground: Roslyn / dotnet formatter for Monaco
Opened
#39 [Bug] Hiring: show menu for logged-out users; avoid Keycloak redirect for nav; keep backend protected
Opened
#40 [Enhancement] Chess: Three.js display from partner chess3d; keep SpikerSoft logic
Opened
#41 [Feature] Native Angular port: Regexp People (regex) — logic & inspiration from ManzDev (approved)
Opened
#42 [Feature] Native port: RegExr-style regex tool (#tools regex) — client UX; GPL; baseline gskinner/regexr
Opened
#43 [Enhancement] C# playground: per-lesson completion tracking (tools:csharp-playground)
Opened
#44 [Enhancement] Python playground: per-lesson completion tracking (tools:python-playground)
Opened
#45 [Enhancement] JavaScript playground: per-lesson completion tracking (tools:javascript-playground)
Opened
#46 [Enhancement] Move Tree of Life Knowledge from Learn menu to user dropdown (below User Profile, above Admin Panel)
Opened
#47 [Enhancement] Legacy Systems (v86): self-host OS/disk catalogue parity with copy.sh/v86 — remove third‑party CDN dependency
Opened
#48 issue at Learn > Legacy Systems
Opened
#49 issue at starting page console return errs
Opened
#50 Test issue from MCP automation
Opened
#51 bug while playing chess
Opened
#52 BUG at Chess game
Opened
#53 Section Learn > Legacy Systems, emulators wont works
Opened
#54 [Critical][Security] IDOR on GET /progress/domain/{domainKey} - any authenticated user can read another user's activity
Opened
#55 [Critical] Chess: getPossibleMovesForPiece is incomplete (missing castling, en passant, double pawn push) - breaks checkmate/stalemate detection
Opened
#56 [High] canRun enables Run button while local runtime is still loading (when SignalR is connected)
Opened
#57 [High] Trail handlers return HTTP 400 instead of 404 for missing trails
Opened
#58 [High] C# free-play CodeExecutionOptions dropped end-to-end on server path
Opened
#59 [High] Code execution TimeoutSeconds not enforced on worker
Opened
#60 [High] Activity/knowledge query handlers load entire UserProfiles/UserActivities tables into memory
Opened
#61 [High] requestNewAttempt failures are silently swallowed in language-runner
Opened
#62 [Medium] AggregateKnowledgeCommandHandler has N+1 queries per domain group
Opened
#63 [Medium] TrailValidator does not validate GeoJSON type or coordinate structure
Opened
#64 [Medium] domain-detail route has no auth guard but API requires Authorize
Opened
#65 [Medium] Dead BSON conversion methods in GetTrailByIdQueryHandler
Opened
#66 [Medium] FreePlayCodeExecutorFactory silently picks last duplicate registration
Opened
#67 [Medium] quick-type activity tracking serializes full settings into metadata (privacy/size)
Opened
#68 [Medium] github-snake :host-context(:fullscreen) selector may not match when host enters fullscreen
Opened
#69 [Medium] Chess test suite asserts the weak move generator, not full legality (stalemate/checkmate gaps)
Opened
#70 [crash] unexpected crash at WASM Voxel Game after destroying bedrock
Opened
#71 [Enhancement] Chess: user-generated piece models via Trellis3D pipeline
Opened
#72 [Bug] Lessons passed offline appear locked again after page refresh
Opened
#73 [Bug] Offline pass with unverified server response regresses on next refresh
Opened
#74 JS step debugger: stepInto/Over/Out can freeze the tab on heavy steps
Opened
#75 JS step debugger: expandHandle() doesn't validate handle freshness across prepare()
Opened
#76 Blockly interpreter: "Stepped back" message lands at the end of the output log instead of inline
Opened
#77 Add monaco-prettier-formatter.service.spec.ts: lazy load, register idempotency, error channel
Opened
#78 JS formatting popover: format errors are silently dropped if user closes popover before async format completes
Opened
#79 Consider trimming endOfLine from the JS formatting options panel (no visible effect in browser-only playground)
Opened
#80 LanguageRunner: .prettierrc binding effects re-run on every Prettier option toggle even in beginner/lesson mode
Opened
#81 JS playground: .prettierrc canonicalizes user content immediately on successful parse (mid-edit surprise)
Opened
#82 Refactor: extract synthetic-file binding (.prettierrc) out of LanguageRunner into a dedicated helper
Opened
#83 Two-way trail marker/list selection on geography map
Opened
#84 Import West Virginia trail data to production
Opened
#85 Import Pennsylvania trail data to production
Opened
#86 Import Colorado trail data to production
Opened
#87 Import Honduras trail data to production
Opened
#88 clue for sql-off‑screen elementsThe elements at the top are not visible because they fall outside the screen area. This is noticeable as soon as the game starts.
Opened
#89 fishing game works?
Opened
#90 Regex lesson 3: start with g off + guided discoverability (flag pulse + hint highlights)
Opened
#91 Regex curriculum: systemic starter-flags fix + hover-discoverability hints + per-lesson audit
Opened
#92 Base64 tool: add editor-style menubar (File via ToolFileMenu, Encode/Decode toggles, Help + Tour right-aligned)
Opened
#93 JWT tool: add editor-style menubar (File via ToolFileMenu, Decode/Encode toggles, Help + Tour right-aligned)
Opened
#94 create x86 playground lessons
Opened
#95 Video call component: hardcoded 64px toolbar reservation over-reserves on mobile
Opened
#96 Activity telemetry: code-execution commands misattribute Python/JavaScript runs to csharp-playground domain
Opened
#97 [Bug] Video-call hub WebSocket fails in prod — /hubs/video-call missing from JWT auth allowlist
Opened
#98 [Bug] You can see (and try to call) yourself in the video-call user picker — chatService.userId non-reactive race
Opened
#99 [Bug] Video-call invite never reaches callee — VideoCallHub uses sub claim but picker addresses callee by sid from ChatHub
Opened
#100 [Bug] /api/Cluster/nodes 500s in prod — API container can't reach Docker daemon (EADDRNOTAVAIL)
Opened
#101 [Bug]: ReferenceError 'TouchEvent is not defined' on main screen
Opened
#102 test issue
Opened
#103 bug: Fishing Game icon not displaying on main screen
Opened
#104 bug: text rendering issues appear while scrolling down
Opened
#105 bug: DLL Compiler icon not rendering in tools menu
Opened
#106 [critical]: Loading animation triggers on every keystroke (accessibility hazard)
Opened
#107 bug: Calendar event description text displays as corrupted/garbled characters
Opened
#108 enhancement: Calendar location field needs autocompletion and suggestions for accessibility
Opened
#109 bug: Calendar event color changes not saved/persisted when editing
Opened
#110 bug: Calendar new event creation fails with "Bad request" error
Opened
#111 enhancement: Links section should open external links in new tabs
Opened
#112 x86 lessons: add server-side Blink re-execution to close the trust gap in BlinkX86LessonGradingExecutor
Opened
#113 bug: Blog interests list has rendering glitches when scrolling
Opened
#114 bug: Profile Mailing Address — State/Province field appears blank because Country must be selected first, but Country comes after State in the form
Opened
#115 bug: Admin sidebar Sponsorship badge count doesn't update after approving a pending profile
Opened
#116 x86 grader: 64-bit register expected values lose precision over the wire
Opened
#117 bug: Activity tracking yanks anonymous visitors to the Keycloak login page
Opened
#118 Image-to-icon converter. It does not work as expected.
Opened
#119 Image-to-Icon Converter: icono pixelado
Opened
#120 Image-to-Icon Converter: icono pixelado
Opened
#121 bug: The compiler DLL has no icon
Opened
#122 bug: blocky visual code delete button
Opened
#123 bug in regular expressions test tex
Opened
#124 Bug: Minecraft - Playing Underwater
Opened
#125 Minecraft Bug - Water generation creates a visual barrier and some white spots resembling particles.
Opened
#126 bug: dungeon crawler menu
Opened
#127 bug: space game - Top-right text not visible.
Opened
#128 bug Space Game: Text is not visible and does not occupy the proper space on the screen.
Opened
#129 bug: Parent's child sponsorship toggle bypasses the profile-completion check that admin approval enforces
Opened
#130 enhancement: Configure OpenTelemetry sampling for API/workers so telemetry stays cheap on constrained hosts
Opened
#131 enhancement: One-shot bootstrap container for startup seeders (move out of API cold path)
Opened
#132 architecture: SQL Playground as first-class LessonStrategy — DuckDB WASM + worker grading + language-runner parity
Opened
#133 JavaScript Playground: Start debugging runs lesson code after switching to sandbox
Opened
#134 JS Playground: CDK resizable panes (files, editor, variables, console) + localStorage
Opened
#135 JS Playground: Swap Files panel with Variables/Console column + persist
Opened
#136 JS Playground: File / Mode / View / Options / Help menu bar + Guided Tour right
Opened
#137 C++ playground / lessons: in-browser compile & run (wasm-clang-style)
Opened
#138 sql: authoritative server-side regrade — SqlLessonGradingExecutor + worker registration
Opened
#139 sql: sandbox starter schema — give the empty DuckDB connection something to query
Opened
#140 sql: theme-switch UX polish — feedback, output reset, lesson instructions reload
Opened
#141 sql: SqlStudentCodeHintAnalyzer — pre-flight hints for the classic SQL pitfalls
Opened
#142 SQL Playground: Cross-pane keyword highlighting between lesson instructions and Data Sources
Opened
#143 Visual Bug: Space Game Text
Opened
#144 Visual Bug: Space Game Text
Opened
#145 Bug: Space game not working
Opened
#146 ## Issue Report [BUG]: Incorrect Mouse Control Instructions in HexTile Game
Opened
#147 ## [Bug] Incorrect Mouse Click Behavior in HexTile Game # 2
Opened
#148 ## [Bug] Unexpected Empty Container and Non-Functional AI Chat at Contact Page
Opened
#149 ## [UI] Missing Icon for X Button in Social Media Section
Opened
#150 ## [Bug] Invalid or Non-Functional Social Media and External Links on Contact Page
Opened
#151 ## [Bug] Incorrect Escape Sequence Handling in C++ Playground Output
Opened
#152 ## [Bug] JavaScript Playground Stuck on “Running Tests” After Submission
Opened
#153 ## [Bug] Missing Hover Definitions and Concept Registry in Python Playground Lessons
Opened
#154 C# Suggestion: Unnecessary double-tap on the Continue button
Opened
#155 ## [Bug] Code Reset After Submission in Python Playground
Opened
#156 ## [Bug] Intermittent Scroll Behavior in “Concept” Container
Opened
#157 C#: Sandbox — The text shifts while typing
Opened
#158 ## [Enhancement] Add Post-Submission Notifications and Improved Lesson Navigation in Playgrounds
Opened
#159 Problem with the header when translating with Google Translate
Opened
#160 ## [Enhancement] Unlock “Next Lesson” Button After Successful Submission
Opened
#161 ## [Bug] Missing or Incorrect Hover Definitions in Python Playground Lessons
Opened
#162 Error: Http failure response body: Error: Http failure response for https://api.spikersoft.com/api/CSharpCodeRunner/run: 500 OK
Opened
#163 ## [Enhancement] Add Interactive / ASMR-Style Video Explanations to Playgrounds
Opened
#164 ## [Bug] Code Container Scroll Not Working in Playgrounds
Opened
#165 C# Bug: Lesson 5 button "Try" in the editor does nothing
Opened
#166 Bug: Dungeon Crawler - Menu does not respond after character creation
Opened
#167 Bug: Minecraft - Water visual glitch shows flat panel reflection
Opened
#168 Bug: Space Game - Start text hidden behind page header
Opened
#169 Bug: Space Game - White screen after ship creation, game does not load
Opened
#170 Bug: Deploy Defender - Black screen on start, game does not load
Opened
#171 Bug: Hex Tower Defense - Blurry text in menus and gameplay
Opened
#172 Bug: Game dropdown menu - Some game names not translated to Spanish
Opened
#173 Bug: Detective SQL - Backend texts not translated (incomplete i18n)
Opened
#174 Bug: Jobs board - Mixed translation in job cards (some fields translated, others not)
Opened
#175 Bug: Contact AI chat - Empty square, never loads, backend not responding
Opened
#176 Bug: Contact AI assistant - Chat input and file upload unresponsive
Opened
#177 Suggestion : Contact/Company Info - Learning platform link text barely legible
Opened
#178 Bug: Contact page - X (Twitter) icon does not load, shows empty blue container
Opened
#179 Suggestion: Icon-text alignment issues in Contact/Company Info
Opened
#180 Bug: Incomplete translation in Sponsorship section - main info still in English
Opened
#181 Bug: Calendar section - Event creation form fields unresponsive
Opened
#182 Bug: C# Sandbox - Cannot type code, keyboard input unresponsive
Opened
#183 Navigation bug when switching between C# lessons with Sandbox open
Opened
#184 ## [Bug] Text on Home Page Should Not Be Selectable
Opened
#185 ## [Enhancement] Move Language Selector to Navigation Header with Flag Icon
Opened
#186 ## [Bug] Translation Error in Homepage Headline
Opened
#187 ## [Bug] Incorrect Spanish Translation of “Stories from the Road”
Opened
#188 ## [Bug] Translation Tone Issue in Call-to-Action Section
Opened
#189 ## [Bug] Country Data Displayed in English While Spanish Mode Is Active
Opened
#190 ## [Bug] Interest Filter Labels Displayed in English While Spanish Mode Is Active
Opened
#191 ## [Bug] Unexpected Crash in Space Game — Firefox Window Turned White
Opened
#192 ## [Bug] SQL Playground Returns 404 Error When Accessed from Integration Tests
Opened
#193 ## [Bug] Text Input Box Unresponsive and Text Not Displayed Correctly in Fundraising Creation Modal
Opened
#194 ## [Bug] Placeholder Text Overlaps and Causes Interaction Issues in Fundraiser Item Name Field
Opened
#195 ## [Bug] Cost Input Field Accepts Non-Numeric Characters and Prevents Saving in Fundraiser Setup
Opened
#196 ## [Bug] Incomplete or Missing Translations in JavaScript Playground Instructions
Opened
#197 ## [Bug] Missing or Incomplete Translations in C# Playground Lessons
Opened
#198 ## [Bug] Missing or Incomplete Translations in Python Playground Lessons
Opened
#199 ## [Bug] Missing or Incomplete Translations in C Playground Lessons
Opened
#200 ## [Bug] Missing or Incomplete Translations in C++ Playground Lessons
Opened
#201 ## [Bug] Missing or Incomplete Translations in x86 Playground Interface
Opened
#202 ## [Bug] Missing or Incomplete Translations in Regex Playground Lessons
Opened
#203 ## [Bug] Missing or Incomplete Translations in SQL Playground Lessons
Opened
#204 Bug: Learn C# - reload example in editor button not working
Opened
#205 Bug: Execute code in sandbox returns 500 error
Opened
#206 Bug: C# Lesson 2 - missing translation (partially untranslated)
Opened
#207 Bug: C# Lesson 3 - missing translation (partially untranslated)
Opened
#208 Bug: C# Lesson 4 - missing translation (partially untranslated)
Opened
#209 Bug: C# Lesson 5 - missing translation (partially untranslated)
Opened
#210 Bug: C# Lesson 6 - missing translation (partially untranslated)
Opened
#211 Bug: Partial translation in lesson dropdown menu
Opened
#212 Bug: Partial translation in View dropdown menu
Opened
#213 Bug: Concepts section - inconsistent translation
Opened
#214 Bug: C# Hello World lesson - grading error due to browser compilation conflict
Opened
#215 Bug: C# Hello World exercise partially translated
Opened
#216 ## [Bug] Missing or Unimplemented Translations in Login Page
Opened
#217 ## [Bug] Low Contrast Between Text and Background in Calendar Action Buttons
Opened
#218 ## [Bug] Twitter (X) SVG Icon Fails to Render Correctly in Social Media Section
Opened
#219 chore: upgrade to Angular v22 + latest Nx
Opened
#220 ## [Bug] Untranslated Literal “Playground lessons and sandbox” in C# Lesson Header
Opened
#221 ## [Bug] Lesson Progress and Account State Are Lost After ~10 Minutes of Inactivity (AFK)
Opened
#222 ## [Bug] Lesson Code Temporarily Visible After Hard Refresh Before Lesson Instructions Load
Opened
#223 [Bug] Progress can be lost in "In-Browser Compile" mode after completing a lesson then hard-refreshing
Opened
#224 Bug: Space Game - clicking the viewport grabs pointer lock and makes modal HUDs (e.g. "Select Your Ship") unclickable; add keyboard navigation
Opened
#225 [Bug] Registration verification email never sent in Production — InitiatePreRegistration hits the NoOpEmailService API edge stub
Opened
#226 [Tech debt] Migrate remaining IEmailService callers to SendEmailCommand (follow-up to #225)
Opened
#227 [Observability] Add deep SMTP health check (TLS + AUTH) to SpikerSoft.EventHandlers.Notifications
Opened
#228 [Bug] Minecraft (wasm-voxel) leaks global mouse/keyboard listeners that break input app-wide after leaving the game
Opened
#229 chore(deps): frontend dev/build/test tooling — minor & patch roll-up
Opened
#230 chore(deps): frontend app-runtime libraries — minor & patch roll-up
Opened
#231 chore(deps): PDF viewer stack major — ngx-extended-pdf-viewer 28 + pdfjs-dist 6
Opened
#232 chore(deps): Blockly 12 → 13 (major)
Opened
#233 chore(deps): @fortawesome/angular-fontawesome 4 → 5 (major)
Opened
#234 chore(deps): Node dev-tooling majors — concurrently 10, lint-staged 17, @babel/preset-typescript 8
Opened
#235 chore(deps): pnpm 11.1.2 → 11.7.0 + config migration (deferred from #229)
Opened
#236 chore(deps): unpin @types/google.maps (3.65.x DrawingManager typings) (deferred from #230)
Opened
#237 chore(deps): unpin ovenplayer (0.10.51 media-captions crashes under vitest/SSR)
Opened
#238 test: library specs fail on cold cache (missing Storage polyfill in vitest setup)
Opened
#239 chore(deps): patch roll-up — amcharts5 5.19.1, storybook 10.4.6
Opened
#240 [Bug] SonarQube S4275: property setter assigns the wrong field (FileUploadScan)
Opened
#241 [Bug] SonarQube S2871: Array.sort() without a reliable comparator
Opened
#242 [Bug] SonarQube S7059: async operation inside a constructor
Opened
#243 [Bug] SonarQube: assorted single-site reliability bugs (S7497, S7930, S3516, S7727)
Opened
#244 [Tech debt] SonarQube S3776: reduce cognitive complexity (~51 backend methods)
Opened
#246 [Tech debt] SonarQube S1215: remove GC.Collect() calls (8 backend)
Opened
#245 [Tech debt] SonarQube S4487: remove unread private fields (12 backend)
Opened
#247 [Tech debt] SonarQube S2696: static field written from instance method (3 backend)
Opened
#248 [Tech debt] SonarQube S2368: public method exposes jagged/multidimensional array (TrailGeometry)
Opened
#249 [Tech debt] SonarQube: assorted backend code smells (S2699, S2365, S3973, S131, email-verified.html)
Opened
#250 [Tech debt][Epic] SonarQube: frontend HIGH/BLOCKER maintainability smells (~1,675)
Opened
#251 Contact page overhaul: real messaging, staff-aware live support, management inbox
Opened
#252 C# local-grading (In-Browser Compile) lesson completion reverts after a force reload
Opened
#253 Server-verify C# In-Browser Compile passes (award skills + cross-device sync)
Opened
#254 [Bug] Join SpikerSoft signup accepts spaces in the username
Opened
#255 [Bug] Basic Info step: availability error banner persists after the error is corrected
Opened
#256 [Bug] Registration password strength label (WEAK/MEDIUM/STRONG) is not translated
Opened
#257 [Bug] Registration password does not enforce uppercase/lowercase/special-character complexity
Opened
#258 [Bug] Registration verification email never delivered — notifications email worker is not built/deployed (+ Email/Smtp config-key mismatch)
Opened
#259 complete-tutorial browser-grading allowlist is stale — omits RoslynCSharp, DuckDbSql, ClangC, ClangCpp
Opened
#260 Pre-registration phone verification broken: API resolves NoOpTwilioVerifyService edge stub instead of dispatching to Notifications worker
Opened
#261 Twilio Verify worker handlers read wrong config key (Twilio:VerificationServiceSid vs Twilio:VerifyServiceSid)
Opened
#262 Registration Date of Birth field: auto-format typed dates (insert slashes) as MM/DD/YYYY
Opened
#263 [Bug] Notifications worker crashes on SendVerificationCodeCommand — IMongoClient is never registered
Opened
#264 [Bug] Twilio SMS config-key mismatch — handlers read Twilio:PhoneNumber, but appsettings + deploy docs use Twilio:FromNumber (dead MessagingServiceSid)
Opened
#265 Language playground UX enhancements: unified action buttons + results in right pane (no-scroll layout)
Opened
#266 Self-service account deletion + personal data export (GDPR-style "delete my account" / "download my data")
Opened
#267 # [Bug] Missing translations at C# Playground
Opened
#268 # [Bug] Missing translations at Python Playground
Opened
#269 # [Bug] Missing translations at JavaScript Playground
Opened
#270 # [Bug] Missing translations at C Playground
Opened
#271 # [Bug] Missing translations at C++ Playground
Opened
#272 # [Bug] Missing translations at x86 Playground
Opened
#273 # [Bug] Missing translations at Regex Playground
Opened
#274 # [Bug] Missing translations at SQL Playground
Opened
#275 # [Bug] Language switch inconsistency across all playgrounds
Opened
#276 # [Bug] Broken external link: UnrealEngine Repository (GitHub)
Opened
#277 # [Bug] Scroll malfunction in Cyborg Joey chat container
Opened
#278 # [Enhancement] Add dynamic State/Province selection or autocomplete in Profile configuration
Opened
#279 [Content] Spanish lesson instructions & hints untranslated across all playground tracks
Opened
#280 # [Bug] Lesson submission fails with “400 OK” error in JavaScript Playground
Opened
#281 # [Enhancement] Add visual and audio feedback for game results and moves in Chess module
Opened
#282 # [Bug] Unintended HUD element movement during fast clicking in Deploy Defender
Opened
#283 # [Bug] “Book Processing” button visible during gameplay in WASM Voxel Game
Opened
#284 # [Enhancement] Reposition misplaced UI containers for better visibility in WASM Voxel Game
Opened
#285 [Enhancement] Rename CSharpCodeRunnerController to a language-agnostic name
Opened
#286 [Enhancement] Remove deprecated /api/CSharpCodeRunner alias route (follow-up to #285)
Opened
#287 Host-level remediation + security monitoring across the swarm
Opened
#288 # [Bug] Missing Spanish Translations in C# Playground
Opened
#289 # [Bug] Missing Spanish Translations in Python Playground Lessons
Opened
#290 # [Bug] Missing Spanish Translations in JavaScript Playground Lessons
Opened
#291 # [Bug] Missing Spanish Translations in C Playground Lessons
Opened
#292 # [Bug] Missing Spanish Translations in C++ Playground Lessons
Opened
#293 # [Bug] Missing Spanish Translations in Assembler (x86) Playground Lessons
Opened
#294 # [Bug] Missing Spanish Translations in Regex Playground Hints
Opened
#295 # [Bug] Missing Spanish Translations in SQL Playground Lessons
Opened
#296 [Epic][Bug] Localize lesson code-template comments (Spanish) across all playgrounds
Opened
#297 Ops console for host incidents & security alerts (API + Angular page), dev-ops/admin only
Opened
#298 Specialize keycloak-admin library toward SpikerSoft staff roles & permission delineation
Opened
#299 [Epic #296 follow-up] codeTemplate overlay never reaches C/C++/x86/SQL/Regex starters (plan-embedded, not BuiltAttempt.CodeTemplate)
Opened
#300 Add unit test coverage for #287 host remediation + security monitoring services
Opened
#301 Localize the Concept Reference dictionary panels (C#, Python, C, C++ playgrounds)
Opened
#302 [Bug] Frontend CI: profile.component.spec.ts fails with NG0201 (No provider found for Keycloak)
Opened
#303 [Perf/i18n] Split Transloco into scoped, lazily-loaded translation files
Opened
#304 [Perf/i18n] Deliver Concept Reference overlays per active locale (not all-languages-baked)
Opened
#305 [Spike] Reactive query/cache layer for lesson catalog + progress (evaluate options, incl. TanStack)
Opened
#306 [Spike] Stream code-execution output incrementally over the existing SignalR channel
Opened
#307 [Epic] Full-coverage Playwright E2E walk of the Angular app with live Jaeger + Seq telemetry
Opened
#308 /geography crashes on anonymous load — uncaught exception, component body never mounts
Opened
#309 /ai renders blank for anonymous visitors — app-root stays visibility:hidden
Opened
#310 /blog crashes with uncaught exception when the posts API is unreachable
Opened
#311 Rate-limited API responses (429) carry no CORS headers — browser masks them as CORS errors
Opened
#312 GET /api/interests requires auth but the public /geography page calls it anonymously (401)
Opened
#313 [E2E P0] Harness & telemetry foundation
Opened
#314 [E2E P1] Anonymous walk — every public route + primary actions
Opened
#315 [E2E P2] data-testid selector convention across walked components
Opened
#316 [E2E P4] Authenticated core journeys
Opened
#317 [E2E P5] Parent & family flows
Opened
#318 [E2E P3] Registration & verification flow (email code + Twilio SMS hook)
Opened
#319 [E2E P6] Staff/Admin surfaces
Opened
#320 [E2E P7] Realtime & media flows
Opened
#321 [E2E P8] Coverage gate — route-manifest report in CI, ratchet to 100%
Opened
#322 Decompose project knowledge into Cursor rules, skills, and AGENTS.md guardrails
Opened
#323 [Epic] Playground uniformity & lesson content layers (C / C++ / JavaScript / Python / C#)
Opened
#324 [Playgrounds P1] Migrate JavaScript playground onto LanguagePlaygroundShellComponent
Opened
#325 [Playgrounds P2] Shell parity audit — C / C++ / Python vs C# small-gap sweep
Opened
#326 [Playgrounds P3] Books layer — curated book links per subject/section in the shared shell
Opened
#327 [Playgrounds P4] Text layer — SpikerSoft-authored prose per section (our own book, in-shell)
Opened
#328 [Playgrounds P5] Videos layer — official per-lesson + student-submitted / staff-approved per lesson block
Opened
#329 [Spike] Completion-ratio unlocks for anonymous users — contribute to see more; account unlocks everything
Opened
#330 [Spike] Duolingo-style progression visualization — optional, menu-launched, sounds, younger audience
Opened
#331 [Ratio unlocks 1/2] Backend: anonymous sessions, graded anon progress, horizon, sign-in claim
Opened
#332 [Ratio unlocks 2/2] Frontend: anon lesson mode, horizon locks, claim celebration, funnel events
Opened
#333 feat(my-journey): winding-path progression visualization — optional, menu-launched (frontend)
Opened
#334 feat(lessons): thin GET /api/Lessons/journey aggregation for My Journey
Opened
#335 feat(my-journey): daily streaks + streak-milestone feedback (fast-follow, deferred from #330)
Opened
#336 [Playgrounds P5a] Videos backend foundation — LessonVideo model, submission + moderation endpoints, approved-read path
Opened
#337 [Playgrounds P5b] Video media pipeline — upload, virus scan, transcode + thumbnail, storage/serving (event-driven)
Opened
#338 [Playgrounds P5c] Admin moderation queue for community videos (frontend)
Opened
#339 [Playgrounds P5d] Videos tab in the playground shell + submit flow (frontend)
Opened
#340 [Bug] /keycloak-admin is reachable by any authenticated account — AuthGuard only, no RoleGuard
Opened
#341 [Bug] /api/system/version rate limiter rejects with 503 instead of 429 (RejectionStatusCode default)
Opened
#342 [Bug] Blockly tool crashes on load — ViewChild resolves undefined under *transloco (same class as diagram #314 finding)
Opened
#343 [Bug] /tree-of-knowledge calls GET /api/activity/progress anonymously → 401 console error (class of #312)
Opened
#344 [CI] SonarQube Scan workflow red on every spikersoft-angular run — CE task fails server-side during report processing
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
#412 [Correctness][Go-live] Repair or gate non-functional features (Trellis 3D, decompiler, phone lookup)
Opened
#413 [Infra][Architecture] Provider-agnostic object storage (MinIO -> S3/Azure Blob) to replace GlusterFS/host-path model
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
#481 [Bug][Infra] jaeger_elasticsearch down ~24h on SERVER (exit 1) — MaxAttempts exhausted, tracing backend offline
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
#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
#518 [ArtPipe] Baked images Phase 2: stood-down residents blender/sdxl/triposr, hunyuan deferred (epic #515)
Opened
#517 [ArtPipe] Baked images Phase 1: SafetyCheck pilot image + cutover, incl. #486 fault isolation (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
#527 [Infra][MinIO] Migrate /mnt/fusionio/spikersoft/ai → ai-models bucket for embeddings + quiz-generation (epic #413)
Opened
#528 [Backend][MinIO] Replace API static-file media serving with S3-backed delivery (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
#533 [Backend][Refactor] Shared IObjectStore/S3 registration — dedupe per-service AmazonS3Client blocks (epic #413)
Opened
#532 [Infra][MinIO] Optional: replace sftp stack with MinIO SFTP mode (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
#544 [Security][Infra] OpenBao Phase 0: swarm stack + init/unseal runbook + Keycloak OIDC (epic #543)
Opened
#545 [Security][CI] OpenBao Phase 1: Gitea Actions secrets → AppRole fetch; rotate the committed runner token (epic #543)
Opened
#547 [Security][Infra] OpenBao Phase 3: PKI — internal CA, replace CI cert generation, mTLS for the stateful tier (epic #543)
Opened
#546 [Security][Backend] OpenBao Phase 2: SpikerSoft.Secrets host-builder seam — service creds from Bao (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
#645 [GameServer][Bug] Projectile hit checks ignore the previous position (tunneling) and spam Warning-level logs per player per tick — CampZone + DungeonZone
Opened
#644 [Security][Chat] CrossOrganization channels are accessible to EVERYONE — CanAccessChannel returns true unconditionally ('Simplified for now')
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
#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
#755 note(art-studio): Stacked/Touchup saves are canvas exports — camera EXIF lost, photo-info panel sparse
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
#847 Art Studio: reproduce and vary a recorded run (#842)
Opened
#846 Art Studio: text+image concept, and fix image-upload submissions (#842)
Opened
#848 Art Studio UI: show what made an asset, and let a user remake it (#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