Commit Graph

226 Commits

Author SHA1 Message Date
n8n-gitea 47b2a0bdc7 feat: TASK-001 - Playwright E2E test setup + baseline tests
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 33s
- Added @playwright/test as dev dependency
- Created playwright.config.ts with Chromium config and webServer setup
- Created e2e/combat.spec.ts (5 tests for spire mode, floor display)
- Created e2e/enchanting.spec.ts (4 tests for design/crafting tab, enchant flow)
- Created e2e/equipment.spec.ts (5 tests for equip, slots, 2H blocking)
- Created docs/tasks/TASK-001-playwright-setup.md
- All 13 E2E tests passing
2026-05-11 13:25:57 +02:00
n8n-gitea f6bf049f91 Fix 3 bugs: equip crash, enchantment not processing, spire spell casting
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m43s
Bug 1: EquipmentTab handleEquip was passing useCombatStore to equipItem()
which needs the crafting store (has equipmentInstances/equippedInstances).
Fixed by using useCraftingStore instead.

Bug 2: processCraftingTick() from crafting-slice.ts was never called in the
game tick loop. Added call in tick-logic.ts when currentAction is
'design'/'prepare'/'enchant'/'craft' so enchantment progress advances.

Bug 3: equipmentSpellStates was initialized as [] and never populated from
equipped items. Added logic in tick-logic.ts to build equipmentSpellStates
from active equipment spells when climbing (currentAction === 'climb').
2026-05-11 12:07:12 +02:00
n8n-gitea ae0bf3e38d fix(spire): reset currentAction to meditate on spire exit; fix(crafting): wire enchanting state hooks to EnchantmentDesigner/Preparer/Applier
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m53s
2026-05-10 21:28:46 +02:00
n8n-gitea cad72fe88c Fix build error in SpireActiveSpells.tsx - resolve JSX parsing issue with template literals
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m45s
- Fixed unclosed template literal in className attribute
- Added missing imports (Mountain, ELEMENTS) in SpireGolems.tsx
- Build now passes successfully
2026-05-08 15:28:13 +02:00
n8n-gitea d1c90cd544 fix: SpireTab refresh - cast bar, mana costs, full-screen mode, exit button
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m14s
2026-05-08 14:57:35 +02:00
n8n-gitea d496dd241b docs: add spec for SpireTab refresh and casting fixes
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m36s
2026-05-08 14:16:32 +02:00
n8n-gitea c7f024f2e3 docs: update AGENTS.md to reference project-structure.txt and clarify legacy store status
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m36s
2026-05-08 13:55:45 +02:00
n8n-gitea 4eeb258d30 docs: update AGENTS.md to reflect store-modules deprecation and utils/ migration
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 24s
2026-05-08 13:49:30 +02:00
n8n-gitea 2130d30133 fix: resolve mana conversion, Spire/Grimoire tab errors, and legacy store references
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m33s
- Fix mana conversion to deduct from regen instead of mana pool (resolves player stuck at 1 mana below cap)
- Fix Spire Tab error by removing unused legacy import (store-modules/enemy-utils)
- Fix Grimoire Tab error by adding Array.isArray check for effects.map
- Move utility functions from legacy store-modules to utils/ to eliminate legacy dependencies
- Add regression test for mana conversion fix
- Update SpellsTab.tsx imports to use utils instead of legacy stores
2026-05-08 13:48:53 +02:00
n8n-gitea e4fb66df9f fix: Spire tab maxFloorReached undefined error
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m43s
2026-05-08 13:24:37 +02:00
n8n-gitea c6d3e0d7bc fix: resolve test failures in skill, regen, spell-cost test files
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m33s
2026-05-08 12:04:42 +02:00
n8n-gitea 71fbc7c964 fix: SpireTab store props, mana regen display, skill cost deduction, grimoire cost format, unequip store, add test suite
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m34s
2026-05-08 11:45:31 +02:00
n8n-gitea 0fadbfef4a Fix skill study mana deduction in skillStore.ts
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m38s
- Added useManaStore import to skillStore.ts
- Added mana deduction logic in startStudyingSkill action
- Mana is now properly deducted when starting to study a skill (unless already paid)
2026-05-08 11:01:01 +02:00
n8n-gitea 58aa74486e fix: BUG 4 - Add starting equipment to craftingStore initial state
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m9s
2026-05-07 14:07:23 +02:00
n8n-gitea be918d1bab fix: revert craftingStore.ts to working state, partial BUG 4 fix remaining
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m11s
2026-05-07 13:58:31 +02:00
n8n-gitea 482320b519 fix: apply DebugName wrappers to tab components (BUG 7 partial) and other updates
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m12s
2026-05-07 13:32:04 +02:00
n8n-gitea 32a86c3e62 Fix Bug 8: Replace direct setState calls with proper store actions in debug components
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m8s
- SkillDebug.tsx: Use useSkillStore.getState().incrementSkillLevel() and setSkillLevel() instead of direct setState
- ElementDebug.tsx: Use getState() for consistency
- AttunementDebug.tsx: When unlocking Enchanter, also unlock transference element
- GameStateDebug.tsx: Use proper store actions (debugSetFloor, resetFloorHP, debugSetTime) and fix Switch component usage
2026-05-07 13:17:22 +02:00
n8n-gitea 7851d8c7cb fix: address multiple bugs (1,2,3,5,6,9,10,11,12,13) - partial fix for 4, remaining 7,8
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m9s
2026-05-07 12:28:16 +02:00
n8n-gitea 54d5e576ab Fix BUG 2: Set currentAction to 'study' when starting skill or spell study
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m21s
The startStudyingSkill() and startStudyingSpell() functions in skillStore.ts
were setting currentStudyTarget but not updating currentAction in combatStore.
Added useCombatStore.getState().setAction('study') calls to both functions
so the game tick properly processes study progress.
2026-05-07 10:26:45 +02:00
n8n-gitea 81ad79dd95 Fix BUG 11: StatsTab now reads equipment state from useCraftingStore instead of hardcoded empty objects
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m1s
2026-05-07 10:24:16 +02:00
n8n-gitea a4004be229 fix: SkillsTab barrel export, equipment store reads, LabTab re-export, debug null guards, GrimoireTab loaded state, spire tab switching
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m48s
2026-05-06 21:08:10 +02:00
n8n-gitea e5308ac239 Fix GrimoireTab loading state and spireMode tab switching
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m51s
- FIX 6: GrimoireTab now properly handles loading state and shows message when no grimoire spells are available
- FIX 7: Added spireMode store read and useEffect to switch to spire tab when enterSpireMode() is called
2026-05-06 20:48:14 +02:00
n8n-gitea b7a91abc5d fix: handle undefined state/obj in mana calculations to prevent runtime error
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m20s
2026-05-06 12:42:25 +02:00
n8n-gitea 8b4a09a8c6 fix: handle undefined skills in computeTotalMaxMana to prevent production error
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m14s
2026-05-06 12:06:33 +02:00
n8n-gitea 496d3dde4c fix: hydration mismatch, production Dockerfile, SSR localStorage guard, SpellsTab/SkillsTab/debug store migrations
Build and Publish Mana Loop Docker Image / build-and-publish (push) Has been cancelled
2026-05-06 11:17:12 +02:00
n8n-gitea 17b3571a18 Fix: Add missing startCraftingEquipment and cancelEquipmentCrafting actions to craftingStore
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m37s
- Added startCraftingEquipment action that validates and initializes equipment crafting
- Added cancelEquipmentCrafting action that cancels crafting and refunds mana
- Used CraftingEquipment functions directly instead of deprecated wrapper actions
- Updated craftingStore imports to include useManaStore and useUIStore
- Fixed crafting/index.tsx barrel file export (removed non-existent type exports)
- Fixed syntax errors in craftingStore.ts (missing commas in function params)

Fixes issue where EquipmentCrafter component couldn't find these actions on craftingStore.
2026-05-06 10:58:58 +02:00
Refactoring Agent a5ff32cb91 Fix 3 files: migrate to useSkillStore, remove parallel study UI
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 33s
- SkillsTab.tsx: Replace useGameStore with useSkillStore for currentStudyTarget
- SkillUpgradeDialog.tsx: Migrate to useSkillStore, fix commitSkillUpgrades call
- SkillRow.tsx: Remove parallel study feature (startParallelStudySkill doesn't exist in skillStore), remove hasParallelStudy reference
- Update index.ts export to point to new SkillsTab location
- Delete old legacy tabs/SkillsTab.tsx file
2026-05-06 10:48:46 +02:00
Refactoring Agent e9485b93aa Fix EnchantmentApplier.tsx: Correct ENCHANTMENT_EFFECTS typo and fix EquipmentSlot import 2026-05-06 10:38:32 +02:00
Refactoring Agent 930d5b9e29 Fix incorrect imports: hasSpecial and SPECIAL_EFFECTS should be imported from special-effects.ts, not upgrade-effects.ts
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 40s
- Fixed src/components/game/GameContext/Provider.tsx
- Fixed src/components/game/GameContext/types.ts

The upgrade-effects.ts imports these from special-effects.ts but doesn't re-export them.
2026-05-06 10:32:38 +02:00
Refactoring Agent fe2d1f6bc6 fix: guard localStorage for SSR, fix currentAction written to wrong store
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m5s
2026-05-06 09:45:28 +02:00
Refactoring Agent b0cc848909 fix: broken import paths, illegal import in function body, local fonts for Docker
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s
2026-05-05 20:23:47 +02:00
Refactoring Agent ed69a8f2b4 fix: migrate golemancy/activity/achievements, fix CraftingTab/SkillsTab/SpireTab/GolemancyTab/AchievementsTab store reads
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m1s
2026-05-05 16:11:28 +02:00
Refactoring Agent ed616738fd fix: lootInventory, prestige, golemancy, attunementStore export, debug components
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m21s
2026-05-05 15:00:22 +02:00
Refactoring Agent f0532c1673 Add attunementStore exports to stores/index.ts
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m22s
2026-05-05 13:56:20 +02:00
Refactoring Agent 3db7e07302 fix: migrate equipment and enchantment state to modular stores, fix EnchantmentDesigner
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m24s
2026-05-05 13:25:19 +02:00
Refactoring Agent 221d3e4b41 fix: complete store migration — fix all tab crashes and ghost field reads
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m22s
2026-05-05 12:45:07 +02:00
Refactoring Agent dc1aad3700 Fix LeftPanel.tsx to use modular stores instead of legacy useGameStore
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m22s
- Added useCraftingStore import for crafting progress fields
- Changed spireMode/enterSpireMode to useCombatStore
- Changed currentStudyTarget to useSkillStore
- Changed crafting progress fields to useCraftingStore
- Added useCraftingStore export to stores/index.ts
- Kept useGameStore only for gatherMana, day, hour
2026-05-05 11:10:33 +02:00
Refactoring Agent 235bc09856 Fix SkillStudyProgress.tsx to use modular skillStore instead of legacy store
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m21s
2026-05-05 11:04:05 +02:00
Anexim 2c30d98096 Update AGENTS.md
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 24s
2026-05-05 09:43:52 +02:00
Refactoring Agent 587be05452 docs: update git credentials in AGENTS.md
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 25s
2026-05-05 09:39:54 +02:00
Refactoring Agent d0738441f3 fix: correct malformed next dev startup command in Docker
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 10m5s
2026-05-05 00:34:08 +02:00
Refactoring Agent 338ac19628 fix: remaining tab migrations to modular stores
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m24s
- CraftingProgress, ManaDisplay, TimeDisplay: fmt/fmtDec imports → @/lib/game/stores
- SkillsTab, SkillRow, SkillUpgradeDialog: imports → @/lib/game/stores
- StatsTab and sub-components: fmt/fmtDec imports → @/lib/game/stores
- CategorySkillsList: GameStore type import → GameCoordinatorStore
- EnchantmentDesigner types/utils: GameStore type imports → GameCoordinatorStore
- Header: fmt import → @/lib/game/stores

Moves remaining non-hook usage files from legacy @/lib/game/store to modular @/lib/game/stores
2026-05-04 21:30:48 +02:00
Refactoring Agent bb8edaf57a fix: complete remaining tab migrations, fix LeftPanel ghost fields, remove backup files
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m42s
2026-05-04 16:52:43 +02:00
Refactoring Agent 837d963b63 fix: split SpireTab.tsx to 395 lines, remove require() imports, import from data modules; complete store migration
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 30m15s
2026-05-04 13:36:10 +02:00
Refactoring Agent 0eabd604b0 fix: Object.values null safety + Docker dev build
Build and Publish Mana Loop Docker Image / build-and-publish (push) Has been cancelled
- Change Dockerfile to use development build (better error messages)
- Add || {} fallbacks to all Object.values() calls accessing state
- Fixes "Cannot convert undefined or null to object" browser error during SSR/hydration
- Verified TypeScript compilation and Next.js build successful

Files modified:
- Dockerfile
- src/app/page.tsx
- src/components/game/tabs/StatsTab.tsx
- src/components/game/StatsTab/LoopStatsSection.tsx
- src/components/game/StatsTab/ElementStatsSection.tsx
- src/components/game/tabs/AttunementsTab.tsx
- src/components/game/tabs/GolemancyTab.tsx
- src/lib/game/effects.ts
- src/lib/game/utils/combat-utils.ts
- src/lib/game/crafting-loot.ts
- src/components/game/LootInventory/LootInventoryDisplay.tsx
- src/components/game/LootInventory/index.tsx
- src/components/game/crafting/EnchantmentDesigner/utils.ts
2026-05-04 11:03:11 +02:00
Refactoring Agent 98ab975fb9 Update documentation after refactoring: AGENTS.md, GAME_BRIEFING.md, skills.md
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 4m28s
- Updated AGENTS.md to include store/ directory and clarify store architecture
- Updated GAME_BRIEFING.md Code Architecture section with store/ and legacy store info
- Updated skills.md with skill state management information
- Includes other refactoring changes (store hooks, component updates, etc.)
2026-05-04 09:49:13 +02:00
Refactoring Agent 5817206351 fix: resolve SSR build error with GrimoireTab
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m47s
- Fix GrimoireTab to handle SSR safely (SPELLS_DEF undefined during server-side rendering)
- Use useState and useEffect to only access constants on client-side
- Build now succeeds consistently
2026-05-03 12:58:50 +02:00
Refactoring Agent df67abca50 fix: resolve runtime issues with game loop, tabs, and error handling
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m46s
- Fix game loop store mismatch (page.tsx now uses modular stores matching gameHooks.ts)
- Fix StatsTab.tsx type errors (signedPacts now from usePrestigeStore)
- Fix React hooks violations (all hooks called before conditional returns)
- Add ErrorBoundary to page.tsx for better error handling
- Fix getStudySpeedMultiplier called with correct arguments
- Build succeeds consistently
2026-05-03 12:41:11 +02:00
Refactoring Agent fef57d7a55 fix: resolve runtime issues with game loop, tabs, and error handling
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m45s
- Fix game loop store mismatch (page.tsx was using old store, gameHooks using new store)
- Fix StatsTab.tsx calling getStudySpeedMultiplier with wrong arguments
- Add ErrorBoundary to page.tsx for better error handling
- Fix import syntax issues in page.tsx
- Ensure build succeeds with fixes
2026-05-03 12:26:30 +02:00
Refactoring Agent ca07719456 fix: update StatsTab, DebugTab and all child components to use modular stores
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m42s
- Updated StatsTab to use hooks directly (useSkillStore, usePrestigeStore, etc.)
- Updated DebugTab to use hooks directly
- Updated all debug child components (GameStateDebug, SkillDebug, AttunementDebug, etc.)
- Updated all stats child components (ManaStatsSection, CombatStatsSection, etc.)
- Fixed UpgradeEffectsSection.tsx syntax errors
- Updated page.tsx to not pass store prop to StatsTab and DebugTab
- All components now use modular stores directly instead of receiving store prop
2026-05-02 23:43:49 +02:00