G (BUG-1560/1561: varga.py, divisional_charts_extended.py), H (BUG-1566/1567: jaimini.py) and J (BUG-1270/1576: shadbala.py) each changed frozen identity files and each froze its own audit_g / audit_h / audit_j record, which only matches that branch's tree. Per ERR-110 the merged tree is frozen once as audit_wave2_2026_11_04 (FREEZE/REPORT constants first, --freeze, then replay). The contract now points at audit_wave2 with moon_paksha_2026_11_04 as the previous record; the per-branch records are kept byte-for-byte and named as intermediate in the superseded_reason notes. Freshness test and frontend gate test updated. Compared field by field with moon_paksha_2026_11_04: sealed holdout 20/20 trials identical, metrics unchanged; reported offset 900/900 identical, summary unchanged; changed_trial_count vs 2026-09-20 stays 8 / 581. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y