2026-05-19 - 2026-05-22
Overview
36 Issues closed from 1 user
Closed
#102 [priority: high] Bloated state types — GameState (71 fields), CombatState (58), PrestigeState (39)
Closed
#103 [priority: high] gameStore.ts tick() orchestrates 7 stores with tangled cross-store coupling
Closed
#99 [priority: high] 10+ monster functions (>150 LOC) with deep nesting and high cyclomatic complexity
Closed
#100 [priority: high] Duplicate functions across files (calculateDesignTime, calculateDesignCapacityCost, generateSwarmEnemies)
Closed
#98 [priority: critical] 13+ files use as any type casts bypassing TypeScript's type safety
Closed
#97 [priority: critical] Near-zero test coverage — 155 of 235 files untested, including all core game logic
Closed
#96 [priority: critical] Legacy store.ts coexists with modular stores/ — incomplete migration
Closed
#95 [priority: critical] 3 import cycles in production code (store↔utils, equipment↔utils, golems↔utils)
Closed
#94 [priority: 4] Recreate Spire Combat Page — Full Spire Climbing Experience
Closed
#87 [priority: 4] Recreate Crafting Tab with Fabricator and Enchanter Sub-Tabs
Closed
#93 [priority: 4] Recreate Spire Summary Tab (Outside Spire)
Closed
#89 [priority: 4] Recreate Guardian Pacts Tab (Invoker Attunement)
Closed
#88 [priority: 4] Recreate Golemancy Tab — Golem Loadout Configuration
Closed
#90 [priority: 4] Recreate Equipment Tab — Equip/Unequip Gear
Closed
#91 [priority: 4] Recreate Prestige Tab — Insight Upgrade Purchasing
Closed
#86 [priority: 4] Recreate Attunements Tab
Closed
#92 [priority: 4] Recreate Debug Tab — Modular Debugging Functions
Closed
#85 [priority: 4] Recreate Achievements Tab
Closed
#75 [priority: 4] Main game component (page.tsx) has 12+ individual store subscriptions causing excessive re-renders
Closed
#76 [priority: 3] createGatherMana hardcodes click mana to 1 — ignores all skill/upgrade bonuses
Closed
#77 [priority: 3] tick() passes empty skill objects to computeMaxMana/computeRegen — skill bonuses ignored
Closed
#72 [priority: 4] calcDamage called with empty skills — all skill-based damage bonuses ignored in combat
Closed
#74 [priority: 4] use-toast.ts listener leak — duplicate listeners accumulate on every state change
Closed
#71 [priority: 4] uiStore not persisted — paused/gameOver/victory lost on page refresh
Closed
#73 [priority: 4] useGameLoop recreates interval every tick due to unstable tick reference
Closed
#70 [priority: 4] discipline-slice.ts mutates nested element objects directly — bypasses Zustand reactivity
Closed
#68 [priority: 5] Special effects (Executioner/Berserker) completely broken — hasSpecial({}) always false
Closed
#69 [priority: 5] 23 missing test files — test suite is completely broken
Closed
#84 [priority: 6] Consolidate all tab components into src/components/game/tabs/
Closed
#78 [priority: 3] cancelDesign logic inverted — cancels wrong design slot
Closed
#79 [priority: 3] startDesigningEnchantment never uses designProgress2 slot (Enchant Mastery broken)
Closed
#80 [priority: 3] Combat store partialize missing floorHP/floorMaxHP/castProgress — state lost on refresh
Closed
#81 [priority: 3] Prestige store partialize missing defeatedGuardians/signedPacts/pact progress
Closed
#82 [priority: 3] SteadyStream has identical behavior to EternalFlow — latent bug
Closed
#83 [priority: 3] Mana Tide pulse factor incorrect — ranges 0.5x-1.0x instead of 0.5x-1.5x
Closed
#67 Codebase Audit: Data, Constants & Types Analysis
37 Issues created by 1 user
Opened
#67 Codebase Audit: Data, Constants & Types Analysis
Opened
#68 [priority: 5] Special effects (Executioner/Berserker) completely broken — hasSpecial({}) always false
Opened
#69 [priority: 5] 23 missing test files — test suite is completely broken
Opened
#70 [priority: 4] discipline-slice.ts mutates nested element objects directly — bypasses Zustand reactivity
Opened
#71 [priority: 4] uiStore not persisted — paused/gameOver/victory lost on page refresh
Opened
#72 [priority: 4] calcDamage called with empty skills — all skill-based damage bonuses ignored in combat
Opened
#73 [priority: 4] useGameLoop recreates interval every tick due to unstable tick reference
Opened
#74 [priority: 4] use-toast.ts listener leak — duplicate listeners accumulate on every state change
Opened
#75 [priority: 4] Main game component (page.tsx) has 12+ individual store subscriptions causing excessive re-renders
Opened
#76 [priority: 3] createGatherMana hardcodes click mana to 1 — ignores all skill/upgrade bonuses
Opened
#77 [priority: 3] tick() passes empty skill objects to computeMaxMana/computeRegen — skill bonuses ignored
Opened
#78 [priority: 3] cancelDesign logic inverted — cancels wrong design slot
Opened
#79 [priority: 3] startDesigningEnchantment never uses designProgress2 slot (Enchant Mastery broken)
Opened
#80 [priority: 3] Combat store partialize missing floorHP/floorMaxHP/castProgress — state lost on refresh
Opened
#81 [priority: 3] Prestige store partialize missing defeatedGuardians/signedPacts/pact progress
Opened
#82 [priority: 3] SteadyStream has identical behavior to EternalFlow — latent bug
Opened
#83 [priority: 3] Mana Tide pulse factor incorrect — ranges 0.5x-1.0x instead of 0.5x-1.5x
Opened
#84 [priority: 6] Consolidate all tab components into src/components/game/tabs/
Opened
#85 [priority: 4] Recreate Achievements Tab
Opened
#86 [priority: 4] Recreate Attunements Tab
Opened
#87 [priority: 4] Recreate Crafting Tab with Fabricator and Enchanter Sub-Tabs
Opened
#88 [priority: 4] Recreate Golemancy Tab — Golem Loadout Configuration
Opened
#89 [priority: 4] Recreate Guardian Pacts Tab (Invoker Attunement)
Opened
#90 [priority: 4] Recreate Equipment Tab — Equip/Unequip Gear
Opened
#91 [priority: 4] Recreate Prestige Tab — Insight Upgrade Purchasing
Opened
#92 [priority: 4] Recreate Debug Tab — Modular Debugging Functions
Opened
#93 [priority: 4] Recreate Spire Summary Tab (Outside Spire)
Opened
#94 [priority: 4] Recreate Spire Combat Page — Full Spire Climbing Experience
Opened
#95 [priority: critical] 3 import cycles in production code (store↔utils, equipment↔utils, golems↔utils)
Opened
#96 [priority: critical] Legacy store.ts coexists with modular stores/ — incomplete migration
Opened
#97 [priority: critical] Near-zero test coverage — 155 of 235 files untested, including all core game logic
Opened
#98 [priority: critical] 13+ files use as any type casts bypassing TypeScript's type safety
Opened
#99 [priority: high] 10+ monster functions (>150 LOC) with deep nesting and high cyclomatic complexity
Opened
#100 [priority: high] Duplicate functions across files (calculateDesignTime, calculateDesignCapacityCost, generateSwarmEnemies)
Opened
#101 [priority: high] Inconsistent error handling — mixed return-null/throw/false patterns with no error context
Opened
#102 [priority: high] Bloated state types — GameState (71 fields), CombatState (58), PrestigeState (39)
Opened
#103 [priority: high] gameStore.ts tick() orchestrates 7 stores with tangled cross-store coupling