- Fix scenario_09_threadsafety: Add writerDone flag to ensure writer thread
finishes before clear() is called, preventing race condition
- Fix IntraIO destructor: Call removeInstance() to unregister from
IntraIOManager and prevent dangling pointer access
- Fix IOTestEngine destructor: Inline cleanup instead of calling unloadModule()
which was modifying the map while iterating (undefined behavior)
- Fix CTest macro: Use WORKING_DIRECTORY with PATH environment variable
instead of cmake -E chdir for proper Windows DLL loading
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add cmake -E chdir wrapper for CTest on Windows to resolve DLL loading
- Auto-copy MinGW runtime DLLs to build directories during configure
- Fix module paths in integration tests (.so -> .dll for Windows)
- Update grove_add_test macro for cross-platform test registration
Tests now pass: 55% (16/29) on Windows MinGW
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add BGFX_CONFIG_MULTITHREADED=0 to fix TLS crash when bgfx runs from DLL
- Add -include stdint.h for MinGW GCC 15+ compatibility with bgfx third-party code
- Guard SDL2-dependent visual tests with if(SDL2_FOUND)
- Clean up debug logging in BgfxDevice::frame() and BgfxRendererModule::process()
- Re-enable all modules in test_full_stack_interactive.cpp
- Add grove::fs namespace for cross-platform filesystem operations
- Add InputModule C export for feedEvent across DLL boundary
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>