# RGX-Framework

## [v1.6.0-6-g570af5c](https://github.com/DonnieDice/RGX-Framework/tree/570af5c9d9fe6689f65d9c926070a6967967ae81) (2026-06-09)
[Full Changelog](https://github.com/DonnieDice/RGX-Framework/compare/v1.6.0...570af5c9d9fe6689f65d9c926070a6967967ae81) [Previous Releases](https://github.com/DonnieDice/RGX-Framework/releases)

- fix: remove pcall from RegisterEvent/UnregisterEvent to avoid taint  
    - pcall(frame.RegisterEvent, frame, event) flagged as ADDON\_ACTION\_FORBIDDEN  
      during combat lockdown — indirect call through pcall triggers taint  
    - Replaced with direct frame:RegisterEvent(event) and frame:UnregisterEvent(event)  
    - RegisterEvent/UnregisterEvent are not Lua-throwing functions; pcall was unnecessary  
- refactor: simplify database — single metatable, step-by-step NewDatabase  
    - Merge DBHandle/NewDBMeta into one DB metatable  
    - \_\_index lookup: method → global → internal → profile → defaults  
    - OpenDB is now a 4-line wrapper around NewDatabase  
    - Labeled step-by-step factory (Steps 1-6) for readability  
    - NotifySwitch guard prevents re-entrant callback chains  
    - Rename helpers: MergeDefaults, GetPath, SetPath, ActiveProfile  
- feat: add RGX:NewDatabase — metamethod-based profile access  
    - NewDBMeta proxy with \_\_index/\_\_newindex for direct db.key access  
    - db.key reads from active profile, falls back to defaults at read time  
    - db.global returns cross-character storage table  
    - OnProfileChanged, ResetProfile, GetProfiles, GetActiveProfile  
    - Override DBHandle.\_switchTo to fire new-style callbacks  
    - Also adds full DBHandle/OpenDB engine with profile CRUD  
    - Keeps existing RGX:DB, RGX:MigrateDB, RGX:OpenDB APIs  
- docs: add RGX-Mod phased dependency table to roadmap  
- v1.6.0 — code changes: font pipeline, combat queue, UI controls, options, runtime helpers  
- v1.6.0 — documentation pass: new wiki docs, README rewrite, consistency fixes  
    7 new wiki docs (API, Architecture, Fonts, Dropdowns, Theming, Troubleshooting, Migration), rewritten README and description.html, standardized dormant module wording, fixed stale file path references, font count language, and interface version across all docs.  
