# Cairn

## [47](https://github.com/ChronicTinkerer/Cairn/tree/47) (2026-05-13)
[Full Changelog](https://github.com/ChronicTinkerer/Cairn/compare/46...47) [Previous Releases](https://github.com/ChronicTinkerer/Cairn/releases)

- release 47: SetPrimitiveShown state-transition fix; Checkbox RegisterForClicks; Cairn-DB rebind; tocName-based AddonDBName  
- CHANGELOG: prep release 47 (bug-fix release)  
- Cairn-Gui-2.0 MINOR=21: SetPrimitiveShown survives state transitions  
- Cairn-Gui-Widgets-Standard-2.0 MINOR=12; Cairn-DB rebind on ADDON\_LOADED  
    Cairn-Gui-Widgets-Standard-2.0:  
    * MINOR 12: Checkbox.OnAcquire now calls frame:RegisterForClicks("AnyUp"),  
      matching the Button MINOR=4 fix. Without this, the Primitives layer's  
      OnMouseDown / OnMouseUp HookScripts swallow OnClick on Interface 120005  
      and the checkbox never toggles. Symptom is sneaky: the row hover bg  
      tints the empty box and looks like a check appeared on mouseover, but  
      Toggled never fires. Hit on Forge\_AddonManager row checkboxes.  
    * TabGroup pane.Cairn.\_builtOnce explicitly cleared on Acquire so a  
      recycled pane doesn't carry the flag from a prior owner.  
    Cairn-DB:  
    * File-scope DB:New runs before WoW restores \_G[svName], creating an  
      empty pre-emptive table that WoW later orphans. Added ADDON\_LOADED +  
      PLAYER\_LOGIN listener that walks Cairn\_DB.instances and rebinds stale  
      \_sv references in place. Consumer-captured references stay valid; the  
      rebind only touches db.\_sv / db.global / db.profile / etc. pointers.  
    * :New stale-cache check drops a cached instance whose \_sv no longer  
      matches \_G[name].  
    Cairn-Addon:  
    * AddonDBName now derives from tocName (folder name) instead of TOC  
      Title. Title can have spaces / casing that don't match the SV name  
      declared in TOC. opts.dbName override available for special cases.  
- fix: Coerce nil values to default in dropdown settings to prevent unrenderable states  
