Promote daKrpa_c as a genuine class TU - #2002
Conversation
✅ PR validation — PassedCommitted merge introduces no reconstruction or attribution regression. Full merge validation
Byte-verified means the range carries Warnings: 25 address range(s) left the byte-verified set while enrolled totals held steady: ov070:0x02121118-0x02121160, ov070:0x02121160-0x021211bc, ov070:0x021211bc-0x021211c4, ov070:0x021211c4-0x02121298, ov070:0x02121298-0x02121310, +20 more; 24 more function(s) now claim a match that nothing compiles; enroll them in a delinks.txt to have the ROM build check them. Per-file link-check detailAll 1 changed file(s) compile to the ROM byte-for-byte with correct relocation targets.
The private worker commits a test merge, builds the stock ROM profile, compares every executable module, measures matched and source-built code, checks contributor lineage, and verifies affected relocations. The mod profile is opt-in and is not part of this merge gate. |
Carries origin/main through the restacked #2000. Same two generated files conflicted and are resolved the same way: - config/converted-baseline.json: REGENERATED with the post-#2007 tiers.py (tools/tiers_ratchet.py --update), never by side or key union. Count 2552 = the parent branch's 2559 minus the seven per-symbol files this PR's ov070/daKrpa_c promotion absorbs. All seven are classified "MOVED -- absorbed into src/actors/daKrpa_c.cpp" by classify_missing(), that file exists in this tree, and all seven already had rows in config/converted-backslide-exceptions.jsonl from this branch's own earlier run, so no duplicate rows were added. - notes/cpp-tu-current-state.md: regenerated with tools/cpp_tu_state.py --write-note; --check-note is clean. No source file, delinks entry, or byte changed in this merge. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WdCK1xgrJdiJzPCh3bAJfQ
Drops this branch's two redundant daObjAbuku_c backslide rows in favour of #2011's authoritative pair (the union merge driver had produced one of each), and re-regenerates config/converted-baseline.json from the parent branch's 2559 with tools/tiers_ratchet.py --update. Count 2552 = 2559 minus the seven per-symbol files this PR's ov070/daKrpa_c promotion absorbs. All seven are classified "MOVED -- absorbed into src/actors/daKrpa_c.cpp by TU promotion (ov070/daKrpa_c)" by the tool's own classify_missing(); that file exists and is git-tracked here. Zero genuine removals, and all seven already had rows from this branch's earlier run, so no duplicate rows were added. notes/cpp-tu-current-state.md regenerated; --check-note clean. No source file, delinks entry, or byte changed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WdCK1xgrJdiJzPCh3bAJfQ
Carries origin/main through the restacked #2000 and #2002. - config/converted-baseline.json: this PR RENAMES rather than absorbs, so it is resolved by carrying the three PathLift -> dPathLiftActor_c key renames onto the parent branch's 2552 set and then regenerating with tools/tiers_ratchet.py --update. That yields +1 / -0 and count 2553: zero removals and zero backslide rows, which is the honest reading. Regenerating WITHOUT the key rename first would have reported the three paths as "GONE -- not a tracked source file any more" and demanded a --reason, which would have logged a rename as a readability backslide. git itself scores them as renames (R076/R059/R061), all three destinations exist and are tracked, and all three are CONVERTED in the new set, so no readability was lost. This matches how this branch already handled the D0/D1 pair against the older baseline. - notes/cpp-tu-current-state.md: regenerated with tools/cpp_tu_state.py --write-note; --check-note is clean. No source file, delinks entry, or byte changed in this merge. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WdCK1xgrJdiJzPCh3bAJfQ
Resolved: - attribution.json: key union of both overrides blocks (903 keys; nothing lost from either side, no value disagreements). - notes/cpp-tu-current-state.md: regenerated with tools/cpp_tu_state.py --write-note. Main's naming wins throughout (#1978 ov063 RTTI renames, #1991 daDsnBase_c, #2000 daKpFr_c, #2002 daKrpa_c, the WingFeather move under src/game/actors/). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WdCK1xgrJdiJzPCh3bAJfQ
Dependency
Stacked on #2000. After it merges, this branch will be rebased onto current main.
Summary
Verification