- ResourceMonitor.cpp: Add macOS-specific includes (mach/mach.h, sysctl.h)
and memory collection implementation using mach task_info API
- AuraStateCache.cpp: Add missing <mutex> include for std::unique_lock
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
- AuraStateCache.h: Add missing <atomic> include
- ResourceTypes.h: Change SoulShardSystem _shards from atomic<float> to float
(atomic<float> doesn't support compound operators like -= in C++20)
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
- SafeObjectReference.h: Add <sstream> and <iomanip> for std::setprecision
- HealingTargetSelector.h: Include SharedDefines.h instead of forward declaring DispelType
- TacticalCoordinator.h: Remove unused BotAI forward declaration that conflicts with using directive
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
- Skip FindSystemBoost.cmake on CI (GITHUB_ACTIONS env) to use standard
Boost finding with MarkusJx/install-boost action
- Change Linux build from SCRIPTS=dynamic to SCRIPTS=static to fix
linker error with static Boost libraries
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
Playerbot requires Intel TBB which is vendored as a git submodule.
All CI workflows now initialize submodules before CMake configure.
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
- Update Boost version to 1.89.0 for Windows builds (required by upstream)
- Add BUILD_PLAYERBOT=ON to all workflow CMake configurations
- Make ModuleUpdateManager include/usage conditional on BUILD_PLAYERBOT
in World.cpp to support builds with/without playerbot module
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
Build fixes:
- Add Player forward declaration to JITBotFactory.h
- Add missing includes: BotWorldSessionMgr.h, BotSession.h, DB2Stores.h
- Fix LocalizedString usage with DEFAULT_LOCALE instead of integer index
- Fix SpellName pointer dereference: (*spellInfo->SpellName)[DEFAULT_LOCALE]
- Fix PlayerSpell member access: .active/.disabled instead of .IsActive()/.IsDisabled()
- Remove non-existent BotSessionMgr.cpp/.h from CMakeLists.txt
New features:
- Implement enterprise-grade role detection in JITBotFactory using DB2 spec data
- Add GetPlayerSpecRole() using ChrSpecializationEntry for accurate role detection
- Add GroupRoleToBotRole() conversion for pool system compatibility
- Add DetermineBotRole() as main entry point for spec-based role determination
- Distinguish melee/ranged DPS using ChrSpecializationFlag
Code cleanup:
- Remove obsolete BotSessionMgr files (replaced by BotWorldSessionMgr)
- Remove IBotSessionMgr interface (no longer needed)
- Remove MockSpatialGridManager test mock
- Remove invalid dynamic_cast<BotAI*>(UnitAI*) - types are unrelated
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
- CRASH_ANALYSIS_2026-01-08.md - Documentation of crash investigation
- Quest/QUEST_SYSTEM_AUDIT_REPORT.md - Quest system audit findings
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
- Enhanced DoubleBufferedSpatialGrid with better thread safety
- Improved LeaderFollowBehavior for smoother bot following
- Better position tracking and updates
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
- Enhanced InstanceBotOrchestrator with better bot assignment
- Improved InstanceBotPool management
- QueueStatePoller now tracks active queues more efficiently
- Better shortage detection and JIT triggering
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
- Improved LFGBotManager with better queue handling
- Enhanced LFGGroupCoordinator for smoother group formation
- Better integration with warm pool system
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
These are local workspace configuration files that should not be tracked.
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>
Three critical fixes for bot functionality:
1. BaselineRotationManager: Fix specialization detection
- GetActiveTalentGroup() returns talent GROUP index (0 or 1), not spec
- Changed to GetPrimarySpecialization() == ChrSpecialization::None
- Bots with specs now use proper spec-based rotations instead of BASELINE
2. BotPostLoginConfigurator: Fix gear never being applied
- shouldApplyGear was always false due to broken condition
- Changed to always apply gear, using BotGearFactory as fallback
- Added WasRecentlyConfigured() to prevent LevelManager re-leveling race
- Fixed ApplyClassSpells() to properly learn specialization spells
3. GroupCombatStrategy: Fix group combat assist detection
- ObjectAccessor::FindPlayer() returned NULL for some bot group members
- Added FindGroupMember() helper with fallback lookups:
* ObjectAccessor::FindPlayer() (in-world)
* ObjectAccessor::FindConnectedPlayer() (any connected player)
* BotWorldSessionMgr::GetPlayerBot() (module registry)
- Bots now properly detect when group members are in combat and assist
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: luis <[email protected]>