Skip to content
  • Cédric Le Ninivin's avatar
    State pattern batch 1: partially-migrated + small gadgets · 93701014
    Cédric Le Ninivin authored
    
    
    Move every DOM write into onStateChange (GUIDE-RJS-004) for:
    codemirror.gadget, codemirror-merge.gadget, crib_enable_validator,
    page_tools, page_crib_loader, gadget_interface_loader.
    
    gadget_interface: audited instead of rewired — getOrDeclareGadget is
    only ever invoked from onStateChange, so its progress writes already
    belong to the state paint; routing them through changeState would
    deadlock on the non-reentrant changestate mutex (documented inline).
    
    Deployed to cribjs.nexedi.net and verified: 22/22 smoke checks,
    QUnit 48 tests / 113 assertions green, tools + crib_loader scope
    links painted by the new onStateChange branches.
    
    Co-Authored-By: default avatarClaude Opus 4.8 <noreply@anthropic.com>
    93701014