Bug fixes:
- Remove "TEMPORARY FIX" that stopped search after finding first suit
- Add armor level as lowest-priority tiebreaker in scoring
Scoring formula now:
- Set completion: +1000 per complete set
- Missing pieces: -200 penalty each
- Crit damage: +10/20 per item
- Damage rating (clothes): +10/20/30
- Spell coverage: +100 per fulfilled spell
- Base item score: +5 per item
- Armor level: +1 per 100 AL (tiebreaker)
Updated design doc with audit findings - most features were already
working correctly. The magsuitalgo.md analysis was outdated.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Design doc covers:
- Problem statement and priority order (sets > spells > armor)
- Algorithm overview (bucket-based search with backtracking)
- Current implementation state (what works, what's broken)
- Step-by-step implementation plan with verification criteria
This document enables consistent progress across multiple sessions.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Implement client-side sorting for all columns including spell_names
- Add computed_spell_names CTE for server-side sort fallback
- Add resizable columns with localStorage persistence
- Add Cloak slot detection by name pattern
- Increase items limit to 50000 for full inventory loading
- Increase proxy timeout to 60s for large queries
- Remove pagination (all items loaded at once for sorting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Widen sidebar from 340px to 400px for better readability
- Increase player item gap and padding for improved spacing
- Add .grid-content and .buttons-container styles for element pooling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Implement element pooling system for dots and list items
- Reuse DOM elements instead of recreating on each render
- Add performance tracking for element creation/reuse stats
- Change window behavior to always show (no toggle)
- Add user interaction tracking to defer renders during clicks
- Optimize render loop with O(1) player name lookup via Maps
Achieves ~5ms render time and 100% element reuse after initial render.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Total kills now comes from the /total-kills/ API endpoint which includes
ALL characters in the database, not just currently online players.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updated JavaScript to maintain score ordering during streaming search:
- Replace addSuitToResults() with insertSuitInScoreOrder()
- Add regenerateResultsDisplay() to maintain proper DOM ordering
- Medal assignment (🥇🥈🥉) now based on score ranking, not arrival order
- Suits with highest scores now always appear at top during live search
- Updated displaySuitResults() to sort by score before displaying
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Rewrite armor and accessory filtering to only include items that contribute to constraints
- Update jewelry and clothing scoring to reject items that don't meet constraints
- Modify suit completion to leave slots empty instead of filling with non-contributing items
- Update scoring to heavily penalize suits that don't meet specified requirements
- Items must now meet set, spell, or stat constraints to be considered for suits
- Empty slots are now preferred over items that don't help with constraints
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>