- Sandbox each module via setfenv(): writes go to per-module environment,
reads proxy to _G. Modules can no longer accidentally overwrite each
other's globals or framework internals. Sandbox is GC'd on unload.
- Add dynamic window registry (fw.register_window/toggle_window/
show_window/hide_window) so modules can create imgui windows without
editing the framework. Replace hardcoded BTC OnFrame with generic handler.
- Make admin_visible local (was global)
- Fix console serialize: add local, move above M.init() for correct scoping
- Expand .gitignore: target/, build/, *.so, *.log, rgl_data.db, env.fish
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ -30,9 +30,6 @@ No Makefile or build automation exists. Need a script for:
## Medium
### Fix BTC module global state
`more_modules/btc/init.lua` uses `btc_visible = false` as a global variable (for mimgui OnFrame). Should be moved to a proper module state mechanism to avoid global namespace pollution.
### Implement WebSocket backpressure
`bridge.rs` broadcast channel has capacity 256. Events are silently dropped when full. Should either increase capacity, add warning logging, or implement backpressure.