[{"timestamp":"2026-10-24T20:45:24Z","commit_sha":"4ed1dd0a96f5a6fe50fd88fb9a8c8f29cd708b95","commit_message":"Merge pull request #652 from Jovinull/docs/site-revamp\n\nRebuild the website and refresh the docs","measures":{"fuzzy_match_percent":36.223446,"total_code":13039060,"matched_code":4618108,"matched_code_percent":35.417492,"total_data":7167586,"matched_data":679064,"matched_data_percent":9.474096,"total_functions":39062,"matched_functions":20559,"matched_functions_percent":52.631714,"complete_code":4596104,"complete_code_percent":35.248737,"complete_data":702504,"complete_data_percent":9.801124,"total_units":16538,"complete_units":11012}},{"timestamp":"2026-10-24T19:32:22Z","commit_sha":"703e9158474532f6a86e954a262bdda9b78dfed7","commit_message":"Merge pull request #650 from Jovinull/tools/progress-moved-code\n\nfix(ci): do not report moved code as a match regression","measures":{"fuzzy_match_percent":36.223446,"total_code":13039060,"matched_code":4618108,"matched_code_percent":35.417492,"total_data":7167586,"matched_data":679064,"matched_data_percent":9.474096,"total_functions":39062,"matched_functions":20559,"matched_functions_percent":52.631714,"complete_code":4596104,"complete_code_percent":35.248737,"complete_data":702504,"complete_data_percent":9.801124,"total_units":16538,"complete_units":11012}},{"timestamp":"2026-10-24T18:59:30Z","commit_sha":"514f570471d4f33724cc266b3ae360774e124757","commit_message":"Merge pull request #649 from Jovinull/decomp/continuo-20261024\n\ndecomp: editor-record hooks and EditOnChange guards for stages 01D-13D","measures":{"fuzzy_match_percent":36.223446,"total_code":13039060,"matched_code":4618108,"matched_code_percent":35.417492,"total_data":7167586,"matched_data":679064,"matched_data_percent":9.474096,"total_functions":39062,"matched_functions":20559,"matched_functions_percent":52.631714,"complete_code":4596104,"complete_code_percent":35.248737,"complete_data":702504,"complete_data_percent":9.801124,"total_units":16538,"complete_units":11012}},{"timestamp":"2026-10-24T12:49:50Z","commit_sha":"457b7bcc9db75c46c8bfb49d293f097db19b9863","commit_message":"Merge pull request #648 from Jovinull/decomp/continuo-20261020\n\nMatch the reel, target and ring families, the item panel effect and editor hooks in bulk","measures":{"fuzzy_match_percent":36.058678,"total_code":13039060,"matched_code":4596624,"matched_code_percent":35.252728,"total_data":7167586,"matched_data":679064,"matched_data_percent":9.474096,"total_functions":39062,"matched_functions":20434,"matched_functions_percent":52.311714,"complete_code":4574620,"complete_code_percent":35.08397,"complete_data":702504,"complete_data_percent":9.801124,"total_units":16414,"complete_units":10916}},{"timestamp":"2026-10-20T19:24:22Z","commit_sha":"0915a08eb2829770aebf39924fdda7033db86b72","commit_message":"Merge pull request #647 from Jovinull/decomp/continuo-20261019\n\nMatch the weights, the machine gun, more enemy shot code and shared object code","measures":{"fuzzy_match_percent":32.563427,"total_code":13039060,"matched_code":4140876,"matched_code_percent":31.757473,"total_data":7167586,"matched_data":678492,"matched_data_percent":9.466116,"total_functions":39062,"matched_functions":18320,"matched_functions_percent":46.899803,"complete_code":4118872,"complete_code_percent":31.588718,"complete_data":701932,"complete_data_percent":9.793143,"total_units":14452,"complete_units":9343}},{"timestamp":"2026-10-14T02:36:02Z","commit_sha":"26755bbf1237e4e399b91697ffa2a6aeab8183e5","commit_message":"Merge pull request #644 from Jovinull/docs/site-refresh-20261013\n\ndocs: refresh the site and the upstream note","measures":{"fuzzy_match_percent":30.552631,"total_code":13039060,"matched_code":3889656,"matched_code_percent":29.830801,"total_data":7167586,"matched_data":678484,"matched_data_percent":9.466004,"total_functions":39062,"matched_functions":17484,"matched_functions_percent":44.759613,"complete_code":3867652,"complete_code_percent":29.662046,"complete_data":701912,"complete_data_percent":9.792865,"total_units":13852,"complete_units":8807}},{"timestamp":"2026-10-14T02:35:56Z","commit_sha":"0a7393b8fe6a6fea1630f0f637826fd2085dd1e8","commit_message":"Merge pull request #645 from Jovinull/decomp/continuo-20261013\n\nMatch the searcher, its strategy and gadgets, and more pawn and enemy shot code","measures":{"fuzzy_match_percent":30.552631,"total_code":13039060,"matched_code":3889656,"matched_code_percent":29.830801,"total_data":7167586,"matched_data":678484,"matched_data_percent":9.466004,"total_functions":39062,"matched_functions":17484,"matched_functions_percent":44.759613,"complete_code":3867652,"complete_code_percent":29.662046,"complete_data":701912,"complete_data_percent":9.792865,"total_units":13852,"complete_units":8807}},{"timestamp":"2026-10-13T11:27:43Z","commit_sha":"eb41a25f9c2178d50b24ed9ce731dedc8fc6eca0","commit_message":"Merge pull request #643 from Jovinull/integrate/cypress-20261013\n\nIntegrate cypressru PRs #631–#642","measures":{"fuzzy_match_percent":25.434452,"total_code":13039060,"matched_code":3222304,"matched_code_percent":24.712702,"total_data":7167586,"matched_data":650280,"matched_data_percent":9.072511,"total_functions":39062,"matched_functions":14759,"matched_functions_percent":37.783524,"complete_code":3200300,"complete_code_percent":24.543947,"complete_data":673708,"complete_data_percent":9.399371,"total_units":12803,"complete_units":8030}},{"timestamp":"2026-10-13T02:13:40Z","commit_sha":"50343d857f5dd6c47b5293f1a66ddb65c5c63e9f","commit_message":"Merge pull request #630 from Jovinull/integrate/pathctrl-20261012\n\nIntegrate cypressru's #627 (path control), #629 (collision utility) and the rewritten #625","measures":{"fuzzy_match_percent":25.418043,"total_code":13039060,"matched_code":3210412,"matched_code_percent":24.621498,"total_data":7167598,"matched_data":649768,"matched_data_percent":9.065352,"total_functions":39062,"matched_functions":14747,"matched_functions_percent":37.752804,"complete_code":3188164,"complete_code_percent":24.450872,"complete_data":673120,"complete_data_percent":9.391151,"total_units":12804,"complete_units":8028}},{"timestamp":"2026-10-13T02:01:20Z","commit_sha":"fcc8d4fda5d2b46d91b33a9f8942cc05387eb608","commit_message":"Merge pull request #628 from Jovinull/integrate/cypress-20261012\n\nIntegrate cypressru's stage11D PRs #617-#623 and #625","measures":{"fuzzy_match_percent":25.41584,"total_code":13039060,"matched_code":3201488,"matched_code_percent":24.553057,"total_data":7167598,"matched_data":649492,"matched_data_percent":9.0615015,"total_functions":39062,"matched_functions":14741,"matched_functions_percent":37.737446,"complete_code":3176628,"complete_code_percent":24.3624,"complete_data":672736,"complete_data_percent":9.385795,"total_units":12804,"complete_units":8026}},{"timestamp":"2026-10-13T01:50:16Z","commit_sha":"23d6954a6e181c405814129e39b15f9efce49f42","commit_message":"Merge pull request #626 from Jovinull/decomp/codex-20261012\n\nfeat: match 54 single-module units (main, stage40D, movieD) from the Codex session","measures":{"fuzzy_match_percent":25.225304,"total_code":13039060,"matched_code":3091904,"matched_code_percent":23.71263,"total_data":7167598,"matched_data":636368,"matched_data_percent":8.8784,"total_functions":39062,"matched_functions":14520,"matched_functions_percent":37.171677,"complete_code":3011400,"complete_code_percent":23.095222,"complete_data":656516,"complete_data_percent":9.159498,"total_units":12805,"complete_units":8009}},{"timestamp":"2026-10-13T01:31:01Z","commit_sha":"a92dfb785b54102db0aa231543e6d1a1605cc256","commit_message":"Merge pull request #624 from Jovinull/decomp/continuo-20261012\n\nfeat: match 170 shared stage units (bobsleigh, EffSpark, enemy pawn and more)","measures":{"fuzzy_match_percent":25.190714,"total_code":13039060,"matched_code":3088992,"matched_code_percent":23.690296,"total_data":7167598,"matched_data":636036,"matched_data_percent":8.873768,"total_functions":39062,"matched_functions":14454,"matched_functions_percent":37.002712,"complete_code":3009088,"complete_code_percent":23.077492,"complete_data":656220,"complete_data_percent":9.155368,"total_units":12797,"complete_units":7955}},{"timestamp":"2026-10-12T00:08:39Z","commit_sha":"a52df0c9c2b29035e6150374d36f6261c707f336","commit_message":"Merge pull request #616 from Jovinull/decomp/continuo-20261010\n\nContinuous decomp round: event manager, C-style families, shared units and parameter guards","measures":{"fuzzy_match_percent":19.703005,"total_code":13039060,"matched_code":2373192,"matched_code_percent":18.200638,"total_data":7167598,"matched_data":635928,"matched_data_percent":8.872261,"total_functions":39074,"matched_functions":12198,"matched_functions_percent":31.217688,"complete_code":2292532,"complete_code_percent":17.582033,"complete_data":656104,"complete_data_percent":9.153749,"total_units":10124,"complete_units":5935}},{"timestamp":"2026-10-09T18:07:26Z","commit_sha":"c31966be9ab0ea3d0fae2d68a2711c05c2eb8bad","commit_message":"Merge pull request #615 from Jovinull/decomp/continuo-20261008\n\nByte-match 321 stage-object units: factories, constructors, destructors and virtuals","measures":{"fuzzy_match_percent":15.104794,"total_code":13039060,"matched_code":1766876,"matched_code_percent":13.550639,"total_data":7167598,"matched_data":627732,"matched_data_percent":8.757914,"total_functions":39074,"matched_functions":8666,"matched_functions_percent":22.17843,"complete_code":1684452,"complete_code_percent":12.918509,"complete_data":647900,"complete_data_percent":9.03929,"total_units":7171,"complete_units":3370}},{"timestamp":"2026-10-08T20:14:25Z","commit_sha":"01d2351431b8f2cde3558789dc1cb2c16bceb46a","commit_message":"Merge pull request #614 from Jovinull/docs/credit-adv-menu-names\n\nCredit ThePlayerRolo: name the AutoSaveD ADV_MENU functions","measures":{"fuzzy_match_percent":12.093376,"total_code":13039060,"matched_code":1374224,"matched_code_percent":10.539288,"total_data":7167598,"matched_data":614424,"matched_data_percent":8.572244,"total_functions":39074,"matched_functions":7160,"matched_functions_percent":18.324205,"complete_code":1291800,"complete_code_percent":9.907156,"complete_data":634592,"complete_data_percent":8.8536215,"total_units":5829,"complete_units":2287}},{"timestamp":"2026-10-08T20:05:51Z","commit_sha":"0c9f33b2f5bbabad87c5974e9f21b8c6f949e531","commit_message":"Merge pull request #613 from Jovinull/decomp/autosaved-adv-classes\n\nPort the shared ADV units into autosaveD (finishes #116)","measures":{"fuzzy_match_percent":12.093376,"total_code":13039060,"matched_code":1374224,"matched_code_percent":10.539288,"total_data":7167598,"matched_data":614424,"matched_data_percent":8.572244,"total_functions":39074,"matched_functions":7160,"matched_functions_percent":18.324205,"complete_code":1291800,"complete_code_percent":9.907156,"complete_data":634592,"complete_data_percent":8.8536215,"total_units":5829,"complete_units":2287}},{"timestamp":"2026-10-08T19:23:38Z","commit_sha":"55bda0aa289519510a8ada8344f638732598fe29","commit_message":"Merge pull request #612 from Jovinull/integrate/cypress-20261008\n\nIntegrate all 61 cypressru reconstruction PRs (#549–#611)","measures":{"fuzzy_match_percent":12.093376,"total_code":13039060,"matched_code":1374224,"matched_code_percent":10.539288,"total_data":7167598,"matched_data":613744,"matched_data_percent":8.5627575,"total_functions":39074,"matched_functions":7160,"matched_functions_percent":18.324205,"complete_code":1291800,"complete_code_percent":9.907156,"complete_data":633912,"complete_data_percent":8.844134,"total_units":5835,"complete_units":2292}},{"timestamp":"2026-10-02T11:26:15Z","commit_sha":"ba1a6be64ec51757e4ff5dd066eaca6d0157c5e6","commit_message":"match: give the stage11 callback thunks their handle and path vector","measures":{"fuzzy_match_percent":10.725169,"total_code":13039060,"matched_code":1218128,"matched_code_percent":9.342146,"total_data":7167640,"matched_data":596826,"matched_data_percent":8.3266735,"total_functions":39074,"matched_functions":6482,"matched_functions_percent":16.589037,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-02T00:16:30Z","commit_sha":"622d6367117b15cabe4f1b9b29365b939cec9738","commit_message":"Merge pull request #547 from Jovinull/decomp/rel-match-oct2026\n\nMatch Flyer Path vector callback","measures":{"fuzzy_match_percent":10.724846,"total_code":13039060,"matched_code":1218092,"matched_code_percent":9.341869,"total_data":7167640,"matched_data":596826,"matched_data_percent":8.3266735,"total_functions":39074,"matched_functions":6481,"matched_functions_percent":16.586477,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-02T00:12:23Z","commit_sha":"dea5a1605689bf00c64d76c4f4a0404b01a84666","commit_message":"Merge pull request #546 from Jovinull/decomp/rel-match-oct2026\n\nMatch Flyer Path callback constructor","measures":{"fuzzy_match_percent":10.724598,"total_code":13039060,"matched_code":1217952,"matched_code_percent":9.3407955,"total_data":7167640,"matched_data":596826,"matched_data_percent":8.3266735,"total_functions":39074,"matched_functions":6480,"matched_functions_percent":16.583918,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T23:58:36Z","commit_sha":"0ee02bb2716cbab33a03ae16bc9d90aa189486fb","commit_message":"Merge pull request #545 from Jovinull/decomp/rel-match-oct2026\n\nMatch Flyer Path object tables","measures":{"fuzzy_match_percent":10.724506,"total_code":13039060,"matched_code":1217852,"matched_code_percent":9.340029,"total_data":7167640,"matched_data":596826,"matched_data_percent":8.3266735,"total_functions":39074,"matched_functions":6479,"matched_functions_percent":16.581358,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T23:36:06Z","commit_sha":"4374cafa97ec266520dbe6b4278c21287df84e26","commit_message":"Merge pull request #544 from Jovinull/decomp/rel-match-oct2026\n\nMatch S11 spider vtable and thunk","measures":{"fuzzy_match_percent":10.724506,"total_code":13039060,"matched_code":1217852,"matched_code_percent":9.340029,"total_data":7167640,"matched_data":596538,"matched_data_percent":8.322656,"total_functions":39074,"matched_functions":6479,"matched_functions_percent":16.581358,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T23:26:10Z","commit_sha":"80706f41ee14b568fb540e367d038314596a30cf","commit_message":"Merge pull request #543 from Jovinull/decomp/rel-match-oct2026\n\nMatch S11 spider object registration","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T22:50:28Z","commit_sha":"945f78af735705114fc4db38a0852990de3d0641","commit_message":"Merge pull request #542 from Jovinull/decomp/rel-match-oct2026\n\nMatch grass2 object registration","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T22:36:41Z","commit_sha":"1025511f5cb58232a45b28271edb74c39a94e22a","commit_message":"Merge pull request #541 from Jovinull/decomp/rel-match-oct2026\n\nMatch S11 flag field name references","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T22:20:48Z","commit_sha":"c8df7531ed07752b4d6acfd6843d5cf89e339e7f","commit_message":"Merge pull request #540 from Jovinull/decomp/rel-match-oct2026\n\nMatch flyer object registration","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T22:12:11Z","commit_sha":"9b3149178cf3a0e22b5495fcf2298b663b9c7d14","commit_message":"Merge pull request #539 from Jovinull/decomp/rel-match-oct2026\n\nMatch rino collision object registration","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T22:08:44Z","commit_sha":"fe22ba8cde3549b778d2cb4ba181b5dd3e59ce22","commit_message":"Merge pull request #538 from Jovinull/decomp/rel-match-oct2026\n\nMatch grass object registration","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T21:51:23Z","commit_sha":"8a0e1b02c45914903d7334119d70fd436fe1fb05","commit_message":"Merge pull request #537 from Jovinull/decomp/rel-match-oct2026\n\nMatch flyer animation load data","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T21:44:38Z","commit_sha":"aa17621be0ae2fd9859ec4b3be769b129844dc46","commit_message":"Merge pull request #536 from Jovinull/decomp/rel-match-oct2026\n\nMatch stage11 eggman animation records","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T21:35:45Z","commit_sha":"960acb1aa4eaf9a9ffe46bbeddc2aa868d6b5614","commit_message":"Merge pull request #535 from Jovinull/decomp/rel-match-oct2026\n\nMatch stage11 object metadata tables","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T21:13:53Z","commit_sha":"8922acfee23c1e0ce327e2ef369ba20f3cc0363a","commit_message":"Merge pull request #534 from Jovinull/decomp/rel-match-oct2026\n\nMatch stage11 tree field types","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T20:52:23Z","commit_sha":"a5a51ce4739b9291861956f10d7c19de3424856e","commit_message":"Merge pull request #533 from Jovinull/decomp/rel-match-oct2026\n\nMatch RW stream count extraction","measures":{"fuzzy_match_percent":10.724445,"total_code":13039060,"matched_code":1217844,"matched_code_percent":9.339968,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6478,"matched_functions_percent":16.5788,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T20:38:10Z","commit_sha":"e978627c06f85e546f559154adacbdfa10bea980","commit_message":"Merge pull request #532 from Jovinull/decomp/rel-match-oct2026\n\nMatch tree object unload","measures":{"fuzzy_match_percent":10.724433,"total_code":13039060,"matched_code":1217648,"matched_code_percent":9.338465,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6477,"matched_functions_percent":16.576239,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T20:20:16Z","commit_sha":"f7bbad1e9924e605283c51ac0975a983c452179b","commit_message":"Merge pull request #531 from Jovinull/decomp/rel-match-oct2026\n\nImprove tree object unload match","measures":{"fuzzy_match_percent":10.724421,"total_code":13039060,"matched_code":1217504,"matched_code_percent":9.33736,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6476,"matched_functions_percent":16.57368,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T19:47:26Z","commit_sha":"7ebae691e22edd5eeb9e44592ff753a328e1890f","commit_message":"Merge pull request #530 from Jovinull/decomp/rel-match-oct2026\n\nMatch flyer object load arguments","measures":{"fuzzy_match_percent":10.724401,"total_code":13039060,"matched_code":1217504,"matched_code_percent":9.33736,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6476,"matched_functions_percent":16.57368,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T19:25:24Z","commit_sha":"a3d386ed15ed12493bb32efface9d0ee6cf3a1a9","commit_message":"Merge pull request #529 from Jovinull/decomp/rel-match-oct2026\n\nImprove GameCube byte matching","measures":{"fuzzy_match_percent":10.7242985,"total_code":13039060,"matched_code":1216808,"matched_code_percent":9.332022,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6475,"matched_functions_percent":16.571121,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-10-01T13:08:44Z","commit_sha":"8f9dfbb26bd0dc37ff744f8427f82d9b50dff611","commit_message":"Merge pull request #527 from Jovinull/pr-stage11-returned-units","measures":{"fuzzy_match_percent":10.723417,"total_code":13039060,"matched_code":1212164,"matched_code_percent":9.296406,"total_data":7167640,"matched_data":596370,"matched_data_percent":8.3203125,"total_functions":39074,"matched_functions":6460,"matched_functions_percent":16.532732,"complete_code":1142504,"complete_code_percent":8.762165,"complete_data":593250,"complete_data_percent":8.276783,"total_units":6298,"complete_units":2264}},{"timestamp":"2026-09-09T16:12:06Z","commit_sha":"4243c6c679fbd24fd1b24bcaacbda7c7f9d3d6b9","commit_message":"match: reconstruct the stage11 object records and call signatures","measures":{"fuzzy_match_percent":9.512775,"total_code":13039060,"matched_code":1036428,"matched_code_percent":7.948641,"total_data":7167706,"matched_data":406792,"matched_data_percent":5.6753445,"total_functions":39074,"matched_functions":5862,"matched_functions_percent":15.002303,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-08T19:51:17Z","commit_sha":"a8189a04a242d118b88cc1264d1d05660622c363","commit_message":"match: reconstruct the stage11 rel units from their retail idioms","measures":{"fuzzy_match_percent":9.475401,"total_code":13039060,"matched_code":1012508,"matched_code_percent":7.765192,"total_data":7167706,"matched_data":405656,"matched_data_percent":5.659496,"total_functions":39074,"matched_functions":5761,"matched_functions_percent":14.74382,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-03T17:49:02Z","commit_sha":"0802882cb28cb99dde98fce74795ec1b7024bb5b","commit_message":"match: carve the rodata of five more stage11 units (#512)\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.462866,"total_code":13039060,"matched_code":991004,"matched_code_percent":7.6002717,"total_data":7167706,"matched_data":404456,"matched_data_percent":5.6427536,"total_functions":39074,"matched_functions":5676,"matched_functions_percent":14.526283,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-03T13:10:28Z","commit_sha":"f13860766e7804303986fd83f9a605fd0b2548b3","commit_message":"match: carve the e_flyer_stage11 rodata from the target (#511)\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.462866,"total_code":13039060,"matched_code":991004,"matched_code_percent":7.6002717,"total_data":7167706,"matched_data":403444,"matched_data_percent":5.628635,"total_functions":39074,"matched_functions":5676,"matched_functions_percent":14.526283,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-03T12:58:54Z","commit_sha":"2aa892f92bc4b7c0105b1134b5d64abf357f668b","commit_message":"fix: revert the goal_ring fn_80150588 signature that cost fn_8_4D0CC (#510)\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.462805,"total_code":13039060,"matched_code":991004,"matched_code_percent":7.6002717,"total_data":7167706,"matched_data":403224,"matched_data_percent":5.6255655,"total_functions":39074,"matched_functions":5676,"matched_functions_percent":14.526283,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-03T12:53:28Z","commit_sha":"143b645bb352704a4b990fb64d5ca0cd9616e4d0","commit_message":"match: give 71 variadic externs their real signatures in stage11 (#509)\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.462784,"total_code":13039060,"matched_code":991004,"matched_code_percent":7.6002717,"total_data":7167706,"matched_data":403224,"matched_data_percent":5.6255655,"total_functions":39074,"matched_functions":5676,"matched_functions_percent":14.526283,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-03T12:41:28Z","commit_sha":"002bca469aab94e20d817e2e2cf5c506146a0ddf","commit_message":"match: fix mangled externs and three more m2c idioms in stage11 (#508)\n\nClaude-Session: https://claude.ai/code/session_01CKP1rFdRszUp4eaLbZ6d1k\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.459244,"total_code":13039060,"matched_code":990752,"matched_code_percent":7.598339,"total_data":7167706,"matched_data":403224,"matched_data_percent":5.6255655,"total_functions":39074,"matched_functions":5673,"matched_functions_percent":14.518605,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-03T12:31:02Z","commit_sha":"2c7b7d60441712fa57f5578cb9bd852e61bf31d7","commit_message":"match: close five more e_wall_stage11 functions (#507)\n\nClaude-Session: https://claude.ai/code/session_01CKP1rFdRszUp4eaLbZ6d1k\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.458352,"total_code":13039060,"matched_code":989004,"matched_code_percent":7.5849333,"total_data":7167706,"matched_data":403224,"matched_data_percent":5.6255655,"total_functions":39074,"matched_functions":5658,"matched_functions_percent":14.480217,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-03T12:19:45Z","commit_sha":"9eaf414909f15c67b69309a0848873594ee6c4ef","commit_message":"match: spread two m2c idioms across ten stage11 units (#506)\n\nClaude-Session: https://claude.ai/code/session_01CKP1rFdRszUp4eaLbZ6d1k\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.458175,"total_code":13039060,"matched_code":988240,"matched_code_percent":7.579074,"total_data":7167706,"matched_data":403224,"matched_data_percent":5.6255655,"total_functions":39074,"matched_functions":5653,"matched_functions_percent":14.467422,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-03T02:42:04Z","commit_sha":"bb0615b40a0f0a6260e97be9eba685ad5405475d","commit_message":"match: e_turtle_stage11 text from 86.8% to 94.2% (#505)\n\n* match: give e_turtle_stage11 its struct layout, arities and rodata\n\nFour duplicate slots - three in TObjEffTornadoSpin and one in TObject -\nwhere m2c emitted a field and a pad claiming the same offset. In the\ntornado struct they compound, so everything past 0x144 sat twelve bytes\nhigh.\n\nEleven externs were declared variadic, which is where the thirty crclr\ninstructions retail does not have came from. The sound entry points take\nthe handle the enclosing null check reads, as in the wall module;\nfn_8019ED68 takes a frame, an axis, an integer flag and one angle, and the\ndenormal floats m2c printed for that flag are the integers 0 and 2.\n\nThe whole .rodata was placeholders with no initializer, so it was sitting\nin .bss and every constant read through it came back as an integer. Written\nout from the target it goes from 59% to 86% and the text from 86.8% to\n89.3%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017rkLWTLf84oyCkT2Mt65gv\n\n* match: name the rodata constants and rewrite the clamps\n\nThe forty-two rodata objects belong to this unit, and m2c had printed\ntheir values as literals in the code. Written out from the target and\nreferenced by name they reproduce the section exactly - but they need\nexternal linkage, because a static const float is just a value to MWCC and\ngets folded into an anonymous constant instead of being emitted.\n\nSeven clamps were the m2c shape - a pre-assignment plus two ifs with empty\nbodies - rather than the if / else if / else chain retail compiled.\n\n.rodata reaches 100% and matched data goes from 0.22% to 11.86%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017rkLWTLf84oyCkT2Mt65gv\n\n* data: write out e_turtle_stage11's tables and fix the bss sizes\n\nThe same shape as the wall module: everything in .data was a placeholder\nwith no initializer, so it sat in .bss and the section read 0.83%. Written\nout from the target - three dispatch tables, the six- and three-record\nanimation tables, the two twelve-word parameter records, the pointer arrays\nand twenty-eight strings - it reaches 80.85%.\n\nThree .bss objects were a word each where the chain link, the global object\nand the object entry are 0xC, 0x14 and 0x30; .bss now matches.\n\nMatched data goes from 0.22% to 16.78%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017rkLWTLf84oyCkT2Mt65gv\n\n* match: empty fourth cases and the two calls fn_8_C2018 folded\n\nTwelve state handlers carry retail's stray \"cmpwi r4, 4\" followed by an\nunconditional branch to the default, which is what MWCC emits for a switch\nwhose highest arm is empty.\n\nfn_8_C2018 inlined fn_8_BE528 and fn_8_BDF6C, both of which retail calls;\nkeeping it out of line takes the text from 89.35% to 90.58%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017rkLWTLf84oyCkT2Mt65gv\n\n* match: stop MWCC folding the rodata constants into anonymous copies\n\nExternal linkage makes the objects appear, but the initializer is still in\nsight, so MWCC substitutes the value at every use and emits an unnamed\nconstant for it - the section matched while the code referred to copies.\nMarking them volatile forces the load to come from the named object.\n\nMoving the definitions below the uses does the same for the code and gets\nthe text to 91.2%, but it scatters the section and costs eleven points of\nmatched data, so it is not the trade to take.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017rkLWTLf84oyCkT2Mt65gv\n\n* Revert \"match: stop MWCC folding the rodata constants into anonymous copies\"\n\nThis reverts commit cf9d93981ecc7363676e84889173379b4dc78efc.\n\n* match: copy the stack vectors as blocks and drop a materialised flag\n\nfn_8_BE978 builds a position and an angle triple from the object and hands\ntheir addresses to a call; retail moves the twelve bytes as words, and m2c\nhad them as six float assignments. It had also materialised the result of\na mask test into a variable, so the branch came out as cntlzw/srwi/cmpwi\nwhere retail compares and branches.\n\nfn_8_BF8D4 copies its rodata vector the same way, and its fade factor needs\nboth operands named or MWCC contracts the multiply into the subtract.\n\nText 90.58% to 91.21%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: size the frame matrices m2c typed as a single word\n\nSix functions build a matrix on the stack and pass its address on; m2c had\neach as one M2C_UNK, which shrank the frame by the rest of the object. The\nsizes come from the target's own prologue - the gap between the local's\noffset and the first saved register.\n\nfn_8_C0D74's prologue matches now; the others still sit 0x10 under retail's\nframe, which is a separate question.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: size the frame matrices from the saved-register gap\n\nThe matrix size follows from the target's own prologue: locals run from\n0x8 up to the first saved register, so the object fills whatever the other\nlocals leave. Getting it right makes the frame match, and then the vectors\nbeside it have to be grouped too or MWCC keeps them in registers and the\nslots the callee reads stay empty.\n\nfn_8_BEBC8 goes from 75.4% to 85.7% and fn_8_C0418 from 82.9% to 89.3%;\nthe text reaches 91.64%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: read the rodata constants through their address\n\nA const float with a visible initializer is a constant expression to MWCC,\nso every use was folded to the value and materialised as an unnamed copy -\nthe section matched while the code referred to something else. Neither\nexternal linkage nor volatile stops that, and moving the definitions below\nthe uses does but scatters the section and costs eleven points of matched\ndata.\n\nReading each one as M2C_FIELD(&x, f32*, 0) defeats the substitution without\nmoving anything: 126 anonymous constant loads drop to 32, and the rest are\nthe int-to-float magic double MWCC emits on its own.\n\nMatched code goes from 6.05% to 8.02%. fn_8_BF858's four-float query block\nhad to be grouped as well, or its stack slots stay empty.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: group the rest of the stack vectors\n\nEleven more triples that m2c had left as loose scalars. As separate\nlocals MWCC keeps them in registers, so the slots the callee reads are\nnever written and the frame comes out short.\n\nfn_8_BF3CC 78.5% to 89.8%, fn_8_BFF94 82.3% to 87.7%, fn_8_C0D74 91.7% to\n93.1%. The text reaches 92.46%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: name the last constants and read the byte bounds as signed\n\nThe three functions I had restored from before the substitution still held\nliterals, so they were the only source of unnamed constants left besides\nthe magic double. fn_8_C0730 reaches 98% and fn_8_C2398 goes from 75% to\n84%.\n\nThe clamp bounds are signed bytes: read through a u8 they come back\nzero-extended and the comparison needs a clrlwi retail does not have.\n\nText 92.68%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: declare the scalar constants as one-element arrays\n\nReading them through an explicit address made MWCC treat \"&x\" as a common\nsubexpression and park it in a saved register across calls, where retail\nrecomputes the lis/addi each time. An array subscript is a plain memory\nreference with no address expression to share, so the loads come out where\nretail has them and two callee-saved registers go away.\n\nText 92.68% to 93.16%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: fn_800B4A38 takes the receiver its guard reads\n\nThe same convention as the wall module: all seven call sites sit under a\nnull check on lbl_8042C388 and retail passes that pointer through as the\nfirst argument. One comparison was a cror m2c had dropped, and fn_8_C0D74's\nmatrix was 0x20 too large once the vectors beside it were grouped.\n\nText 93.16% to 93.25%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: index the two tables by element and copy the rodata vector as words\n\nTen reads of lbl_802AD090 and lbl_80303DC8 scaled the index by sixteen -\nm2c had typed the base as a word, so its pointer arithmetic came out four\ntimes too far. Four copies of the same rodata vector were three float\nloads where retail moves the twelve bytes as words, and two matrices were\n0x20 too large once the vectors beside them were grouped.\n\nText 93.25% to 94.13%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: finish sizing the frame objects\n\nFour more matrices, sized so the prologue matches: every function in the\nunit now allocates the frame retail does except fn_8_C2018, where retail\nsaves a register more than we do and the difference is code shape, not\nlocals.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: the last empty case and the last dropped comparison\n\nfn_8_C0D74's inner switch runs to case 4 with nothing in the last arm, and\nthe remaining cror m2c could not represent is a >=. No M2C_ERROR markers\nare left in the unit.\n\nText 94.17%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.45606,"total_code":13039060,"matched_code":983960,"matched_code_percent":7.54625,"total_data":7167706,"matched_data":403224,"matched_data_percent":5.6255655,"total_functions":39074,"matched_functions":5634,"matched_functions_percent":14.418796,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-03T01:28:33Z","commit_sha":"39503b3474a300ef997e680c90b9a7460ed36bca","commit_message":"match: e_wall_stage11 from 3.7% to 16.0% matched code (#504)\n\n* match: fix the object layout and the extern arities in e_wall_stage11\n\nThe struct carried a four-byte pad at 0x28 that m2c had already covered\nwith unk28, so every field past it sat four bytes high - the loads and\nstores were all off by one word. Removing it closes two functions on its\nown and takes the unit from 3.73% to 6.55% matched.\n\nAlso: eight externs were declared variadic, which put a crclr in front of\n48 call sites retail does not have. The six mangled ones carry their real\nsignatures in the name; fn_8019E8EC, fn_800D7B00, fn_800D8BC4 and\nfn_80018A34 get theirs from the call sites, and the arguments m2c had\ndropped or invented at individual sites are filled in.\n\nfabs reaches the MSL intrinsic, unk2C4 is the word it is, and the three\npointer bases that were floats are reinterpreted rather than converted.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: close the second struct pad and give fn_800B4A38 its receiver\n\nThe object had a second duplicate slot, at 0x1E4, where unk1E4 and pad1E4\nboth claimed the same address - the same shape as the 0x28 one. Everything\nfrom 0x1E8 on sat four bytes high, which is why the tail offsets in\nfn_8_BAF00 were all off by a word.\n\nfn_800B4A38 takes seven arguments, not six. Every call site is guarded by\na null check on lbl_8042C388, and retail passes that pointer straight\nthrough as the first argument - m2c had dropped it and shifted the rest\ndown a register. unkD4 is read back as an integer here, so the store is a\nword store rather than a float conversion.\n\nfn_8_B9174 copies its source block as words, not floats, and holds the\nconstant in one register instead of reloading it per store.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: recover the object parameter block and the empty switch case\n\nThe three creation sites build a 0x30-byte parameter block on the stack -\nposition, three flags, a lifetime, 8 and 0x4B0 - which m2c had split into\na dozen loose sp locals. As separate scalars MWCC keeps them in registers\nand saves seven FPRs; as one struct they stay where retail put them.\nRwV3d gets its real definition for the vector that sits next to it.\n\nThe state switches run to case 4 with nothing in the last arm, which is\nwhere retail's stray \"cmpwi r4, 4\" followed by an unconditional branch\ncomes from. fn_8_BB294 is that same switch, which m2c had unrolled into a\npair of nested ifs.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: give the sound calls their handles and copy blocks as blocks\n\nSix externs were declared variadic, which is why 20 calls carried a crclr\nretail does not have. The sound entry points all take the handle that the\nenclosing null check reads - fn_8010B074, fn_8010AFF8, fn_8010B208 and\nfn_8010B0AC each lost it to m2c, along with the two floats that follow.\nfn_80113874 takes the result of the virtual call that precedes it, and\nfn_800B7864 and fn_8019CE34 were given arguments they never take.\n\nfn_8_B82CC builds four stack blocks - two vectors, two of four words -\nwhich m2c had spread over 22 loose locals; retail copies them whole, so\nthey are copied whole here, through the word-sized block types rather than\nfield by field, since that is what the loads and stores say.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: rebuild the stack vectors the callers actually pass\n\nTen more places build a position or an angle triple on the stack and hand\nits address to a call. m2c had them as loose scalars, so the copies came\nout field by field in floating point where retail moves words, and the\nvalues stayed in registers instead of the stack slots the callee reads.\nGrouping each triple - RwV3d for positions, sAngle for the integer angles,\nsVec4i for the four-word block - puts them back.\n\nfn_8_BBF90 reaches 99%, fn_8_BA2B0 98%, fn_8_B9BBC 96% and fn_8_B93A4 92%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: recover the sound-handle table and the release call's argument\n\nlbl_8_bss_1AC8 is a five-entry table of sound handles, not the single word\nm2c inferred, and reading it as an array stops MWCC parking its base in a\nsaved register across the five loads retail recomputes. fn_80150958 takes\nthe handle the enclosing null check reads, at all seventeen call sites.\n\nThe 0xB4 field of the paralysis object holds a pointer into lbl_8_data_17AEC,\nso the store is a word, not a float conversion, and the offset is bytes\nrather than words.\n\nTwo more functions match; the unit goes from 8.50% to 10.58%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: make the object creator the inline helper retail wrote\n\nfn_8_B9174 is a thin wrapper around a helper that retail inlines into all\nthree of its callers - which is why m2c reproduced its body verbatim at\neach one, and why those bodies read the parameter block out of registers\ninstead of the stack slots the loads name. Written as a static inline the\ncompiler folds it back in the same places, and the parameter block stays\nin memory because the helper reaches it through a pointer.\n\nfn_8_BA3A4 goes from 76.8% to 95.0%, fn_8_BB294 from 61.2% to 93.0%, and\nfn_8_BA8E0 from 62.4% to 89.1%. The unit's fuzzy match reaches 91.69%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* data: write out the tables m2c could not type\n\nEverything in .data was a bare \"static M2C_UNK name;\" placeholder, which\nput it in .bss and left the section at 20% matched. The contents are all\nrecoverable from the target: four dispatch tables of function pointers,\nthe animation table (fourteen nine-word records naming a file each), the\nforty-record parameter block, the field-name and label pointer arrays, and\nthirty-two strings.\n\nThe strings need no explicit padding - MWCC's four-byte data alignment\nreproduces retail's gaps on its own. The two display strings drop const so\nthey land in .data rather than .rodata.\n\nThe section goes from 19.98% to 87.06%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: fn_8019ED68 takes one angle, not three\n\nThe six calls carried the two constants that go into computing the angle\nas extra arguments; retail sets f1 and stops. Declaring the real arity\ndrops the crclr and the two dead loads at every site, and fn_8_B8970\npicks up a point and a half from it.\n\nfn_8_BC2CC also copies the object's position into its stack vector as\nwords rather than three float loads.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: load the zero constant once per initialiser\n\nThree initialisers write the same rodata float into a dozen fields each.\nBecause the stores go through the object pointer MWCC cannot prove they\nmiss the extern, so it reloads it every time; retail loads it once. A\nlocal holding it fixes all three, and the load has to sit after the last\ncall in the region or it ends up in f31 with a save retail does not have.\n\nfn_8_BCD58 and fn_8_B934C match; fn_8_B8FD0 goes from 79% to 85%. The\n0x2BC field is a word, so its zero is stored as one.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: give the state handlers their empty fourth case\n\nSixteen more state handlers carry retail's stray \"cmpwi r4, 4\" followed by\nan unconditional branch to the default - the shape MWCC emits for a switch\nwhose highest arm is empty. Two fields in fn_8_BCF88 are words as well: a\npointer into the animation table and a state number m2c had rendered as a\ndenormal float.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: the frame matrix is 0x40 bytes, not a word\n\nfn_80196050 fills a matrix on the stack; m2c typed the local as a single\nM2C_UNK, which shrank both frames by 0x20 and let the vector beside it\nlive in f30/f31 instead of the slots the later stores read back.\n\nfn_8_BCAB4 matches and fn_8_BCB60 reaches 98%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: write the clamps as the if/else chain retail compiled\n\nm2c renders \"pick the low bound, the high bound, or the value\" as a\npre-assignment followed by two ifs with empty bodies, and MWCC folds that\ninto a single inverted branch. Retail keeps the pair - a conditional to\nthe next test and an unconditional to the end - which is what an\nif / else if / else chain produces, because the low-bound assignment costs\nnothing once the comparison has loaded its address.\n\nEight of them, seven in fn_8_BD380 alone: 77.6% to 95.5%. The two byte\nbounds are signed, so they compare with extsb rather than a zero-extend.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: restore the four comparisons m2c could not represent\n\n\"cror eq, gt, eq\" after an fcmpo is >= and \"cror eq, lt, eq\" is <=; m2c\ndrops the instruction and leaves ==, which also compiles to fcmpu instead\nof fcmpo. All four sites here are the inequality.\n\nfn_8_B8504's two stack blocks join up as well - a four-float vector for\nthe query and a four-word block copied whole from rodata - taking it from\n70% to 92%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: keep the scale factor out of the multiply-subtract\n\nWritten as one expression MWCC contracts \"a - b * (c - d)\" into fnmsubs;\nretail keeps the multiply and the subtract apart, so the product goes into\nits own local first. Both sites compute the same fade factor.\n\nfn_8_B82CC reaches 95.5% and fn_8_BA0D4 81%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: keep the list-node constructor a call\n\nfn_8_B81B0 is a constructor: it returns the object it was handed, and its\ncaller stores that return value rather than the pointer it passed in. As a\nvoid function with the result thrown away MWCC folded it into fn_8_BCF88;\ndeclared with its real return type and kept out of line, the call comes\nback where retail has it.\n\nfn_8_BCF88 goes from 73% to 96%, and the unit's call list now matches\nretail's everywhere.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: read the state and the handle as the words they are\n\nThe 0xD4 state number and the 0x2BC handle are integers; reading them\nthrough the struct's float fields put a float-to-int conversion in front of\nevery comparison. The lbl_802AD090 table is indexed by element, not by\nsixteen bytes - m2c scaled the index because it had typed the base as a\nword.\n\nfn_8_B8FD0 copies its source block as words like the other creators do,\nand its constant load sits after the vtable store where retail put it.\n\nfn_8_BAF00 reaches 94% and fn_8_B8FD0 94%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: copy the offset vector out of the parameter block as words\n\nfn_8_BA8E0 takes the position it just wrote into the parameter block back\nout into the vector it passes to the normalise call. Retail moves the\ntwelve bytes as words; as three float assignments MWCC kept them in\nregisters and skipped the stack slots the call reads.\n\n93.6% for that function; the unit's fuzzy match reaches 95.13%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: read the base value before the product it is reduced by\n\nfn_8_BA0D4 loads the one constant into f3 before computing the scaled\ndifference, then subtracts. Naming it first puts the load where retail has\nit, and takes the function from 81% to 92%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* data: give the uninitialised objects their real sizes\n\nThree .bss objects were declared as a single word each - the chain link,\nthe global object and the object entry are 0xC, 0x14 and 0x30 - so the\nsection was short by 0x54 bytes and everything after them sat at the wrong\naddress. With the real sizes .bss matches.\n\nlbl_8_rodata_1E20 was written without const, which put it in .data and\nleft .rodata holding only the anonymous literal MWCC made for the 10000\nthe clamp compares against. It is that array's first element, so both go\naway and .rodata matches too.\n\nMatched data goes from 4 bytes to 204.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017rkLWTLf84oyCkT2Mt65gv\n\n* match: declare the stack vectors highest address first\n\nMWCC hands out stack slots in declaration order from the top of the frame\ndown, so the first vector declared is the one m2c named after the highest\noffset. Declared the other way round every vector in the function sits at\nthe wrong slot, which is why fn_8_BBF90 disagreed on nothing but the\ndisplacements.\n\nFour more functions match; the unit's matched code goes from 12.85% to\n15.95%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017rkLWTLf84oyCkT2Mt65gv\n\n* match: index the collision table by element in the last two readers\n\nThe two remaining reads of lbl_802AD090 still scaled the index by sixteen,\nand fn_8_BB5E4 wrote its state number through the object's float field.\n95.8% for that function.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017rkLWTLf84oyCkT2Mt65gv\n\n---------\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.444751,"total_code":13039060,"matched_code":983408,"matched_code_percent":7.5420165,"total_data":7167706,"matched_data":402928,"matched_data_percent":5.6214356,"total_functions":39074,"matched_functions":5632,"matched_functions_percent":14.413677,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-02T00:58:53Z","commit_sha":"bb5058ad79e981f6999f76ad79e47d2a3498714b","commit_message":"match: rebuild rw_gcn_render around retail's control flow (#503)\n\n* match: stop inlining and stop calling out in rw_gcn_render\n\nFour mechanical mismatches, found by comparing the target's bl list\nagainst ours:\n\n- fn_8022CF5C folds fn_8022B3E4 in seven times where retail calls it;\n  with dont_inline and its two loops given retail's bottom test it goes\n  from 0% to 79%.\n- fn_8022E09C reaches fabs through the MSL intrinsic, not a call.\n- the small struct copies in fn_8022E814 and fn_802301CC expand inline.\n\nfn_802301CC also gates on >=, not ==, and counts its edge loop up so it\nlands on ctr.\n\nUnit fuzzy 68.07% -> 70.71%, no regressions.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01KTWQAKe9pQQWGefMdnF2q1\n\n* match: recover fn_8022C21C and the rounding adjust in fn_8022C314\n\nfn_8022C21C walks its records in bytes, not s32 units, and tests at the\nbottom; with its locals in allocation order it closes. m2c had also lost\nthe callback's arity, so the slot that holds it was a parameter wide.\n\nfn_8022C314's seven rounding adjusts belong in the float domain -\nwritten against the integer alias each one dragged in a float-to-\nunsigned conversion call. 55% -> 70%.\n\nfn_8022D3F8 passes its one callback once, not twice.\n\nUnit is 2.58% -> 3.64% matched, 6/55 functions, 68.1% -> 72.9% fuzzy.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01KTWQAKe9pQQWGefMdnF2q1\n\n* match: read the vertex-cache comparisons as >= in rw_gcn_render\n\nFour of the cache-hit tests are >=; m2c renders that as == plus a cror\nit cannot represent, and the extra branch cost fn_8022E814 and\nfn_8022EB2C. The fifth, in fn_8023031C, is genuinely ==, so it stays.\n\nAlso drops the three phantom arg_sp0 parameters and the callback slot\nthat was a word wide because of one of them.\n\nUnit fuzzy 72.9% -> 73.0%, no regressions.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01KTWQAKe9pQQWGefMdnF2q1\n\n* match: recover fn_8022C11C in rw_gcn_render\n\nThe read side of the same record walk as fn_8022C21C: byte-stepped\npointers, a bottom-tested loop, and locals in allocation order.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01KTWQAKe9pQQWGefMdnF2q1\n\n* match: give the rw_gcn_render vertex loops retail's bottom test\n\nSeven m2c goto nests across the six largest instancing paths. Retail\ntests each at the bottom; the three that carry a plain stride get it in\nthe for clause, the four whose bookkeeping is interleaved with the body\nkeep the statement order and only lose the label.\n\nfn_8022EB2C 48.9% -> 50.9%, fn_8023031C 43.8% -> 45.9%,\nfn_80231208 68.9% -> 70.7%, fn_8023182C 60.1% -> 61.1%.\n\nUnit is 2.58% -> 4.54% matched, 7/55 functions, 68.1% -> 73.9% fuzzy.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01KTWQAKe9pQQWGefMdnF2q1\n\n* match: read the plugin-table fields at their real widths in fn_8022E46C\n\nThe instancing seed is a word, not a byte, the per-vertex source is a\nfloat load rather than a byte widened into one, and the counter loop\ncounts up so it lands on ctr. 51% -> 59%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n* match: count the render loops up so they land on ctr\n\nFour more counted loops written as counting for loops rather than m2c's\nguarded do-while: the two callback-table walks in fn_8022D948 and\nfn_8022DE28, and the per-vertex loops in fn_8022E814 and fn_8022E46C.\n\nfn_8022E814 75% -> 80%, fn_8022DE28 72% -> 76%, fn_8022D948 49% -> 51%.\n\nUnit fuzzy 74.0% -> 74.3%, no regressions.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.421151,"total_code":13039060,"matched_code":980148,"matched_code_percent":7.5170145,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5621,"matched_functions_percent":14.385525,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-01T14:24:16Z","commit_sha":"f9260f131e4a02039954399211c148357459eb30","commit_message":"match: continue rw_gcn_core reconstruction (part 2) (#502)\n\n* match: give fn_802332AC's four goto-loops retail's while/do-while shape\n\n* match: give fn_80232BAC's three goto-loops retail's while shape\n\n* match: collapse fn_802358B8's duplicate-condition if into one branch","measures":{"fuzzy_match_percent":9.407704,"total_code":13039060,"matched_code":979596,"matched_code_percent":7.512781,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5618,"matched_functions_percent":14.377848,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-09-01T14:02:34Z","commit_sha":"734ceaa45bb0fa7dd1be0fc46f3b91c65b0df341","commit_message":"match: continue rw_gcn_core reconstruction (#501)\n\n* match: drop the spurious lbl_8042AC68 argument in fn_80238228's fn_8019E8EC call\n\n* match: drop the spurious byte arguments in fn_802388D4's fn_80193474 call\n\n* match: restore the dropped stream argument in fn_8023271C and fn_8023521C\n\n* match: turn fn_8023501C and fn_8023506C's goto-loops into retail's while shape\n\n* match: turn fn_8023239C's copy-loop into retail's while shape\n\n* match: give fn_80232A9C's search loop retail's fall-through shape\n\n* match: give fn_80232E58's inner search loop retail's fall-through shape\n\n* match: give fn_802338B8's inner search loop retail's fall-through shape\n\n* match: turn fn_80233DF8's goto-loop into retail's while shape\n\n* match: turn fn_802356F0's goto-loop into retail's while shape\n\n* match: turn fn_80235E64's goto-loop into retail's while shape","measures":{"fuzzy_match_percent":9.405268,"total_code":13039060,"matched_code":979596,"matched_code_percent":7.512781,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5618,"matched_functions_percent":14.377848,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-30T23:09:31Z","commit_sha":"38aa233b5e9f37c255b2c700862aa735be01dd0d","commit_message":"match: give the rw_gcn_core teardown loops retail's shape (#500)\n\nfn_80238FF0's three list-drain loops test at the bottom, and its two\ncursors are ordered the way MWCC hands out saved registers: 88% -> 99.7%.\nfn_80238D3C takes the plugin offset in r3 like the rest of the table,\nreads the extension word with an indexed load, and accumulates its size\none term at a time: 89% -> 94%.\n\n\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.399611,"total_code":13039060,"matched_code":979516,"matched_code_percent":7.512167,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5617,"matched_functions_percent":14.375287,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-30T22:54:31Z","commit_sha":"0746851afaa1e91776cd7b95dc68cf28cea3d3ec","commit_message":"match: recover the stream callback table in rw_gcn_core (#499)\n\n* match: recover the stream callback table in rw_gcn_core\n\nfn_80238E6C builds an eleven-slot callback table; writing it as the array\nit is, cleared by a loop, is what retail compiles. That also pins the\nsignatures of the entries: every one of them takes the plugin offset in\nr3, so the object arrives in r4.\n\nAlso fn_80238328 compares the two timers with >=, not ==, and\nfn_80237F90 forms the extension pointer once between the two flag tests.\n\nUnit is 13.66% -> 15.29% matched, 47/89 functions, no regressions.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: expand the small struct copies in fn_80235E64 inline\n\nm2c routes them through memcpy; retail expands an 8-, 12- or 16-byte\ncopy in place, which is what a struct assignment compiles to.\n76% -> 79%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n---------\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.3991785,"total_code":13039060,"matched_code":979516,"matched_code_percent":7.512167,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5617,"matched_functions_percent":14.375287,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-30T14:22:01Z","commit_sha":"8894ad26ed7317dbbf87ceb8598278a2e239e3aa","commit_message":"match: recover the plugin-registry paths in rw_gcn_core (#498)\n\n* match: recover the five plugin list walks in rw_gcn_core\n\nfn_80232604, fn_80232648, fn_802346EC, fn_80234730 and fn_802350D4 all\nwalk a circular plugin list. Retail reads the head once into its own\nvariable and seeds the cursor from it before the empty-list test, rather\nthan re-reading the global at each compare.\n\nAlso reserve the unit in the tracking file and record where rw_gcn_raster\nwas left.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: recover fn_80234338 and fn_80232288 in rw_gcn_core\n\nfn_80234338 links the new plugin through the list head it already holds,\nthe way fn_802321EC does, instead of overwriting the global twice.\nfn_80232288's two teardown calls take the block they are freeing as their\nfirst argument; m2c had dropped it because only the second was visible.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: recover four more rw_gcn_core teardown paths\n\nfn_80235614, fn_80234058, fn_802343C4 and the list unlink in it were all\nshort an argument m2c could not see: the block being freed, the raster\nbeing queried, and the plugin list cursor starting at the head's\nsuccessor rather than the head.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: pass the freed block at seven more rw_gcn_core call sites\n\nSame dropped first argument as fn_80232288: the teardown helpers take\nwhat they are releasing. Closes fn_802343C4 and moves five other\nfunctions.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: restore dropped stream and object arguments in rw_gcn_core\n\nfn_802357A8/fn_8023582C pass the stream to their first chunk call,\nfn_8023914C takes the object it forwards, and fn_80239290 forwards it\ntoo. Closes three more functions.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: hold the plugin list head in a local in fn_802321EC\n\nSame shape as fn_80234338: read the head once and link through it,\nrather than re-reading the global between the two stores.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: stop inlining the seventeen helpers retail calls out of line\n\nobjdiff shows retail issuing a bl where our build had folded the callee\nin. Wrapping those callers in dont_inline moves seventeen functions,\nseveral of them from 0%: fn_802388D4 31% -> 94%, fn_802383C0 28% -> 99%,\nfn_80239738 10% -> 100%, fn_80235CEC 56% -> 99%.\n\nfn_80233F50 also gets its size accumulated term by term the way retail\ndoes it, and fn_80232960 takes the argument its callers pass.\n\nUnit is 4.25% -> 9.47% matched, 62.9% -> 79.2% fuzzy, no regressions.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: drop m2c's phantom stack parameters in rw_gcn_core\n\nEighteen functions carried an arg_sp0 nobody reads. It is not a real\nparameter, and while it sat in the signature the call sites could not be\ngiven the argument counts retail uses. Removing it, plus the leading\nparameters fn_802383C0, fn_802392DC and fn_802393A0 actually take and\nthe return layout fn_802393A0 uses, closes five more functions and takes\nfn_802392DC to 99%.\n\nUnit is 9.47% -> 11.66% matched, 41/89 functions, no regressions.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: order locals the way retail allocates its saved registers\n\nMWCC hands out r31, r30, r29 in declaration order, so the register\npermutation objdiff was reporting for the plugin walkers is a\ndeclaration-order question, not an allocation mystery. Reordering closes\nfn_80239184, fn_802391FC, fn_80239690 and fn_802395BC.\n\nAlso: fn_802395BC and the two stream writers take the leading argument\nretail passes them, their four-way copy loops get the bottom test, and\nfn_80238E6C's callback slots carry the corrected types.\n\nUnit is 11.66% -> 13.66% matched, 45/89 functions, no regressions.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n---------\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.396787,"total_code":13039060,"matched_code":979020,"matched_code_percent":7.5083637,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5615,"matched_functions_percent":14.370169,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-30T13:24:06Z","commit_sha":"dab9157b917f108c138c0bdac3c7045e3354ed2a","commit_message":"match: rebuild rw_gcn_raster around retail's control flow (#497)\n\n* match: recover fn_80225BF0 in rw_gcn_raster\n\nSwap the two operands of the 24-bit colour-key OR so the compiler uses\nthe 0x4 field as the rlwimi base instead of the 0x10 one, matching the\nretail register/mask allocation exactly.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: improve fn_80228014 in rw_gcn_raster\n\nReorder the 24-bit colour-key OR the same way as fn_80225BF0 so the\n0x4 field becomes the rlwimi base. Six instructions recovered; the\nremaining delta is only the scratch register the constant 6 lands in.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: recover the dropped arguments in fn_80227018\n\nfn_801659DC, fn_802290F0 and fn_8022A028 take three arguments, not one:\nretail computes the second and third from the raster's parent flag and\npasses them straight through. Restore them, keep fn_80226468 out of line\nthere, and give the parent test the polarity retail branches on.\n\nTakes the function from 79% to 95%; the rest is a three-way permutation\nof the callee-saved registers.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: rebuild fn_80226080 around real loops\n\nm2c had emitted the palette-scan as goto spaghetti, which put every loop\ntest at the top and cost the counted-loop form retail uses. Rewrite the\nthree nests as for loops, fix the raster stream-read callback to take the\nfive arguments RenderWare passes it, drop the phantom stack argument from\nfn_80225434, and index the duplicate search by subscript so the induction\nvariable survives.\n\n55% -> 94%; what is left is register allocation.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: rebuild fn_80225D48 around real loops\n\nSame treatment as fn_80226080: structured loops in place of the m2c goto\nnest, the five-argument RenderWare stream-read signature (the raster is\nin r5, not r4), the two fn_80225434 calls with the width argument m2c\ndropped, and the low byte of the header word hoisted so both branches\nshare it.\n\n62% -> 95%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: keep the mip header words in registers in fn_80225248\n\nRetail reads the three header words into locals once and works from\nthose; reading the stack slots again after every call cost a register\nand half the body. Copy them up front, widen fn_801979AC's length\nparameter to a full word, and keep one side of each doubled dimension\nunsigned so the compiler stops factoring the two shifts into one.\n\n77% -> 97%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: rebuild fn_802285D8 around real loops\n\nThe attribute-list builder was three m2c goto nests and a hand-unrolled\ncopy. Retail writes a plain nested loop there and lets the compiler\nunroll it by eight, so restore that. Also: the descriptor writes go\nthrough words, not bytes; the indexed byte groups sit eight bytes lower\nthan m2c placed them; the format word copied from the previous entry is\na word load; fn_8015F3FC takes four arguments; and fn_80226468 stays out\nof line here.\n\n65% -> 87%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: rebuild fn_80225434 around real loops\n\nStructured loops for the two palette scans, a bottom-tested while for\nthe tile copy, and the 0x40-byte tile move written as the struct\nassignment retail expands inline instead of sixteen word stores.\n\n64% -> 84%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: rebuild fn_80227528 around real loops\n\nSeven m2c goto nests become for and while loops, the atomic-count\nvariable stops being a u16 so the decrement no longer re-truncates,\nfn_80226468 stays out of line, and the plugin offset is added to the\nglobal before indexing, the way retail groups it.\n\n76% -> 87%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: rebuild fn_802273D0 around real loops\n\nThe two matrix-upload loops were m2c goto nests; retail tests both at\nthe bottom. 66% -> 80%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: rebuild fn_80227AA8 around real loops\n\nFour goto nests become while loops and the three counted loops are\nwritten as counting for loops, which is what makes the compiler put\nthem on ctr the way retail does.\n\n70% -> 94%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: give fn_80226D3C real loops\n\nBoth tile-blit loops were m2c goto nests. 71% -> 75%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: recover fn_80225B60 in rw_gcn_raster\n\nAccumulate the stream size term by term instead of in one expression;\nwritten as one sum the compiler reassociates it and retail does not.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: stop the compiler reassociating two size sums\n\nBoth the mip-chain size in fn_80225248 and the allocation size in\nfn_80225434 are folded differently when written as one expression;\nsplitting the accumulation in two follows retail.\n\nfn_80225248 97% -> 97%, fn_80225434 84% -> 87%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: recover fn_8022824C in rw_gcn_raster\n\nThree signatures were wrong: fn_80192F38 takes the stream as its first\nargument, fn_8019408C is variadic, and fn_801979AC's length parameter is\na full word rather than a byte. The two error records are structs, which\nis what keeps the error-code store alive. That closes the function and\nalso lifts the raster header path in fn_8022824C to a full match.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: give fn_80226B2C real loops\n\nBoth skin-matrix loops were m2c goto nests, and the raster fields are\nread in the order retail reads them. 90% -> 96%.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* match: recover fn_80227F48 in rw_gcn_raster\n\nThe running size is one variable, not two, and the raster flags are read\nonce up front rather than at the branch.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n* style: name the two new temporaries the way m2c names the rest\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NRwSirkJkvnMsXmcis4zMw\n\n---------\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":9.357187,"total_code":13039060,"matched_code":976160,"matched_code_percent":7.486429,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5595,"matched_functions_percent":14.318985,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-29T21:01:41Z","commit_sha":"4dba495e9c7ee649f414c46c61129e0b70349d49","commit_message":"Merge pull request #496 from Jovinull/codex/ci-match-regression-check\n\nci: add non-blocking match-progress check against main","measures":{"fuzzy_match_percent":9.343948,"total_code":13039060,"matched_code":974560,"matched_code_percent":7.474159,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5591,"matched_functions_percent":14.308747,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-29T21:01:24Z","commit_sha":"c0477b9a94215b2e253b7af2d26ef1790f44e543","commit_message":"Merge pull request #495 from Jovinull/codex/axrna-buf-symbol-split\n\nmatch: recover axrna ax_Z/ax_Buf symbol split","measures":{"fuzzy_match_percent":9.343948,"total_code":13039060,"matched_code":974560,"matched_code_percent":7.474159,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5591,"matched_functions_percent":14.308747,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-29T12:23:21Z","commit_sha":"998aedd35b547914e600897cb5ccb09d4908c204","commit_message":"Merge pull request #494 from Jovinull/codex/raster-native-stream-locals\n\nmatch: improve raster native stream locals","measures":{"fuzzy_match_percent":9.343947,"total_code":13039060,"matched_code":974444,"matched_code_percent":7.473269,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5590,"matched_functions_percent":14.306188,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-29T12:19:00Z","commit_sha":"d3efec9e47c36539b3fa3be27038092aa9812885","commit_message":"Merge pull request #493 from Jovinull/codex/raster-matrix-types\n\nmatch: recover raster matrix helper types","measures":{"fuzzy_match_percent":9.343924,"total_code":13039060,"matched_code":974444,"matched_code_percent":7.473269,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5590,"matched_functions_percent":14.306188,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-29T12:13:41Z","commit_sha":"45530cd631ca8727d57034812ae80ff85cdc03c4","commit_message":"Merge pull request #492 from Jovinull/codex/rnares-state-layout\n\ndocs: hand off RNA resource reconstruction","measures":{"fuzzy_match_percent":9.343918,"total_code":13039060,"matched_code":974236,"matched_code_percent":7.471674,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5589,"matched_functions_percent":14.303629,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-29T12:11:39Z","commit_sha":"29a42a156e6800e05354da7ccb7a38af31230530","commit_message":"Merge pull request #491 from Jovinull/codex/rnares-text\n\nmatch: remove RNA resource layout placeholder","measures":{"fuzzy_match_percent":9.343918,"total_code":13039060,"matched_code":974236,"matched_code_percent":7.471674,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5589,"matched_functions_percent":14.303629,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-29T12:07:50Z","commit_sha":"6f2dfb5988477b6a3f92d8bcc44a802f77d4d41f","commit_message":"docs: reserve CRI reconstruction work (#490)\n\n* docs: reserve CRI reconstruction work\n\n* match: restore RNA resource BSS layout","measures":{"fuzzy_match_percent":9.343918,"total_code":13039060,"matched_code":974236,"matched_code_percent":7.471674,"total_data":7167706,"matched_data":402728,"matched_data_percent":5.6186457,"total_functions":39074,"matched_functions":5589,"matched_functions_percent":14.303629,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T14:26:23Z","commit_sha":"23e3f9aeaf8d907dd6be605e53c88d4e9ba41415","commit_message":"docs: sort the roadmap by objdiff and refresh every row (#489)","measures":{"fuzzy_match_percent":9.343918,"total_code":13039060,"matched_code":974236,"matched_code_percent":7.471674,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5589,"matched_functions_percent":14.303629,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T14:21:58Z","commit_sha":"7b921c9f264b205192fe15eaab8e248463b8e5be","commit_message":"decomp: add nopropagation to the five units that measure better with it (#488)","measures":{"fuzzy_match_percent":9.343918,"total_code":13039060,"matched_code":974236,"matched_code_percent":7.471674,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5589,"matched_functions_percent":14.303629,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T14:17:45Z","commit_sha":"1551c979d70c22804a0f4eed19030b33729ed7a9","commit_message":"decomp: make bool an int and fix a narrow struct and a folded multiply (#487)","measures":{"fuzzy_match_percent":9.343536,"total_code":13039060,"matched_code":974236,"matched_code_percent":7.471674,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5589,"matched_functions_percent":14.303629,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T14:10:26Z","commit_sha":"6d58d353ded7a221a60d44eef6447e97c4841fb2","commit_message":"decomp: restore the parameter m2c named arg1 without declaring arg0 (#486)","measures":{"fuzzy_match_percent":9.342099,"total_code":13039060,"matched_code":974148,"matched_code_percent":7.470999,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5586,"matched_functions_percent":14.295951,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T14:03:43Z","commit_sha":"a52a4b81562387dee768855dd858f90ded9e0cc9","commit_message":"decomp: enable multiple-word moves on the three units that want them (#485)","measures":{"fuzzy_match_percent":9.339191,"total_code":13039060,"matched_code":972876,"matched_code_percent":7.461243,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5575,"matched_functions_percent":14.267799,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:58:53Z","commit_sha":"e648431e2842219753a3a0ba9b147c0cbdcc477d","commit_message":"decomp: name the field-type strings in the mask and wall records (#484)","measures":{"fuzzy_match_percent":9.338813,"total_code":13039060,"matched_code":972876,"matched_code_percent":7.461243,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5575,"matched_functions_percent":14.267799,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:55:54Z","commit_sha":"a88e9933a3274e2fb3b08eba0403cde7237be222","commit_message":"decomp: hoist the record flag constant in eight stage11 units (#483)","measures":{"fuzzy_match_percent":9.3386135,"total_code":13039060,"matched_code":972876,"matched_code_percent":7.461243,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5575,"matched_functions_percent":14.267799,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:51:43Z","commit_sha":"c6c6169f0e5c08b4600caf9deeea0dc199d7f0c8","commit_message":"decomp: turn data pooling off where retail did not use it (#482)","measures":{"fuzzy_match_percent":9.33834,"total_code":13039060,"matched_code":972876,"matched_code_percent":7.461243,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5575,"matched_functions_percent":14.267799,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:48:26Z","commit_sha":"683d2f1eb6003f86e947f17ad805a41dc63d2c7f","commit_message":"decomp: apply the object record recipe to the stage11 fan unit (#481)","measures":{"fuzzy_match_percent":9.302818,"total_code":13039060,"matched_code":972104,"matched_code_percent":7.4553227,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5569,"matched_functions_percent":14.252443,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:40:45Z","commit_sha":"b5c6864d55d11da3e86323beafa44aeaabf85993","commit_message":"decomp: name the capture collision record data and stop the flag fold (#480)","measures":{"fuzzy_match_percent":9.302597,"total_code":13039060,"matched_code":971948,"matched_code_percent":7.4541264,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5567,"matched_functions_percent":14.247325,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:31:42Z","commit_sha":"947f1cde936527ee8a7e64fc7ebaafeec23021fa","commit_message":"decomp: recover dropped call arguments in capture and turtle (#479)","measures":{"fuzzy_match_percent":9.302579,"total_code":13039060,"matched_code":971948,"matched_code_percent":7.4541264,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5567,"matched_functions_percent":14.247325,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:25:07Z","commit_sha":"efd224f4e760a36df03da1a4d8210c3c2ac2ac93","commit_message":"decomp: recover a lost argument in the stage11 tree unit (#478)","measures":{"fuzzy_match_percent":9.302349,"total_code":13039060,"matched_code":971700,"matched_code_percent":7.4522243,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5565,"matched_functions_percent":14.242207,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:10:26Z","commit_sha":"219670ff2981606db643346cff74da396888bbec","commit_message":"docs: refresh the roadmap table and state what left measures (#477)","measures":{"fuzzy_match_percent":9.302256,"total_code":13039060,"matched_code":971416,"matched_code_percent":7.4500465,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5562,"matched_functions_percent":14.2345295,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:06:42Z","commit_sha":"3aa93847872cea5e0ff32cadb573a471c3fed02f","commit_message":"decomp: adopt parameter lists without the return type (#476)","measures":{"fuzzy_match_percent":9.302256,"total_code":13039060,"matched_code":971416,"matched_code_percent":7.4500465,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5562,"matched_functions_percent":14.2345295,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T13:03:34Z","commit_sha":"8f4064ec3ea4e59ff9a7a5e5ef68d2b8b7e00c56","commit_message":"decomp: adopt prototypes the tree already states for m2c externs (#475)","measures":{"fuzzy_match_percent":9.300413,"total_code":13039060,"matched_code":971416,"matched_code_percent":7.4500465,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5562,"matched_functions_percent":14.2345295,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T12:59:50Z","commit_sha":"27b872d35f18b256f258b8c2ccca59905236f30e","commit_message":"decomp: give three m2c externs their real prototypes (#474)","measures":{"fuzzy_match_percent":9.2977085,"total_code":13039060,"matched_code":971416,"matched_code_percent":7.4500465,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5562,"matched_functions_percent":14.2345295,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T12:52:45Z","commit_sha":"d834c638145d1398d16610089e207bca9b1385fe","commit_message":"decomp: declare the RenderWare state block at its real size (#473)","measures":{"fuzzy_match_percent":9.295832,"total_code":13039060,"matched_code":971256,"matched_code_percent":7.448819,"total_data":7167706,"matched_data":402320,"matched_data_percent":5.612953,"total_functions":39074,"matched_functions":5560,"matched_functions_percent":14.229411,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T12:43:50Z","commit_sha":"15b69fce24a5edbdba3dfa74f5edcb1bc4de9c8f","commit_message":"decomp: spell the empty-case switch idiom in stage11 m2c units (#472)","measures":{"fuzzy_match_percent":9.290335,"total_code":13039060,"matched_code":970828,"matched_code_percent":7.4455366,"total_data":7167706,"matched_data":402076,"matched_data_percent":5.609549,"total_functions":39074,"matched_functions":5553,"matched_functions_percent":14.211496,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-27T12:16:40Z","commit_sha":"c220a61e7b24365a42ba2c683b08be8e45fba433","commit_message":"fix: reject a build step handed dtk's target object (#471)","measures":{"fuzzy_match_percent":9.289078,"total_code":13039060,"matched_code":969580,"matched_code_percent":7.4359655,"total_data":7167706,"matched_data":402076,"matched_data_percent":5.609549,"total_functions":39074,"matched_functions":5514,"matched_functions_percent":14.111686,"complete_code":953376,"complete_code_percent":7.3116927,"complete_data":392896,"complete_data_percent":5.481475,"total_units":6217,"complete_units":2171}},{"timestamp":"2026-08-26T14:07:52Z","commit_sha":"f8ef108bcc908e0cc6a9e591a953681f950f7dfb","commit_message":"fix: stop shipping the retail object in place of the compiler's (#470)","measures":{"fuzzy_match_percent":9.338947,"total_code":13039060,"matched_code":976188,"matched_code_percent":7.486644,"total_data":7167706,"matched_data":402732,"matched_data_percent":5.6187015,"total_functions":39074,"matched_functions":5541,"matched_functions_percent":14.180785,"complete_code":959992,"complete_code_percent":7.362433,"complete_data":393560,"complete_data_percent":5.4907384,"total_units":6217,"complete_units":2172}},{"timestamp":"2026-08-26T13:36:09Z","commit_sha":"781fb019d2c0f2b0d279f7137618688132387625","commit_message":"Complete the stage40 TENKYU and goal-ring translation unit (#468)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n* Complete the RenderWare GCN all-in-one translation unit\n\n* Complete the RenderWare GCN raster translation unit\n\n* Complete the RenderWare GCN render translation unit\n\n* Complete the RenderWare GCN core translation unit\n\n* Complete the no-Ottotto collision registration translation unit\n\n* Complete the stage40 PUT PARTICLE translation unit\n\n* Complete the stage40 SP DASHPANEL translation unit\n\n* Complete the stage40 SP DASHRING translation unit\n\n* Complete the stage40 PARTICLE TEST translation unit\n\n* Complete the stage40 SP boss throw-object translation unit\n\n* Complete the stage40 sky-bobsleigh path translation unit\n\n* Complete the stage40 player-effects translation unit\n\n* Complete the stage40 SP effect-dash translation unit\n\n* Complete the stage40 formation-gate subordinate translation unit\n\n* Complete the stage40 Chao Beans translation unit\n\n* Complete the stage40 TENKYU and goal-ring translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":10.431089,"total_code":13039060,"matched_code":1360116,"matched_code_percent":10.431089,"total_data":7167706,"matched_data":427392,"matched_data_percent":5.9627447,"total_functions":39074,"matched_functions":6661,"matched_functions_percent":17.047142,"complete_code":1360116,"complete_code_percent":10.431089,"complete_data":427800,"complete_data_percent":5.9684367,"total_units":6217,"complete_units":2217}},{"timestamp":"2026-08-26T13:33:50Z","commit_sha":"c6415fbce31353a7b2117e5a3335843e21ae6cd5","commit_message":"Complete the stage40 formation-gate subordinate translation unit (#466)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n* Complete the RenderWare GCN all-in-one translation unit\n\n* Complete the RenderWare GCN raster translation unit\n\n* Complete the RenderWare GCN render translation unit\n\n* Complete the RenderWare GCN core translation unit\n\n* Complete the no-Ottotto collision registration translation unit\n\n* Complete the stage40 PUT PARTICLE translation unit\n\n* Complete the stage40 SP DASHPANEL translation unit\n\n* Complete the stage40 SP DASHRING translation unit\n\n* Complete the stage40 PARTICLE TEST translation unit\n\n* Complete the stage40 SP boss throw-object translation unit\n\n* Complete the stage40 sky-bobsleigh path translation unit\n\n* Complete the stage40 player-effects translation unit\n\n* Complete the stage40 SP effect-dash translation unit\n\n* Complete the stage40 formation-gate subordinate translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":10.353784,"total_code":13039060,"matched_code":1350036,"matched_code_percent":10.353784,"total_data":7167706,"matched_data":426460,"matched_data_percent":5.949742,"total_functions":39074,"matched_functions":6608,"matched_functions_percent":16.9115,"complete_code":1350036,"complete_code_percent":10.353784,"complete_data":426868,"complete_data_percent":5.955434,"total_units":6220,"complete_units":2215}},{"timestamp":"2026-08-26T13:31:47Z","commit_sha":"44db3b75c4ffc1ac4965ea435fedd10d111c6c55","commit_message":"Complete the stage40 player-effects translation unit (#464)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n* Complete the RenderWare GCN all-in-one translation unit\n\n* Complete the RenderWare GCN raster translation unit\n\n* Complete the RenderWare GCN render translation unit\n\n* Complete the RenderWare GCN core translation unit\n\n* Complete the no-Ottotto collision registration translation unit\n\n* Complete the stage40 PUT PARTICLE translation unit\n\n* Complete the stage40 SP DASHPANEL translation unit\n\n* Complete the stage40 SP DASHRING translation unit\n\n* Complete the stage40 PARTICLE TEST translation unit\n\n* Complete the stage40 SP boss throw-object translation unit\n\n* Complete the stage40 sky-bobsleigh path translation unit\n\n* Complete the stage40 player-effects translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":10.182667,"total_code":13039060,"matched_code":1327724,"matched_code_percent":10.182667,"total_data":7167706,"matched_data":424756,"matched_data_percent":5.9259686,"total_functions":39074,"matched_functions":6524,"matched_functions_percent":16.696526,"complete_code":1327724,"complete_code_percent":10.182667,"complete_data":425164,"complete_data_percent":5.9316607,"total_units":6222,"complete_units":2213}},{"timestamp":"2026-08-26T13:29:09Z","commit_sha":"056d53d584fefdd6dab567d24fadc3f0e13070ef","commit_message":"Complete the stage40 SP boss throw-object translation unit (#462)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n* Complete the RenderWare GCN all-in-one translation unit\n\n* Complete the RenderWare GCN raster translation unit\n\n* Complete the RenderWare GCN render translation unit\n\n* Complete the RenderWare GCN core translation unit\n\n* Complete the no-Ottotto collision registration translation unit\n\n* Complete the stage40 PUT PARTICLE translation unit\n\n* Complete the stage40 SP DASHPANEL translation unit\n\n* Complete the stage40 SP DASHRING translation unit\n\n* Complete the stage40 PARTICLE TEST translation unit\n\n* Complete the stage40 SP boss throw-object translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":10.087415,"total_code":13039060,"matched_code":1315304,"matched_code_percent":10.087414,"total_data":7167706,"matched_data":423856,"matched_data_percent":5.913412,"total_functions":39074,"matched_functions":6451,"matched_functions_percent":16.5097,"complete_code":1315304,"complete_code_percent":10.087414,"complete_data":424264,"complete_data_percent":5.9191046,"total_units":6220,"complete_units":2211}},{"timestamp":"2026-08-26T13:27:06Z","commit_sha":"8cf6413e6bb8837f6fc20aff22a5eefc21495ffc","commit_message":"Complete the stage40 SP DASHRING translation unit (#460)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n* Complete the RenderWare GCN all-in-one translation unit\n\n* Complete the RenderWare GCN raster translation unit\n\n* Complete the RenderWare GCN render translation unit\n\n* Complete the RenderWare GCN core translation unit\n\n* Complete the no-Ottotto collision registration translation unit\n\n* Complete the stage40 PUT PARTICLE translation unit\n\n* Complete the stage40 SP DASHPANEL translation unit\n\n* Complete the stage40 SP DASHRING translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":10.040509,"total_code":13039060,"matched_code":1309188,"matched_code_percent":10.040509,"total_data":7167706,"matched_data":423188,"matched_data_percent":5.904093,"total_functions":39074,"matched_functions":6414,"matched_functions_percent":16.415007,"complete_code":1309188,"complete_code_percent":10.040509,"complete_data":423596,"complete_data_percent":5.909785,"total_units":6224,"complete_units":2209}},{"timestamp":"2026-08-26T13:24:29Z","commit_sha":"e2b798d3feb54e3bd2ad5961b945f7338692a723","commit_message":"Complete the stage40 PUT PARTICLE translation unit (#458)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n* Complete the RenderWare GCN all-in-one translation unit\n\n* Complete the RenderWare GCN raster translation unit\n\n* Complete the RenderWare GCN render translation unit\n\n* Complete the RenderWare GCN core translation unit\n\n* Complete the no-Ottotto collision registration translation unit\n\n* Complete the stage40 PUT PARTICLE translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.988543,"total_code":13039060,"matched_code":1302412,"matched_code_percent":9.988542,"total_data":7167706,"matched_data":422312,"matched_data_percent":5.891871,"total_functions":39074,"matched_functions":6386,"matched_functions_percent":16.34335,"complete_code":1302412,"complete_code_percent":9.988542,"complete_data":422720,"complete_data_percent":5.8975635,"total_units":6226,"complete_units":2207}},{"timestamp":"2026-08-26T13:22:26Z","commit_sha":"5ad424a2e6d3e200083606f3863e4d3a6afe8c2b","commit_message":"Complete the RenderWare GCN core translation unit (#456)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n* Complete the RenderWare GCN all-in-one translation unit\n\n* Complete the RenderWare GCN raster translation unit\n\n* Complete the RenderWare GCN render translation unit\n\n* Complete the RenderWare GCN core translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.949766,"total_code":13039060,"matched_code":1297356,"matched_code_percent":9.949766,"total_data":7167706,"matched_data":421768,"matched_data_percent":5.8842816,"total_functions":39074,"matched_functions":6356,"matched_functions_percent":16.266571,"complete_code":1297356,"complete_code_percent":9.949766,"complete_data":422176,"complete_data_percent":5.8899736,"total_units":6227,"complete_units":2194}},{"timestamp":"2026-08-26T13:20:15Z","commit_sha":"59e1a51b2443f0185ec73475f7e7b3877d99b280","commit_message":"Complete the RenderWare GCN render translation unit (#455)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n* Complete the RenderWare GCN all-in-one translation unit\n\n* Complete the RenderWare GCN raster translation unit\n\n* Complete the RenderWare GCN render translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.857778,"total_code":13039060,"matched_code":1267816,"matched_code_percent":9.723216,"total_data":7167706,"matched_data":421524,"matched_data_percent":5.8808775,"total_functions":39074,"matched_functions":6285,"matched_functions_percent":16.084866,"complete_code":1266952,"complete_code_percent":9.71659,"complete_data":421932,"complete_data_percent":5.8865695,"total_units":6227,"complete_units":2193}},{"timestamp":"2026-08-26T13:18:05Z","commit_sha":"195f9a694650fd06b67b0734e6fc2023905e0fcb","commit_message":"Complete the RenderWare GCN raster translation unit (#454)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n* Complete the RenderWare GCN all-in-one translation unit\n\n* Complete the RenderWare GCN raster translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.785682,"total_code":13039060,"matched_code":1240016,"matched_code_percent":9.510011,"total_data":7167706,"matched_data":421524,"matched_data_percent":5.8808775,"total_functions":39074,"matched_functions":6233,"matched_functions_percent":15.951784,"complete_code":1238784,"complete_code_percent":9.500563,"complete_data":421748,"complete_data_percent":5.8840027,"total_units":6227,"complete_units":2192}},{"timestamp":"2026-08-26T13:07:18Z","commit_sha":"f5b593853abfece582259c05caac41c4c418f45d","commit_message":"Complete the CRI RNARES translation unit (#452)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n* Complete the CRI AXRNA translation unit\n\n* Complete the CRI RNARES translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.725096,"total_code":13039060,"matched_code":1217172,"matched_code_percent":9.334814,"total_data":7167706,"matched_data":421524,"matched_data_percent":5.8808775,"total_functions":39074,"matched_functions":6194,"matched_functions_percent":15.851973,"complete_code":1213468,"complete_code_percent":9.306407,"complete_data":421596,"complete_data_percent":5.8818817,"total_units":6227,"complete_units":2190}},{"timestamp":"2026-08-26T13:04:49Z","commit_sha":"aa02494b79149aadad42a5273456e98f8ef5535a","commit_message":"Complete the CRI SVM translation unit (#450)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n* Complete the celestial sphere translation unit\n\n* Complete the CRI SVM translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.721528,"total_code":13039060,"matched_code":1213180,"matched_code_percent":9.304198,"total_data":7167706,"matched_data":421116,"matched_data_percent":5.875185,"total_functions":39074,"matched_functions":6186,"matched_functions_percent":15.831499,"complete_code":1206300,"complete_code_percent":9.251433,"complete_data":412452,"complete_data_percent":5.7543097,"total_units":6227,"complete_units":2188}},{"timestamp":"2026-08-26T13:02:38Z","commit_sha":"23c32576d7d62e32442f8908bc147a8ffc4fc029","commit_message":"Complete the stage 11 capture translation unit (#448)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n* Complete the stage 11 key translation unit\n\n* Complete the stage 11 capture translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.695048,"total_code":13039060,"matched_code":1205928,"matched_code_percent":9.248581,"total_data":7167706,"matched_data":420036,"matched_data_percent":5.8601174,"total_functions":39074,"matched_functions":6149,"matched_functions_percent":15.736807,"complete_code":1198644,"complete_code_percent":9.192718,"complete_data":410948,"complete_data_percent":5.733327,"total_units":6227,"complete_units":2186}},{"timestamp":"2026-08-26T13:00:21Z","commit_sha":"a6ccd234832ca00c2f7ed381d0eabab3ae98e8af","commit_message":"Complete the stage 11 door translation unit (#446)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n* Complete the stage 11 flag translation unit\n\n* Complete the stage 11 door translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.481075,"total_code":13039060,"matched_code":1178028,"matched_code_percent":9.034608,"total_data":7167706,"matched_data":418216,"matched_data_percent":5.834726,"total_functions":39074,"matched_functions":6072,"matched_functions_percent":15.539744,"complete_code":1170744,"complete_code_percent":8.978745,"complete_data":409124,"complete_data_percent":5.7078795,"total_units":6227,"complete_units":2184}},{"timestamp":"2026-08-26T12:57:53Z","commit_sha":"e6f028f319c99c1e4d9da53dacf69cc9c91841c0","commit_message":"Complete the stage 11 mask translation unit (#444)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n* Complete the stage 11 mask translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.386191,"total_code":13039060,"matched_code":1165656,"matched_code_percent":8.939724,"total_data":7167706,"matched_data":416852,"matched_data_percent":5.815696,"total_functions":39074,"matched_functions":6040,"matched_functions_percent":15.4578495,"complete_code":1158372,"complete_code_percent":8.883862,"complete_data":407756,"complete_data_percent":5.6887937,"total_units":6227,"complete_units":2182}},{"timestamp":"2026-08-26T12:55:41Z","commit_sha":"f0ba8fd09efa6cf11da310f761fe74d8e93f8f75","commit_message":"Complete the stage 11 grass translation unit (#443)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n* Complete the stage 11 grass translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.35168,"total_code":13039060,"matched_code":1161156,"matched_code_percent":8.905212,"total_data":7167706,"matched_data":416400,"matched_data_percent":5.80939,"total_functions":39074,"matched_functions":6023,"matched_functions_percent":15.414342,"complete_code":1153872,"complete_code_percent":8.84935,"complete_data":407300,"complete_data_percent":5.6824317,"total_units":6227,"complete_units":2181}},{"timestamp":"2026-08-26T12:53:51Z","commit_sha":"586170f6401bdaf9e770ef8d1293e43fe6580b57","commit_message":"Complete the stage 11 grass2 translation unit (#442)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n* Complete the stage 11 grass2 translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.309192,"total_code":13039060,"matched_code":1155616,"matched_code_percent":8.862725,"total_data":7167706,"matched_data":415344,"matched_data_percent":5.794657,"total_functions":39074,"matched_functions":6007,"matched_functions_percent":15.373394,"complete_code":1148332,"complete_code_percent":8.806862,"complete_data":406240,"complete_data_percent":5.667643,"total_units":6227,"complete_units":2180}},{"timestamp":"2026-08-26T12:51:38Z","commit_sha":"d79236e5eae4faf3d709a9d1419bc189ac089c4a","commit_message":"Complete the stage 11 tree translation unit (#441)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n* Complete the stage 11 tree translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.275693,"total_code":13039060,"matched_code":1151248,"matched_code_percent":8.829226,"total_data":7167706,"matched_data":414536,"matched_data_percent":5.783385,"total_functions":39074,"matched_functions":5991,"matched_functions_percent":15.332445,"complete_code":1143964,"complete_code_percent":8.773363,"complete_data":405428,"complete_data_percent":5.656315,"total_units":6227,"complete_units":2179}},{"timestamp":"2026-08-26T12:49:20Z","commit_sha":"4ae2d25a0d77b3271002fcefb771af98028448e7","commit_message":"Complete the stage 11 fan translation unit (#440)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n* Complete the stage 11 fan translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.247009,"total_code":13039060,"matched_code":1147508,"matched_code_percent":8.800543,"total_data":7167706,"matched_data":413936,"matched_data_percent":5.7750134,"total_functions":39074,"matched_functions":5977,"matched_functions_percent":15.2966175,"complete_code":1140224,"complete_code_percent":8.744679,"complete_data":404824,"complete_data_percent":5.647888,"total_units":6227,"complete_units":2178}},{"timestamp":"2026-08-26T12:38:38Z","commit_sha":"c3d9efbd6aef7249561c1bd7a1afbc3fbfebbb3e","commit_message":"Complete the stage 11 spider translation unit (#439)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n* Complete the stage 11 spider translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.231119,"total_code":13039060,"matched_code":1145436,"matched_code_percent":8.784652,"total_data":7167706,"matched_data":413776,"matched_data_percent":5.7727814,"total_functions":39074,"matched_functions":5965,"matched_functions_percent":15.265905,"complete_code":1138152,"complete_code_percent":8.728788,"complete_data":404656,"complete_data_percent":5.645544,"total_units":6227,"complete_units":2177}},{"timestamp":"2026-08-26T12:36:24Z","commit_sha":"166d2e7bfbd11aa477cf8794adf1edaf52306693","commit_message":"Complete the stage 11 turtle translation unit (#438)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n* Complete the stage 11 turtle translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.201515,"total_code":13039060,"matched_code":1141576,"matched_code_percent":8.755049,"total_data":7167706,"matched_data":413516,"matched_data_percent":5.769154,"total_functions":39074,"matched_functions":5951,"matched_functions_percent":15.230076,"complete_code":1134292,"complete_code_percent":8.699185,"complete_data":404392,"complete_data_percent":5.641861,"total_units":6227,"complete_units":2176}},{"timestamp":"2026-08-26T12:34:22Z","commit_sha":"7a76b79c325f09970615bbadd99d3cf1a3847b38","commit_message":"Complete the stage 11 wall translation unit (#437)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n* Complete the stage 11 wall translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":9.047363,"total_code":13039060,"matched_code":1121476,"matched_code_percent":8.600896,"total_data":7167706,"matched_data":411732,"matched_data_percent":5.7442646,"total_functions":39074,"matched_functions":5885,"matched_functions_percent":15.061166,"complete_code":1114192,"complete_code_percent":8.5450325,"complete_data":402604,"complete_data_percent":5.6169157,"total_units":6227,"complete_units":2175}},{"timestamp":"2026-08-26T12:32:27Z","commit_sha":"3f1e3123bd7a76ec85461c37921fadcbeaceca2f","commit_message":"Complete the stage 11 rinoliner collision translation unit (#436)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n* Complete the stage 11 rinoliner collision translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.842748,"total_code":13039060,"matched_code":1094796,"matched_code_percent":8.39628,"total_data":7167706,"matched_data":409276,"matched_data_percent":5.71,"total_functions":39074,"matched_functions":5798,"matched_functions_percent":14.838512,"complete_code":1087512,"complete_code_percent":8.340417,"complete_data":400144,"complete_data_percent":5.582595,"total_units":6227,"complete_units":2174}},{"timestamp":"2026-08-26T12:30:18Z","commit_sha":"23c8c0daab893e906ec58c896349e514b12a492a","commit_message":"Complete the stage 11 rinoliner translation unit (#435)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n* Complete the stage 11 rinoliner translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.763784,"total_code":13039060,"matched_code":1084500,"matched_code_percent":8.317317,"total_data":7167706,"matched_data":408000,"matched_data_percent":5.692198,"total_functions":39074,"matched_functions":5745,"matched_functions_percent":14.702871,"complete_code":1077216,"complete_code_percent":8.261454,"complete_data":398864,"complete_data_percent":5.5647373,"total_units":6227,"complete_units":2173}},{"timestamp":"2026-08-26T12:28:10Z","commit_sha":"5c1e89184cdc941e37a6eec145b5a016ab3a0244","commit_message":"Complete the stage 11 collision communication translation unit (#434)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n* Complete the stage 11 collision communication translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.704609,"total_code":13039060,"matched_code":1076784,"matched_code_percent":8.2581415,"total_data":7167706,"matched_data":406772,"matched_data_percent":5.6750655,"total_functions":39074,"matched_functions":5730,"matched_functions_percent":14.664483,"complete_code":1069500,"complete_code_percent":8.202278,"complete_data":397632,"complete_data_percent":5.547549,"total_units":6227,"complete_units":2172}},{"timestamp":"2026-08-26T12:25:46Z","commit_sha":"464504feb3becc5c353f1444a499c6dadbf296c6","commit_message":"Complete the stage 11 rinoliner strategy translation unit (#433)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n* Complete the stage 11 rinoliner strategy translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.636751,"total_code":13039060,"matched_code":1067936,"matched_code_percent":8.190284,"total_data":7167706,"matched_data":406668,"matched_data_percent":5.6736145,"total_functions":39074,"matched_functions":5698,"matched_functions_percent":14.582586,"complete_code":1060652,"complete_code_percent":8.134421,"complete_data":397528,"complete_data_percent":5.5460978,"total_units":6227,"complete_units":2171}},{"timestamp":"2026-08-26T12:23:33Z","commit_sha":"fb525b5416e8253118ee84b4718588aa85ae2514","commit_message":"Complete the stage 11 magician translation unit (#432)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n* Complete the stage 11 magician translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.60638,"total_code":13039060,"matched_code":1063976,"matched_code_percent":8.159913,"total_data":7167706,"matched_data":406524,"matched_data_percent":5.6716056,"total_functions":39074,"matched_functions":5677,"matched_functions_percent":14.528842,"complete_code":1056692,"complete_code_percent":8.10405,"complete_data":397384,"complete_data_percent":5.5440893,"total_units":6227,"complete_units":2170}},{"timestamp":"2026-08-26T12:21:27Z","commit_sha":"d878b2940c649b46712e6fd98a8e88bbddd4b4ef","commit_message":"Complete the stage 11 magician strategy translation unit (#431)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n* Complete the stage 11 magician strategy translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.520914,"total_code":13039060,"matched_code":1052832,"matched_code_percent":8.074447,"total_data":7167706,"matched_data":406332,"matched_data_percent":5.6689267,"total_functions":39074,"matched_functions":5656,"matched_functions_percent":14.475099,"complete_code":1045548,"complete_code_percent":8.018584,"complete_data":397192,"complete_data_percent":5.5414104,"total_units":6227,"complete_units":2169}},{"timestamp":"2026-08-26T12:19:15Z","commit_sha":"e0b4559edba2afb7d3959ad746989e98e1b102e4","commit_message":"Complete the stage 11 flyer path translation unit (#430)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n* Complete the stage 11 flyer path translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.453455,"total_code":13039060,"matched_code":1044036,"matched_code_percent":8.006989,"total_data":7167706,"matched_data":405980,"matched_data_percent":5.664016,"total_functions":39074,"matched_functions":5625,"matched_functions_percent":14.3957615,"complete_code":1036752,"complete_code_percent":7.9511256,"complete_data":396840,"complete_data_percent":5.536499,"total_units":6227,"complete_units":2168}},{"timestamp":"2026-08-26T12:16:52Z","commit_sha":"1b151f296e7574f0652f1eb8b35e1e1b975ebb76","commit_message":"Complete the stage 11 flyer collision translation unit (#429)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n* Complete the stage 11 flyer collision translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.38388,"total_code":13039060,"matched_code":1034964,"matched_code_percent":7.9374127,"total_data":7167706,"matched_data":405412,"matched_data_percent":5.6560917,"total_functions":39074,"matched_functions":5588,"matched_functions_percent":14.301069,"complete_code":1027680,"complete_code_percent":7.88155,"complete_data":396272,"complete_data_percent":5.528575,"total_units":6227,"complete_units":2167}},{"timestamp":"2026-08-26T12:14:44Z","commit_sha":"54a4599eebdfbc673992905cd246e36795c32b11","commit_message":"Complete the stage 11 flyer translation unit (#428)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n* Complete the stage 11 flyer translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.341638,"total_code":13039060,"matched_code":1029456,"matched_code_percent":7.89517,"total_data":7167706,"matched_data":404976,"matched_data_percent":5.6500087,"total_functions":39074,"matched_functions":5561,"matched_functions_percent":14.23197,"complete_code":1022172,"complete_code_percent":7.8393073,"complete_data":395836,"complete_data_percent":5.522492,"total_units":6227,"complete_units":2166}},{"timestamp":"2026-08-26T12:12:38Z","commit_sha":"b54ad0782fea584492a488c3c15dfa24907d6989","commit_message":"Complete the stage 11 capture collision translation unit (#427)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n* Complete the stage 11 capture collision translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.201076,"total_code":13039060,"matched_code":1011128,"matched_code_percent":7.754608,"total_data":7167706,"matched_data":403892,"matched_data_percent":5.6348853,"total_functions":39074,"matched_functions":5504,"matched_functions_percent":14.086093,"complete_code":1003844,"complete_code_percent":7.6987453,"complete_data":394752,"complete_data_percent":5.5073686,"total_units":6227,"complete_units":2165}},{"timestamp":"2026-08-26T12:10:31Z","commit_sha":"77f39a0fa146640cb55d4ae05c58bddb30c24a5a","commit_message":"Decompile the complete stage 11 flyer strategy translation unit (#426)\n\n* Decompile the complete stage 11 bone translation unit\n\n* Decompile the complete stage 11 no-ottotto collision translation unit\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit\n\n* Decompile the complete stage 11 light collision translation unit\n\n* Decompile the complete stage 11 flyer strategy translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":8.188774,"total_code":13039060,"matched_code":1009524,"matched_code_percent":7.7423067,"total_data":7167706,"matched_data":403640,"matched_data_percent":5.6313696,"total_functions":39074,"matched_functions":5488,"matched_functions_percent":14.045145,"complete_code":1002240,"complete_code_percent":7.686444,"complete_data":394500,"complete_data_percent":5.503853,"total_units":6227,"complete_units":2164}},{"timestamp":"2026-08-26T12:04:23Z","commit_sha":"10db16102e2684fd85ac00f4d093ecee00dd7771","commit_message":"Decompile the complete stage 11 object effects translation unit (#424)\n\n* Decompile the complete stage 11 goal ring translation unit\n\n* Decompile the complete stage 11 object effects translation unit","measures":{"fuzzy_match_percent":8.004681,"total_code":13039060,"matched_code":985520,"matched_code_percent":7.5582137,"total_data":7167706,"matched_data":401992,"matched_data_percent":5.6083775,"total_functions":39074,"matched_functions":5390,"matched_functions_percent":13.794338,"complete_code":978236,"complete_code_percent":7.502351,"complete_data":392852,"complete_data_percent":5.4808607,"total_units":6227,"complete_units":2162}},{"timestamp":"2026-08-26T12:01:58Z","commit_sha":"a22fd5a1b611559dfb1d34612b7ed77555e95add","commit_message":"Decompile the complete stage 11 propeller translation unit (#422)\n\n* Decompile the complete stage 11 roll-door lifecycle translation unit\n\n* Decompile the complete stage 11 signal lifecycle translation unit\n\n* Decompile the complete stage 11 propeller translation unit","measures":{"fuzzy_match_percent":7.8814816,"total_code":13039060,"matched_code":969456,"matched_code_percent":7.4350147,"total_data":7167706,"matched_data":401988,"matched_data_percent":5.6083217,"total_functions":39074,"matched_functions":5355,"matched_functions_percent":13.704765,"complete_code":962172,"complete_code_percent":7.379152,"complete_data":392848,"complete_data_percent":5.480805,"total_units":6228,"complete_units":2160}},{"timestamp":"2026-08-26T11:54:58Z","commit_sha":"e1676f172dabb32eddede07db80dedb4ebef36a7","commit_message":"Decompile the complete stage 11 case object lifecycle translation unit (#418)\n\n* Decompile the complete stage 11 EfRain translation unit\n\n* Decompile the complete stage 11 case object translation unit\n\n* Decompile the complete stage 11 case object lifecycle translation unit","measures":{"fuzzy_match_percent":7.775431,"total_code":13039060,"matched_code":955628,"matched_code_percent":7.328964,"total_data":7167706,"matched_data":401988,"matched_data_percent":5.6083217,"total_functions":39074,"matched_functions":5330,"matched_functions_percent":13.640783,"complete_code":948344,"complete_code_percent":7.273101,"complete_data":392848,"complete_data_percent":5.480805,"total_units":6228,"complete_units":2157}},{"timestamp":"2026-08-26T11:32:29Z","commit_sha":"b16640bc64dc4f55e03c6594f68eee8dacd80fbd","commit_message":"Decompile the complete stage 11 no-ottotto collision translation unit (#415)","measures":{"fuzzy_match_percent":7.735275,"total_code":13039060,"matched_code":950392,"matched_code_percent":7.288808,"total_data":7167706,"matched_data":401192,"matched_data_percent":5.597216,"total_functions":39074,"matched_functions":5313,"matched_functions_percent":13.597277,"complete_code":943108,"complete_code_percent":7.2329445,"complete_data":392052,"complete_data_percent":5.4697,"total_units":6225,"complete_units":2154}},{"timestamp":"2026-08-26T11:29:15Z","commit_sha":"a1f5f099d92838187bb2daed1d77e2e2e93c75ac","commit_message":"Decompile the complete stage 11 bone translation unit (#414)","measures":{"fuzzy_match_percent":7.740122,"total_code":13039060,"matched_code":951024,"matched_code_percent":7.2936544,"total_data":7167706,"matched_data":400960,"matched_data_percent":5.5939794,"total_functions":39074,"matched_functions":5317,"matched_functions_percent":13.607513,"complete_code":943740,"complete_code_percent":7.237792,"complete_data":391820,"complete_data_percent":5.466463,"total_units":6226,"complete_units":2166}},{"timestamp":"2026-08-26T11:17:42Z","commit_sha":"aab55d386910abb98615394db67fa980b37afbfd","commit_message":"ci: verify the built artifacts against build.sha1 explicitly (#421)","measures":{"fuzzy_match_percent":7.684351,"total_code":13039060,"matched_code":943752,"matched_code_percent":7.2378836,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5290,"matched_functions_percent":13.538414,"complete_code":936468,"complete_code_percent":7.1820207,"complete_data":391060,"complete_data_percent":5.4558597,"total_units":6227,"complete_units":2166}},{"timestamp":"2026-08-26T03:10:03Z","commit_sha":"5a974e95230a92ce293009aba08be1e460980fff","commit_message":"Decompile the complete stage 11 key translation unit (#413)\n\n* Decompile stage 11 key translation unit\n\n* decomp: land the e_s11_key source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.684351,"total_code":13039060,"matched_code":943752,"matched_code_percent":7.2378836,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5290,"matched_functions_percent":13.538414,"complete_code":936468,"complete_code_percent":7.1820207,"complete_data":391060,"complete_data_percent":5.4558597,"total_units":6227,"complete_units":2166}},{"timestamp":"2026-08-26T03:05:52Z","commit_sha":"244cda24c39f495bd555ad3426d31d997bb1af37","commit_message":"Decompile the complete stage 11 mask translation unit (#412)\n\n* Decompile stage 11 mask translation unit\n\n* decomp: land the e_mask source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.6855164,"total_code":13039060,"matched_code":943904,"matched_code_percent":7.23905,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5291,"matched_functions_percent":13.540975,"complete_code":936620,"complete_code_percent":7.1831865,"complete_data":391064,"complete_data_percent":5.4559155,"total_units":6231,"complete_units":2167}},{"timestamp":"2026-08-26T03:01:25Z","commit_sha":"eacb1b658d69ed2c63818d0f97d6aea1899529c4","commit_message":"Decompile the complete stage 11 flag translation unit (#411)\n\n* Decompile stage 11 flag translation unit\n\n* decomp: land the e_s11_flag source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.6868052,"total_code":13039060,"matched_code":944072,"matched_code_percent":7.240338,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5292,"matched_functions_percent":13.543532,"complete_code":936788,"complete_code_percent":7.184475,"complete_data":391068,"complete_data_percent":5.4559717,"total_units":6232,"complete_units":2168}},{"timestamp":"2026-08-26T02:57:11Z","commit_sha":"b1c98ed27e6169d8413c7d813de0c58f9047fcd9","commit_message":"Decompile the complete stage 11 grass translation unit (#410)\n\n* Decompile stage 11 grass translation unit\n\n* decomp: land the e_grass source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.688124,"total_code":13039060,"matched_code":944244,"matched_code_percent":7.241657,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5293,"matched_functions_percent":13.546091,"complete_code":936960,"complete_code_percent":7.1857944,"complete_data":391072,"complete_data_percent":5.4560275,"total_units":6233,"complete_units":2169}},{"timestamp":"2026-08-26T02:52:47Z","commit_sha":"b8039fdac9855bb06a61d2241963fca51039fa6f","commit_message":"Decompile the complete stage 11 grass2 translation unit (#409)\n\n* Decompile stage 11 grass2 translation unit\n\n* decomp: land the e_grass2 source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.6894126,"total_code":13039060,"matched_code":944412,"matched_code_percent":7.2429457,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5294,"matched_functions_percent":13.548652,"complete_code":937128,"complete_code_percent":7.187083,"complete_data":391076,"complete_data_percent":5.4560833,"total_units":6234,"complete_units":2170}},{"timestamp":"2026-08-26T02:48:40Z","commit_sha":"b967aa9d7c1a912cfcf1b7ca2badccfc59123321","commit_message":"Decompile the complete stage 11 tree translation unit (#408)\n\n* Decompile stage 11 tree translation unit\n\n* decomp: land the e_tree source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.690701,"total_code":13039060,"matched_code":944580,"matched_code_percent":7.2442336,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5295,"matched_functions_percent":13.551209,"complete_code":937296,"complete_code_percent":7.1883707,"complete_data":391080,"complete_data_percent":5.456139,"total_units":6235,"complete_units":2171}},{"timestamp":"2026-08-26T02:44:19Z","commit_sha":"89c36f7d518a1051b41134283fa2b5408e794670","commit_message":"Decompile the complete stage 11 fan translation unit (#407)\n\n* Decompile stage 11 fan translation unit\n\n* decomp: land the e_fan source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.6919894,"total_code":13039060,"matched_code":944748,"matched_code_percent":7.245522,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5296,"matched_functions_percent":13.55377,"complete_code":937464,"complete_code_percent":7.189659,"complete_data":391084,"complete_data_percent":5.456195,"total_units":6236,"complete_units":2172}},{"timestamp":"2026-08-26T02:39:47Z","commit_sha":"274450f52f28a194a2082b9a560c254c21ef1319","commit_message":"Decompile the complete stage 11 spider translation unit (#406)\n\n* Decompile stage 11 spider translation unit\n\n* decomp: land the e_spider source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.6931553,"total_code":13039060,"matched_code":944900,"matched_code_percent":7.246688,"total_data":7167706,"matched_data":400196,"matched_data_percent":5.5833206,"total_functions":39074,"matched_functions":5297,"matched_functions_percent":13.556329,"complete_code":937616,"complete_code_percent":7.190825,"complete_data":391088,"complete_data_percent":5.4562507,"total_units":6238,"complete_units":2173}},{"timestamp":"2026-08-26T02:35:42Z","commit_sha":"3345f4acb4ab190c77325fa273964a6a51fceabd","commit_message":"Decompile the complete stage 11 turtle translation unit (#405)\n\n* Decompile stage 11 turtle translation unit\n\n* decomp: land the e_turtle source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.6944437,"total_code":13039060,"matched_code":945068,"matched_code_percent":7.2479763,"total_data":7167706,"matched_data":400196,"matched_data_percent":5.5833206,"total_functions":39074,"matched_functions":5298,"matched_functions_percent":13.558888,"complete_code":937784,"complete_code_percent":7.1921134,"complete_data":391092,"complete_data_percent":5.4563065,"total_units":6238,"complete_units":2174}},{"timestamp":"2026-08-26T02:31:41Z","commit_sha":"7643a5caf9cdbb4a98f9276a3d7c964afa3a0084","commit_message":"Decompile the complete stage 11 wall translation unit (#404)\n\n* Decompile stage 11 wall translation unit\n\n* decomp: land the e_wall source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.6961617,"total_code":13039060,"matched_code":945292,"matched_code_percent":7.2496943,"total_data":7167706,"matched_data":400196,"matched_data_percent":5.5833206,"total_functions":39074,"matched_functions":5299,"matched_functions_percent":13.561447,"complete_code":938008,"complete_code_percent":7.1938314,"complete_data":391096,"complete_data_percent":5.4563622,"total_units":6239,"complete_units":2175}},{"timestamp":"2026-08-26T02:26:39Z","commit_sha":"fba8c39ed97c3851e3277235c015ae32ddd2893d","commit_message":"Match stage11 Rinoliner collision translation unit (#403)\n\n* Decompile stage11 rinoliner collision TU\n\n* decomp: land the e_rinoliner_collision source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.6978793,"total_code":13039060,"matched_code":945516,"matched_code_percent":7.2514124,"total_data":7167706,"matched_data":400196,"matched_data_percent":5.5833206,"total_functions":39074,"matched_functions":5300,"matched_functions_percent":13.564007,"complete_code":938232,"complete_code_percent":7.1955495,"complete_data":391100,"complete_data_percent":5.456418,"total_units":6240,"complete_units":2176}},{"timestamp":"2026-08-26T02:22:33Z","commit_sha":"0a5307ca0b3bec73d9030cfa428e2d87669e5ce4","commit_message":"Match stage11 e_rinoliner translation unit (#402)\n\n* Decompile stage11 rinoliner TU\n\n* decomp: land the e_rinoliner source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.6991677,"total_code":13039060,"matched_code":945684,"matched_code_percent":7.252701,"total_data":7167706,"matched_data":400196,"matched_data_percent":5.5833206,"total_functions":39074,"matched_functions":5301,"matched_functions_percent":13.5665655,"complete_code":938400,"complete_code_percent":7.1968374,"complete_data":391104,"complete_data_percent":5.456474,"total_units":6242,"complete_units":2177}},{"timestamp":"2026-08-26T02:18:10Z","commit_sha":"604d01a0ea67018fd2c943e15ec9b233a3b125a3","commit_message":"Match stage11 o_colli_communication translation unit (#401)\n\n* Match stage11 o_colli_communication translation unit\n\n* decomp: land the o_colli_communication source without the object post-processor\n\n* fix: drop the stale colli_communication ranges that main already assigns\n\n* fix: restore the real stage11D data and rodata boundaries around magician\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.700456,"total_code":13039060,"matched_code":945852,"matched_code_percent":7.2539887,"total_data":7167706,"matched_data":400196,"matched_data_percent":5.5833206,"total_functions":39074,"matched_functions":5302,"matched_functions_percent":13.569125,"complete_code":938568,"complete_code_percent":7.198127,"complete_data":391108,"complete_data_percent":5.4565296,"total_units":6242,"complete_units":2178}},{"timestamp":"2026-08-26T02:06:48Z","commit_sha":"c40ec7b86d53a2ad2dbff1fed93277f54398640f","commit_message":"Match stage11 e_strategy_rinoliner translation unit (#400)\n\n* Match stage11 e_strategy_rinoliner translation unit\n\n* decomp: land the e_strategy_rinoliner source without the object post-processor\n\n* fix: trim the magician data range to the boundary this PR reveals\n\n* fix: keep the stage11D splits in address order after inserting the new unit\n\n* fix: drop the stale rinoliner data range that main already assigns\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.700456,"total_code":13039060,"matched_code":945852,"matched_code_percent":7.2539887,"total_data":7167706,"matched_data":400196,"matched_data_percent":5.5833206,"total_functions":39074,"matched_functions":5302,"matched_functions_percent":13.569125,"complete_code":938568,"complete_code_percent":7.198127,"complete_data":391108,"complete_data_percent":5.4565296,"total_units":6241,"complete_units":2178}},{"timestamp":"2026-08-26T01:45:10Z","commit_sha":"191e8e68c849fceb16b38d8d4b90e3762e707f2e","commit_message":"Match stage11 e_magician translation unit (#399)\n\n* Match stage11 e_magician translation unit\n\n* decomp: land the e_magician source without the object post-processor\n\n* merge main\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.700456,"total_code":13039060,"matched_code":945852,"matched_code_percent":7.2539887,"total_data":7167706,"matched_data":400196,"matched_data_percent":5.5833206,"total_functions":39074,"matched_functions":5302,"matched_functions_percent":13.569125,"complete_code":938568,"complete_code_percent":7.198127,"complete_data":391108,"complete_data_percent":5.4565296,"total_units":6240,"complete_units":2178}},{"timestamp":"2026-08-26T01:38:00Z","commit_sha":"136dbf23584dffaa7a7ab99ff23c42056cf1717e","commit_message":"Match stage11 e_strategy_magician translation unit (#398)\n\n* Match stage11 e_strategy_magician translation unit\n\n* decomp: land the e_strategy_magician source without the object post-processor\n\n* merge main\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.7017446,"total_code":13039060,"matched_code":946020,"matched_code_percent":7.2552776,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5303,"matched_functions_percent":13.571684,"complete_code":938736,"complete_code_percent":7.1994147,"complete_data":391112,"complete_data_percent":5.4565854,"total_units":6240,"complete_units":2179}},{"timestamp":"2026-08-26T01:30:49Z","commit_sha":"3767c89f28f930a01575cbc38696a9b00d7cb2ef","commit_message":"Match stage11 e_flyer_path translation unit (#397)\n\n* Match stage11 e_flyer_path translation unit\n\n* decomp: land the e_flyer_path source without the object post-processor\n\n* merge main\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.7017446,"total_code":13039060,"matched_code":946020,"matched_code_percent":7.2552776,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5303,"matched_functions_percent":13.571684,"complete_code":938736,"complete_code_percent":7.1994147,"complete_data":391112,"complete_data_percent":5.4565854,"total_units":6236,"complete_units":2179}},{"timestamp":"2026-08-26T01:22:37Z","commit_sha":"8864c2ef314641a56215aa1d31650fb3806e5d66","commit_message":"Match stage11 e_flyer_collision.cpp whole TU (#396)\n\n* Match stage11 e_flyer_collision translation unit\n\n* decomp: land the e_flyer_collision source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.7017446,"total_code":13039060,"matched_code":946020,"matched_code_percent":7.2552776,"total_data":7167706,"matched_data":400200,"matched_data_percent":5.5833764,"total_functions":39074,"matched_functions":5303,"matched_functions_percent":13.571684,"complete_code":938736,"complete_code_percent":7.1994147,"complete_data":391112,"complete_data_percent":5.4565854,"total_units":6235,"complete_units":2179}},{"timestamp":"2026-08-26T01:17:04Z","commit_sha":"d1ff63ac441658b00549a63af682010679c254c5","commit_message":"Match stage11 e_flyer.cpp whole TU (#395)\n\n* Match stage11 e_flyer translation unit\n\n* decomp: land the e_flyer source without the object post-processor\n\n* fix: merge the stage11D splits by block instead of by line\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.703033,"total_code":13039060,"matched_code":946188,"matched_code_percent":7.256566,"total_data":7167706,"matched_data":400204,"matched_data_percent":5.583432,"total_functions":39074,"matched_functions":5304,"matched_functions_percent":13.5742445,"complete_code":938904,"complete_code_percent":7.200703,"complete_data":391116,"complete_data_percent":5.456641,"total_units":6235,"complete_units":2180}},{"timestamp":"2026-08-26T01:05:05Z","commit_sha":"353e7a04ac0ba7d318046414fd5f3e2237007dc1","commit_message":"feat: match stage11 flyer strategy object (#394)\n\n* feat: match stage11 flyer strategy object\n\n* decomp: land the e_strategy_flyer source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.704291,"total_code":13039060,"matched_code":946352,"matched_code_percent":7.2578235,"total_data":7167706,"matched_data":400208,"matched_data_percent":5.583488,"total_functions":39074,"matched_functions":5305,"matched_functions_percent":13.576802,"complete_code":939068,"complete_code_percent":7.2019606,"complete_data":391120,"complete_data_percent":5.456697,"total_units":6235,"complete_units":2181}},{"timestamp":"2026-08-26T01:00:54Z","commit_sha":"8b99b838f665ae6562f7e9d95ce48f35eb51eeb5","commit_message":"feat: match stage11 capture collision object (#393)\n\n* feat: match stage11 capture collision object\n\n* decomp: land the e_capture_collision source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.704291,"total_code":13039060,"matched_code":946352,"matched_code_percent":7.2578235,"total_data":7167706,"matched_data":400208,"matched_data_percent":5.583488,"total_functions":39074,"matched_functions":5305,"matched_functions_percent":13.576802,"complete_code":939068,"complete_code_percent":7.2019606,"complete_data":391120,"complete_data_percent":5.456697,"total_units":6237,"complete_units":2181}},{"timestamp":"2026-08-26T00:56:59Z","commit_sha":"f132b0e762b63bf2963e6b00eb3d7a1eed6efb88","commit_message":"Match stage11 e_capture.cpp (#392)\n\n* feat: match stage11 capture object\n\n* decomp: land the e_capture source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.7055793,"total_code":13039060,"matched_code":946520,"matched_code_percent":7.2591124,"total_data":7167706,"matched_data":400212,"matched_data_percent":5.583544,"total_functions":39074,"matched_functions":5306,"matched_functions_percent":13.579363,"complete_code":939236,"complete_code_percent":7.2032495,"complete_data":391124,"complete_data_percent":5.456753,"total_units":6238,"complete_units":2182}},{"timestamp":"2026-08-26T00:52:58Z","commit_sha":"70fe194780e011d52d9967fc6c5f8f9f9eacd2cd","commit_message":"Match o_s12_celestial_sphere.cpp (#391)\n\n* feat: match celestial sphere object\n\n* decomp: land the o_s12_celestial_sphere source without the object post-processor\n\n* merge main\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.707512,"total_code":13039060,"matched_code":946772,"matched_code_percent":7.2610445,"total_data":7167706,"matched_data":400216,"matched_data_percent":5.5835996,"total_functions":39074,"matched_functions":5307,"matched_functions_percent":13.581922,"complete_code":939488,"complete_code_percent":7.205182,"complete_data":391128,"complete_data_percent":5.4568086,"total_units":6239,"complete_units":2183}},{"timestamp":"2026-08-26T00:48:56Z","commit_sha":"f95d12cb2bb50a51f6ed0e0fd5db0a5575ae315d","commit_message":"Decompile o_s11_door translation unit (#390)\n\n* Decompile o_s11_door translation unit\n\n* decomp: land the o_s11_door source without the object post-processor\n\n* merge main\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.7088003,"total_code":13039060,"matched_code":946940,"matched_code_percent":7.2623334,"total_data":7167706,"matched_data":400220,"matched_data_percent":5.5836554,"total_functions":39074,"matched_functions":5308,"matched_functions_percent":13.584481,"complete_code":939656,"complete_code_percent":7.2064705,"complete_data":391132,"complete_data_percent":5.4568644,"total_units":6244,"complete_units":2184}},{"timestamp":"2026-08-26T00:44:29Z","commit_sha":"a451e7fd55ec5b245e07be2128328cb49f67b05b","commit_message":"Decompile rw_gcn_core translation unit (#389)\n\n* Decompile rw_gcn_core translation unit\n\n* merge main\n\n* merge main\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.711807,"total_code":13039060,"matched_code":947332,"matched_code_percent":7.26534,"total_data":7167706,"matched_data":400224,"matched_data_percent":5.583711,"total_functions":39074,"matched_functions":5310,"matched_functions_percent":13.5896,"complete_code":940048,"complete_code_percent":7.209477,"complete_data":391136,"complete_data_percent":5.45692,"total_units":6244,"complete_units":2186}},{"timestamp":"2026-08-26T00:35:08Z","commit_sha":"efec262041879df86ddd7b5daa219076733de7e5","commit_message":"Match rw_gcn_render translation unit (#388)\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.5706196,"total_code":13039060,"matched_code":946468,"matched_code_percent":7.2587132,"total_data":7167706,"matched_data":400224,"matched_data_percent":5.583711,"total_functions":39074,"matched_functions":5292,"matched_functions_percent":13.543532,"complete_code":940048,"complete_code_percent":7.209477,"complete_data":391136,"complete_data_percent":5.45692,"total_units":6245,"complete_units":2186}},{"timestamp":"2026-08-26T00:30:44Z","commit_sha":"9f75157c92f44fe4d0bdb3753cb7127878117e34","commit_message":"Match CRI AXRNA translation unit (#377)\n\n* decomp: improve AXRNA DMA polling match\n\n* decomp: align AXRNA constructor loop types\n\n* decomp: match AXRNA ring refill function\n\n* decomp: match AXRNA read-only data relocations\n\n* decomp: match AXRNA bss aggregates\n\n* decomp: match AXRNA rate setter\n\n* decomp: restore AXRNA constructor setter guards\n\n* decomp: restore AXRNA volume register allocation\n\n* decomp: match AXRNA DMA polling function\n\n* decomp: match AXRNA initialization function\n\n* decomp: match AXRNA loop mode setter\n\n* decomp: restore AXRNA constructor setter boundaries\n\n* decomp: correct AXRNA stereo pan initialization\n\n* decomp: improve AXRNA constructor control flow\n\n* Modernize AXRNA object normalization\n\n* Match AXRNA diagnostic rodata size\n\n* Match CRI AXRNA translation unit\n\n* decomp: land the AXRNA source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.4266877,"total_code":13039060,"matched_code":946100,"matched_code_percent":7.255891,"total_data":7167706,"matched_data":400040,"matched_data_percent":5.5811443,"total_functions":39074,"matched_functions":5289,"matched_functions_percent":13.535855,"complete_code":940048,"complete_code_percent":7.209477,"complete_data":391136,"complete_data_percent":5.45692,"total_units":6244,"complete_units":2186}},{"timestamp":"2026-08-26T00:22:19Z","commit_sha":"3aad792a05e0efc90caf56ee19fe15170a4ab118","commit_message":"Decompile rw_gcn_allinone translation unit (#386)\n\n* Match rw_gcn_allinone translation unit\n\n* decomp: land the rw_gcn_allinone source without the object post-processor\n\n* fix: sort the language policy list\n\n* fix: split the merged Object entries in configure.py\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.424518,"total_code":13039060,"matched_code":945052,"matched_code_percent":7.247854,"total_data":7167706,"matched_data":391512,"matched_data_percent":5.462166,"total_functions":39074,"matched_functions":5288,"matched_functions_percent":13.533296,"complete_code":940048,"complete_code_percent":7.209477,"complete_data":391136,"complete_data_percent":5.45692,"total_units":6244,"complete_units":2186}},{"timestamp":"2026-08-26T00:11:48Z","commit_sha":"775d4dde7c9ee5abd4e26f91dae9887097a46634","commit_message":"Decompile rw_gcn_raster translation unit (#385)\n\n* Match rw_gcn_raster translation unit\n\n* decomp: land the rw_gcn_raster source without the object post-processor\n\n* ci: retrigger\n\n* fix: sort the language policy list\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.385887,"total_code":13039060,"matched_code":945052,"matched_code_percent":7.247854,"total_data":7167706,"matched_data":391480,"matched_data_percent":5.4617195,"total_functions":39074,"matched_functions":5288,"matched_functions_percent":13.533296,"complete_code":940048,"complete_code_percent":7.209477,"complete_data":391136,"complete_data_percent":5.45692,"total_units":6243,"complete_units":2186}},{"timestamp":"2026-08-25T23:45:20Z","commit_sha":"33929651c7e5202e7ae1ebaa27e0c8950106a4cf","commit_message":"Decompile CRI RNARES translation unit (#384)\n\n* Decompile CRI RNARES translation unit\n\n* decomp: land the RNARES source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.2909474,"total_code":13039060,"matched_code":942580,"matched_code_percent":7.228895,"total_data":7167706,"matched_data":391360,"matched_data_percent":5.4600453,"total_functions":39074,"matched_functions":5263,"matched_functions_percent":13.469315,"complete_code":940048,"complete_code_percent":7.209477,"complete_data":391136,"complete_data_percent":5.45692,"total_units":6244,"complete_units":2186}},{"timestamp":"2026-08-25T23:40:28Z","commit_sha":"5a0bce3b419e7eb76645b58ed657f2c235cb5426","commit_message":"Decompile CRI SVM translation unit (#383)\n\n* Decompile CRI SVM translation unit\n\n* Fix CRI SJ split registration order\n\n* wip: land the SVM bss at the target offsets with a layout anchor\n\n* decomp: land the SVM source without the object post-processor\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.2856054,"total_code":13039060,"matched_code":942580,"matched_code_percent":7.228895,"total_data":7167706,"matched_data":391280,"matched_data_percent":5.4589295,"total_functions":39074,"matched_functions":5263,"matched_functions_percent":13.469315,"complete_code":940048,"complete_code_percent":7.209477,"complete_data":391136,"complete_data_percent":5.45692,"total_units":6243,"complete_units":2186}},{"timestamp":"2026-08-25T21:57:34Z","commit_sha":"a0c71eed27cfa5d27775eef4ccf48eb9c0d68c27","commit_message":"Match CRI error reporting translation unit (#378)\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.2533693,"total_code":13039060,"matched_code":942176,"matched_code_percent":7.2257967,"total_data":7167706,"matched_data":390856,"matched_data_percent":5.453014,"total_functions":39074,"matched_functions":5258,"matched_functions_percent":13.456519,"complete_code":940048,"complete_code_percent":7.209477,"complete_data":391136,"complete_data_percent":5.45692,"total_units":6245,"complete_units":2186}},{"timestamp":"2026-08-25T21:48:18Z","commit_sha":"a8cebf02ff300f743d0fb97149f36e9088e914a8","commit_message":"build: sort the CRI SJ splits back into address order (#387)","measures":{"fuzzy_match_percent":7.2510076,"total_code":13039060,"matched_code":941868,"matched_code_percent":7.223435,"total_data":7167706,"matched_data":390592,"matched_data_percent":5.449331,"total_functions":39074,"matched_functions":5254,"matched_functions_percent":13.446281,"complete_code":939740,"complete_code_percent":7.207115,"complete_data":390872,"complete_data_percent":5.453237,"total_units":6246,"complete_units":2185}},{"timestamp":"2026-08-25T20:07:14Z","commit_sha":"feaff111901d0e5f87f01a24ff889910951b1d22","commit_message":"Match CRI SJ translation unit (#382)","measures":{"fuzzy_match_percent":7.2510076,"total_code":13039060,"matched_code":941868,"matched_code_percent":7.223435,"total_data":7167706,"matched_data":390592,"matched_data_percent":5.449331,"total_functions":39074,"matched_functions":5254,"matched_functions_percent":13.446281,"complete_code":939740,"complete_code_percent":7.207115,"complete_data":390872,"complete_data_percent":5.453237,"total_units":6246,"complete_units":2185}},{"timestamp":"2026-08-25T19:55:18Z","commit_sha":"55ed48d26d8b418f456a5d451e2675f1876c4360","commit_message":"Match CRI SJMEM translation unit (#381)","measures":{"fuzzy_match_percent":7.2326317,"total_code":13039060,"matched_code":939472,"matched_code_percent":7.2050595,"total_data":7167706,"matched_data":374088,"matched_data_percent":5.2190757,"total_functions":39074,"matched_functions":5238,"matched_functions_percent":13.4053335,"complete_code":937344,"complete_code_percent":7.188739,"complete_data":374368,"complete_data_percent":5.2229824,"total_units":6249,"complete_units":2184}},{"timestamp":"2026-08-25T19:35:58Z","commit_sha":"6449234546128e6807972197aad85f38a8e46606","commit_message":"Match CRI SJRBF translation unit (#379)","measures":{"fuzzy_match_percent":7.2206984,"total_code":13039060,"matched_code":937916,"matched_code_percent":7.1931257,"total_data":7167706,"matched_data":372848,"matched_data_percent":5.201776,"total_functions":39074,"matched_functions":5225,"matched_functions_percent":13.372064,"complete_code":935788,"complete_code_percent":7.176806,"complete_data":373128,"complete_data_percent":5.2056823,"total_units":6248,"complete_units":2183}},{"timestamp":"2026-08-25T19:20:45Z","commit_sha":"61d84ee67676ee7a81a8283ab4cf6af6f03d23a4","commit_message":"Match CRI SJCRS translation unit (#380)","measures":{"fuzzy_match_percent":7.2141027,"total_code":13039060,"matched_code":937056,"matched_code_percent":7.1865306,"total_data":7167706,"matched_data":369304,"matched_data_percent":5.152332,"total_functions":39074,"matched_functions":5219,"matched_functions_percent":13.356708,"complete_code":934928,"complete_code_percent":7.17021,"complete_data":369584,"complete_data_percent":5.1562386,"total_units":6244,"complete_units":2182}},{"timestamp":"2026-08-25T19:06:10Z","commit_sha":"d273731a013c279749a1bae4fcec1e427af9dd07","commit_message":"Decompile fn_80054900 translation unit (#375)","measures":{"fuzzy_match_percent":7.2129374,"total_code":13039060,"matched_code":936904,"matched_code_percent":7.1853647,"total_data":7167706,"matched_data":369296,"matched_data_percent":5.1522202,"total_functions":39074,"matched_functions":5217,"matched_functions_percent":13.351589,"complete_code":934776,"complete_code_percent":7.169045,"complete_data":369576,"complete_data_percent":5.1561265,"total_units":6243,"complete_units":2181}},{"timestamp":"2026-08-25T18:53:35Z","commit_sha":"b6777be41cda61f0ca4089c8db480dc4d9fe9416","commit_message":"Decompile fn_80054F08 translation unit (#374)","measures":{"fuzzy_match_percent":7.210884,"total_code":13039060,"matched_code":935360,"matched_code_percent":7.1735234,"total_data":7167706,"matched_data":369260,"matched_data_percent":5.151718,"total_functions":39074,"matched_functions":5216,"matched_functions_percent":13.34903,"complete_code":933232,"complete_code_percent":7.1572027,"complete_data":369540,"complete_data_percent":5.1556244,"total_units":6243,"complete_units":2180}},{"timestamp":"2026-08-25T18:32:36Z","commit_sha":"5fb87540388061e3577fba9e8d4d12d5e61f6f12","commit_message":"tools: catch retail instruction words carried as integer tables (#376)","measures":{"fuzzy_match_percent":7.2084303,"total_code":13039060,"matched_code":933976,"matched_code_percent":7.162909,"total_data":7167706,"matched_data":369224,"matched_data_percent":5.1512156,"total_functions":39074,"matched_functions":5215,"matched_functions_percent":13.346471,"complete_code":931848,"complete_code_percent":7.146589,"complete_data":369504,"complete_data_percent":5.1551223,"total_units":6243,"complete_units":2179}},{"timestamp":"2026-08-25T17:15:49Z","commit_sha":"833cf8ab144d730b2ea77bac41fa42e3a9115b26","commit_message":"Merge pull request #373 from Jovinull/decomp-game-fn-800d75cc-cpp\n\ndecomp: complete projected angle translation unit","measures":{"fuzzy_match_percent":7.2084303,"total_code":13039060,"matched_code":933976,"matched_code_percent":7.162909,"total_data":7167706,"matched_data":369224,"matched_data_percent":5.1512156,"total_functions":39074,"matched_functions":5215,"matched_functions_percent":13.346471,"complete_code":931848,"complete_code_percent":7.146589,"complete_data":369504,"complete_data_percent":5.1551223,"total_units":6243,"complete_units":2179}},{"timestamp":"2026-08-25T17:12:10Z","commit_sha":"eb5ab023b7cdf2af8556ab1810488dedf8ee4349","commit_message":"Merge pull request #351 from Jovinull/decomp-eff-tornado-tu-cpp\n\ndecomp: complete tornado effects translation unit","measures":{"fuzzy_match_percent":7.205858,"total_code":13039060,"matched_code":933124,"matched_code_percent":7.156375,"total_data":7167706,"matched_data":369204,"matched_data_percent":5.1509366,"total_functions":39074,"matched_functions":5214,"matched_functions_percent":13.343911,"complete_code":930996,"complete_code_percent":7.1400547,"complete_data":369484,"complete_data_percent":5.1548433,"total_units":6243,"complete_units":2178}},{"timestamp":"2026-08-25T17:12:04Z","commit_sha":"a38a0f371cbeb75a2ba8ae1f5c77300077da2da5","commit_message":"Merge pull request #372 from Jovinull/decomp-game-fn-800d7bd8-cpp\n\nMatch game/fn_800D7BD8.cpp","measures":{"fuzzy_match_percent":7.20562,"total_code":13039060,"matched_code":930524,"matched_code_percent":7.1364346,"total_data":7167706,"matched_data":367696,"matched_data_percent":5.129898,"total_functions":39074,"matched_functions":5212,"matched_functions_percent":13.338793,"complete_code":921588,"complete_code_percent":7.0679026,"complete_data":367872,"complete_data_percent":5.1323533,"total_units":6243,"complete_units":2177}},{"timestamp":"2026-08-25T17:11:15Z","commit_sha":"ee34671c2b679aa72f3e813750ab74a4ed9f0796","commit_message":"Merge pull request #369 from Jovinull/decomp-game-fn-800d7a54-cpp\n\nMatch game/fn_800D7A54.cpp","measures":{"fuzzy_match_percent":7.2039022,"total_code":13039060,"matched_code":929880,"matched_code_percent":7.1314955,"total_data":7167706,"matched_data":367684,"matched_data_percent":5.12973,"total_functions":39074,"matched_functions":5211,"matched_functions_percent":13.336234,"complete_code":920944,"complete_code_percent":7.0629635,"complete_data":367852,"complete_data_percent":5.1320744,"total_units":6243,"complete_units":2176}},{"timestamp":"2026-08-25T17:09:40Z","commit_sha":"686a3704c0b5addfe5e93054890471270d3d3e80","commit_message":"Merge pull request #368 from Jovinull/decomp-game-fn-800d7b18-cpp\n\nMatch game/fn_800D7B18.cpp","measures":{"fuzzy_match_percent":7.2036443,"total_code":13039060,"matched_code":929756,"matched_code_percent":7.1305447,"total_data":7167706,"matched_data":367684,"matched_data_percent":5.12973,"total_functions":39074,"matched_functions":5209,"matched_functions_percent":13.331116,"complete_code":920748,"complete_code_percent":7.06146,"complete_data":367852,"complete_data_percent":5.1320744,"total_units":6243,"complete_units":2175}},{"timestamp":"2026-08-25T17:09:01Z","commit_sha":"7aad066866dcb6883e3829cc9f558678f31415b0","commit_message":"Merge pull request #371 from Jovinull/decomp-game-fn-800d67d4-cpp\n\nMatch game/fn_800D67D4.cpp","measures":{"fuzzy_match_percent":7.203461,"total_code":13039060,"matched_code":929564,"matched_code_percent":7.129072,"total_data":7167706,"matched_data":105540,"matched_data_percent":1.4724376,"total_functions":39074,"matched_functions":5208,"matched_functions_percent":13.328557,"complete_code":920556,"complete_code_percent":7.0599875,"complete_data":105688,"complete_data_percent":1.4745024,"total_units":6243,"complete_units":2174}},{"timestamp":"2026-08-25T17:07:38Z","commit_sha":"809212f316985b374c64eeab88e958f9d2b8cc17","commit_message":"Merge pull request #367 from Jovinull/decomp-game-fn-800546f4-cpp\n\nMatch game/fn_800546F4.cpp","measures":{"fuzzy_match_percent":7.203461,"total_code":13039060,"matched_code":929564,"matched_code_percent":7.129072,"total_data":7167706,"matched_data":105540,"matched_data_percent":1.4724376,"total_functions":39074,"matched_functions":5208,"matched_functions_percent":13.328557,"complete_code":920356,"complete_code_percent":7.0584536,"complete_data":105648,"complete_data_percent":1.4739443,"total_units":6243,"complete_units":2173}},{"timestamp":"2026-08-25T17:05:20Z","commit_sha":"cb3f108137a4fd05726ea0987f980889b06c13af","commit_message":"decomp: complete grid bounds traversal translation unit (#364)\n\n* decomp: complete grid bounds traversal translation unit\n\n* decomp: complete grid bounds traversal from source alone\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.203461,"total_code":13039060,"matched_code":929564,"matched_code_percent":7.129072,"total_data":7167706,"matched_data":105540,"matched_data_percent":1.4724376,"total_functions":39074,"matched_functions":5208,"matched_functions_percent":13.328557,"complete_code":920356,"complete_code_percent":7.0584536,"complete_data":105648,"complete_data_percent":1.4739443,"total_units":6243,"complete_units":2173}},{"timestamp":"2026-08-25T17:00:24Z","commit_sha":"3f25f3cbb7e05800cb6fcf6e5fef615ce6f268cd","commit_message":"Merge pull request #366 from Jovinull/decomp-game-fn-800d7920-cpp\n\nMatch game/fn_800D7920.cpp","measures":{"fuzzy_match_percent":7.203461,"total_code":13039060,"matched_code":929564,"matched_code_percent":7.129072,"total_data":7167706,"matched_data":105540,"matched_data_percent":1.4724376,"total_functions":39074,"matched_functions":5208,"matched_functions_percent":13.328557,"complete_code":920356,"complete_code_percent":7.0584536,"complete_data":105648,"complete_data_percent":1.4739443,"total_units":6243,"complete_units":2173}},{"timestamp":"2026-08-25T16:56:39Z","commit_sha":"e888f53667d5749d6b8a3b276444341d0dfb5cf2","commit_message":"decomp: complete resource loader translation unit (#348)\n\n* decomp: complete resource loader translation unit\n\n* decomp: adapt resource object fix to reconstructed new expression\n\n* decomp: retain exact resource split reconstruction\n\n* decomp: complete the resource loader translation unit\n\n---------\n\nCo-authored-by: Felipe Jovino <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.203344,"total_code":13039060,"matched_code":929256,"matched_code_percent":7.12671,"total_data":7167706,"matched_data":105540,"matched_data_percent":1.4724376,"total_functions":39074,"matched_functions":5207,"matched_functions_percent":13.325996,"complete_code":920048,"complete_code_percent":7.056092,"complete_data":105628,"complete_data_percent":1.4736654,"total_units":6243,"complete_units":2172}},{"timestamp":"2026-08-25T16:53:44Z","commit_sha":"6e718a144239f4ab122aed3c15ee6d4c2fd6dcec","commit_message":"Merge pull request #363 from Jovinull/decomp-game-fn-800d7e5c-cpp\n\ndecomp: mark scaled trig helper translation unit matching","measures":{"fuzzy_match_percent":7.202854,"total_code":13039060,"matched_code":927420,"matched_code_percent":7.112629,"total_data":7167706,"matched_data":87260,"matched_data_percent":1.2174048,"total_functions":39074,"matched_functions":5204,"matched_functions_percent":13.318319,"complete_code":917832,"complete_code_percent":7.0390964,"complete_data":86836,"complete_data_percent":1.2114894,"total_units":6243,"complete_units":2171}},{"timestamp":"2026-08-25T16:48:09Z","commit_sha":"c3825c5c00c87aba003c1d11534553f00695b454","commit_message":"decomp: complete grid list pruning translation unit (#346)","measures":{"fuzzy_match_percent":7.202854,"total_code":13039060,"matched_code":927420,"matched_code_percent":7.112629,"total_data":7167706,"matched_data":87260,"matched_data_percent":1.2174048,"total_functions":39074,"matched_functions":5204,"matched_functions_percent":13.318319,"complete_code":917776,"complete_code_percent":7.038667,"complete_data":86836,"complete_data_percent":1.2114894,"total_units":6243,"complete_units":2170}},{"timestamp":"2026-08-25T16:42:24Z","commit_sha":"fdcb44b3065ea490f5d11179302313749844c7bd","commit_message":"decomp: complete grid branch query translation unit (#345)","measures":{"fuzzy_match_percent":7.2024026,"total_code":13039060,"matched_code":926896,"matched_code_percent":7.108611,"total_data":7167706,"matched_data":87248,"matched_data_percent":1.2172374,"total_functions":39074,"matched_functions":5203,"matched_functions_percent":13.31576,"complete_code":917252,"complete_code_percent":7.0346484,"complete_data":86816,"complete_data_percent":1.2112105,"total_units":6243,"complete_units":2169}},{"timestamp":"2026-08-25T14:52:13Z","commit_sha":"ca29da67004a5eed45cd68faee5058fb5d99f86e","commit_message":"Merge pull request #362 from Jovinull/feat/reconstruct-vector-normalization-helpers\n\ndecomp: reconstruct vector normalization helpers","measures":{"fuzzy_match_percent":7.2023535,"total_code":13039060,"matched_code":926336,"matched_code_percent":7.1043158,"total_data":7167706,"matched_data":87248,"matched_data_percent":1.2172374,"total_functions":39074,"matched_functions":5202,"matched_functions_percent":13.313201,"complete_code":916692,"complete_code_percent":7.0303535,"complete_data":86796,"complete_data_percent":1.2109314,"total_units":6243,"complete_units":2168}},{"timestamp":"2026-08-25T14:38:39Z","commit_sha":"a9f3cd29626dd06282730255c729035a7f532cfc","commit_message":"decomp: complete spatial list search translation unit (#342)","measures":{"fuzzy_match_percent":7.2008195,"total_code":13039060,"matched_code":926136,"matched_code_percent":7.1027822,"total_data":7167706,"matched_data":87208,"matched_data_percent":1.2166793,"total_functions":39074,"matched_functions":5200,"matched_functions_percent":13.308083,"complete_code":916692,"complete_code_percent":7.0303535,"complete_data":86796,"complete_data_percent":1.2109314,"total_units":6244,"complete_units":2168}},{"timestamp":"2026-08-25T14:33:27Z","commit_sha":"ebe49558fcd2209e8a019ff44146f5dcb8476ed4","commit_message":"Merge pull request #361 from Jovinull/feat/reconstruct-scaled-angle-components\n\ndecomp: reconstruct scaled angle components","measures":{"fuzzy_match_percent":7.200795,"total_code":13039060,"matched_code":925912,"matched_code_percent":7.101064,"total_data":7167706,"matched_data":87208,"matched_data_percent":1.2166793,"total_functions":39074,"matched_functions":5199,"matched_functions_percent":13.305523,"complete_code":916468,"complete_code_percent":7.0286355,"complete_data":86776,"complete_data_percent":1.2106524,"total_units":6244,"complete_units":2167}},{"timestamp":"2026-08-25T14:29:46Z","commit_sha":"1316f6e361cf752bfb8bb972383f8b8fb4d0b1cf","commit_message":"tools: enforce the object post-processor criteria in CI (#360)","measures":{"fuzzy_match_percent":7.2003655,"total_code":13039060,"matched_code":925856,"matched_code_percent":7.100634,"total_data":7167706,"matched_data":87208,"matched_data_percent":1.2166793,"total_functions":39074,"matched_functions":5198,"matched_functions_percent":13.302964,"complete_code":916468,"complete_code_percent":7.0286355,"complete_data":86776,"complete_data_percent":1.2106524,"total_units":6244,"complete_units":2167}},{"timestamp":"2026-08-25T14:25:11Z","commit_sha":"417b9c2223835b56963003637de35a8f922eaa6f","commit_message":"tools: fail loudly when a symbol rename stops applying (#359)","measures":{"fuzzy_match_percent":7.2003655,"total_code":13039060,"matched_code":925856,"matched_code_percent":7.100634,"total_data":7167706,"matched_data":87208,"matched_data_percent":1.2166793,"total_functions":39074,"matched_functions":5198,"matched_functions_percent":13.302964,"complete_code":916468,"complete_code_percent":7.0286355,"complete_data":86776,"complete_data_percent":1.2106524,"total_units":6244,"complete_units":2167}},{"timestamp":"2026-08-25T14:18:47Z","commit_sha":"490007c00bbc76c47060ee87139b79e7503a2612","commit_message":"docs: classify what object post-processors do today (#358)","measures":{"fuzzy_match_percent":7.2003655,"total_code":13039060,"matched_code":925856,"matched_code_percent":7.100634,"total_data":7167706,"matched_data":87208,"matched_data_percent":1.2166793,"total_functions":39074,"matched_functions":5198,"matched_functions_percent":13.302964,"complete_code":916468,"complete_code_percent":7.0286355,"complete_data":86776,"complete_data_percent":1.2106524,"total_units":6244,"complete_units":2167}},{"timestamp":"2026-08-25T14:16:24Z","commit_sha":"c99929e6b92023da9996a795a3fcb925f87764b2","commit_message":"Merge pull request #357 from Jovinull/feat/reconstruct-angle-helpers\n\ndecomp: reconstruct angle helpers","measures":{"fuzzy_match_percent":7.2003655,"total_code":13039060,"matched_code":925856,"matched_code_percent":7.100634,"total_data":7167706,"matched_data":87208,"matched_data_percent":1.2166793,"total_functions":39074,"matched_functions":5198,"matched_functions_percent":13.302964,"complete_code":916468,"complete_code_percent":7.0286355,"complete_data":86776,"complete_data_percent":1.2106524,"total_units":6244,"complete_units":2167}},{"timestamp":"2026-08-25T14:13:06Z","commit_sha":"bf4346dbca6957508807cb4d9e31b80e236894da","commit_message":"Merge pull request #356 from Jovinull/feat/reconstruct-segment-intersection\n\ndecomp: reconstruct trigonometric table","measures":{"fuzzy_match_percent":7.19912,"total_code":13039060,"matched_code":925784,"matched_code_percent":7.1000824,"total_data":7167706,"matched_data":87208,"matched_data_percent":1.2166793,"total_functions":39074,"matched_functions":5195,"matched_functions_percent":13.295285,"complete_code":916468,"complete_code_percent":7.0286355,"complete_data":86776,"complete_data_percent":1.2106524,"total_units":6244,"complete_units":2167}},{"timestamp":"2026-08-25T14:10:09Z","commit_sha":"b1fe6898519250677dc6ae3966e321454790a590","commit_message":"Merge pull request #355 from Jovinull/feat/reconstruct-point-segment-distance\n\ndecomp: reconstruct point segment distance","measures":{"fuzzy_match_percent":7.197831,"total_code":13039060,"matched_code":925784,"matched_code_percent":7.1000824,"total_data":7167706,"matched_data":87188,"matched_data_percent":1.2164003,"total_functions":39074,"matched_functions":5195,"matched_functions_percent":13.295285,"complete_code":916468,"complete_code_percent":7.0286355,"complete_data":86776,"complete_data_percent":1.2106524,"total_units":6243,"complete_units":2167}},{"timestamp":"2026-08-25T14:06:35Z","commit_sha":"943c6d5806d7e3eeb8c4ac883d049e26131817ac","commit_message":"docs: state the criteria for object post-processors (#354)","measures":{"fuzzy_match_percent":7.1946106,"total_code":13039060,"matched_code":925784,"matched_code_percent":7.1000824,"total_data":7167706,"matched_data":87180,"matched_data_percent":1.2162888,"total_functions":39074,"matched_functions":5195,"matched_functions_percent":13.295285,"complete_code":916468,"complete_code_percent":7.0286355,"complete_data":86776,"complete_data_percent":1.2106524,"total_units":6243,"complete_units":2167}},{"timestamp":"2026-08-25T13:41:23Z","commit_sha":"43901c29760bfada03ced3bc69bb7862946df7f9","commit_message":"decomp: complete grid radius query translation unit (#344)","measures":{"fuzzy_match_percent":7.1946106,"total_code":13039060,"matched_code":925784,"matched_code_percent":7.1000824,"total_data":7167706,"matched_data":87180,"matched_data_percent":1.2162888,"total_functions":39074,"matched_functions":5195,"matched_functions_percent":13.295285,"complete_code":916468,"complete_code_percent":7.0286355,"complete_data":86776,"complete_data_percent":1.2106524,"total_units":6243,"complete_units":2167}},{"timestamp":"2026-08-25T13:38:55Z","commit_sha":"1eed27ec0f484e93832646b6b5042d9f81c81292","commit_message":"Merge pull request #353 from Jovinull/feat/reconstruct-normal-angle\n\ndecomp: reconstruct normal angle query","measures":{"fuzzy_match_percent":7.194587,"total_code":13039060,"matched_code":924752,"matched_code_percent":7.0921674,"total_data":7167706,"matched_data":87180,"matched_data_percent":1.2162888,"total_functions":39074,"matched_functions":5194,"matched_functions_percent":13.2927265,"complete_code":915436,"complete_code_percent":7.020721,"complete_data":86756,"complete_data_percent":1.2103733,"total_units":6243,"complete_units":2166}},{"timestamp":"2026-08-25T13:36:12Z","commit_sha":"6b6aa9073d8ca7a18ef7d6ea4b5dea3fa6ea0795","commit_message":"Merge pull request #352 from Jovinull/feat/reconstruct-vector-angle-query\n\ndecomp: reconstruct vector angle query","measures":{"fuzzy_match_percent":7.192343,"total_code":13039060,"matched_code":924752,"matched_code_percent":7.0921674,"total_data":7167706,"matched_data":87160,"matched_data_percent":1.2160097,"total_functions":39074,"matched_functions":5194,"matched_functions_percent":13.2927265,"complete_code":915436,"complete_code_percent":7.020721,"complete_data":86756,"complete_data_percent":1.2103733,"total_units":6243,"complete_units":2166}},{"timestamp":"2026-08-25T13:35:38Z","commit_sha":"2f2777f2b1d4a5dc0d184280e2bc8189a4acd29f","commit_message":"decomp: match every function in the resource dispatch unit (#350)","measures":{"fuzzy_match_percent":7.1883807,"total_code":13039060,"matched_code":924752,"matched_code_percent":7.0921674,"total_data":7167706,"matched_data":87160,"matched_data_percent":1.2160097,"total_functions":39074,"matched_functions":5194,"matched_functions_percent":13.2927265,"complete_code":915436,"complete_code_percent":7.020721,"complete_data":86756,"complete_data_percent":1.2103733,"total_units":6243,"complete_units":2166}},{"timestamp":"2026-08-25T13:19:02Z","commit_sha":"a1fc481e3d2656fa78a3325d84aa8ee62db2e105","commit_message":"Merge pull request #349 from Jovinull/feat/reconstruct-grid-overlap-query\n\ndecomp: reconstruct grid overlap query","measures":{"fuzzy_match_percent":7.188464,"total_code":13039060,"matched_code":924752,"matched_code_percent":7.0921674,"total_data":7167706,"matched_data":87112,"matched_data_percent":1.21534,"total_functions":39074,"matched_functions":5194,"matched_functions_percent":13.2927265,"complete_code":915436,"complete_code_percent":7.020721,"complete_data":86756,"complete_data_percent":1.2103733,"total_units":6243,"complete_units":2166}},{"timestamp":"2026-08-25T13:15:28Z","commit_sha":"c95eb42a56c237a9200d6221a87402fc2a1552e5","commit_message":"Merge pull request #347 from Jovinull/feat/reconstruct-grid-query-dispatch\n\ndecomp: reconstruct grid query dispatch","measures":{"fuzzy_match_percent":7.1803036,"total_code":13039060,"matched_code":924752,"matched_code_percent":7.0921674,"total_data":7167706,"matched_data":87112,"matched_data_percent":1.21534,"total_functions":39074,"matched_functions":5194,"matched_functions_percent":13.2927265,"complete_code":915436,"complete_code_percent":7.020721,"complete_data":86756,"complete_data_percent":1.2103733,"total_units":6243,"complete_units":2166}},{"timestamp":"2026-08-25T12:49:12Z","commit_sha":"0ce2d62db5ac4b0f8bddc8cb7d7811a00940dc77","commit_message":"Merge pull request #343 from Jovinull/feat/improve-axrna-layout\n\ndecomp: improve axrna layout","measures":{"fuzzy_match_percent":7.1705155,"total_code":13039060,"matched_code":924752,"matched_code_percent":7.0921674,"total_data":7167706,"matched_data":87112,"matched_data_percent":1.21534,"total_functions":39074,"matched_functions":5194,"matched_functions_percent":13.2927265,"complete_code":915436,"complete_code_percent":7.020721,"complete_data":86756,"complete_data_percent":1.2103733,"total_units":6243,"complete_units":2166}},{"timestamp":"2026-08-25T12:32:21Z","commit_sha":"d224aeac6b9829daf3185047c0a3955bfc59cdf6","commit_message":"Merge pull request #341 from Jovinull/feat/reconstruct-grid-query-orchestrator\n\ndecomp: reconstruct grid radius query","measures":{"fuzzy_match_percent":7.1697426,"total_code":13039060,"matched_code":924752,"matched_code_percent":7.0921674,"total_data":7167706,"matched_data":87112,"matched_data_percent":1.21534,"total_functions":39074,"matched_functions":5194,"matched_functions_percent":13.2927265,"complete_code":915436,"complete_code_percent":7.020721,"complete_data":86756,"complete_data_percent":1.2103733,"total_units":6243,"complete_units":2166}},{"timestamp":"2026-08-25T12:24:33Z","commit_sha":"8c5d9ade956304e6457f9eb5b1b157a4eeaf3c22","commit_message":"Merge pull request #340 from Jovinull/feat/reconstruct-grid-branch-query\n\ndecomp: reconstruct grid branch query","measures":{"fuzzy_match_percent":7.1618514,"total_code":13039060,"matched_code":924752,"matched_code_percent":7.0921674,"total_data":7167706,"matched_data":87092,"matched_data_percent":1.215061,"total_functions":39074,"matched_functions":5194,"matched_functions_percent":13.2927265,"complete_code":915436,"complete_code_percent":7.020721,"complete_data":86756,"complete_data_percent":1.2103733,"total_units":6243,"complete_units":2166}},{"timestamp":"2026-08-25T12:16:34Z","commit_sha":"a1bdd2007c245ce1c01fefde64cfc9c822384ca4","commit_message":"Merge pull request #339 from Jovinull/feat/reconstruct-grid-query\n\ndecomp: reconstruct grid quadrant query","measures":{"fuzzy_match_percent":7.1576056,"total_code":13039060,"matched_code":924752,"matched_code_percent":7.0921674,"total_data":7167706,"matched_data":87072,"matched_data_percent":1.214782,"total_functions":39074,"matched_functions":5194,"matched_functions_percent":13.2927265,"complete_code":915436,"complete_code_percent":7.020721,"complete_data":86756,"complete_data_percent":1.2103733,"total_units":6243,"complete_units":2166}},{"timestamp":"2026-08-25T12:11:08Z","commit_sha":"7bfe2fb03c832407db7a028dc92d93632b60edf4","commit_message":"Merge pull request #338 from Jovinull/feat/reconstruct-grid-reset\n\ndecomp: reconstruct grid list pruning","measures":{"fuzzy_match_percent":7.1540165,"total_code":13039060,"matched_code":924284,"matched_code_percent":7.0885787,"total_data":7167706,"matched_data":87052,"matched_data_percent":1.2145029,"total_functions":39074,"matched_functions":5193,"matched_functions_percent":13.290167,"complete_code":914968,"complete_code_percent":7.017132,"complete_data":86736,"complete_data_percent":1.2100942,"total_units":6243,"complete_units":2165}},{"timestamp":"2026-08-25T11:58:00Z","commit_sha":"b8b34062e274f473197e53e7afa2f51fdfc7535c","commit_message":"Merge pull request #337 from Jovinull/feat/reconstruct-grid-operation\n\ndecomp: reconstruct grid initialization","measures":{"fuzzy_match_percent":7.150449,"total_code":13039060,"matched_code":924284,"matched_code_percent":7.0885787,"total_data":7167706,"matched_data":87044,"matched_data_percent":1.2143914,"total_functions":39074,"matched_functions":5193,"matched_functions_percent":13.290167,"complete_code":914968,"complete_code_percent":7.017132,"complete_data":86736,"complete_data_percent":1.2100942,"total_units":6243,"complete_units":2165}},{"timestamp":"2026-08-25T11:47:49Z","commit_sha":"c4967519b7d0b80d68e899af5295368fbdc9bfdb","commit_message":"Merge pull request #336 from Jovinull/feat/carve-next-large-grid-helper\n\ndecomp: reconstruct grid destructor","measures":{"fuzzy_match_percent":7.14689,"total_code":13039060,"matched_code":923820,"matched_code_percent":7.08502,"total_data":7167706,"matched_data":87016,"matched_data_percent":1.2140007,"total_functions":39074,"matched_functions":5192,"matched_functions_percent":13.287608,"complete_code":914504,"complete_code_percent":7.0135727,"complete_data":86708,"complete_data_percent":1.2097037,"total_units":6242,"complete_units":2164}},{"timestamp":"2026-08-25T11:33:58Z","commit_sha":"e85358b30012055f6b70faeca4c81f6eaaf8bb88","commit_message":"Merge pull request #335 from Jovinull/feat/carve-large-list-destructor-retry\n\ndecomp: reconstruct list destructor","measures":{"fuzzy_match_percent":7.1454787,"total_code":13039060,"matched_code":923636,"matched_code_percent":7.083609,"total_data":7167706,"matched_data":74804,"matched_data_percent":1.0436254,"total_functions":39074,"matched_functions":5191,"matched_functions_percent":13.2850485,"complete_code":914320,"complete_code_percent":7.0121617,"complete_data":86688,"complete_data_percent":1.2094246,"total_units":6242,"complete_units":2163}},{"timestamp":"2026-08-25T11:31:45Z","commit_sha":"cdae91206468f229bf4f3ab937d507de1986071a","commit_message":"Merge pull request #333 from Jovinull/decomp-cri-mfci-c\n\ndecomp: make MFCI a fully matching TU","measures":{"fuzzy_match_percent":7.1439757,"total_code":13039060,"matched_code":923440,"matched_code_percent":7.0821056,"total_data":7167706,"matched_data":74784,"matched_data_percent":1.0433463,"total_functions":39074,"matched_functions":5190,"matched_functions_percent":13.28249,"complete_code":914124,"complete_code_percent":7.0106587,"complete_data":86668,"complete_data_percent":1.2091455,"total_units":6242,"complete_units":2162}},{"timestamp":"2026-08-25T11:31:38Z","commit_sha":"819cab7258b8c830398add8d514b2c3300e58e61","commit_message":"decomp: complete the CRI GCCI translation unit (#332)\n\n* Match GCCI handle accessors\n\n* Reconstruct GCCI DVD operations\n\n* Match GCCI file and server paths\n\n* Inline GCCI server execution\n\n* Match GCCI request scheduling\n\n* Match GCCI data and request state\n\n* Share GCCI server implementation\n\n* Match GCCI active request scan\n\n* Match GCCI timeout arithmetic\n\n* Match GCCI transfer accounting\n\n* Match GCCI seek position clamp\n\n* Match GCCI completed transfer state\n\n* Match GCCI close handle interface\n\n* Match GCCI short-read buffer handling\n\n* Match GCCI BSS layout\n\n* Restore GCCI pooled error strings\n\n* Match GCCI close timeout registers\n\n* Match GCCI request scan order\n\n* Match GCCI request table lifetime\n\n* Match GCCI request table setup\n\n* Refine GCCI data object boundaries\n\n* Match GCCI close cancellation state\n\n* Complete GCCI translation unit","measures":{"fuzzy_match_percent":7.1439757,"total_code":13039060,"matched_code":923440,"matched_code_percent":7.0821056,"total_data":7167706,"matched_data":71568,"matched_data_percent":0.9984785,"total_functions":39074,"matched_functions":5190,"matched_functions_percent":13.28249,"complete_code":914124,"complete_code_percent":7.0106587,"complete_data":86668,"complete_data_percent":1.2091455,"total_units":6242,"complete_units":2162}},{"timestamp":"2026-08-25T01:07:54Z","commit_sha":"571eeacba134976011fdca2adbc11b4aaba7a7ac","commit_message":"decomp: land the GCCI bss at the target offsets and correct the naming note (#331)","measures":{"fuzzy_match_percent":7.117557,"total_code":13039060,"matched_code":920140,"matched_code_percent":7.0567975,"total_data":7167706,"matched_data":70868,"matched_data_percent":0.98871243,"total_functions":39074,"matched_functions":5183,"matched_functions_percent":13.264576,"complete_code":909972,"complete_code_percent":6.978816,"complete_data":81708,"complete_data_percent":1.1399462,"total_units":6242,"complete_units":2161}},{"timestamp":"2026-08-25T00:47:26Z","commit_sha":"14f27d4197ee02129930d76e89cdf5b6bf0d09b0","commit_message":"decomp: fix the AXRNA stack and vtbl layout in fn_80223820 (#330)","measures":{"fuzzy_match_percent":7.117557,"total_code":13039060,"matched_code":920140,"matched_code_percent":7.0567975,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5183,"matched_functions_percent":13.264576,"complete_code":909972,"complete_code_percent":6.978816,"complete_data":81708,"complete_data_percent":1.1399462,"total_units":6242,"complete_units":2161}},{"timestamp":"2026-08-25T00:38:11Z","commit_sha":"de5513fa56bbb58bc8b417cbf1c8470b0881717c","commit_message":"decomp: order the AXRNA bss with a layout anchor and close two functions (#329)","measures":{"fuzzy_match_percent":7.117249,"total_code":13039060,"matched_code":920140,"matched_code_percent":7.0567975,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5183,"matched_functions_percent":13.264576,"complete_code":909972,"complete_code_percent":6.978816,"complete_data":81708,"complete_data_percent":1.1399462,"total_units":6242,"complete_units":2161}},{"timestamp":"2026-08-25T00:16:14Z","commit_sha":"bf8952ae770519f2b7562012c6f4401e1f0c6df8","commit_message":"decomp: fix the GCCI bss order with a layout anchor (#328)","measures":{"fuzzy_match_percent":7.1171093,"total_code":13039060,"matched_code":919736,"matched_code_percent":7.0536985,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5181,"matched_functions_percent":13.259457,"complete_code":909972,"complete_code_percent":6.978816,"complete_data":81708,"complete_data_percent":1.1399462,"total_units":6242,"complete_units":2161}},{"timestamp":"2026-08-25T00:01:52Z","commit_sha":"22c3c0a7c28a288395918d4bbc6af3232146ad65","commit_message":"decomp: match the GCCI argument setter and start its reset (#327)","measures":{"fuzzy_match_percent":7.1171083,"total_code":13039060,"matched_code":919736,"matched_code_percent":7.0536985,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5181,"matched_functions_percent":13.259457,"complete_code":909972,"complete_code_percent":6.978816,"complete_data":81708,"complete_data_percent":1.1399462,"total_units":6242,"complete_units":2161}},{"timestamp":"2026-08-24T23:49:19Z","commit_sha":"8c43d1a93d8ddc691b17b77410520479db48b402","commit_message":"decomp: match the GCCI seek and sector-size setter (#326)","measures":{"fuzzy_match_percent":7.116433,"total_code":13039060,"matched_code":919724,"matched_code_percent":7.053607,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5180,"matched_functions_percent":13.256897,"complete_code":909972,"complete_code_percent":6.978816,"complete_data":81708,"complete_data_percent":1.1399462,"total_units":6242,"complete_units":2161}},{"timestamp":"2026-08-24T23:43:31Z","commit_sha":"61724b05cf1a57ab45c07c772d684c22f549d0e2","commit_message":"decomp: complete the CRI MFCI translation unit (#325)\n\n* Improve MFCI request register allocation\n\n* Match MFCI server execution\n\n* Match MFCI seek\n\n* Improve MFCI request handle allocation\n\n* Complete CRI MFCI translation unit","measures":{"fuzzy_match_percent":7.1146502,"total_code":13039060,"matched_code":919292,"matched_code_percent":7.050294,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5178,"matched_functions_percent":13.251779,"complete_code":909972,"complete_code_percent":6.978816,"complete_data":81708,"complete_data_percent":1.1399462,"total_units":6242,"complete_units":2161}},{"timestamp":"2026-08-24T23:31:50Z","commit_sha":"7cc8d500ab0e679980ff8f33370d96e82ee2d16a","commit_message":"decomp: match two GCCI accessors and reconstruct its seek (#324)","measures":{"fuzzy_match_percent":7.114496,"total_code":13039060,"matched_code":918388,"matched_code_percent":7.04336,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5175,"matched_functions_percent":13.244102,"complete_code":907396,"complete_code_percent":6.9590597,"complete_data":78388,"complete_data_percent":1.0936275,"total_units":6242,"complete_units":2160}},{"timestamp":"2026-08-24T23:17:52Z","commit_sha":"508395dc9a280cac20f765e20be30e3eced64512","commit_message":"decomp: carve the CRI GCCI translation unit (#323)","measures":{"fuzzy_match_percent":7.111462,"total_code":13039060,"matched_code":918192,"matched_code_percent":7.0418572,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5173,"matched_functions_percent":13.238983,"complete_code":907396,"complete_code_percent":6.9590597,"complete_data":78388,"complete_data_percent":1.0936275,"total_units":6242,"complete_units":2160}},{"timestamp":"2026-08-24T23:07:36Z","commit_sha":"7c795d76ee38b3a7f043ef7f3da7c482e46cb6c9","commit_message":"decomp: match fn_802237C4 and advance fn_80224B1C in CRI AXRNA (#322)","measures":{"fuzzy_match_percent":7.1098366,"total_code":13039060,"matched_code":917980,"matched_code_percent":7.0402317,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5170,"matched_functions_percent":13.231304,"complete_code":907396,"complete_code_percent":6.9590597,"complete_data":78388,"complete_data_percent":1.0936275,"total_units":6238,"complete_units":2160}},{"timestamp":"2026-08-24T22:44:51Z","commit_sha":"539e5d3c3df9f4276d8093a15200de3a9cf5ef9e","commit_message":"decomp: complete the CRI LSC translation unit (#321)\n\n* Match LSC module initialization\n\n* Match LSC module shutdown\n\n* Match LSC stream stop routine\n\n* Match LSC object destruction\n\n* Match LSC stream restart routine\n\n* Match LSC server execution\n\n* Improve LSC entry-range instruction order\n\n* Match LSC object creation\n\n* Improve LSC entry-range register allocation\n\n* Match LSC owned data layout\n\n* Complete matching LSC translation unit\n\n* Resolve current main LSC symbol names\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.1097555,"total_code":13039060,"matched_code":917888,"matched_code_percent":7.039526,"total_data":7167706,"matched_data":66588,"matched_data_percent":0.92900014,"total_functions":39074,"matched_functions":5169,"matched_functions_percent":13.228745,"complete_code":907396,"complete_code_percent":6.9590597,"complete_data":78388,"complete_data_percent":1.0936275,"total_units":6238,"complete_units":2160}},{"timestamp":"2026-08-24T22:20:43Z","commit_sha":"f9d7538e527e3c083686b8e6c366038a91a17175","commit_message":"decomp: match fn_80223D00 in the CRI AXRNA unit (#320)","measures":{"fuzzy_match_percent":7.109071,"total_code":13039060,"matched_code":916332,"matched_code_percent":7.0275927,"total_data":7167706,"matched_data":66244,"matched_data_percent":0.92420083,"total_functions":39074,"matched_functions":5166,"matched_functions_percent":13.221067,"complete_code":903300,"complete_code_percent":6.9276466,"complete_data":68932,"complete_data_percent":0.9617024,"total_units":6238,"complete_units":2159}},{"timestamp":"2026-08-24T21:58:38Z","commit_sha":"5d1bc2b6b0d8125398850c09abe31aaa2ded4e80","commit_message":"decomp: reconstruct LSC_EntryFileRange (#319)","measures":{"fuzzy_match_percent":7.1090703,"total_code":13039060,"matched_code":915956,"matched_code_percent":7.024709,"total_data":7167706,"matched_data":66244,"matched_data_percent":0.92420083,"total_functions":39074,"matched_functions":5165,"matched_functions_percent":13.218509,"complete_code":903300,"complete_code_percent":6.9276466,"complete_data":68932,"complete_data_percent":0.9617024,"total_units":6238,"complete_units":2159}},{"timestamp":"2026-08-24T21:48:43Z","commit_sha":"00c759b333b2e429a955e506ca2a482b4106d2d0","commit_message":"decomp: reconstruct lsc_ExecHndl (#318)","measures":{"fuzzy_match_percent":7.104955,"total_code":13039060,"matched_code":915956,"matched_code_percent":7.024709,"total_data":7167706,"matched_data":66244,"matched_data_percent":0.92420083,"total_functions":39074,"matched_functions":5165,"matched_functions_percent":13.218509,"complete_code":903300,"complete_code_percent":6.9276466,"complete_data":68932,"complete_data_percent":0.9617024,"total_units":6238,"complete_units":2159}},{"timestamp":"2026-08-24T21:38:22Z","commit_sha":"adc4c98fdf3a1e1d6f848c00c6610f95e00ce6f3","commit_message":"decomp: reconstruct LSC_Create (#317)","measures":{"fuzzy_match_percent":7.100587,"total_code":13039060,"matched_code":915956,"matched_code_percent":7.024709,"total_data":7167706,"matched_data":66244,"matched_data_percent":0.92420083,"total_functions":39074,"matched_functions":5165,"matched_functions_percent":13.218509,"complete_code":903300,"complete_code_percent":6.9276466,"complete_data":68932,"complete_data_percent":0.9617024,"total_units":6238,"complete_units":2159}},{"timestamp":"2026-08-24T21:32:27Z","commit_sha":"00ab376a4d3817142528db3a98eab53d824bf95a","commit_message":"decomp: match five more functions in the CRI LSC unit (#316)","measures":{"fuzzy_match_percent":7.097821,"total_code":13039060,"matched_code":915956,"matched_code_percent":7.024709,"total_data":7167706,"matched_data":66244,"matched_data_percent":0.92420083,"total_functions":39074,"matched_functions":5165,"matched_functions_percent":13.218509,"complete_code":903300,"complete_code_percent":6.9276466,"complete_data":68932,"complete_data_percent":0.9617024,"total_units":6238,"complete_units":2159}},{"timestamp":"2026-08-24T19:13:38Z","commit_sha":"7001b96f4b778a26c8d323b2d94d124058092d2f","commit_message":"Merge pull request #315 from Jovinull/feat/carve-list-node-builder\n\ndecomp: carve list node builder","measures":{"fuzzy_match_percent":7.090459,"total_code":13039060,"matched_code":914996,"matched_code_percent":7.0173464,"total_data":7167706,"matched_data":66244,"matched_data_percent":0.92420083,"total_functions":39074,"matched_functions":5160,"matched_functions_percent":13.205711,"complete_code":903300,"complete_code_percent":6.9276466,"complete_data":68932,"complete_data_percent":0.9617024,"total_units":6238,"complete_units":2159}},{"timestamp":"2026-08-24T19:12:29Z","commit_sha":"bd1b7f21dffb7473403ada3b7683dfbeb2b90e8d","commit_message":"decomp: match the LSC stream getters and server loop (#314)","measures":{"fuzzy_match_percent":7.0883727,"total_code":13039060,"matched_code":914724,"matched_code_percent":7.01526,"total_data":7167706,"matched_data":66224,"matched_data_percent":0.9239218,"total_functions":39074,"matched_functions":5159,"matched_functions_percent":13.203153,"complete_code":903028,"complete_code_percent":6.9255605,"complete_data":68912,"complete_data_percent":0.9614234,"total_units":6238,"complete_units":2158}},{"timestamp":"2026-08-24T18:55:53Z","commit_sha":"ba9f49bf20d9ff388f001414215774630dc697b0","commit_message":"decomp: carve the CRI LSC stream-list controller (#313)","measures":{"fuzzy_match_percent":7.079538,"total_code":13039060,"matched_code":913572,"matched_code_percent":7.0064254,"total_data":7167706,"matched_data":66224,"matched_data_percent":0.9239218,"total_functions":39074,"matched_functions":5152,"matched_functions_percent":13.185239,"complete_code":903028,"complete_code_percent":6.9255605,"complete_data":68912,"complete_data_percent":0.9614234,"total_units":6238,"complete_units":2158}},{"timestamp":"2026-08-24T18:42:30Z","commit_sha":"10e9624a17eb32858b2e435f4370d9524873e3b7","commit_message":"decomp: recompute the request pointer and drop the streamArgs template in fn_8005EA04 (#312)","measures":{"fuzzy_match_percent":7.0762553,"total_code":13039060,"matched_code":913144,"matched_code_percent":7.003143,"total_data":7167706,"matched_data":66224,"matched_data_percent":0.9239218,"total_functions":39074,"matched_functions":5145,"matched_functions_percent":13.167323,"complete_code":903028,"complete_code_percent":6.9255605,"complete_data":68912,"complete_data_percent":0.9614234,"total_units":6234,"complete_units":2158}},{"timestamp":"2026-08-24T18:37:54Z","commit_sha":"bdfe92c1f9c2abcc3b48d88c4e63e38d215dd61e","commit_message":"Merge pull request #311 from Jovinull/feat/carve-list-removal-helper\n\ndecomp: carve list removal helper","measures":{"fuzzy_match_percent":7.075885,"total_code":13039060,"matched_code":913144,"matched_code_percent":7.003143,"total_data":7167706,"matched_data":66224,"matched_data_percent":0.9239218,"total_functions":39074,"matched_functions":5145,"matched_functions_percent":13.167323,"complete_code":903028,"complete_code_percent":6.9255605,"complete_data":68912,"complete_data_percent":0.9614234,"total_units":6234,"complete_units":2158}},{"timestamp":"2026-08-24T18:35:51Z","commit_sha":"5fcd62e6940528b9451a0cfcc048ec9158e60b28","commit_message":"Merge pull request #310 from Jovinull/feat/carve-link-node-inserter\n\ndecomp: carve link node inserter","measures":{"fuzzy_match_percent":7.0747805,"total_code":13039060,"matched_code":913000,"matched_code_percent":7.0020385,"total_data":7167706,"matched_data":66204,"matched_data_percent":0.9236428,"total_functions":39074,"matched_functions":5144,"matched_functions_percent":13.164764,"complete_code":902884,"complete_code_percent":6.9244566,"complete_data":68892,"complete_data_percent":0.9611444,"total_units":6234,"complete_units":2157}},{"timestamp":"2026-08-24T18:33:01Z","commit_sha":"e6c0961de299f43f517bd641e1e1848777cd3efe","commit_message":"decomp: build the resource dispatch unit with pooldata off and fix fn_8005ED88 frame (#309)","measures":{"fuzzy_match_percent":7.0737987,"total_code":13039060,"matched_code":912872,"matched_code_percent":7.0010567,"total_data":7167706,"matched_data":66184,"matched_data_percent":0.92336375,"total_functions":39074,"matched_functions":5143,"matched_functions_percent":13.162205,"complete_code":902756,"complete_code_percent":6.9234743,"complete_data":68872,"complete_data_percent":0.9608653,"total_units":6234,"complete_units":2156}},{"timestamp":"2026-08-24T18:29:08Z","commit_sha":"fd6d5d273677201b8121fecd5fedc2d1a39c4324","commit_message":"Merge pull request #308 from Jovinull/feat/carve-link-node-destructor\n\ndecomp: carve link node destructor","measures":{"fuzzy_match_percent":7.0730577,"total_code":13039060,"matched_code":912872,"matched_code_percent":7.0010567,"total_data":7167706,"matched_data":66184,"matched_data_percent":0.92336375,"total_functions":39074,"matched_functions":5143,"matched_functions_percent":13.162205,"complete_code":902756,"complete_code_percent":6.9234743,"complete_data":68872,"complete_data_percent":0.9608653,"total_units":6234,"complete_units":2156}},{"timestamp":"2026-08-24T18:27:07Z","commit_sha":"22ed8b426e58e6e80b66f1b6e1aea66bc9364abf","commit_message":"Merge pull request #307 from Jovinull/feat/carve-link-node-initializer\n\ndecomp: carve link node initializer","measures":{"fuzzy_match_percent":7.072352,"total_code":13039060,"matched_code":912780,"matched_code_percent":7.000351,"total_data":7167706,"matched_data":66164,"matched_data_percent":0.92308474,"total_functions":39074,"matched_functions":5142,"matched_functions_percent":13.159646,"complete_code":902664,"complete_code_percent":6.9227686,"complete_data":68852,"complete_data_percent":0.9605863,"total_units":6234,"complete_units":2155}},{"timestamp":"2026-08-24T18:23:57Z","commit_sha":"f51c477f4ab8dd954d21888ffe91bffacb2f24b9","commit_message":"Merge pull request #306 from Jovinull/feat/carve-variadic-save-area\n\ndecomp: carve variadic save-area function","measures":{"fuzzy_match_percent":7.072199,"total_code":13039060,"matched_code":912760,"matched_code_percent":7.0001984,"total_data":7167706,"matched_data":66164,"matched_data_percent":0.92308474,"total_functions":39074,"matched_functions":5141,"matched_functions_percent":13.157086,"complete_code":902644,"complete_code_percent":6.9226155,"complete_data":68852,"complete_data_percent":0.9605863,"total_units":6234,"complete_units":2154}},{"timestamp":"2026-08-24T18:22:12Z","commit_sha":"5a3d073f31df88ba466c2875385ec9e82a740d3d","commit_message":"decomp: fix the sentinel comparison and recompute idiom in the resource dispatch unit (#305)","measures":{"fuzzy_match_percent":7.071585,"total_code":13039060,"matched_code":912680,"matched_code_percent":6.999584,"total_data":7167706,"matched_data":66144,"matched_data_percent":0.9228057,"total_functions":39074,"matched_functions":5140,"matched_functions_percent":13.154528,"complete_code":902564,"complete_code_percent":6.9220023,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2153}},{"timestamp":"2026-08-24T18:08:44Z","commit_sha":"6a5183cc2b9fe68389b116620e9d887296a85adb","commit_message":"feat: carve resource dispatch unit (#304)","measures":{"fuzzy_match_percent":7.0714116,"total_code":13039060,"matched_code":912680,"matched_code_percent":6.999584,"total_data":7167706,"matched_data":66144,"matched_data_percent":0.9228057,"total_functions":39074,"matched_functions":5140,"matched_functions_percent":13.154528,"complete_code":902564,"complete_code_percent":6.9220023,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2153}},{"timestamp":"2026-08-24T17:54:59Z","commit_sha":"1a3d0192823fe1376fa1edd48bc9cdca2ed3a2f7","commit_message":"docs(eff_tornado): rule out a translation-unit lever for both TDisp gaps (#303)","measures":{"fuzzy_match_percent":7.0561085,"total_code":13039060,"matched_code":912300,"matched_code_percent":6.9966702,"total_data":7167706,"matched_data":65680,"matched_data_percent":0.9163322,"total_functions":39074,"matched_functions":5138,"matched_functions_percent":13.149409,"complete_code":902564,"complete_code_percent":6.9220023,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2153}},{"timestamp":"2026-08-24T17:45:14Z","commit_sha":"9506e53611eb1c3f9a2a354540c0d0850f2b14ec","commit_message":"docs(eff_tornado): narrow TDisp__15TObjEffTornado2Fv to a single register swap (#302)","measures":{"fuzzy_match_percent":7.0561085,"total_code":13039060,"matched_code":912300,"matched_code_percent":6.9966702,"total_data":7167706,"matched_data":65680,"matched_data_percent":0.9163322,"total_functions":39074,"matched_functions":5138,"matched_functions_percent":13.149409,"complete_code":902564,"complete_code_percent":6.9220023,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2153}},{"timestamp":"2026-08-24T17:21:20Z","commit_sha":"cf54a80dfd0b8e99e041ca4104e5d41ae62abe78","commit_message":"Merge pull request #301 from Jovinull/fix/eff-tornado-duplicate-sbss\n\nfix: remove duplicate tornado sbss definition","measures":{"fuzzy_match_percent":7.0561085,"total_code":13039060,"matched_code":912300,"matched_code_percent":6.9966702,"total_data":7167706,"matched_data":65680,"matched_data_percent":0.9163322,"total_functions":39074,"matched_functions":5138,"matched_functions_percent":13.149409,"complete_code":902564,"complete_code_percent":6.9220023,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2153}},{"timestamp":"2026-08-24T17:11:06Z","commit_sha":"a1109b557109edb5a575b3ea939dc5ac7622e17a","commit_message":"fix(eff_tornado): claim the full .sdata2 range and the .sbss global it owns (#298)","measures":{"fuzzy_match_percent":7.0561085,"total_code":13039060,"matched_code":912300,"matched_code_percent":6.9966702,"total_data":7167706,"matched_data":65680,"matched_data_percent":0.9163322,"total_functions":39074,"matched_functions":5138,"matched_functions_percent":13.149409,"complete_code":902564,"complete_code_percent":6.9220023,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2153}},{"timestamp":"2026-08-24T16:55:07Z","commit_sha":"71959459d8c0f4f6214aef8315c1ac19ecce085b","commit_message":"Merge pull request #296 from Jovinull/feat/axrna-f660-nonmatch\n\ndecomp: reconstruct AXRNA","measures":{"fuzzy_match_percent":7.0561085,"total_code":13039060,"matched_code":912300,"matched_code_percent":6.9966702,"total_data":7167706,"matched_data":65620,"matched_data_percent":0.9154951,"total_functions":39074,"matched_functions":5138,"matched_functions_percent":13.149409,"complete_code":902564,"complete_code_percent":6.9220023,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2153}},{"timestamp":"2026-08-24T16:52:45Z","commit_sha":"09556025b32852b706642f2ee4a03f8432180fff","commit_message":"decomp: carve four data-free leaf functions out of the game asm (#295)","measures":{"fuzzy_match_percent":7.03127,"total_code":13039060,"matched_code":912300,"matched_code_percent":6.9966702,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5138,"matched_functions_percent":13.149409,"complete_code":902564,"complete_code_percent":6.9220023,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2153}},{"timestamp":"2026-08-24T16:39:40Z","commit_sha":"26472b73893a89bfa42353729cde2b918d34627a","commit_message":"decomp: reconstruct mfCiExecServer from the PS2 body (#294)","measures":{"fuzzy_match_percent":7.0310245,"total_code":13039060,"matched_code":912268,"matched_code_percent":6.9964247,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5134,"matched_functions_percent":13.139172,"complete_code":902532,"complete_code_percent":6.9217563,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2149}},{"timestamp":"2026-08-24T16:25:36Z","commit_sha":"dc52aa86c62d47e8c558e07b790468794f270361","commit_message":"docs(mfci): record what has been ruled out on the three remaining functions (#288)","measures":{"fuzzy_match_percent":7.031013,"total_code":13039060,"matched_code":912268,"matched_code_percent":6.9964247,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5134,"matched_functions_percent":13.139172,"complete_code":902532,"complete_code_percent":6.9217563,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2149}},{"timestamp":"2026-08-24T16:15:45Z","commit_sha":"8a0a271b64129b31a35b02ff4b4bd92f3b900e29","commit_message":"decomp: match three more functions in the CRI MFCI unit (#287)","measures":{"fuzzy_match_percent":7.031013,"total_code":13039060,"matched_code":912268,"matched_code_percent":6.9964247,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5134,"matched_functions_percent":13.139172,"complete_code":902532,"complete_code_percent":6.9217563,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2149}},{"timestamp":"2026-08-24T16:11:41Z","commit_sha":"aac55c26c3201c13d40bf37f6a9ccc0961b13760","commit_message":"decomp: match MSL math_ppc (#286)","measures":{"fuzzy_match_percent":7.0308714,"total_code":13039060,"matched_code":911556,"matched_code_percent":6.990964,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5132,"matched_functions_percent":13.134053,"complete_code":902532,"complete_code_percent":6.9217563,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2149}},{"timestamp":"2026-08-24T14:19:25Z","commit_sha":"76a663ec13b973712cbaf99d4206f80611c1e4bc","commit_message":"decomp: reconstrói fn_80223F2C e fn_80224B1C na unidade CRI AXRNA (#285)","measures":{"fuzzy_match_percent":7.0305953,"total_code":13039060,"matched_code":911520,"matched_code_percent":6.9906883,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5131,"matched_functions_percent":13.1314945,"complete_code":902496,"complete_code_percent":6.9214807,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2148}},{"timestamp":"2026-08-24T12:36:11Z","commit_sha":"1fdeb07dc5a783556bcd835f215984718b85c9a3","commit_message":"decomp: reconstrói fn_802242CC na unidade CRI AXRNA (#284)","measures":{"fuzzy_match_percent":7.0253077,"total_code":13039060,"matched_code":911520,"matched_code_percent":6.9906883,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5131,"matched_functions_percent":13.1314945,"complete_code":902496,"complete_code_percent":6.9214807,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2148}},{"timestamp":"2026-08-24T10:05:23Z","commit_sha":"18970f484ccebe7d16b01e7ccc802f68eaba94d2","commit_message":"decomp: reconstruct the AXRNA init path and version banner (#283)","measures":{"fuzzy_match_percent":7.0237126,"total_code":13039060,"matched_code":911312,"matched_code_percent":6.9890933,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5130,"matched_functions_percent":13.128935,"complete_code":902496,"complete_code_percent":6.9214807,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2148}},{"timestamp":"2026-08-24T03:25:51Z","commit_sha":"138278b589d1e8bb3e83565702e8937c2fad68cf","commit_message":"decomp: match both AXRNA stream callbacks and reshape the handle struct (#282)","measures":{"fuzzy_match_percent":7.0228424,"total_code":13039060,"matched_code":911312,"matched_code_percent":6.9890933,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5130,"matched_functions_percent":13.128935,"complete_code":902496,"complete_code_percent":6.9214807,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2148}},{"timestamp":"2026-08-24T03:19:03Z","commit_sha":"40d1336c2619248dd0b078b2fa00889bd517e5ac","commit_message":"decomp: match fn_80224A88 and reshape fn_802235B4 in CRI AXRNA (#281)","measures":{"fuzzy_match_percent":7.019591,"total_code":13039060,"matched_code":910888,"matched_code_percent":6.985841,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5128,"matched_functions_percent":13.1238165,"complete_code":902496,"complete_code_percent":6.9214807,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2148}},{"timestamp":"2026-08-24T02:46:04Z","commit_sha":"e1e39c58aae75a3cb7d959d4122a955bf5770dba","commit_message":"decomp: match fn_80223500 in the CRI AXRNA unit (#280)","measures":{"fuzzy_match_percent":7.0171504,"total_code":13039060,"matched_code":910740,"matched_code_percent":6.9847064,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5127,"matched_functions_percent":13.121258,"complete_code":902496,"complete_code_percent":6.9214807,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2148}},{"timestamp":"2026-08-24T02:39:38Z","commit_sha":"4d4583a3c0fdd52d2cc3a1b04edc08d6f56aa2e8","commit_message":"decomp: match MSL w_pow (#279)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n* decomp: match MSL e_atan2\n\n* decomp: match MSL e_fmod\n\n* decomp: match MSL e_log\n\n* decomp: match MSL e_log10\n\n* decomp: match MSL e_pow\n\n* decomp: match MSL e_rem_pio2\n\n* decomp: match MSL k_cos\n\n* decomp: match MSL k_rem_pio2\n\n* decomp: match MSL k_sin\n\n* decomp: match MSL k_tan\n\n* decomp: match MSL s_atan\n\n* decomp: match MSL s_ceil\n\n* decomp: match MSL s_copysign\n\n* decomp: match MSL s_cos\n\n* decomp: match MSL s_floor\n\n* decomp: match MSL s_frexp\n\n* decomp: match MSL s_ldexp\n\n* decomp: match MSL modf\n\n* decomp: match MSL s_nextafter\n\n* decomp: name modf translation unit correctly\n\n* decomp: match MSL s_sin\n\n* decomp: match MSL s_tan\n\n* decomp: match MSL w_acos\n\n* decomp: match MSL w_asin\n\n* decomp: match MSL w_atan2\n\n* decomp: match MSL w_fmod\n\n* decomp: match MSL w_log\n\n* decomp: match MSL w_log10\n\n* decomp: match MSL w_pow\n\n* decomp: complete w_pow with powf\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.01577,"total_code":13039060,"matched_code":910560,"matched_code_percent":6.9833255,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5126,"matched_functions_percent":13.118698,"complete_code":902496,"complete_code_percent":6.9214807,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6234,"complete_units":2148}},{"timestamp":"2026-08-24T02:36:32Z","commit_sha":"0c3aad0db8df5aaa514c8869d839929478f9d79c","commit_message":"decomp: match MSL w_log10 (#278)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n* decomp: match MSL e_atan2\n\n* decomp: match MSL e_fmod\n\n* decomp: match MSL e_log\n\n* decomp: match MSL e_log10\n\n* decomp: match MSL e_pow\n\n* decomp: match MSL e_rem_pio2\n\n* decomp: match MSL k_cos\n\n* decomp: match MSL k_rem_pio2\n\n* decomp: match MSL k_sin\n\n* decomp: match MSL k_tan\n\n* decomp: match MSL s_atan\n\n* decomp: match MSL s_ceil\n\n* decomp: match MSL s_copysign\n\n* decomp: match MSL s_cos\n\n* decomp: match MSL s_floor\n\n* decomp: match MSL s_frexp\n\n* decomp: match MSL s_ldexp\n\n* decomp: match MSL modf\n\n* decomp: match MSL s_nextafter\n\n* decomp: name modf translation unit correctly\n\n* decomp: match MSL s_sin\n\n* decomp: match MSL s_tan\n\n* decomp: match MSL w_acos\n\n* decomp: match MSL w_asin\n\n* decomp: match MSL w_atan2\n\n* decomp: match MSL w_fmod\n\n* decomp: match MSL w_log\n\n* decomp: match MSL w_log10\n\n---------\n\nCo-authored-by: Jovinull <felipejovinogamerplay@gmail.com>","measures":{"fuzzy_match_percent":7.015249,"total_code":13039060,"matched_code":910492,"matched_code_percent":6.9828043,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5124,"matched_functions_percent":13.113579,"complete_code":902428,"complete_code_percent":6.920959,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6233,"complete_units":2147}},{"timestamp":"2026-08-24T02:32:39Z","commit_sha":"1a8104034ee266e2c061f35565221bb7263718c0","commit_message":"decomp: match MSL w_fmod (#275)","measures":{"fuzzy_match_percent":7.0147576,"total_code":13039060,"matched_code":910428,"matched_code_percent":6.982313,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5122,"matched_functions_percent":13.10846,"complete_code":902364,"complete_code_percent":6.920468,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6231,"complete_units":2145}},{"timestamp":"2026-08-24T02:27:02Z","commit_sha":"74b3c305375b45ecdc4ee13dcfa189f994fa631f","commit_message":"decomp: match eleven more MSL math units (integration of #274) (#276)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n* decomp: match MSL e_atan2\n\n* decomp: match MSL e_fmod\n\n* decomp: match MSL e_log\n\n* decomp: match MSL e_log10\n\n* decomp: match MSL e_pow\n\n* decomp: match MSL e_rem_pio2\n\n* decomp: match MSL k_cos\n\n* decomp: match MSL k_rem_pio2\n\n* decomp: match MSL k_sin\n\n* decomp: match MSL k_tan\n\n* decomp: match MSL s_atan\n\n* decomp: match MSL s_ceil\n\n* decomp: match MSL s_copysign\n\n* decomp: match MSL s_cos\n\n* decomp: match MSL s_floor\n\n* decomp: match MSL s_frexp\n\n* decomp: match MSL s_ldexp\n\n* decomp: match MSL modf\n\n* decomp: match MSL s_nextafter\n\n* decomp: name modf translation unit correctly\n\n* decomp: match MSL s_sin\n\n* decomp: match MSL s_tan\n\n* decomp: match MSL w_acos\n\n* decomp: match MSL w_asin\n\n* decomp: match MSL w_atan2\n\n---------\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":7.0145125,"total_code":13039060,"matched_code":910396,"matched_code_percent":6.982068,"total_data":7167706,"matched_data":65492,"matched_data_percent":0.9137093,"total_functions":39074,"matched_functions":5121,"matched_functions_percent":13.105902,"complete_code":902332,"complete_code_percent":6.9202228,"complete_data":68832,"complete_data_percent":0.9603073,"total_units":6230,"complete_units":2144}},{"timestamp":"2026-08-24T02:21:46Z","commit_sha":"e0e464d625a12d7692932190fb92958c2e2e6217","commit_message":"decomp: match MSL s_atan, s_ceil and s_copysign (integration of #262) (#272)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n* decomp: match MSL e_atan2\n\n* decomp: match MSL e_fmod\n\n* decomp: match MSL e_log\n\n* decomp: match MSL e_log10\n\n* decomp: match MSL e_pow\n\n* decomp: match MSL e_rem_pio2\n\n* decomp: match MSL k_cos\n\n* decomp: match MSL k_rem_pio2\n\n* decomp: match MSL k_sin\n\n* decomp: match MSL k_tan\n\n* decomp: match MSL s_atan\n\n* decomp: match MSL s_ceil\n\n* decomp: match MSL s_copysign\n\n---------\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":6.997609,"total_code":13039060,"matched_code":908192,"matched_code_percent":6.9651647,"total_data":7167706,"matched_data":65404,"matched_data_percent":0.91248167,"total_functions":39074,"matched_functions":5110,"matched_functions_percent":13.077749,"complete_code":900128,"complete_code_percent":6.90332,"complete_data":68744,"complete_data_percent":0.9590795,"total_units":6219,"complete_units":2133}},{"timestamp":"2026-08-24T01:50:34Z","commit_sha":"bea60386ff2deb075a11b6d44f34be53ac049b64","commit_message":"decomp: match MSL k_sin and k_tan (integration of #258) (#261)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n* decomp: match MSL e_atan2\n\n* decomp: match MSL e_fmod\n\n* decomp: match MSL e_log\n\n* decomp: match MSL e_log10\n\n* decomp: match MSL e_pow\n\n* decomp: match MSL e_rem_pio2\n\n* decomp: match MSL k_cos\n\n* decomp: match MSL k_rem_pio2\n\n* decomp: match MSL k_sin\n\n* decomp: match MSL k_tan\n\n---------\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":6.990891,"total_code":13039060,"matched_code":907316,"matched_code_percent":6.9584465,"total_data":7167706,"matched_data":65196,"matched_data_percent":0.90957975,"total_functions":39074,"matched_functions":5107,"matched_functions_percent":13.070072,"complete_code":899252,"complete_code_percent":6.8966017,"complete_data":68536,"complete_data_percent":0.9561776,"total_units":6217,"complete_units":2130}},{"timestamp":"2026-08-24T01:47:58Z","commit_sha":"bcd94882bf4582bb78d05cd33ecf70027c089087","commit_message":"decomp: match MSL k_cos and k_rem_pio2 (integration of #255) (#257)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n* decomp: match MSL e_atan2\n\n* decomp: match MSL e_fmod\n\n* decomp: match MSL e_log\n\n* decomp: match MSL e_log10\n\n* decomp: match MSL e_pow\n\n* decomp: match MSL e_rem_pio2\n\n* decomp: match MSL k_cos\n\n* decomp: match MSL k_rem_pio2\n\n---------\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":6.985584,"total_code":13039060,"matched_code":906624,"matched_code_percent":6.95314,"total_data":7167706,"matched_data":64980,"matched_data_percent":0.90656614,"total_functions":39074,"matched_functions":5105,"matched_functions_percent":13.064954,"complete_code":898560,"complete_code_percent":6.8912945,"complete_data":68320,"complete_data_percent":0.95316416,"total_units":6215,"complete_units":2128}},{"timestamp":"2026-08-24T01:42:58Z","commit_sha":"fd492c857d0cc7b44b43ea685d0f01098b2494f3","commit_message":"decomp: match MSL e_pow and e_rem_pio2 (integration of #252) (#254)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n* decomp: match MSL e_atan2\n\n* decomp: match MSL e_fmod\n\n* decomp: match MSL e_log\n\n* decomp: match MSL e_log10\n\n* decomp: match MSL e_pow\n\n* decomp: match MSL e_rem_pio2\n\n---------\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":6.9555817,"total_code":13039060,"matched_code":902712,"matched_code_percent":6.9231367,"total_data":7167706,"matched_data":64764,"matched_data_percent":0.90355265,"total_functions":39074,"matched_functions":5103,"matched_functions_percent":13.059835,"complete_code":894648,"complete_code_percent":6.861292,"complete_data":68104,"complete_data_percent":0.95015055,"total_units":6213,"complete_units":2126}},{"timestamp":"2026-08-24T01:38:31Z","commit_sha":"de59a76a872a8bc7173bb107b2a31c54c87bf256","commit_message":"decomp: match MSL e_log10 (integration of #248) (#251)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n* decomp: match MSL e_atan2\n\n* decomp: match MSL e_fmod\n\n* decomp: match MSL e_log\n\n* decomp: match MSL e_log10\n\n---------\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":6.9316845,"total_code":13039060,"matched_code":899596,"matched_code_percent":6.89924,"total_data":7167706,"matched_data":63964,"matched_data_percent":0.8923915,"total_functions":39074,"matched_functions":5101,"matched_functions_percent":13.054716,"complete_code":891532,"complete_code_percent":6.8373947,"complete_data":67304,"complete_data_percent":0.9389894,"total_units":6211,"complete_units":2124}},{"timestamp":"2026-08-24T01:32:05Z","commit_sha":"f83facfb3d8ebd0daed7c9c3400475a9f2d5a9db","commit_message":"decomp: match MSL e_atan2, e_fmod and e_log (integration of #247) (#249)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n* decomp: match MSL e_atan2\n\n* decomp: match MSL e_fmod\n\n* decomp: match MSL e_log\n\n---------\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":6.9295983,"total_code":13039060,"matched_code":899324,"matched_code_percent":6.897154,"total_data":7167706,"matched_data":63908,"matched_data_percent":0.89161026,"total_functions":39074,"matched_functions":5100,"matched_functions_percent":13.052158,"complete_code":891260,"complete_code_percent":6.8353086,"complete_data":67248,"complete_data_percent":0.9382081,"total_units":6211,"complete_units":2123}},{"timestamp":"2026-08-24T01:26:47Z","commit_sha":"6a9961c369cb28378a82cc576abdac074174e42c","commit_message":"decomp: match MSL e_acos and e_asin (integration of #242) (#246)\n\n* decomp: match MSL e_acos\n\n* decomp: match MSL e_asin\n\n---------\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":6.9133396,"total_code":13039060,"matched_code":897204,"matched_code_percent":6.880895,"total_data":7167710,"matched_data":63668,"matched_data_percent":0.8882614,"total_functions":39074,"matched_functions":5097,"matched_functions_percent":13.044479,"complete_code":889140,"complete_code_percent":6.81905,"complete_data":67008,"complete_data_percent":0.9348593,"total_units":6209,"complete_units":2120}},{"timestamp":"2026-08-24T01:22:43Z","commit_sha":"0c10c3c6941f2775ec513aa0e09be958b8d1493d","commit_message":"decomp: match MSL fwide (#243)\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":6.902633,"total_code":13039060,"matched_code":895808,"matched_code_percent":6.8701887,"total_data":7167710,"matched_data":63372,"matched_data_percent":0.8841317,"total_functions":39074,"matched_functions":5095,"matched_functions_percent":13.039361,"complete_code":887744,"complete_code_percent":6.8083434,"complete_data":66712,"complete_data_percent":0.9307296,"total_units":6207,"complete_units":2118}},{"timestamp":"2026-08-24T01:17:50Z","commit_sha":"e9e192255b8f2d8e158014de705277ed456c2374","commit_message":"decomp: reconstruct eff_tornado (integration of #238) (#241)\n\n* wip: scaffold complete eff tornado TU\n\n* wip: match tornado factories and cleanup\n\n* feat: match tornado spin helpers\n\n* wip: match tornado initialization and spin factory\n\n* feat: match base tornado execution\n\n* WIP: match eff_tornado initialization and factories\n\n* wip: reconstruct base tornado display\n\n* WIP: integrate base tornado display\n\n* fix: match tornado collision team lookup\n\n* fix: identify tornado jump tables\n\n* WIP: reconstruct tornado effect data tables\n\n* fix: match typhoon constructor register allocation\n\n* feat: reconstruct tornado small data state\n\n* feat: match TObjEffTornado2 core\n\n* fix: correct tornado display material ownership\n\n* fix: preserve tornado frame access lifetimes\n\n* feat: reconstruct tornado effect vtables\n\n* fix: preserve tornado angle expression evaluation\n\n* fix: preserve tornado vector table offsets\n\n* fix: match tornado call argument evaluation\n\n* feat: decompile TObjEffTornado2 display\n\n* fix: integrate tornado2 display state\n\n* fix: preserve tornado angle table offsets\n\n* fix: match tornado alpha evaluation order\n\n* fix: match tornado floating-point lifetimes\n\n* fix: improve Tornado2 display register allocation\n\n* fix: preserve tornado loop pointer lifetimes\n\n* fix: match final tornado loop index allocation\n\n* fix: reuse final tornado loop offset\n\n* fix: preserve tornado angle entry lifetime\n\n* fix: reuse final tornado angle offset\n\n* fix: reuse final tornado loop pointers\n\n* fix: inline final tornado rotation axis\n\n* fix: match tornado opacity evaluation order\n\n* fix: preserve shared collision symbols\n\n* refactor: restore tornado retail function order\n\n* refactor: restore tornado retail data order\n\n* build: disable tornado data pooling\n\n* fix: recover tornado character IDs\n\n* refactor: restore tornado2 exec method\n\n* game: improve eff tornado matching\n\n* game: improve tornado display loops\n\n---------\n\nCo-authored-by: Cypress <140924725+cypressru@users.noreply.github.com>","measures":{"fuzzy_match_percent":6.9015903,"total_code":13039060,"matched_code":895672,"matched_code_percent":6.8691454,"total_data":7167710,"matched_data":63372,"matched_data_percent":0.8841317,"total_functions":39074,"matched_functions":5094,"matched_functions_percent":13.036802,"complete_code":887608,"complete_code_percent":6.8073006,"complete_data":66712,"complete_data_percent":0.9307296,"total_units":6206,"complete_units":2117}},{"timestamp":"2026-08-24T01:01:10Z","commit_sha":"c77b12c30c71a4f85ea8ca19bf06a75f399268c2","commit_message":"decomp: demarca a unidade CRI AXRNA e fecha sete das 22 funcoes (#237)","measures":{"fuzzy_match_percent":6.829675,"total_code":13039060,"matched_code":888864,"matched_code_percent":6.816933,"total_data":7167710,"matched_data":63328,"matched_data_percent":0.88351786,"total_functions":39074,"matched_functions":5074,"matched_functions_percent":12.985617,"complete_code":887608,"complete_code_percent":6.8073006,"complete_data":66712,"complete_data_percent":0.9307296,"total_units":6224,"complete_units":2117}},{"timestamp":"2026-08-24T00:48:17Z","commit_sha":"c9415d80685d2d358241f338a58e47d46f70b697","commit_message":"decomp: fecha a unidade CRI adapter com as oito funcoes batendo (#236)","measures":{"fuzzy_match_percent":6.8267484,"total_code":13039060,"matched_code":888568,"matched_code_percent":6.814663,"total_data":7167710,"matched_data":63328,"matched_data_percent":0.88351786,"total_functions":39074,"matched_functions":5067,"matched_functions_percent":12.967703,"complete_code":887608,"complete_code_percent":6.8073006,"complete_data":66712,"complete_data_percent":0.9307296,"total_units":6223,"complete_units":2117}},{"timestamp":"2026-08-24T00:38:43Z","commit_sha":"3b09ded6f1ee311cc6e4e7f50d1e62b41224d08e","commit_message":"decomp: take CRI MFCI from 528 to 587 of 644 instructions (#235)\n\n* decomp: corrige o layout de bss e as formas de mfCiReqRd na unidade MFCI\n\n* decomp: fecha fn_80223404 e fn_80223410 com leitura volatil","measures":{"fuzzy_match_percent":6.8250613,"total_code":13039060,"matched_code":888348,"matched_code_percent":6.8129754,"total_data":7167710,"matched_data":63328,"matched_data_percent":0.88351786,"total_functions":39074,"matched_functions":5059,"matched_functions_percent":12.947228,"complete_code":887388,"complete_code_percent":6.8056135,"complete_data":66448,"complete_data_percent":0.9270464,"total_units":6222,"complete_units":2116}},{"timestamp":"2026-08-24T00:14:57Z","commit_sha":"787760aaa2c8dbcfb11a2e9e58a89ade66e756ca","commit_message":"decomp: demarca a unidade CRI MFCI e reconstroi 7 das 14 funcoes (#234)","measures":{"fuzzy_match_percent":6.824595,"total_code":13039060,"matched_code":888060,"matched_code_percent":6.810767,"total_data":7167710,"matched_data":63328,"matched_data_percent":0.88351786,"total_functions":39074,"matched_functions":5057,"matched_functions_percent":12.94211,"complete_code":887388,"complete_code_percent":6.8056135,"complete_data":66448,"complete_data_percent":0.9270464,"total_units":6222,"complete_units":2116}},{"timestamp":"2026-08-23T23:50:28Z","commit_sha":"de8a7b0f9e15198c5b3484f7e5fd74e03b0d5c40","commit_message":"decomp: complete Spring translation unit (#233)","measures":{"fuzzy_match_percent":6.8056135,"total_code":13039060,"matched_code":887388,"matched_code_percent":6.8056135,"total_data":7167710,"matched_data":63224,"matched_data_percent":0.88206697,"total_functions":39074,"matched_functions":5050,"matched_functions_percent":12.924196,"complete_code":887388,"complete_code_percent":6.8056135,"complete_data":66448,"complete_data_percent":0.9270464,"total_units":6217,"complete_units":2116}},{"timestamp":"2026-08-23T22:44:16Z","commit_sha":"3e0498166fb599d15ad0f3ea42b40d4dada69534","commit_message":"game: match EasySelect translation unit (#232)","measures":{"fuzzy_match_percent":6.60701,"total_code":13039060,"matched_code":861492,"matched_code_percent":6.6070104,"total_data":7167710,"matched_data":63068,"matched_data_percent":0.87989044,"total_functions":39074,"matched_functions":5011,"matched_functions_percent":12.824385,"complete_code":861492,"complete_code_percent":6.6070104,"complete_data":66292,"complete_data_percent":0.92487,"total_units":6295,"complete_units":2168}},{"timestamp":"2026-08-23T22:32:02Z","commit_sha":"00611bee262421c60d51fecfdfe873d75dcf10bd","commit_message":"chore: ignore ISO and RVZ disc images\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01YLZqgJsUYqafeyYhDUMkFx","measures":{"fuzzy_match_percent":6.5577426,"total_code":13039060,"matched_code":855068,"matched_code_percent":6.5577426,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4967,"matched_functions_percent":12.711779,"complete_code":855068,"complete_code_percent":6.5577426,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6320,"complete_units":2167}},{"timestamp":"2026-08-21T19:51:20Z","commit_sha":"5f8eed259478222bf631d2ae478a71faf7440781","commit_message":"feat: match the s11 and s12 door object destructors (#230)","measures":{"fuzzy_match_percent":6.5577426,"total_code":13039060,"matched_code":855068,"matched_code_percent":6.5577426,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4967,"matched_functions_percent":12.711779,"complete_code":855068,"complete_code_percent":6.5577426,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6320,"complete_units":2167}},{"timestamp":"2026-08-21T19:11:05Z","commit_sha":"054e1cd0f648b691f3f772f2a580ea210c33764a","commit_message":"feat: match the s02 water and s20d curbstone destructors (#229)","measures":{"fuzzy_match_percent":6.554307,"total_code":13039060,"matched_code":854620,"matched_code_percent":6.554307,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4965,"matched_functions_percent":12.706659,"complete_code":854620,"complete_code_percent":6.554307,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6316,"complete_units":2165}},{"timestamp":"2026-08-21T18:55:30Z","commit_sha":"119f28b1f86b39841e85a8ba973972239c7a1207","commit_message":"feat: match the s31 bob dummy destructor across twelve shared engine-core modules (#228)","measures":{"fuzzy_match_percent":6.551362,"total_code":13039060,"matched_code":854236,"matched_code_percent":6.551362,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4963,"matched_functions_percent":12.701541,"complete_code":854236,"complete_code_percent":6.551362,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6312,"complete_units":2163}},{"timestamp":"2026-08-21T18:50:59Z","commit_sha":"8b671b9f12f8f0b3b56523fca015690406458db8","commit_message":"feat: match the cannon destructor across twelve shared engine-core modules (#227)","measures":{"fuzzy_match_percent":6.5384774,"total_code":13039060,"matched_code":852556,"matched_code_percent":6.5384774,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4951,"matched_functions_percent":12.67083,"complete_code":852556,"complete_code_percent":6.5384774,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6295,"complete_units":2151}},{"timestamp":"2026-08-21T17:58:24Z","commit_sha":"27189baf64251b3c92808bf6f508f8019d2cd058","commit_message":"feat: extend systemObject1-4 destructors to their other revision's modules (#226)","measures":{"fuzzy_match_percent":6.520071,"total_code":13039060,"matched_code":850156,"matched_code_percent":6.520071,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4939,"matched_functions_percent":12.640119,"complete_code":850156,"complete_code_percent":6.520071,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6271,"complete_units":2139}},{"timestamp":"2026-08-21T14:12:39Z","commit_sha":"e36ef12f19559a93fb616c105359b11753986eb6","commit_message":"feat: extend seven destructors to their other revision's modules (#225)\n\n* feat: extend rollDoorDtor to the three modules that share its other revision\n\n* feat: extend itembaloonObjectDtor to the three modules that share its other revision\n\n* feat: extend itemBox, signal, pole, pushPullSwitch and caseObj destructors to their other revision's modules","measures":{"fuzzy_match_percent":6.486572,"total_code":13039060,"matched_code":845788,"matched_code_percent":6.486572,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4855,"matched_functions_percent":12.425141,"complete_code":845788,"complete_code_percent":6.486572,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6256,"complete_units":2127}},{"timestamp":"2026-08-21T14:00:54Z","commit_sha":"d8e6b784544d5717af59016d70c3429bd25e0deb","commit_message":"feat: match the jumpPanel, weight, itembaloonObject and pushPullSwitch destructors (#224)","measures":{"fuzzy_match_percent":6.4562016,"total_code":13039060,"matched_code":841828,"matched_code_percent":6.4562016,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4834,"matched_functions_percent":12.371398,"complete_code":841828,"complete_code_percent":6.4562016,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6214,"complete_units":2106}},{"timestamp":"2026-08-21T13:38:54Z","commit_sha":"80ff8110d100eddbf4f07db519781441a6ba377e","commit_message":"feat: match the signal and triSpring destructors across the shared engine-core modules (#223)","measures":{"fuzzy_match_percent":6.3901234,"total_code":13039060,"matched_code":833212,"matched_code_percent":6.390123,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4792,"matched_functions_percent":12.263909,"complete_code":833212,"complete_code_percent":6.390123,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6130,"complete_units":2064}},{"timestamp":"2026-08-21T13:32:15Z","commit_sha":"2877fd41a69d9a109e876ce5c55a362b2ccf3f0a","commit_message":"feat: match the scrollRing destructor across thirteen shared engine-core modules (#222)","measures":{"fuzzy_match_percent":6.3542004,"total_code":13039060,"matched_code":828528,"matched_code_percent":6.3542,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4770,"matched_functions_percent":12.207606,"complete_code":828528,"complete_code_percent":6.3542,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6086,"complete_units":2042}},{"timestamp":"2026-08-21T13:21:21Z","commit_sha":"726e46f86e56178014e718cb2f00799ff0ced2a2","commit_message":"feat: match the pawn destructor across nine shared engine-core modules (#221)","measures":{"fuzzy_match_percent":6.3270817,"total_code":13039060,"matched_code":824992,"matched_code_percent":6.327082,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4757,"matched_functions_percent":12.1743355,"complete_code":824992,"complete_code_percent":6.327082,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6060,"complete_units":2029}},{"timestamp":"2026-08-21T12:49:14Z","commit_sha":"9113763c443df27736949468125146fc0d3058c6","commit_message":"feat: match the dashRing and bigRings destructors across the twelve shared engine-core modules (#220)","measures":{"fuzzy_match_percent":6.2945027,"total_code":13039060,"matched_code":820744,"matched_code_percent":6.294503,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4748,"matched_functions_percent":12.151302,"complete_code":820744,"complete_code_percent":6.294503,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":6042,"complete_units":2020}},{"timestamp":"2026-08-06T14:47:07Z","commit_sha":"3e48d2b9f1b66188e689b4defd6765c32978c6b9","commit_message":"feat: match the object records that fill several entries at once (#219)","measures":{"fuzzy_match_percent":6.2521687,"total_code":13039060,"matched_code":815224,"matched_code_percent":6.252168,"total_data":7167714,"matched_data":62520,"matched_data_percent":0.8722446,"total_functions":39074,"matched_functions":4724,"matched_functions_percent":12.089881,"complete_code":815224,"complete_code_percent":6.252168,"complete_data":65744,"complete_data_percent":0.9172241,"total_units":5994,"complete_units":1996}},{"timestamp":"2026-08-06T14:36:37Z","commit_sha":"3b646f6f434b12f6e59b47772101e7fe409ba02f","commit_message":"feat: match every remaining plain object record across the stage modules (#218)","measures":{"fuzzy_match_percent":6.1984224,"total_code":13039060,"matched_code":808216,"matched_code_percent":6.1984224,"total_data":7167714,"matched_data":62456,"matched_data_percent":0.8713517,"total_functions":39074,"matched_functions":4708,"matched_functions_percent":12.048933,"complete_code":808216,"complete_code_percent":6.1984224,"complete_data":65680,"complete_data_percent":0.9163312,"total_units":5994,"complete_units":1980}},{"timestamp":"2026-08-06T13:45:57Z","commit_sha":"02e9f3733a52f7ccfeadae2068b103b9b28864c2","commit_message":"feat: match fourteen more object records across every module that shares them (#217)","measures":{"fuzzy_match_percent":5.873153,"total_code":13039060,"matched_code":765804,"matched_code_percent":5.873153,"total_data":7167714,"matched_data":61476,"matched_data_percent":0.85767925,"total_functions":39074,"matched_functions":4463,"matched_functions_percent":11.421917,"complete_code":765804,"complete_code_percent":5.873153,"complete_data":64700,"complete_data_percent":0.9026588,"total_units":5994,"complete_units":1735}},{"timestamp":"2026-08-06T12:59:20Z","commit_sha":"f3cc5a36a6ad1f7b8619173e583b709e78b404a8","commit_message":"feat: extend twenty-six object records to every module that shares the run (#216)","measures":{"fuzzy_match_percent":5.704092,"total_code":13039060,"matched_code":743760,"matched_code_percent":5.704092,"total_data":7167714,"matched_data":61108,"matched_data_percent":0.85254514,"total_functions":39074,"matched_functions":4371,"matched_functions_percent":11.186466,"complete_code":743760,"complete_code_percent":5.704092,"complete_data":64332,"complete_data_percent":0.8975247,"total_units":5994,"complete_units":1643}},{"timestamp":"2026-08-05T19:31:02Z","commit_sha":"91a8b9d3f458c68d30fdd8a84f509f175bdd307f","commit_message":"Merge pull request #215 from Jovinull/feat/rel-object-records-batch5\n\nfeat: match the particle setter object record","measures":{"fuzzy_match_percent":5.4482455,"total_code":13039060,"matched_code":710400,"matched_code_percent":5.4482455,"total_data":7167714,"matched_data":60292,"matched_data_percent":0.8411608,"total_functions":39074,"matched_functions":4167,"matched_functions_percent":10.66438,"complete_code":710400,"complete_code_percent":5.4482455,"complete_data":63516,"complete_data_percent":0.8861403,"total_units":5994,"complete_units":1439}},{"timestamp":"2026-08-05T19:24:11Z","commit_sha":"984891c080e815c9609c1ed292a616231176ffa6","commit_message":"Merge pull request #214 from Jovinull/feat/rel-object-records-batch4\n\nfeat: match six stage object records across four field layouts","measures":{"fuzzy_match_percent":5.447049,"total_code":13039060,"matched_code":710244,"matched_code_percent":5.447049,"total_data":7167714,"matched_data":60288,"matched_data_percent":0.841105,"total_functions":39074,"matched_functions":4166,"matched_functions_percent":10.661821,"complete_code":710244,"complete_code_percent":5.447049,"complete_data":63512,"complete_data_percent":0.88608444,"total_units":5994,"complete_units":1438}},{"timestamp":"2026-08-05T19:13:19Z","commit_sha":"2b027cd8d361d0e69aff73b410959ad5dfa9c565","commit_message":"Merge pull request #213 from Jovinull/feat/rel-object-records-batch3\n\nfeat: match four stage object records with reset hooks","measures":{"fuzzy_match_percent":5.439871,"total_code":13039060,"matched_code":709308,"matched_code_percent":5.439871,"total_data":7167714,"matched_data":60264,"matched_data_percent":0.8407702,"total_functions":39074,"matched_functions":4160,"matched_functions_percent":10.646465,"complete_code":709308,"complete_code_percent":5.439871,"complete_data":63488,"complete_data_percent":0.8857496,"total_units":5994,"complete_units":1432}},{"timestamp":"2026-08-05T19:08:26Z","commit_sha":"8dd6d306a68bc88937df857ff7a4ffa41e8caab9","commit_message":"Merge pull request #212 from Jovinull/feat/rel-object-records-batch2\n\nfeat: match seven stage object records with partial hook sets","measures":{"fuzzy_match_percent":5.4344716,"total_code":13039060,"matched_code":708604,"matched_code_percent":5.434471,"total_data":7167714,"matched_data":60248,"matched_data_percent":0.84054697,"total_functions":39074,"matched_functions":4156,"matched_functions_percent":10.636229,"complete_code":708604,"complete_code_percent":5.434471,"complete_data":63472,"complete_data_percent":0.88552636,"total_units":5994,"complete_units":1428}},{"timestamp":"2026-08-05T19:02:59Z","commit_sha":"604d30cbc6891b52f7f2202e713f4ea76af23553","commit_message":"Merge pull request #211 from Jovinull/feat/rel-object-records-batch\n\nfeat: match seven more stage object records","measures":{"fuzzy_match_percent":5.4263115,"total_code":13039060,"matched_code":707540,"matched_code_percent":5.4263115,"total_data":7167714,"matched_data":60220,"matched_data_percent":0.84015626,"total_functions":39074,"matched_functions":4149,"matched_functions_percent":10.618314,"complete_code":707540,"complete_code_percent":5.4263115,"complete_data":63444,"complete_data_percent":0.88513577,"total_units":5994,"complete_units":1421}},{"timestamp":"2026-08-05T18:55:29Z","commit_sha":"cad63318a707c282bcc799cc9af16e380f55ccef","commit_message":"Merge pull request #210 from Jovinull/feat/rel-name-object-families\n\nfeat: name 35 object families and match three more records","measures":{"fuzzy_match_percent":5.417292,"total_code":13039060,"matched_code":706364,"matched_code_percent":5.417292,"total_data":7167714,"matched_data":60192,"matched_data_percent":0.83976567,"total_functions":39074,"matched_functions":4142,"matched_functions_percent":10.600399,"complete_code":706364,"complete_code_percent":5.417292,"complete_data":63416,"complete_data_percent":0.88474506,"total_units":5994,"complete_units":1414}},{"timestamp":"2026-08-05T18:17:27Z","commit_sha":"b01da3c47d61e9bc104552605608e282d145ca37","commit_message":"Merge pull request #209 from Jovinull/feat/rel-s02-object-registers\n\nfeat: match the four stage-02 object records","measures":{"fuzzy_match_percent":5.413335,"total_code":13039060,"matched_code":705848,"matched_code_percent":5.4133353,"total_data":7167714,"matched_data":60180,"matched_data_percent":0.8395982,"total_functions":39074,"matched_functions":4139,"matched_functions_percent":10.592721,"complete_code":705848,"complete_code_percent":5.4133353,"complete_data":63404,"complete_data_percent":0.88457775,"total_units":5994,"complete_units":1411}},{"timestamp":"2026-08-05T18:10:48Z","commit_sha":"bd603fee330023af6faa2d1cf7d6377a06c76458","commit_message":"Merge pull request #208 from Jovinull/feat/rel-s01-more-registers\n\nfeat: match the Kamome, Wave and SHACHI object records","measures":{"fuzzy_match_percent":5.4080586,"total_code":13039060,"matched_code":705160,"matched_code_percent":5.4080586,"total_data":7167714,"matched_data":60164,"matched_data_percent":0.8393751,"total_functions":39074,"matched_functions":4135,"matched_functions_percent":10.582484,"complete_code":705160,"complete_code_percent":5.4080586,"complete_data":63388,"complete_data_percent":0.8843545,"total_units":5994,"complete_units":1407}},{"timestamp":"2026-08-05T18:04:52Z","commit_sha":"5f092f492aadd1f8bb2475e7a09b319f789e37a0","commit_message":"Merge pull request #207 from Jovinull/feat/rel-s01-object-registers\n\nfeat: match the Gokurakucho object record and name seven more families","measures":{"fuzzy_match_percent":5.4041014,"total_code":13039060,"matched_code":704644,"matched_code_percent":5.4041014,"total_data":7167714,"matched_data":60152,"matched_data_percent":0.8392076,"total_functions":39074,"matched_functions":4132,"matched_functions_percent":10.574806,"complete_code":704644,"complete_code_percent":5.4041014,"complete_data":63376,"complete_data_percent":0.88418704,"total_units":5994,"complete_units":1404}},{"timestamp":"2026-08-05T17:55:49Z","commit_sha":"ff5ce872794c24e6fb8d68daa002f23b386b3c30","commit_message":"Merge pull request #206 from Jovinull/feat/rel-field-callbacks\n\nfeat: match the checkpoint and goal ring field callbacks","measures":{"fuzzy_match_percent":5.402782,"total_code":13039060,"matched_code":704472,"matched_code_percent":5.402782,"total_data":7167714,"matched_data":60148,"matched_data_percent":0.8391518,"total_functions":39074,"matched_functions":4131,"matched_functions_percent":10.5722475,"complete_code":704472,"complete_code_percent":5.402782,"complete_data":63372,"complete_data_percent":0.88413125,"total_units":5994,"complete_units":1403}},{"timestamp":"2026-08-05T17:47:15Z","commit_sha":"bdcb2355467d671dabbdee99e1cd3cb80fd0663f","commit_message":"Merge pull request #205 from Jovinull/feat/rel-shared-hooks-batch6\n\nfeat: match the push pull switch editor callback and lens flare test","measures":{"fuzzy_match_percent":5.393763,"total_code":13039060,"matched_code":703296,"matched_code_percent":5.393763,"total_data":7167714,"matched_data":60148,"matched_data_percent":0.8391518,"total_functions":39074,"matched_functions":4110,"matched_functions_percent":10.518503,"complete_code":703296,"complete_code_percent":5.393763,"complete_data":63372,"complete_data_percent":0.88413125,"total_units":5994,"complete_units":1382}},{"timestamp":"2026-08-05T17:37:01Z","commit_sha":"91b29d86d2689d28eecfe8de876c54102cd14150","commit_message":"Merge pull request #204 from Jovinull/feat/rel-shared-hooks-batch5\n\nfeat: match the checkpoint and goal ring bind hooks","measures":{"fuzzy_match_percent":5.3863087,"total_code":13039060,"matched_code":702324,"matched_code_percent":5.3863087,"total_data":7167714,"matched_data":60148,"matched_data_percent":0.8391518,"total_functions":39074,"matched_functions":4092,"matched_functions_percent":10.472437,"complete_code":702324,"complete_code_percent":5.3863087,"complete_data":63372,"complete_data_percent":0.88413125,"total_units":5967,"complete_units":1364}},{"timestamp":"2026-08-05T17:28:54Z","commit_sha":"530dec8b82c817639746c8c18c3bdff74ca55e01","commit_message":"Merge pull request #203 from Jovinull/feat/rel-shared-hooks-batch4\n\nfeat: match the target model reload and lens flare editor callback","measures":{"fuzzy_match_percent":5.3714914,"total_code":13039060,"matched_code":700392,"matched_code_percent":5.3714914,"total_data":7167714,"matched_data":60148,"matched_data_percent":0.8391518,"total_functions":39074,"matched_functions":4071,"matched_functions_percent":10.418693,"complete_code":700392,"complete_code_percent":5.3714914,"complete_data":63372,"complete_data_percent":0.88413125,"total_units":5925,"complete_units":1343}},{"timestamp":"2026-08-05T17:22:51Z","commit_sha":"300bee5fd9d66d8e2d8ccaa438030caf33a6e590","commit_message":"Merge pull request #202 from Jovinull/feat/rel-shared-dtors-batch3\n\nfeat: match three small shared stage object hooks","measures":{"fuzzy_match_percent":5.3568587,"total_code":13039060,"matched_code":698484,"matched_code_percent":5.3568587,"total_data":7167714,"matched_data":60148,"matched_data_percent":0.8391518,"total_functions":39074,"matched_functions":4050,"matched_functions_percent":10.364948,"complete_code":698484,"complete_code_percent":5.3568587,"complete_data":63372,"complete_data_percent":0.88413125,"total_units":5895,"complete_units":1322}},{"timestamp":"2026-08-05T17:07:20Z","commit_sha":"e852727009644b5aa33520893bf35512314e23a0","commit_message":"Merge pull request #201 from Jovinull/feat/rel-shared-dtors-batch2\n\nfeat: match four more shared stage object destructors","measures":{"fuzzy_match_percent":5.340661,"total_code":13039060,"matched_code":696372,"matched_code_percent":5.340661,"total_data":7167714,"matched_data":60148,"matched_data_percent":0.8391518,"total_functions":39074,"matched_functions":4014,"matched_functions_percent":10.272816,"complete_code":696372,"complete_code_percent":5.340661,"complete_data":63372,"complete_data_percent":0.88413125,"total_units":5847,"complete_units":1286}},{"timestamp":"2026-08-05T16:54:45Z","commit_sha":"c3dc0c92fe39e818a82d4f361f386d8fc32aacc7","commit_message":"Merge pull request #200 from Jovinull/feat/rel-s01-base-finish-tu\n\nfeat: match four shared stage object destructors","measures":{"fuzzy_match_percent":5.2859945,"total_code":13039060,"matched_code":689244,"matched_code_percent":5.2859945,"total_data":7167714,"matched_data":60148,"matched_data_percent":0.8391518,"total_functions":39074,"matched_functions":3978,"matched_functions_percent":10.180683,"complete_code":689244,"complete_code_percent":5.2859945,"complete_data":63372,"complete_data_percent":0.88413125,"total_units":5775,"complete_units":1250}},{"timestamp":"2026-08-05T16:37:25Z","commit_sha":"265490dcb0bd4e4ec706e47d5ad4403d2406801c","commit_message":"Merge pull request #199 from Jovinull/feat/rel-s01-base-sinit\n\nfeat: match the second stage-01 object static initializer","measures":{"fuzzy_match_percent":5.218996,"total_code":13039060,"matched_code":680508,"matched_code_percent":5.2189956,"total_data":7167714,"matched_data":60148,"matched_data_percent":0.8391518,"total_functions":39074,"matched_functions":3930,"matched_functions_percent":10.057839,"complete_code":680508,"complete_code_percent":5.2189956,"complete_data":63372,"complete_data_percent":0.88413125,"total_units":5679,"complete_units":1202}},{"timestamp":"2026-08-05T16:28:46Z","commit_sha":"63c235f3598bd9b664a44610e61d539b6a48af2c","commit_message":"Merge pull request #198 from Jovinull/feat/rel-s01-object-a34c-register\n\nfeat: match the stage-01 object base lazy load","measures":{"fuzzy_match_percent":5.2176766,"total_code":13039060,"matched_code":680336,"matched_code_percent":5.2176766,"total_data":7167714,"matched_data":60144,"matched_data_percent":0.83909595,"total_functions":39074,"matched_functions":3929,"matched_functions_percent":10.05528,"complete_code":680336,"complete_code_percent":5.2176766,"complete_data":63368,"complete_data_percent":0.88407546,"total_units":5679,"complete_units":1201}},{"timestamp":"2026-08-05T16:24:14Z","commit_sha":"972907affaa0e517d0a19b5289c7b1b5acc0d5e6","commit_message":"Merge pull request #197 from Jovinull/feat/rel-s01-object-a34c-create\n\nfeat: match the second stage-01 object factory","measures":{"fuzzy_match_percent":5.216388,"total_code":13039060,"matched_code":680168,"matched_code_percent":5.216388,"total_data":7167714,"matched_data":60144,"matched_data_percent":0.83909595,"total_functions":39074,"matched_functions":3928,"matched_functions_percent":10.05272,"complete_code":680168,"complete_code_percent":5.216388,"complete_data":63368,"complete_data_percent":0.88407546,"total_units":5677,"complete_units":1200}},{"timestamp":"2026-08-05T16:20:07Z","commit_sha":"ce793def473e4861e310c35a6d599b639841c980","commit_message":"Merge pull request #196 from Jovinull/feat/rel-s01-base-detach\n\nfeat: match the second stage-01 object destructor","measures":{"fuzzy_match_percent":5.215836,"total_code":13039060,"matched_code":680096,"matched_code_percent":5.215836,"total_data":7167714,"matched_data":60144,"matched_data_percent":0.83909595,"total_functions":39074,"matched_functions":3927,"matched_functions_percent":10.050161,"complete_code":680096,"complete_code_percent":5.215836,"complete_data":63368,"complete_data_percent":0.88407546,"total_units":5676,"complete_units":1199}},{"timestamp":"2026-08-05T14:31:30Z","commit_sha":"efebc0d5daa5631de44b67e52132365b4656ff0a","commit_message":"Merge pull request #195 from Jovinull/feat/rel-s01-base-create-mesh\n\nfeat: match the stage-01 object base collision build","measures":{"fuzzy_match_percent":5.214149,"total_code":13039060,"matched_code":679876,"matched_code_percent":5.2141485,"total_data":7167714,"matched_data":60144,"matched_data_percent":0.83909595,"total_functions":39074,"matched_functions":3926,"matched_functions_percent":10.047602,"complete_code":679876,"complete_code_percent":5.2141485,"complete_data":63368,"complete_data_percent":0.88407546,"total_units":5674,"complete_units":1198}},{"timestamp":"2026-08-05T14:18:45Z","commit_sha":"31c63ce9b7ec432c187016aac9be9d5e0addb19b","commit_message":"Merge pull request #194 from Jovinull/feat/rel-s01-base-release-mesh\n\nfeat: match the stage-01 object base collision release","measures":{"fuzzy_match_percent":5.2133207,"total_code":13039060,"matched_code":679768,"matched_code_percent":5.2133207,"total_data":7167714,"matched_data":60144,"matched_data_percent":0.83909595,"total_functions":39074,"matched_functions":3925,"matched_functions_percent":10.045043,"complete_code":679768,"complete_code_percent":5.2133207,"complete_data":63368,"complete_data_percent":0.88407546,"total_units":5674,"complete_units":1198}},{"timestamp":"2026-08-05T14:05:09Z","commit_sha":"f768fd1a7c481ea7231c5e63a50871497858a60c","commit_message":"Merge pull request #193 from Jovinull/feat/rel-s01-object-base-ctor\n\nfeat: match the stage-01 object base constructor and editor callback","measures":{"fuzzy_match_percent":5.2125845,"total_code":13039060,"matched_code":679672,"matched_code_percent":5.2125845,"total_data":7167714,"matched_data":60144,"matched_data_percent":0.83909595,"total_functions":39074,"matched_functions":3923,"matched_functions_percent":10.039924,"complete_code":679672,"complete_code_percent":5.2125845,"complete_data":63368,"complete_data_percent":0.88407546,"total_units":5672,"complete_units":1197}},{"timestamp":"2026-08-05T13:41:58Z","commit_sha":"08fe1c71062583fc649e6ea2ffbd1ea726560ae0","commit_message":"Merge pull request #192 from Jovinull/feat/rel-s01-object-base-update\n\nfeat: match the stage-01 object base update","measures":{"fuzzy_match_percent":5.209394,"total_code":13039060,"matched_code":679256,"matched_code_percent":5.209394,"total_data":7167714,"matched_data":60128,"matched_data_percent":0.8388728,"total_functions":39074,"matched_functions":3921,"matched_functions_percent":10.034805,"complete_code":679256,"complete_code_percent":5.209394,"complete_data":63352,"complete_data_percent":0.88385224,"total_units":5672,"complete_units":1197}},{"timestamp":"2026-08-05T13:27:00Z","commit_sha":"3275dcd0a454ffd3af2872e139648c87792dd456","commit_message":"Merge pull request #191 from Jovinull/feat/rel-s01-object-base-dtor\n\nfeat: match the stage-01 object base destructor","measures":{"fuzzy_match_percent":5.208044,"total_code":13039060,"matched_code":679080,"matched_code_percent":5.208044,"total_data":7167714,"matched_data":60128,"matched_data_percent":0.8388728,"total_functions":39074,"matched_functions":3920,"matched_functions_percent":10.032247,"complete_code":679080,"complete_code_percent":5.208044,"complete_data":63352,"complete_data_percent":0.88385224,"total_units":5673,"complete_units":1197}},{"timestamp":"2026-08-04T18:39:42Z","commit_sha":"a735e874d1da02fadce18b3c2500b5437ca98d67","commit_message":"Merge pull request #190 from Jovinull/fix/wide-format-core-source-match\n\nfix: correct the wide formatter conversion paths","measures":{"fuzzy_match_percent":5.2066636,"total_code":13039060,"matched_code":678900,"matched_code_percent":5.2066636,"total_data":7167714,"matched_data":60128,"matched_data_percent":0.8388728,"total_functions":39074,"matched_functions":3919,"matched_functions_percent":10.029687,"complete_code":678900,"complete_code_percent":5.2066636,"complete_data":63352,"complete_data_percent":0.88385224,"total_units":5671,"complete_units":1196}},{"timestamp":"2026-08-04T17:02:31Z","commit_sha":"51b3ff9e13c22797c6a9a6baa1d1693315870d2e","commit_message":"Merge pull request #189 from Jovinull/feat/match-unbreakable-container-unload\n\nfeat: match the unbreakable container unload hook","measures":{"fuzzy_match_percent":5.2066636,"total_code":13039060,"matched_code":678900,"matched_code_percent":5.2066636,"total_data":7167714,"matched_data":60128,"matched_data_percent":0.8388728,"total_functions":39074,"matched_functions":3919,"matched_functions_percent":10.029687,"complete_code":678900,"complete_code_percent":5.2066636,"complete_data":63352,"complete_data_percent":0.88385224,"total_units":5671,"complete_units":1196}},{"timestamp":"2026-08-04T16:58:46Z","commit_sha":"0964d40b290241088f3b3ea645673c0a916355da","commit_message":"Merge pull request #188 from Jovinull/feat/match-iron-container-unload\n\nfeat: match the iron container unload hook","measures":{"fuzzy_match_percent":5.204823,"total_code":13039060,"matched_code":678660,"matched_code_percent":5.204823,"total_data":7167714,"matched_data":60128,"matched_data_percent":0.8388728,"total_functions":39074,"matched_functions":3907,"matched_functions_percent":9.998977,"complete_code":678660,"complete_code_percent":5.204823,"complete_data":63352,"complete_data_percent":0.88385224,"total_units":5647,"complete_units":1184}},{"timestamp":"2026-08-04T16:43:30Z","commit_sha":"50d0f434becb9036932c6338026f63802a4cbc14","commit_message":"Merge pull request #187 from Jovinull/feat/match-cannon-hooks\n\nfeat: match the cannon reset and unload hooks","measures":{"fuzzy_match_percent":5.2029824,"total_code":13039060,"matched_code":678420,"matched_code_percent":5.2029824,"total_data":7167714,"matched_data":60128,"matched_data_percent":0.8388728,"total_functions":39074,"matched_functions":3895,"matched_functions_percent":9.968266,"complete_code":678420,"complete_code_percent":5.2029824,"complete_data":63352,"complete_data_percent":0.88385224,"total_units":5623,"complete_units":1172}},{"timestamp":"2026-08-04T16:25:11Z","commit_sha":"19f488cd3cfbfcd3ba1abef543c4feaeee7bc6df","commit_message":"Merge pull request #186 from Jovinull/feat/match-init-metrotrk-bba\n\nfeat: match the MetroTRK BBA stub","measures":{"fuzzy_match_percent":5.1996694,"total_code":13039060,"matched_code":677988,"matched_code_percent":5.1996694,"total_data":7167714,"matched_data":60128,"matched_data_percent":0.8388728,"total_functions":39074,"matched_functions":3871,"matched_functions_percent":9.906843,"complete_code":677988,"complete_code_percent":5.1996694,"complete_data":63352,"complete_data_percent":0.88385224,"total_units":5599,"complete_units":1160}},{"timestamp":"2026-08-04T15:04:05Z","commit_sha":"11cd22c1bed46dad6bc7ea7c2f1f1a391bb220d5","commit_message":"Merge pull request #185 from Jovinull/feat/match-wide-format-core\n\nfix: match the wide formatter core","measures":{"fuzzy_match_percent":5.199639,"total_code":13039060,"matched_code":677984,"matched_code_percent":5.199639,"total_data":7167714,"matched_data":60128,"matched_data_percent":0.8388728,"total_functions":39074,"matched_functions":3870,"matched_functions_percent":9.9042845,"complete_code":677984,"complete_code_percent":5.199639,"complete_data":63352,"complete_data_percent":0.88385224,"total_units":5600,"complete_units":1160}},{"timestamp":"2026-08-04T11:46:57Z","commit_sha":"e34051d967ae5543f1d8106fd48a700b73e92911","commit_message":"Merge pull request #184 from cypressru/pr-stage13-o-s14-3way-colli-cpp","measures":{"fuzzy_match_percent":5.1988177,"total_code":13039060,"matched_code":673708,"matched_code_percent":5.166845,"total_data":7167714,"matched_data":59996,"matched_data_percent":0.8370312,"total_functions":39074,"matched_functions":3869,"matched_functions_percent":9.901725,"complete_code":673708,"complete_code_percent":5.166845,"complete_data":63004,"complete_data_percent":0.87899715,"total_units":5600,"complete_units":1159}},{"timestamp":"2026-08-03T18:23:34Z","commit_sha":"7a2a5ca1fef1647afb82ce8e385caa14a6cf4b0d","commit_message":"Merge pull request #175 from Jovinull/feat/wide-format-core-rework\n\nfix: rework the wide formatter core to pair with its target","measures":{"fuzzy_match_percent":4.5756445,"total_code":13039060,"matched_code":592452,"matched_code_percent":4.543671,"total_data":7167714,"matched_data":47056,"matched_data_percent":0.6564994,"total_functions":39074,"matched_functions":3438,"matched_functions_percent":8.79869,"complete_code":592452,"complete_code_percent":4.543671,"complete_data":49944,"complete_data_percent":0.6967912,"total_units":5555,"complete_units":1133}},{"timestamp":"2026-08-01T17:26:33Z","commit_sha":"9302abfedd08fee50e224f4cdea7d61758475115","commit_message":"Merge pull request #174 from Jovinull/feat/game-wide-format-core\n\nfeat: carve the wide formatter core","measures":{"fuzzy_match_percent":4.543671,"total_code":13039060,"matched_code":592452,"matched_code_percent":4.543671,"total_data":7167714,"matched_data":47048,"matched_data_percent":0.6563878,"total_functions":39074,"matched_functions":3438,"matched_functions_percent":8.79869,"complete_code":592452,"complete_code_percent":4.543671,"complete_data":49944,"complete_data_percent":0.6967912,"total_units":5555,"complete_units":1133}},{"timestamp":"2026-07-31T11:05:44Z","commit_sha":"15f2cf6f48126ccb4c5869a9ed483ba9bcdf86ae","commit_message":"Merge pull request #173 from Jovinull/feat/rel-shield-splinter-dtor\n\nfeat: match the shield splinter destructor","measures":{"fuzzy_match_percent":4.543671,"total_code":13039060,"matched_code":592452,"matched_code_percent":4.543671,"total_data":7167714,"matched_data":46840,"matched_data_percent":0.6534859,"total_functions":39074,"matched_functions":3438,"matched_functions_percent":8.79869,"complete_code":592452,"complete_code_percent":4.543671,"complete_data":49944,"complete_data_percent":0.6967912,"total_units":5552,"complete_units":1133}},{"timestamp":"2026-07-31T01:37:19Z","commit_sha":"826a2b1e1e1e6ba168df0d2dd501ef158f913867","commit_message":"Merge pull request #172 from Jovinull/feat/game-camera-slot-update\n\nfeat: match the camera slot update","measures":{"fuzzy_match_percent":4.5356646,"total_code":13039060,"matched_code":591408,"matched_code_percent":4.535664,"total_data":7167714,"matched_data":46840,"matched_data_percent":0.6534859,"total_functions":39074,"matched_functions":3429,"matched_functions_percent":8.775657,"complete_code":591408,"complete_code_percent":4.535664,"complete_data":49944,"complete_data_percent":0.6967912,"total_units":5534,"complete_units":1124}},{"timestamp":"2026-07-31T01:10:01Z","commit_sha":"9c4fe1ceb910adbdb89879a8118aee28650d9a01","commit_message":"Merge pull request #171 from Jovinull/feat/game-camera-slot-create\n\nfeat: match the camera slot allocator","measures":{"fuzzy_match_percent":4.5261545,"total_code":13039060,"matched_code":590168,"matched_code_percent":4.5261545,"total_data":7167714,"matched_data":46780,"matched_data_percent":0.6526488,"total_functions":39074,"matched_functions":3428,"matched_functions_percent":8.773097,"complete_code":590168,"complete_code_percent":4.5261545,"complete_data":49884,"complete_data_percent":0.69595414,"total_units":5535,"complete_units":1123}},{"timestamp":"2026-07-31T00:35:44Z","commit_sha":"964c484b5ae8cfb6a2cb2aa22b8f88045e3d3f0f","commit_message":"Merge pull request #170 from Jovinull/feat/game-wide-format-write\n\nfeat: match the wide formatter's buffer entry and write callback","measures":{"fuzzy_match_percent":4.523547,"total_code":13039060,"matched_code":589828,"matched_code_percent":4.523547,"total_data":7167718,"matched_data":46756,"matched_data_percent":0.6523136,"total_functions":39074,"matched_functions":3427,"matched_functions_percent":8.770538,"complete_code":589828,"complete_code_percent":4.523547,"complete_data":49860,"complete_data_percent":0.69561887,"total_units":5535,"complete_units":1122}},{"timestamp":"2026-07-31T00:22:37Z","commit_sha":"8411faea52072c9508b1102af3fc446f0e402113","commit_message":"Merge pull request #169 from Jovinull/fix/windows-local-build\n\nfix: unblock the local Windows build","measures":{"fuzzy_match_percent":4.522013,"total_code":13039060,"matched_code":589628,"matched_code_percent":4.5220127,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3425,"matched_functions_percent":8.76542,"complete_code":589628,"complete_code_percent":4.5220127,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5536,"complete_units":1121}},{"timestamp":"2026-07-30T23:50:26Z","commit_sha":"ea2a246f68c31caf1a0a58ad38f1c5c3c94adda0","commit_message":"Merge pull request #168 from Jovinull/ci/private-build-auto-env\n\nci: run the private build on main without a second review","measures":{"fuzzy_match_percent":4.522013,"total_code":13039060,"matched_code":589628,"matched_code_percent":4.5220127,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3425,"matched_functions_percent":8.76542,"complete_code":589628,"complete_code_percent":4.5220127,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5536,"complete_units":1121}},{"timestamp":"2026-07-30T23:32:48Z","commit_sha":"241c013a33f36806780cc1bac7aebd970bc699df","commit_message":"Merge pull request #167 from Jovinull/ci/revert-private-build-gate\n\nRevert \"ci: gate the private build on pull requests only\"","measures":{"fuzzy_match_percent":4.522013,"total_code":13039060,"matched_code":589628,"matched_code_percent":4.5220127,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3425,"matched_functions_percent":8.76542,"complete_code":589628,"complete_code_percent":4.5220127,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5536,"complete_units":1121}},{"timestamp":"2026-07-30T21:26:47Z","commit_sha":"619cb785726114deeb1cef15fdb5fc1f387589ad","commit_message":"Merge pull request #165 from Jovinull/feat/rel-invoke-collision-dtor\n\nfeat: match the invoke collision destructor","measures":{"fuzzy_match_percent":4.522013,"total_code":13039060,"matched_code":589628,"matched_code_percent":4.5220127,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3425,"matched_functions_percent":8.76542,"complete_code":589628,"complete_code_percent":4.5220127,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5536,"complete_units":1121}},{"timestamp":"2026-07-30T20:55:17Z","commit_sha":"0ea898e210b2061868efa4c0883db22a430e1cb9","commit_message":"Merge pull request #164 from Jovinull/feat/rel-dashpanel-dtor\n\nfeat: match the dash panel destructor","measures":{"fuzzy_match_percent":4.5062757,"total_code":13039060,"matched_code":587576,"matched_code_percent":4.5062757,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3416,"matched_functions_percent":8.742386,"complete_code":587576,"complete_code_percent":4.5062757,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5518,"complete_units":1112}},{"timestamp":"2026-07-30T20:23:46Z","commit_sha":"bfedc78ca02caf8ad054e2bf846bb93778c6370a","commit_message":"Merge pull request #163 from Jovinull/feat/rel-switch-guard\n\nfeat: match the switch draw step","measures":{"fuzzy_match_percent":4.4851394,"total_code":13039060,"matched_code":584820,"matched_code_percent":4.4851394,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3403,"matched_functions_percent":8.709116,"complete_code":584820,"complete_code_percent":4.4851394,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5505,"complete_units":1099}},{"timestamp":"2026-07-30T17:01:02Z","commit_sha":"7b93fa680e8804f025d69dc7758fade332df2cd0","commit_message":"Merge pull request #162 from Jovinull/feat/rel-set-collision-dtor\n\nfeat: match the set collision destructor","measures":{"fuzzy_match_percent":4.472378,"total_code":13039060,"matched_code":583156,"matched_code_percent":4.4723773,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3390,"matched_functions_percent":8.675846,"complete_code":583156,"complete_code_percent":4.4723773,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5492,"complete_units":1086}},{"timestamp":"2026-07-30T15:03:45Z","commit_sha":"14ce1b5ccd1e119e1da79716ed8cb4cd88ac44a3","commit_message":"Merge pull request #161 from Jovinull/feat/rel-scroll-ring-touch\n\nfeat: match the scroll ring collect hook","measures":{"fuzzy_match_percent":4.4524374,"total_code":13039060,"matched_code":580556,"matched_code_percent":4.4524374,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3377,"matched_functions_percent":8.642576,"complete_code":580556,"complete_code_percent":4.4524374,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5479,"complete_units":1073}},{"timestamp":"2026-07-30T14:25:32Z","commit_sha":"98442475edf84997e263099bdf2ff3bf5351f27e","commit_message":"Merge pull request #160 from Jovinull/feat/rel-scroll-ring-step\n\nfeat: match the scroll ring step hook","measures":{"fuzzy_match_percent":4.4157476,"total_code":13039060,"matched_code":575772,"matched_code_percent":4.415748,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3364,"matched_functions_percent":8.609305,"complete_code":575772,"complete_code_percent":4.415748,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5479,"complete_units":1060}},{"timestamp":"2026-07-30T13:55:28Z","commit_sha":"07b736f3f071e4c2a5ff35c9cfccdef11f2c1a94","commit_message":"Merge pull request #159 from Jovinull/feat/rel-switch-asset-hooks\n\nfeat: match the switch asset hooks","measures":{"fuzzy_match_percent":4.403784,"total_code":13039060,"matched_code":574212,"matched_code_percent":4.403784,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3351,"matched_functions_percent":8.5760355,"complete_code":574212,"complete_code_percent":4.403784,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5466,"complete_units":1047}},{"timestamp":"2026-07-30T11:29:56Z","commit_sha":"7e597105616ed6f6ab6a335240e4516aaefb2655","commit_message":"Merge pull request #158 from Jovinull/ci/codeowners-scope\n\nci: narrow code ownership to the CI execution surface","measures":{"fuzzy_match_percent":4.3523383,"total_code":13039060,"matched_code":567504,"matched_code_percent":4.3523383,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3325,"matched_functions_percent":8.509495,"complete_code":567504,"complete_code_percent":4.3523383,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5453,"complete_units":1021}},{"timestamp":"2026-07-30T11:27:09Z","commit_sha":"55e7fd95f3bb3dd941cf2cae81511f49d00d2d5a","commit_message":"Merge pull request #157 from Jovinull/integration/pr-155-156\n\nintegration: validate and merge the movie task and texture loader","measures":{"fuzzy_match_percent":4.3523383,"total_code":13039060,"matched_code":567504,"matched_code_percent":4.3523383,"total_data":7167718,"matched_data":46716,"matched_data_percent":0.6517556,"total_functions":39074,"matched_functions":3325,"matched_functions_percent":8.509495,"complete_code":567504,"complete_code_percent":4.3523383,"complete_data":49820,"complete_data_percent":0.69506085,"total_units":5453,"complete_units":1021}},{"timestamp":"2026-07-29T19:51:47Z","commit_sha":"fbb21d150a548c4072d4be3ce35cf6fdbd8159a4","commit_message":"Merge pull request #138 from Jovinull/ci/secure-private-build-collaboration\n\nci: protect private build credentials","measures":{"fuzzy_match_percent":4.3477674,"total_code":13039060,"matched_code":566908,"matched_code_percent":4.3477674,"total_data":7167722,"matched_data":46540,"matched_data_percent":0.64929974,"total_functions":39074,"matched_functions":3320,"matched_functions_percent":8.496698,"complete_code":566908,"complete_code_percent":4.3477674,"complete_data":49644,"complete_data_percent":0.692605,"total_units":5457,"complete_units":1019}},{"timestamp":"2026-07-29T18:39:18Z","commit_sha":"3c988a7e1238b379d7475aa29af2206331003f0f","commit_message":"Merge pull request #154 from Jovinull/integration/pr-batch-146-153\n\nintegration: validate and merge the C++ reconstruction batch 146-153","measures":{"fuzzy_match_percent":4.3477674,"total_code":13039060,"matched_code":566908,"matched_code_percent":4.3477674,"total_data":7167722,"matched_data":46540,"matched_data_percent":0.64929974,"total_functions":39074,"matched_functions":3320,"matched_functions_percent":8.496698,"complete_code":566908,"complete_code_percent":4.3477674,"complete_data":49644,"complete_data_percent":0.692605,"total_units":5457,"complete_units":1019}},{"timestamp":"2026-07-29T17:21:58Z","commit_sha":"60a334c304083b0f9d817df1e10a9e538d90b463","commit_message":"Merge pull request #147 from Jovinull/integration/cpp-prs-123-144\n\nintegration: validate and merge the C++ reconstruction batch","measures":{"fuzzy_match_percent":4.2881527,"total_code":13039060,"matched_code":558164,"matched_code_percent":4.2807074,"total_data":7167722,"matched_data":41120,"matched_data_percent":0.57368296,"total_functions":39074,"matched_functions":3286,"matched_functions_percent":8.409684,"complete_code":556696,"complete_code_percent":4.269449,"complete_data":44224,"complete_data_percent":0.61698824,"total_units":5470,"complete_units":1012}},{"timestamp":"2026-07-28T19:30:23Z","commit_sha":"511b383399c3902f68a3e0417f47504c1da6e108","commit_message":"Merge pull request #122 from Jovinull/docs/remove-tracked-notes\n\ndocs: stop tracking local notes","measures":{"fuzzy_match_percent":3.3005877,"total_code":13039060,"matched_code":428192,"matched_code_percent":3.2839174,"total_data":7167748,"matched_data":29986,"matched_data_percent":0.4183462,"total_functions":39075,"matched_functions":2726,"matched_functions_percent":6.9763274,"complete_code":426328,"complete_code_percent":3.269622,"complete_data":33074,"complete_data_percent":0.46142805,"total_units":5566,"complete_units":1000}},{"timestamp":"2026-07-28T19:18:40Z","commit_sha":"20f4f79dfabcc6fa81aee85578d7f29b4bfb46ce","commit_message":"Merge pull request #121 from Jovinull/docs/ps2-evidence-hardening\n\ndocs/ci: harden PS2 evidence and private builds","measures":{"fuzzy_match_percent":3.3005877,"total_code":13039060,"matched_code":428192,"matched_code_percent":3.2839174,"total_data":7167748,"matched_data":29986,"matched_data_percent":0.4183462,"total_functions":39075,"matched_functions":2726,"matched_functions_percent":6.9763274,"complete_code":426328,"complete_code_percent":3.269622,"complete_data":33074,"complete_data_percent":0.46142805,"total_units":5566,"complete_units":1000}},{"timestamp":"2026-07-28T18:14:57Z","commit_sha":"da43baf7f5bb3914efcd928fddfd647c1cd5f87b","commit_message":"Merge pull request #120 from Jovinull/docs/advertised-autosaved-integration-runbook\n\ndocs: add advertiseD and autosaveD integration runbook","measures":{"fuzzy_match_percent":3.3005877,"total_code":13039060,"matched_code":428192,"matched_code_percent":3.2839174,"total_data":7167748,"matched_data":29986,"matched_data_percent":0.4183462,"total_functions":39075,"matched_functions":2726,"matched_functions_percent":6.9763274,"complete_code":426328,"complete_code_percent":3.269622,"complete_data":33074,"complete_data_percent":0.46142805,"total_units":5566,"complete_units":1000}},{"timestamp":"2026-07-28T17:44:47Z","commit_sha":"ceb38e17683294d5de814460cbdfa6ef1ce1c7bb","commit_message":"Merge pull request #119 from Jovinull/audit/cpp-language-migration\n\nrefactor: enforce source language policy (phase 1)","measures":{"fuzzy_match_percent":3.3005877,"total_code":13039060,"matched_code":428192,"matched_code_percent":3.2839174,"total_data":7167748,"matched_data":29986,"matched_data_percent":0.4183462,"total_functions":39075,"matched_functions":2726,"matched_functions_percent":6.9763274,"complete_code":426328,"complete_code_percent":3.269622,"complete_data":33074,"complete_data_percent":0.46142805,"total_units":5566,"complete_units":1000}},{"timestamp":"2026-07-27T22:43:32Z","commit_sha":"0602d41b3ad353b78e2c8271d21ba79051e6d732","commit_message":"Merge pull request #118 from Vitorxd12/feat/match-dvd-status-state-tus\n\nfeat: match state_set, state_accessor, and dvd_status","measures":{"fuzzy_match_percent":3.3005877,"total_code":13039060,"matched_code":428192,"matched_code_percent":3.2839174,"total_data":7167748,"matched_data":29986,"matched_data_percent":0.4183462,"total_functions":39075,"matched_functions":2726,"matched_functions_percent":6.9763274,"complete_code":426328,"complete_code_percent":3.269622,"complete_data":33074,"complete_data_percent":0.46142805,"total_units":5566,"complete_units":1000}},{"timestamp":"2026-07-27T15:01:42Z","commit_sha":"091610cb9dd6f4627ead160b19a8524b96771b6b","commit_message":"feat: match TObj3Spring's asset loader","measures":{"fuzzy_match_percent":3.2983174,"total_code":13039060,"matched_code":427896,"matched_code_percent":3.2816477,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2719,"matched_functions_percent":6.958413,"complete_code":426032,"complete_code_percent":3.2673519,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5564,"complete_units":997}},{"timestamp":"2026-07-27T14:31:14Z","commit_sha":"db789c1bc0fded2de6a5dfcee7ee9363552aaec8","commit_message":"feat: match TObj3Spring's unload hook","measures":{"fuzzy_match_percent":3.2548482,"total_code":13039060,"matched_code":422228,"matched_code_percent":3.238178,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2706,"matched_functions_percent":6.925144,"complete_code":420364,"complete_code_percent":3.2238827,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5564,"complete_units":984}},{"timestamp":"2026-07-27T14:06:32Z","commit_sha":"47d86cd9ab30097478f996d5368e6874d0b85822","commit_message":"feat: match the advertise demo object","measures":{"fuzzy_match_percent":3.2468722,"total_code":13039060,"matched_code":421188,"matched_code_percent":3.2302022,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2693,"matched_functions_percent":6.891875,"complete_code":419324,"complete_code_percent":3.2159069,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5551,"complete_units":971}},{"timestamp":"2026-07-27T14:00:12Z","commit_sha":"5457e607f352bf1027ff850b71362173b68ec3f3","commit_message":"feat: match TObjSpring's constructor","measures":{"fuzzy_match_percent":3.246869,"total_code":13039060,"matched_code":421040,"matched_code_percent":3.229067,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2692,"matched_functions_percent":6.8893156,"complete_code":418940,"complete_code_percent":3.2129617,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5551,"complete_units":970}},{"timestamp":"2026-07-27T13:29:02Z","commit_sha":"7e2d8524ea35e48f8cd082e3eb0ebe36ffac06dd","commit_message":"feat: carve TObjSpring's constructor, not yet matching","measures":{"fuzzy_match_percent":3.2467773,"total_code":13039060,"matched_code":415060,"matched_code_percent":3.1832051,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2679,"matched_functions_percent":6.8560457,"complete_code":412960,"complete_code_percent":3.1670995,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5551,"complete_units":957}},{"timestamp":"2026-07-27T12:41:39Z","commit_sha":"8b49c6db416a196fb095a35e2dce6c89e58da6ce","commit_message":"feat: match the three remaining shared system object classes","measures":{"fuzzy_match_percent":3.201007,"total_code":13039060,"matched_code":415060,"matched_code_percent":3.1832051,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2679,"matched_functions_percent":6.8560457,"complete_code":412960,"complete_code_percent":3.1670995,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5551,"complete_units":957}},{"timestamp":"2026-07-27T12:23:59Z","commit_sha":"a40fa43821d2109e11efc747f3e810e4c371cc58","commit_message":"style: reformat five shared stage sources","measures":{"fuzzy_match_percent":3.1005087,"total_code":13039060,"matched_code":401956,"matched_code_percent":3.082707,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2427,"matched_functions_percent":6.2111325,"complete_code":399856,"complete_code_percent":3.0666015,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5506,"complete_units":921}},{"timestamp":"2026-07-27T00:34:18Z","commit_sha":"e4d6579d5894ab72a666b99a8632686292a90fb0","commit_message":"feat: match two shared stage object hooks","measures":{"fuzzy_match_percent":3.1005087,"total_code":13039060,"matched_code":401956,"matched_code_percent":3.082707,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2427,"matched_functions_percent":6.2111325,"complete_code":399856,"complete_code_percent":3.0666015,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5506,"complete_units":921}},{"timestamp":"2026-07-26T22:16:55Z","commit_sha":"427107f2cda35525635eb2fce3b0537ff26ccfec","commit_message":"feat: match the shared dash panel register no-op","measures":{"fuzzy_match_percent":3.088146,"total_code":13039060,"matched_code":400344,"matched_code_percent":3.070344,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2401,"matched_functions_percent":6.1445937,"complete_code":398244,"complete_code_percent":3.0542386,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5454,"complete_units":895}},{"timestamp":"2026-07-26T21:25:11Z","commit_sha":"5aff2b8e8c8414f227849e2f8ab3d7d0009a6c51","commit_message":"feat: match the shared set collision register no-op","measures":{"fuzzy_match_percent":3.087747,"total_code":13039060,"matched_code":400292,"matched_code_percent":3.0699453,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2388,"matched_functions_percent":6.1113243,"complete_code":398192,"complete_code_percent":3.0538397,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5428,"complete_units":882}},{"timestamp":"2026-07-26T20:41:47Z","commit_sha":"a7206ba848e24372254f57e13c0de7ed01ca3e86","commit_message":"feat: match the shared switch transform","measures":{"fuzzy_match_percent":3.0869496,"total_code":13039060,"matched_code":400188,"matched_code_percent":3.0691476,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2362,"matched_functions_percent":6.0447855,"complete_code":398088,"complete_code_percent":3.0530422,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5376,"complete_units":856}},{"timestamp":"2026-07-26T20:29:54Z","commit_sha":"0365885350eb35512248236de1ee16266489635e","commit_message":"feat: match the shared switch destructor","measures":{"fuzzy_match_percent":3.0446765,"total_code":13039060,"matched_code":394676,"matched_code_percent":3.0268745,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2349,"matched_functions_percent":6.011516,"complete_code":392576,"complete_code_percent":3.0107691,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5376,"complete_units":843}},{"timestamp":"2026-07-26T19:48:50Z","commit_sha":"25d209465aa467b3a35e4ed76396994a2506b2f5","commit_message":"feat: match the shared switch nearby trigger","measures":{"fuzzy_match_percent":3.023939,"total_code":13039060,"matched_code":391972,"matched_code_percent":3.006137,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2336,"matched_functions_percent":5.9782467,"complete_code":389872,"complete_code_percent":2.9900315,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5350,"complete_units":830}},{"timestamp":"2026-07-26T19:16:05Z","commit_sha":"13f360cf8e06f761188305bb23cf6c21a6849021","commit_message":"feat: match the shared switch no-op hook","measures":{"fuzzy_match_percent":3.001606,"total_code":13039060,"matched_code":389060,"matched_code_percent":2.983804,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2323,"matched_functions_percent":5.9449778,"complete_code":386960,"complete_code_percent":2.9676986,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5337,"complete_units":817}},{"timestamp":"2026-07-26T18:55:43Z","commit_sha":"de0e1575c1515d06e6d7b3a4a6e363040202d55f","commit_message":"feat: match the shared switch direction helper","measures":{"fuzzy_match_percent":3.001207,"total_code":13039060,"matched_code":389008,"matched_code_percent":2.9834054,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2310,"matched_functions_percent":5.9117084,"complete_code":386908,"complete_code_percent":2.9672997,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5337,"complete_units":817}},{"timestamp":"2026-07-26T18:39:59Z","commit_sha":"6b9e071b436d6dbdf952e8681bffbc23f1d98fba","commit_message":"feat: match the shared stage switch state machine","measures":{"fuzzy_match_percent":2.975684,"total_code":13039060,"matched_code":385680,"matched_code_percent":2.957882,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2297,"matched_functions_percent":5.878439,"complete_code":383580,"complete_code_percent":2.9417765,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5324,"complete_units":804}},{"timestamp":"2026-07-26T18:21:23Z","commit_sha":"b9992a5a81d001492858a08478d2e64e494a0c43","commit_message":"feat: match the shared stage box trigger","measures":{"fuzzy_match_percent":2.751956,"total_code":13039060,"matched_code":356508,"matched_code_percent":2.734154,"total_data":7167748,"matched_data":29858,"matched_data_percent":0.4165604,"total_functions":39075,"matched_functions":2245,"matched_functions_percent":5.7453613,"complete_code":354408,"complete_code_percent":2.7180488,"complete_data":32946,"complete_data_percent":0.4596423,"total_units":5298,"complete_units":778}},{"timestamp":"2026-07-26T18:09:10Z","commit_sha":"c746489d9738b20cc1e3b308176c5e20a0f445db","commit_message":"feat: match the shared stage base display stubs","measures":{"fuzzy_match_percent":2.6626244,"total_code":13039060,"matched_code":344860,"matched_code_percent":2.6448226,"total_data":7167748,"matched_data":29494,"matched_data_percent":0.4114821,"total_functions":39075,"matched_functions":2232,"matched_functions_percent":5.7120924,"complete_code":342760,"complete_code_percent":2.628717,"complete_data":32582,"complete_data_percent":0.45456398,"total_units":5246,"complete_units":765}},{"timestamp":"2026-07-26T18:04:03Z","commit_sha":"06c595446608d35df87c7af9455aa4ee16f2e2c8","commit_message":"feat: match four shared stage object helpers","measures":{"fuzzy_match_percent":2.6606305,"total_code":13039060,"matched_code":344600,"matched_code_percent":2.6428287,"total_data":7167748,"matched_data":29494,"matched_data_percent":0.4114821,"total_functions":39075,"matched_functions":2167,"matched_functions_percent":5.5457454,"complete_code":342500,"complete_code_percent":2.626723,"complete_data":32582,"complete_data_percent":0.45456398,"total_units":5233,"complete_units":752}},{"timestamp":"2026-07-26T17:53:35Z","commit_sha":"7c0d4efc57e55899420ad8c422daa8122b03bd66","commit_message":"feat: match the last four shared stage class registrations","measures":{"fuzzy_match_percent":2.6179585,"total_code":13039060,"matched_code":339036,"matched_code_percent":2.6001568,"total_data":7167748,"matched_data":29494,"matched_data_percent":0.4114821,"total_functions":39075,"matched_functions":2102,"matched_functions_percent":5.3793983,"complete_code":336936,"complete_code_percent":2.5840514,"complete_data":32582,"complete_data_percent":0.45456398,"total_units":5129,"complete_units":700}},{"timestamp":"2026-07-26T17:47:38Z","commit_sha":"ffad94268da0f58ea615cc1086c871319814186b","commit_message":"feat: match the cannon and system object registrations","measures":{"fuzzy_match_percent":2.5740597,"total_code":13039060,"matched_code":333312,"matched_code_percent":2.556258,"total_data":7167748,"matched_data":29350,"matched_data_percent":0.40947312,"total_functions":39075,"matched_functions":2066,"matched_functions_percent":5.287268,"complete_code":331212,"complete_code_percent":2.5401525,"complete_data":32438,"complete_data_percent":0.45255497,"total_units":5129,"complete_units":664}},{"timestamp":"2026-07-26T17:39:47Z","commit_sha":"6fa12285bd0ca8227f8bf74ea84140c9dc860545","commit_message":"feat: match the shared stage sample class registrations","measures":{"fuzzy_match_percent":2.512583,"total_code":13039060,"matched_code":325296,"matched_code_percent":2.494781,"total_data":7167748,"matched_data":29158,"matched_data_percent":0.40679443,"total_functions":39075,"matched_functions":2018,"matched_functions_percent":5.1644273,"complete_code":323196,"complete_code_percent":2.4786756,"complete_data":32246,"complete_data_percent":0.4498763,"total_units":5129,"complete_units":616}},{"timestamp":"2026-07-26T17:32:25Z","commit_sha":"c095b668ef790ee069b153c5d7fac0c6372692db","commit_message":"feat: match ten more shared stage class registrations","measures":{"fuzzy_match_percent":2.4810777,"total_code":13039060,"matched_code":321188,"matched_code_percent":2.4632757,"total_data":7167748,"matched_data":29054,"matched_data_percent":0.40534347,"total_functions":39075,"matched_functions":1992,"matched_functions_percent":5.097889,"complete_code":319088,"complete_code_percent":2.4471703,"complete_data":32142,"complete_data_percent":0.44842535,"total_units":5129,"complete_units":590}},{"timestamp":"2026-07-26T17:22:38Z","commit_sha":"90e610d0779d9615ac9217f4a2ab955eb972ad63","commit_message":"feat: match six more shared stage class registrations","measures":{"fuzzy_match_percent":2.3329074,"total_code":13039060,"matched_code":301868,"matched_code_percent":2.3151054,"total_data":7167748,"matched_data":28594,"matched_data_percent":0.39892587,"total_functions":39075,"matched_functions":1877,"matched_functions_percent":4.803583,"complete_code":299768,"complete_code_percent":2.299,"complete_data":31682,"complete_data_percent":0.44200775,"total_units":5129,"complete_units":475}},{"timestamp":"2026-07-26T17:10:43Z","commit_sha":"9bb464564bc512745124ea5d0cdc20df1fe190d7","commit_message":"feat: match seven more shared stage class registrations","measures":{"fuzzy_match_percent":2.2335138,"total_code":13039060,"matched_code":288908,"matched_code_percent":2.215712,"total_data":7167748,"matched_data":28378,"matched_data_percent":0.39591235,"total_functions":39075,"matched_functions":1769,"matched_functions_percent":4.5271916,"complete_code":286808,"complete_code_percent":2.1996064,"complete_data":31466,"complete_data_percent":0.43899423,"total_units":5129,"complete_units":421}},{"timestamp":"2026-07-26T17:00:23Z","commit_sha":"aa33b7b3a674e42c09c9d1fc25f7c2124706258d","commit_message":"feat: match the shared stage tri spring assets","measures":{"fuzzy_match_percent":2.0789013,"total_code":13039060,"matched_code":268748,"matched_code_percent":2.0610995,"total_data":7167748,"matched_data":28042,"matched_data_percent":0.39122468,"total_functions":39075,"matched_functions":1601,"matched_functions_percent":4.097249,"complete_code":266648,"complete_code_percent":2.044994,"complete_data":31130,"complete_data_percent":0.43430653,"total_units":5129,"complete_units":337}},{"timestamp":"2026-07-26T16:56:41Z","commit_sha":"19770de37ece8477c5aeb97e347d454268db847f","commit_message":"feat: match the shared stage dashpanel assets and registration","measures":{"fuzzy_match_percent":2.0545745,"total_code":13039060,"matched_code":265576,"matched_code_percent":2.0367727,"total_data":7167748,"matched_data":27990,"matched_data_percent":0.39049923,"total_functions":39075,"matched_functions":1575,"matched_functions_percent":4.03071,"complete_code":263476,"complete_code_percent":2.020667,"complete_data":31078,"complete_data_percent":0.43358108,"total_units":5129,"complete_units":324}},{"timestamp":"2026-07-26T14:54:14Z","commit_sha":"3de87cda7391605d61485afbb6aa6fffc609ee08","commit_message":"feat: match the shared stage switch factory and registration","measures":{"fuzzy_match_percent":2.0142956,"total_code":13039060,"matched_code":260324,"matched_code_percent":1.9964936,"total_data":7167748,"matched_data":27938,"matched_data_percent":0.38977376,"total_functions":39075,"matched_functions":1536,"matched_functions_percent":3.930902,"complete_code":258224,"complete_code_percent":1.9803882,"complete_data":31026,"complete_data_percent":0.43285564,"total_units":5129,"complete_units":311}},{"timestamp":"2026-07-26T14:50:17Z","commit_sha":"a65d6566eca2d43e804eb473a65530e8c271dd21","commit_message":"feat: match the shared stage collision registration","measures":{"fuzzy_match_percent":1.9895698,"total_code":13039060,"matched_code":257100,"matched_code_percent":1.9717679,"total_data":7167748,"matched_data":27886,"matched_data_percent":0.38904828,"total_functions":39075,"matched_functions":1510,"matched_functions_percent":3.8643637,"complete_code":255000,"complete_code_percent":1.9556625,"complete_data":30974,"complete_data_percent":0.43213013,"total_units":5129,"complete_units":298}},{"timestamp":"2026-07-26T14:44:23Z","commit_sha":"6289d88c5b131132c3fca528725337c3361c5853","commit_message":"feat: match the shared stage spring registration","measures":{"fuzzy_match_percent":1.9728202,"total_code":13039060,"matched_code":254916,"matched_code_percent":1.9550182,"total_data":7167748,"matched_data":27834,"matched_data_percent":0.3883228,"total_functions":39075,"matched_functions":1497,"matched_functions_percent":3.831094,"complete_code":252816,"complete_code_percent":1.9389129,"complete_data":30922,"complete_data_percent":0.43140468,"total_units":5142,"complete_units":298}},{"timestamp":"2026-07-26T14:37:37Z","commit_sha":"b8bd4c456fd6f2d0a13fd5db086915d7e8bb213e","commit_message":"feat: match the shared stage switch and collision hooks","measures":{"fuzzy_match_percent":1.9560704,"total_code":13039060,"matched_code":252732,"matched_code_percent":1.9382685,"total_data":7167748,"matched_data":27782,"matched_data_percent":0.38759735,"total_functions":39075,"matched_functions":1484,"matched_functions_percent":3.7978246,"complete_code":250632,"complete_code_percent":1.9221631,"complete_data":30870,"complete_data_percent":0.43067917,"total_units":5155,"complete_units":298}},{"timestamp":"2026-07-26T14:30:24Z","commit_sha":"3c94ee2f63b51534d7b31af70534c3f080bd9a66","commit_message":"feat: match the shared stage spring destructor and transform pair","measures":{"fuzzy_match_percent":1.94291,"total_code":13039060,"matched_code":251016,"matched_code_percent":1.9251081,"total_data":7167748,"matched_data":27782,"matched_data_percent":0.38759735,"total_functions":39075,"matched_functions":1432,"matched_functions_percent":3.6647472,"complete_code":248916,"complete_code_percent":1.9090027,"complete_data":30870,"complete_data_percent":0.43067917,"total_units":5168,"complete_units":298}},{"timestamp":"2026-07-26T14:20:37Z","commit_sha":"4b0f3b2fc4fa15b28865dd39f45a2cb4499921a3","commit_message":"feat: match the shared stage object mode setter","measures":{"fuzzy_match_percent":1.904625,"total_code":13039060,"matched_code":246024,"matched_code_percent":1.8868232,"total_data":7167748,"matched_data":27782,"matched_data_percent":0.38759735,"total_functions":39075,"matched_functions":1393,"matched_functions_percent":3.5649393,"complete_code":243924,"complete_code_percent":1.8707176,"complete_data":30870,"complete_data_percent":0.43067917,"total_units":5116,"complete_units":272}},{"timestamp":"2026-07-26T14:06:47Z","commit_sha":"598a4a4630d32c86f9dad1a0f8c6613850a5f820","commit_message":"feat: match the shared stage dashpanel clamp","measures":{"fuzzy_match_percent":1.8874766,"total_code":13039060,"matched_code":243788,"matched_code_percent":1.8696746,"total_data":7167748,"matched_data":27782,"matched_data_percent":0.38759735,"total_functions":39075,"matched_functions":1380,"matched_functions_percent":3.5316699,"complete_code":241688,"complete_code_percent":1.8535693,"complete_data":30870,"complete_data_percent":0.43067917,"total_units":5090,"complete_units":259}},{"timestamp":"2026-07-26T13:51:57Z","commit_sha":"36b11c0d00d03ff214edff5c8eb84d6543f117b8","commit_message":"feat: match the shared stage set collision clamp","measures":{"fuzzy_match_percent":1.8771077,"total_code":13039060,"matched_code":242436,"matched_code_percent":1.8593059,"total_data":7167748,"matched_data":27678,"matched_data_percent":0.3861464,"total_functions":39075,"matched_functions":1367,"matched_functions_percent":3.4984004,"complete_code":240336,"complete_code_percent":1.8432004,"complete_data":30766,"complete_data_percent":0.42922828,"total_units":5051,"complete_units":246}},{"timestamp":"2026-07-26T13:48:23Z","commit_sha":"41c006479222cca77f29e804ec3dbd14a0acfba3","commit_message":"feat: match the shared stage switch clamp","measures":{"fuzzy_match_percent":1.8475964,"total_code":13039060,"matched_code":238588,"matched_code_percent":1.8297944,"total_data":7167748,"matched_data":27574,"matched_data_percent":0.38469547,"total_functions":39075,"matched_functions":1354,"matched_functions_percent":3.4651313,"complete_code":236488,"complete_code_percent":1.8136891,"complete_data":30662,"complete_data_percent":0.42777732,"total_units":5012,"complete_units":233}},{"timestamp":"2026-07-26T13:38:51Z","commit_sha":"2584feddf38180a2c0fd4adbfe26b669428298a5","commit_message":"feat: match the shared stage spring assets and factory","measures":{"fuzzy_match_percent":1.8264599,"total_code":13039060,"matched_code":235832,"matched_code_percent":1.808658,"total_data":7167748,"matched_data":27574,"matched_data_percent":0.38469547,"total_functions":39075,"matched_functions":1341,"matched_functions_percent":3.4318619,"complete_code":233732,"complete_code_percent":1.7925525,"complete_data":30662,"complete_data_percent":0.42777732,"total_units":4986,"complete_units":220}},{"timestamp":"2026-07-26T13:32:56Z","commit_sha":"565a17bdfc509c54ed7547d1719ffe0a0449af1f","commit_message":"feat: match the shared stage spring display hooks","measures":{"fuzzy_match_percent":1.8073174,"total_code":13039060,"matched_code":233336,"matched_code_percent":1.7895155,"total_data":7167748,"matched_data":27574,"matched_data_percent":0.38469547,"total_functions":39075,"matched_functions":1302,"matched_functions_percent":3.332054,"complete_code":231236,"complete_code_percent":1.7734101,"complete_data":30662,"complete_data_percent":0.42777732,"total_units":4986,"complete_units":207}},{"timestamp":"2026-07-26T13:20:48Z","commit_sha":"0b7ae8b886aee1db18e87d9d52a5ee64dc5cf6a9","commit_message":"feat: match the shared stage spring launch","measures":{"fuzzy_match_percent":1.7901689,"total_code":13039060,"matched_code":231100,"matched_code_percent":1.772367,"total_data":7167748,"matched_data":27470,"matched_data_percent":0.3832445,"total_functions":39075,"matched_functions":1276,"matched_functions_percent":3.2655149,"complete_code":229000,"complete_code_percent":1.7562617,"complete_data":30558,"complete_data_percent":0.42632636,"total_units":4986,"complete_units":207}},{"timestamp":"2026-07-26T13:08:59Z","commit_sha":"954aa1313d26dc99f1620f13ef4e270ce3cd82aa","commit_message":"feat: match the shared stage spring clamp","measures":{"fuzzy_match_percent":1.7080158,"total_code":13039060,"matched_code":220388,"matched_code_percent":1.6902139,"total_data":7167748,"matched_data":25910,"matched_data_percent":0.36148033,"total_functions":39075,"matched_functions":1263,"matched_functions_percent":3.2322454,"complete_code":218288,"complete_code_percent":1.6741084,"complete_data":28998,"complete_data_percent":0.4045622,"total_units":4947,"complete_units":194}},{"timestamp":"2026-07-26T12:58:54Z","commit_sha":"ce27008756d7e925b7333c5c45ca9840af363f9f","commit_message":"feat: match the shared stage sample1 object","measures":{"fuzzy_match_percent":1.697647,"total_code":13039060,"matched_code":219036,"matched_code_percent":1.679845,"total_data":7167748,"matched_data":25806,"matched_data_percent":0.3600294,"total_functions":39075,"matched_functions":1250,"matched_functions_percent":3.1989765,"complete_code":216936,"complete_code_percent":1.6637396,"complete_data":28894,"complete_data_percent":0.40311128,"total_units":4908,"complete_units":181}},{"timestamp":"2026-07-26T12:36:15Z","commit_sha":"9c595e2f5a239e13fc5b5c7632c3b673d0c4bcb6","commit_message":"feat: match the shared stage sample2 object","measures":{"fuzzy_match_percent":1.6202794,"total_code":13039060,"matched_code":208948,"matched_code_percent":1.6024774,"total_data":7167748,"matched_data":25494,"matched_data_percent":0.35567656,"total_functions":39075,"matched_functions":1146,"matched_functions_percent":2.9328215,"complete_code":206848,"complete_code_percent":1.586372,"complete_data":28582,"complete_data_percent":0.3987584,"total_units":4894,"complete_units":168}},{"timestamp":"2026-07-26T03:22:49Z","commit_sha":"3b47ad5af74a2158f9ee539e2f29d775d2ce6a31","commit_message":"feat: match the advertiseD scene tick","measures":{"fuzzy_match_percent":1.572822,"total_code":13039060,"matched_code":202760,"matched_code_percent":1.5550201,"total_data":7167748,"matched_data":25494,"matched_data_percent":0.35567656,"total_functions":39075,"matched_functions":1094,"matched_functions_percent":2.7997441,"complete_code":200660,"complete_code_percent":1.5389147,"complete_data":28582,"complete_data_percent":0.3987584,"total_units":4868,"complete_units":155}},{"timestamp":"2026-07-26T03:18:03Z","commit_sha":"ca01db74c80f03fd59bddd1e5ac7d42246eac51b","commit_message":"feat: match the advertiseD marker spawn, carve the demo object","measures":{"fuzzy_match_percent":1.5703678,"total_code":13039060,"matched_code":202440,"matched_code_percent":1.5525658,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1092,"matched_functions_percent":2.7946258,"complete_code":200340,"complete_code_percent":1.5364604,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4865,"complete_units":154}},{"timestamp":"2026-07-26T03:11:00Z","commit_sha":"5eaf48f3b8afd889d0cc040e28fbab932ccae879","commit_message":"feat: match the advertiseD stage values and motion reset","measures":{"fuzzy_match_percent":1.5650331,"total_code":13039060,"matched_code":201892,"matched_code_percent":1.5483632,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1087,"matched_functions_percent":2.7818298,"complete_code":200028,"complete_code_percent":1.5340676,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4861,"complete_units":153}},{"timestamp":"2026-07-26T03:06:29Z","commit_sha":"11562b7b49fc668ae8658f5a5a520354ef900241","commit_message":"feat: match the advertiseD resource hooks and delayed trigger","measures":{"fuzzy_match_percent":1.5633765,"total_code":13039060,"matched_code":201676,"matched_code_percent":1.5467067,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1085,"matched_functions_percent":2.7767115,"complete_code":199812,"complete_code_percent":1.5324111,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4857,"complete_units":151}},{"timestamp":"2026-07-26T03:02:12Z","commit_sha":"023276623c2ffd9d5ac87ac73fdf064f54d5fe08","commit_message":"feat: match the advertiseD task runtime and timed object","measures":{"fuzzy_match_percent":1.5615972,"total_code":13039060,"matched_code":201444,"matched_code_percent":1.5449274,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1080,"matched_functions_percent":2.7639155,"complete_code":199580,"complete_code_percent":1.5306318,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4853,"complete_units":149}},{"timestamp":"2026-07-26T02:56:16Z","commit_sha":"0ae45d368285d1763c657ead27b47bcd00b6b209","commit_message":"feat: match the advertiseD select object","measures":{"fuzzy_match_percent":1.5563822,"total_code":13039060,"matched_code":200764,"matched_code_percent":1.5397122,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1069,"matched_functions_percent":2.7357645,"complete_code":198900,"complete_code_percent":1.5254167,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4849,"complete_units":147}},{"timestamp":"2026-07-26T02:50:32Z","commit_sha":"d489b76e080ba30d50b4d7d60bb9f9312a75cd97","commit_message":"feat: match the advertiseD fade object","measures":{"fuzzy_match_percent":1.5489583,"total_code":13039060,"matched_code":199796,"matched_code_percent":1.5322883,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1065,"matched_functions_percent":2.7255278,"complete_code":197932,"complete_code_percent":1.5179929,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4847,"complete_units":146}},{"timestamp":"2026-07-26T02:46:13Z","commit_sha":"0bd46afa27481f11e3fd0c136a2702d5f9c94ae5","commit_message":"feat: match the advertiseD attract object","measures":{"fuzzy_match_percent":1.5435898,"total_code":13039060,"matched_code":199096,"matched_code_percent":1.5269198,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1060,"matched_functions_percent":2.712732,"complete_code":197232,"complete_code_percent":1.5126244,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4846,"complete_units":145}},{"timestamp":"2026-07-26T02:40:04Z","commit_sha":"c53f7e0bf431ee0dc25c9b8ceb8e3045c482520e","commit_message":"feat: match the advertiseD emblem gate","measures":{"fuzzy_match_percent":1.5366875,"total_code":13039060,"matched_code":198196,"matched_code_percent":1.5200175,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1058,"matched_functions_percent":2.7076137,"complete_code":196332,"complete_code_percent":1.505722,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4846,"complete_units":144}},{"timestamp":"2026-07-26T02:35:03Z","commit_sha":"46a4167275d8cac309ccdc72c893af33c69e3156","commit_message":"feat: match the advertiseD panel setters and stubs","measures":{"fuzzy_match_percent":1.5349696,"total_code":13039060,"matched_code":197972,"matched_code_percent":1.5182996,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1057,"matched_functions_percent":2.7050543,"complete_code":196108,"complete_code_percent":1.5040041,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4845,"complete_units":143}},{"timestamp":"2026-07-26T02:29:27Z","commit_sha":"7652efb05a4b1ca30bd95e9dd6abe5d40c1a6f3a","commit_message":"feat: carve the advertiseD slot query","measures":{"fuzzy_match_percent":1.5329449,"total_code":13039060,"matched_code":197708,"matched_code_percent":1.5162749,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1051,"matched_functions_percent":2.6896992,"complete_code":195844,"complete_code_percent":1.5019794,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4843,"complete_units":141}},{"timestamp":"2026-07-26T02:13:47Z","commit_sha":"03257df4db2a75c155f4b0d7f2e00ef6a07f6a60","commit_message":"feat: match the advertiseD slot refresh","measures":{"fuzzy_match_percent":1.5206833,"total_code":13039060,"matched_code":197312,"matched_code_percent":1.5132378,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1050,"matched_functions_percent":2.6871402,"complete_code":195844,"complete_code_percent":1.5019794,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4843,"complete_units":141}},{"timestamp":"2026-07-26T02:07:47Z","commit_sha":"d075680136019de505b4ae4de18bf4357abe34fc","commit_message":"feat: match the advertiseD marker emitters and stage start","measures":{"fuzzy_match_percent":1.5166339,"total_code":13039060,"matched_code":196784,"matched_code_percent":1.5091885,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1048,"matched_functions_percent":2.6820219,"complete_code":195316,"complete_code_percent":1.49793,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4842,"complete_units":140}},{"timestamp":"2026-07-26T02:01:07Z","commit_sha":"5a194d0757dd7bf6a75bac4d2b679468673eb9d0","commit_message":"feat: match the advertiseD attract dispatch and quad submit","measures":{"fuzzy_match_percent":1.5125844,"total_code":13039060,"matched_code":196256,"matched_code_percent":1.5051392,"total_data":7167748,"matched_data":25434,"matched_data_percent":0.3548395,"total_functions":39075,"matched_functions":1046,"matched_functions_percent":2.6769035,"complete_code":194788,"complete_code_percent":1.4938807,"complete_data":28522,"complete_data_percent":0.39792135,"total_units":4839,"complete_units":138}},{"timestamp":"2026-07-26T01:54:51Z","commit_sha":"4ea5f0cd5273b50a18b030d4c31e1b465511837b","commit_message":"feat: match TAdvHelp and the advertiseD logo spawn","measures":{"fuzzy_match_percent":1.5086272,"total_code":13039060,"matched_code":195740,"matched_code_percent":1.5011818,"total_data":7167748,"matched_data":25382,"matched_data_percent":0.35411403,"total_functions":39075,"matched_functions":1043,"matched_functions_percent":2.669226,"complete_code":194272,"complete_code_percent":1.4899234,"complete_data":28470,"complete_data_percent":0.3971959,"total_units":4834,"complete_units":136}},{"timestamp":"2026-07-26T01:50:04Z","commit_sha":"806fdaff1f3102ff14c801b0b29a2aac10b7d989","commit_message":"feat: match the advertiseD panel callbacks and TAdvBar","measures":{"fuzzy_match_percent":1.5051913,"total_code":13039060,"matched_code":195292,"matched_code_percent":1.497746,"total_data":7167748,"matched_data":25382,"matched_data_percent":0.35411403,"total_functions":39075,"matched_functions":1036,"matched_functions_percent":2.6513116,"complete_code":193824,"complete_code_percent":1.4864875,"complete_data":28470,"complete_data_percent":0.3971959,"total_units":4831,"complete_units":134}},{"timestamp":"2026-07-26T01:43:01Z","commit_sha":"fe631d252b5caab043821832364c4077754c57b2","commit_message":"feat: match the advertiseD line count and resource pair","measures":{"fuzzy_match_percent":1.5010806,"total_code":13039060,"matched_code":194756,"matched_code_percent":1.4936353,"total_data":7167748,"matched_data":25382,"matched_data_percent":0.35411403,"total_functions":39075,"matched_functions":1028,"matched_functions_percent":2.6308382,"complete_code":193288,"complete_code_percent":1.4823768,"complete_data":28470,"complete_data_percent":0.3971959,"total_units":4827,"complete_units":132}},{"timestamp":"2026-07-26T01:38:00Z","commit_sha":"93d5dd21a797c299ddd32d9ebb2aea143aa9f572","commit_message":"feat: match the advertiseD fade steps","measures":{"fuzzy_match_percent":1.4991479,"total_code":13039060,"matched_code":194504,"matched_code_percent":1.4917027,"total_data":7167748,"matched_data":25382,"matched_data_percent":0.35411403,"total_functions":39075,"matched_functions":1022,"matched_functions_percent":2.615483,"complete_code":193036,"complete_code_percent":1.4804442,"complete_data":28470,"complete_data_percent":0.3971959,"total_units":4823,"complete_units":130}},{"timestamp":"2026-07-26T01:35:32Z","commit_sha":"a879a42832436bffacc722f85e9dc8aa0e4bcb3e","commit_message":"feat: match the advertiseD flat quad fill","measures":{"fuzzy_match_percent":1.4980129,"total_code":13039060,"matched_code":194356,"matched_code_percent":1.4905676,"total_data":7167748,"matched_data":25378,"matched_data_percent":0.3540582,"total_functions":39075,"matched_functions":1018,"matched_functions_percent":2.6052463,"complete_code":192888,"complete_code_percent":1.4793091,"complete_data":28466,"complete_data_percent":0.39714006,"total_units":4819,"complete_units":129}},{"timestamp":"2026-07-26T01:30:36Z","commit_sha":"2a7d0a826bc3e80c6d737557089d892dda4d4335","commit_message":"feat: match the advertiseD choice widgets","measures":{"fuzzy_match_percent":1.4912946,"total_code":13039060,"matched_code":193480,"matched_code_percent":1.4838493,"total_data":7167748,"matched_data":25370,"matched_data_percent":0.3539466,"total_functions":39075,"matched_functions":1015,"matched_functions_percent":2.5975688,"complete_code":192012,"complete_code_percent":1.4725908,"complete_data":28458,"complete_data_percent":0.39702845,"total_units":4816,"complete_units":128}},{"timestamp":"2026-07-26T01:23:49Z","commit_sha":"657f804abe5593e2cdf967432fd5b6cf4e72a3cc","commit_message":"Merge pull request #114 from cypressru/pr-mbstring\n\nfeat: match MSL multibyte strings","measures":{"fuzzy_match_percent":1.4836254,"total_code":13039060,"matched_code":192480,"matched_code_percent":1.47618,"total_data":7167748,"matched_data":25298,"matched_data_percent":0.3529421,"total_functions":39075,"matched_functions":1010,"matched_functions_percent":2.5847728,"complete_code":191012,"complete_code_percent":1.4649215,"complete_data":28386,"complete_data_percent":0.39602396,"total_units":4813,"complete_units":127}},{"timestamp":"2026-07-25T21:41:50Z","commit_sha":"237fcb2d8af9d7517132877b389f96abc8a9a366","commit_message":"feat: match the autosaveD emblem task","measures":{"fuzzy_match_percent":1.4768764,"total_code":13039060,"matched_code":191600,"matched_code_percent":1.469431,"total_data":7167748,"matched_data":25294,"matched_data_percent":0.3528863,"total_functions":39075,"matched_functions":1005,"matched_functions_percent":2.571977,"complete_code":190132,"complete_code_percent":1.4581726,"complete_data":28382,"complete_data_percent":0.3959682,"total_units":4811,"complete_units":126}},{"timestamp":"2026-07-25T20:51:47Z","commit_sha":"5a88945e17e8ede110c502c00a83ddead530bf8a","commit_message":"feat: match the advertiseD anim handle","measures":{"fuzzy_match_percent":1.4562614,"total_code":13039060,"matched_code":188912,"matched_code_percent":1.4488161,"total_data":7167748,"matched_data":25014,"matched_data_percent":0.34897992,"total_functions":39075,"matched_functions":996,"matched_functions_percent":2.5489445,"complete_code":187444,"complete_code_percent":1.4375576,"complete_data":28038,"complete_data_percent":0.3911689,"total_units":4810,"complete_units":125}},{"timestamp":"2026-07-25T20:33:43Z","commit_sha":"556bfea8552553df170bbab23d0e59882caef5ea","commit_message":"feat: carve the autosaveD widget slices","measures":{"fuzzy_match_percent":1.4548503,"total_code":13039060,"matched_code":188728,"matched_code_percent":1.4474049,"total_data":7167748,"matched_data":25006,"matched_data_percent":0.34886828,"total_functions":39075,"matched_functions":992,"matched_functions_percent":2.5387077,"complete_code":187260,"complete_code_percent":1.4361465,"complete_data":28030,"complete_data_percent":0.39105728,"total_units":4808,"complete_units":124}},{"timestamp":"2026-07-25T19:54:15Z","commit_sha":"32ae46bf4513fa7ec15e94cfb3ffa4254a43bd3d","commit_message":"feat: match the autosaveD flat quad fill","measures":{"fuzzy_match_percent":1.4361465,"total_code":13039060,"matched_code":187260,"matched_code_percent":1.4361465,"total_data":7167748,"matched_data":25006,"matched_data_percent":0.34886828,"total_functions":39075,"matched_functions":989,"matched_functions_percent":2.53103,"complete_code":187260,"complete_code_percent":1.4361465,"complete_data":28030,"complete_data_percent":0.39105728,"total_units":4808,"complete_units":124}},{"timestamp":"2026-07-25T19:47:31Z","commit_sha":"c0638a3b1e53ba9351a37e653c165e175dae2ab3","commit_message":"feat: match CRI SFX module init","measures":{"fuzzy_match_percent":1.4328947,"total_code":13039060,"matched_code":186836,"matched_code_percent":1.4328947,"total_data":7167748,"matched_data":24998,"matched_data_percent":0.34875667,"total_functions":39075,"matched_functions":988,"matched_functions_percent":2.528471,"complete_code":186836,"complete_code_percent":1.4328947,"complete_data":28022,"complete_data_percent":0.39094564,"total_units":4806,"complete_units":123}},{"timestamp":"2026-07-25T19:27:36Z","commit_sha":"28c94bdd9c6380ba9d4fe698de25bcbd58ed98fa","commit_message":"feat: match the autosaveD window frame","measures":{"fuzzy_match_percent":1.4328873,"total_code":13039060,"matched_code":186696,"matched_code_percent":1.431821,"total_data":7167748,"matched_data":26206,"matched_data_percent":0.36560994,"total_functions":39075,"matched_functions":987,"matched_functions_percent":2.5259116,"complete_code":185388,"complete_code_percent":1.4217896,"complete_data":26654,"complete_data_percent":0.37186018,"total_units":4806,"complete_units":122}},{"timestamp":"2026-07-25T16:57:45Z","commit_sha":"d0edc90358fde6884ad93a86792610bf49688185","commit_message":"feat: match task creation wrapper","measures":{"fuzzy_match_percent":1.423991,"total_code":13039060,"matched_code":185536,"matched_code_percent":1.4229246,"total_data":7167748,"matched_data":26206,"matched_data_percent":0.36560994,"total_functions":39075,"matched_functions":986,"matched_functions_percent":2.5233526,"complete_code":184228,"complete_code_percent":1.4128933,"complete_data":26654,"complete_data_percent":0.37186018,"total_units":4806,"complete_units":121}},{"timestamp":"2026-07-25T15:58:23Z","commit_sha":"ea7fe9539b6e6a8c8af50bf57829ccdb81e0357d","commit_message":"refactor: share one prolog source across the stage modules","measures":{"fuzzy_match_percent":1.4199471,"total_code":13039060,"matched_code":184432,"matched_code_percent":1.4144578,"total_data":7167748,"matched_data":26126,"matched_data_percent":0.36449385,"total_functions":39075,"matched_functions":981,"matched_functions_percent":2.5105567,"complete_code":183752,"complete_code_percent":1.4092426,"complete_data":26574,"complete_data_percent":0.37074405,"total_units":4806,"complete_units":117}},{"timestamp":"2026-07-25T15:51:43Z","commit_sha":"472c4d96e94687653e30696890bbed426a54b8c1","commit_message":"style: run clang-format over the new sources","measures":{"fuzzy_match_percent":1.4199471,"total_code":13039060,"matched_code":184432,"matched_code_percent":1.4144578,"total_data":7167748,"matched_data":26126,"matched_data_percent":0.36449385,"total_functions":39075,"matched_functions":981,"matched_functions_percent":2.5105567,"complete_code":183752,"complete_code_percent":1.4092426,"complete_data":26574,"complete_data_percent":0.37074405,"total_units":4806,"complete_units":117}},{"timestamp":"2026-07-25T15:44:40Z","commit_sha":"108721e6581287ef8da2241c66f0c8cd1345e2e7","commit_message":"feat: match the advertiseD module entry points","measures":{"fuzzy_match_percent":1.4199471,"total_code":13039060,"matched_code":184432,"matched_code_percent":1.4144578,"total_data":7167748,"matched_data":26126,"matched_data_percent":0.36449385,"total_functions":39075,"matched_functions":981,"matched_functions_percent":2.5105567,"complete_code":183752,"complete_code_percent":1.4092426,"complete_data":26574,"complete_data_percent":0.37074405,"total_units":4806,"complete_units":117}},{"timestamp":"2026-07-25T15:35:24Z","commit_sha":"a45c6eb57ae74cee4f753400395370defeceb926","commit_message":"feat: match the stage module entry points","measures":{"fuzzy_match_percent":1.4185053,"total_code":13039060,"matched_code":184244,"matched_code_percent":1.413016,"total_data":7167748,"matched_data":26126,"matched_data_percent":0.36449385,"total_functions":39075,"matched_functions":977,"matched_functions_percent":2.50032,"complete_code":183564,"complete_code_percent":1.4078009,"complete_data":26574,"complete_data_percent":0.37074405,"total_units":4804,"complete_units":116}},{"timestamp":"2026-07-25T15:26:13Z","commit_sha":"4e2091883d0ab172c68c7a6dde74321931bf66cc","commit_message":"feat: match the movieD module entry points","measures":{"fuzzy_match_percent":1.39697,"total_code":13039060,"matched_code":181436,"matched_code_percent":1.3914807,"total_data":7167748,"matched_data":26126,"matched_data_percent":0.36449385,"total_functions":39075,"matched_functions":925,"matched_functions_percent":2.3672423,"complete_code":180756,"complete_code_percent":1.3862655,"complete_data":26574,"complete_data_percent":0.37074405,"total_units":4791,"complete_units":103}},{"timestamp":"2026-07-25T15:16:26Z","commit_sha":"24249b711b62a8c5cf8a0f82de431a4a542c1055","commit_message":"feat: match the autosaveD module entry points","measures":{"fuzzy_match_percent":1.3955896,"total_code":13039060,"matched_code":181256,"matched_code_percent":1.3901001,"total_data":7167748,"matched_data":26126,"matched_data_percent":0.36449385,"total_functions":39075,"matched_functions":921,"matched_functions_percent":2.3570056,"complete_code":180576,"complete_code_percent":1.3848852,"complete_data":26574,"complete_data_percent":0.37074405,"total_units":4790,"complete_units":102}},{"timestamp":"2026-07-25T15:05:40Z","commit_sha":"4025049f7c58722394e6495f3e505f1c2dc87c70","commit_message":"feat: match the CRI SFX alpha handle table","measures":{"fuzzy_match_percent":1.3940864,"total_code":13039060,"matched_code":181060,"matched_code_percent":1.388597,"total_data":7167748,"matched_data":26054,"matched_data_percent":0.36348933,"total_functions":39075,"matched_functions":918,"matched_functions_percent":2.3493283,"complete_code":180380,"complete_code_percent":1.3833818,"complete_data":26502,"complete_data_percent":0.36973956,"total_units":4789,"complete_units":101}},{"timestamp":"2026-07-25T14:57:34Z","commit_sha":"2c838a129a00640b0c43f4af86e384653804c316","commit_message":"feat: carve the CRI SFX handle table unit\n\nmovieD/cri/sfx.c, the module's main file: .text 0xE2F4 to 0xE89C, .rodata\n0x800 to 0x8A0, .bss 0xD0 to 0x588. NonMatching, so it is configured but not\nlinked. Fourteen of its sixteen functions reproduce exactly.\n\nThe boundary is argued three ways in the file header. The .rodata block opens\nwith the module's own banner, \"CRI SFX/GC Ver.1.24\", and the three errors that\nfollow name sfx_InitHn and the Z and A handles it creates. The data is private\nto the run, which is what fixes both ends. The functions after 0xE89C work on\nthe alpha object sfxcnv.c already reaches through handle->alpha, and the next\nprivate block starts exactly where this file's .bss ends.\n\nfn_17_E810 and fn_17_E4E4 are the two left. Under -sdata 0 this compiler\nemits .bss in order of first reference rather than declaration order, which\nputs the wrong object first and shifts every offset the two of them use.\nDeclaration order, storage class, -common off, grouping the two words as a\nstruct or an array, and GC/1.3 were all tried and none of them move it.","measures":{"fuzzy_match_percent":1.3898836,"total_code":13039060,"matched_code":180512,"matched_code_percent":1.3843943,"total_data":7167748,"matched_data":25886,"matched_data_percent":0.36114553,"total_functions":39075,"matched_functions":906,"matched_functions_percent":2.318618,"complete_code":179832,"complete_code_percent":1.3791792,"complete_data":26334,"complete_data_percent":0.36739573,"total_units":4788,"complete_units":100}},{"timestamp":"2026-07-25T14:47:36Z","commit_sha":"4c05752ec29967c11dc8659a53a7f8f8f27f16ed","commit_message":"fix: point the Discord badge at the invite\n\nMarkdown reference labels are case insensitive, so [Discord] and [discord]\nwere one label and the first definition won. The badge linked to its own\nshields.io image instead of the server.","measures":{"fuzzy_match_percent":1.3791791,"total_code":13039060,"matched_code":179832,"matched_code_percent":1.3791792,"total_data":7167748,"matched_data":24678,"matched_data_percent":0.34429222,"total_functions":39075,"matched_functions":892,"matched_functions_percent":2.2827895,"complete_code":179832,"complete_code_percent":1.3791792,"complete_data":26334,"complete_data_percent":0.36739573,"total_units":4786,"complete_units":100}},{"timestamp":"2026-07-25T13:46:41Z","commit_sha":"5e52b1d7ebbaedd3711864c16165e2d6049c7d74","commit_message":"docs: add REFERENCES.md for cross-platform naming sources\n\nSonic Heroes shipped on PC, PS2 and Xbox alongside the GameCube release,\nand the game code and RenderWare middleware are shared across builds.\nCommunity disassemblies, SDK headers and format docs for those other\nplatforms don't help with byte-matching, but they carry real function\nnames, signatures and struct layouts that transfer almost 1:1 and cut\ndown the ~38k unnamed functions this decomp still has to work through.","measures":{"fuzzy_match_percent":1.3791791,"total_code":13039060,"matched_code":179832,"matched_code_percent":1.3791792,"total_data":7167748,"matched_data":24678,"matched_data_percent":0.34429222,"total_functions":39075,"matched_functions":892,"matched_functions_percent":2.2827895,"complete_code":179832,"complete_code_percent":1.3791792,"complete_data":26334,"complete_data_percent":0.36739573,"total_units":4786,"complete_units":100}},{"timestamp":"2026-07-25T13:16:22Z","commit_sha":"27e649bbc3af248a1f17801775951b6621bd65fc","commit_message":"Merge pull request #110 from cypressru/pr-movied\n\nfeat: match movie CRI conversion","measures":{"fuzzy_match_percent":1.3791791,"total_code":13039060,"matched_code":179832,"matched_code_percent":1.3791792,"total_data":7167748,"matched_data":24678,"matched_data_percent":0.34429222,"total_functions":39075,"matched_functions":892,"matched_functions_percent":2.2827895,"complete_code":179832,"complete_code_percent":1.3791792,"complete_data":26334,"complete_data_percent":0.36739573,"total_units":4786,"complete_units":100}},{"timestamp":"2026-07-25T12:51:17Z","commit_sha":"18adc495028b38b54fa94f5d553dfa80f7952583","commit_message":"Merge pull request #112 from cypressru/pr-file-pos\n\nfeat: match MSL pos","measures":{"fuzzy_match_percent":1.2002093,"total_code":13039060,"matched_code":156496,"matched_code_percent":1.2002091,"total_data":7167748,"matched_data":23542,"matched_data_percent":0.32844347,"total_functions":39075,"matched_functions":797,"matched_functions_percent":2.0396671,"complete_code":156496,"complete_code_percent":1.2002091,"complete_data":25198,"complete_data_percent":0.35154697,"total_units":4781,"complete_units":97}},{"timestamp":"2026-07-25T12:51:05Z","commit_sha":"d7c3d0552bb2124d3bf4621fa77e849bf4fac72f","commit_message":"Merge pull request #111 from cypressru/pr-file-io\n\nPr file io","measures":{"fuzzy_match_percent":1.194718,"total_code":13039060,"matched_code":155780,"matched_code_percent":1.194718,"total_data":7167748,"matched_data":23542,"matched_data_percent":0.32844347,"total_functions":39075,"matched_functions":794,"matched_functions_percent":2.0319898,"complete_code":155780,"complete_code_percent":1.194718,"complete_data":25198,"complete_data_percent":0.35154697,"total_units":4780,"complete_units":96}},{"timestamp":"2026-07-24T19:22:48Z","commit_sha":"bdb066d7a5ea9e89b99eb11d9df7bc31c3ec8cd9","commit_message":"feat: match MSL UART console","measures":{"fuzzy_match_percent":1.1567705,"total_code":13039060,"matched_code":150832,"matched_code_percent":1.1567706,"total_data":7167748,"matched_data":23542,"matched_data_percent":0.32844347,"total_functions":39075,"matched_functions":777,"matched_functions_percent":1.9884835,"complete_code":150832,"complete_code_percent":1.1567706,"complete_data":25198,"complete_data_percent":0.35154697,"total_units":4774,"complete_units":92}},{"timestamp":"2026-07-24T19:22:38Z","commit_sha":"7f8c4ec57f5ad8327ee84f9e37142240330bbcde","commit_message":"Merge pull request #108 from cypressru/pr-gecko-exception\n\nfeat: match Gecko exception runtime\n\n# Conflicts:\n#\tconfig/G9SE8P/splits.txt\n#\tconfig/G9SE8P/symbols.txt\n#\tsrc/autosaveD/table.c","measures":{"fuzzy_match_percent":1.1552674,"total_code":13039060,"matched_code":150636,"matched_code_percent":1.1552672,"total_data":7167748,"matched_data":23538,"matched_data_percent":0.32838768,"total_functions":39075,"matched_functions":776,"matched_functions_percent":1.9859245,"complete_code":150636,"complete_code_percent":1.1552672,"complete_data":25194,"complete_data_percent":0.35149115,"total_units":4771,"complete_units":91}},{"timestamp":"2026-07-24T19:17:51Z","commit_sha":"5401c6dd7902d019bad6b1fa9ff1660c58039ed0","commit_message":"fix: link NMW abort handler","measures":{"fuzzy_match_percent":1.1163995,"total_code":13039060,"matched_code":145524,"matched_code_percent":1.116062,"total_data":7167748,"matched_data":23034,"matched_data_percent":0.32135615,"total_functions":39075,"matched_functions":765,"matched_functions_percent":1.9577736,"complete_code":145472,"complete_code_percent":1.1156633,"complete_data":24690,"complete_data_percent":0.34445965,"total_units":4779,"complete_units":90}},{"timestamp":"2026-07-24T18:59:00Z","commit_sha":"1c4fa1a13b5ac5063c823320239723b72f229753","commit_message":"feat: match MSL exit and abort","measures":{"fuzzy_match_percent":1.085569,"total_code":13039060,"matched_code":141504,"matched_code_percent":1.0852317,"total_data":7167754,"matched_data":22608,"matched_data_percent":0.3154126,"total_functions":39075,"matched_functions":748,"matched_functions_percent":1.9142674,"complete_code":141452,"complete_code_percent":1.0848329,"complete_data":24264,"complete_data_percent":0.3385161,"total_units":4786,"complete_units":88}},{"timestamp":"2026-07-24T18:49:52Z","commit_sha":"9f2ec91236e81af4d0d6d3a5eb702790779a8217","commit_message":"feat: match MSL strtold","measures":{"fuzzy_match_percent":1.0829616,"total_code":13039060,"matched_code":141164,"matched_code_percent":1.0826241,"total_data":7167754,"matched_data":22344,"matched_data_percent":0.31172946,"total_functions":39075,"matched_functions":746,"matched_functions_percent":1.909149,"complete_code":141112,"complete_code_percent":1.0822252,"complete_data":24000,"complete_data_percent":0.3348329,"total_units":4784,"complete_units":87}},{"timestamp":"2026-07-24T17:39:37Z","commit_sha":"85b05b435397a2cbc7d6e62bf2dc8f2d4e6d729e","commit_message":"feat: match MSL malloc and free","measures":{"fuzzy_match_percent":1.0514562,"total_code":13039060,"matched_code":137056,"matched_code_percent":1.0511187,"total_data":7167754,"matched_data":22264,"matched_data_percent":0.31061333,"total_functions":39075,"matched_functions":745,"matched_functions_percent":1.90659,"complete_code":136676,"complete_code_percent":1.0482044,"complete_data":23920,"complete_data_percent":0.3337168,"total_units":4782,"complete_units":86}},{"timestamp":"2026-07-24T17:02:47Z","commit_sha":"751f85c8a3e9e5734caa73d0e058ed1cab10cc1d","commit_message":"docs: add Claude/Codex coordination board","measures":{"fuzzy_match_percent":1.0486339,"total_code":13039060,"matched_code":136688,"matched_code_percent":1.0482965,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":743,"matched_functions_percent":1.9014716,"complete_code":136308,"complete_code_percent":1.0453821,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4779,"complete_units":85}},{"timestamp":"2026-07-24T16:40:32Z","commit_sha":"750af7eb67bbb74e5432f88f35ad69c6bdaeab47","commit_message":"match: MSL __unregister_fragment, carve __register_fragment","measures":{"fuzzy_match_percent":1.0486339,"total_code":13039060,"matched_code":136688,"matched_code_percent":1.0482965,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":743,"matched_functions_percent":1.9014716,"complete_code":136308,"complete_code_percent":1.0453821,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4779,"complete_units":85}},{"timestamp":"2026-07-24T15:31:48Z","commit_sha":"2642300e55c5b791eaf2b2aa8f3cafc50345f37d","commit_message":"feat: match MSL atof","measures":{"fuzzy_match_percent":1.0464559,"total_code":13039060,"matched_code":136448,"matched_code_percent":1.0464559,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":741,"matched_functions_percent":1.8963532,"complete_code":136308,"complete_code_percent":1.0453821,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4778,"complete_units":85}},{"timestamp":"2026-07-24T15:06:37Z","commit_sha":"9c4cbd48c2f65e78c74a6497dc6f356b8b4390c8","commit_message":"feat: match MSL printf family","measures":{"fuzzy_match_percent":1.0453821,"total_code":13039060,"matched_code":136308,"matched_code_percent":1.0453821,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":740,"matched_functions_percent":1.893794,"complete_code":136308,"complete_code_percent":1.0453821,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4777,"complete_units":85}},{"timestamp":"2026-07-24T14:54:11Z","commit_sha":"27b79b656535abfe9f692242d58992fba28234e1","commit_message":"feat: match MSL sprintf","measures":{"fuzzy_match_percent":1.0388172,"total_code":13039060,"matched_code":135452,"matched_code_percent":1.0388172,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":734,"matched_functions_percent":1.878439,"complete_code":135452,"complete_code_percent":1.0388172,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4777,"complete_units":85}},{"timestamp":"2026-07-24T14:36:26Z","commit_sha":"4fcc146af48c9fd7b029ce4c9b16a76364d85d29","commit_message":"feat: match MSL feof and clearerr","measures":{"fuzzy_match_percent":1.0370992,"total_code":13039060,"matched_code":135228,"matched_code_percent":1.0370994,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":733,"matched_functions_percent":1.8758798,"complete_code":135228,"complete_code_percent":1.0370994,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4776,"complete_units":84}},{"timestamp":"2026-07-24T14:27:41Z","commit_sha":"fa6e0dcd5f4e3f0cc208986ec535f0c7ce9992dc","commit_message":"feat: match MSL __stdio_atexit","measures":{"fuzzy_match_percent":1.0369152,"total_code":13039060,"matched_code":135204,"matched_code_percent":1.0369153,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":731,"matched_functions_percent":1.8707614,"complete_code":135204,"complete_code_percent":1.0369153,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4776,"complete_units":84}},{"timestamp":"2026-07-24T13:57:02Z","commit_sha":"8b65c325dcd59e8d658955a0e89ae6c9ea53a9b1","commit_message":"feat: match MSL strncat","measures":{"fuzzy_match_percent":1.0367925,"total_code":13039060,"matched_code":135188,"matched_code_percent":1.0367925,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":730,"matched_functions_percent":1.8682022,"complete_code":135188,"complete_code_percent":1.0367925,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4775,"complete_units":83}},{"timestamp":"2026-07-24T13:48:53Z","commit_sha":"c8c50b61bab29dcbf04de395243051584a653016","commit_message":"feat: match MSL strcat","measures":{"fuzzy_match_percent":1.0362097,"total_code":13039060,"matched_code":135112,"matched_code_percent":1.0362097,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":729,"matched_functions_percent":1.865643,"complete_code":135112,"complete_code_percent":1.0362097,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4775,"complete_units":83}},{"timestamp":"2026-07-24T13:41:31Z","commit_sha":"d024ddaf2238a598801c81805e53005da0787a85","commit_message":"feat: match MSL strncpy","measures":{"fuzzy_match_percent":1.0358722,"total_code":13039060,"matched_code":135068,"matched_code_percent":1.0358722,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":728,"matched_functions_percent":1.8630838,"complete_code":135068,"complete_code_percent":1.0358722,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4775,"complete_units":83}},{"timestamp":"2026-07-24T13:30:21Z","commit_sha":"a7d62b0573431052c814e17fd8a7e97bda8f6648","commit_message":"feat: match MSL strcpy","measures":{"fuzzy_match_percent":1.0353507,"total_code":13039060,"matched_code":135000,"matched_code_percent":1.0353508,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":727,"matched_functions_percent":1.8605247,"complete_code":135000,"complete_code_percent":1.0353508,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4775,"complete_units":83}},{"timestamp":"2026-07-24T12:49:46Z","commit_sha":"de90e40656b720168a71c69a7f876cfb5c5139df","commit_message":"feat: match MSL strlen","measures":{"fuzzy_match_percent":1.0339396,"total_code":13039060,"matched_code":134816,"matched_code_percent":1.0339396,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":726,"matched_functions_percent":1.8579655,"complete_code":134816,"complete_code_percent":1.0339396,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4775,"complete_units":83}},{"timestamp":"2026-07-24T12:07:30Z","commit_sha":"7654b231d8433af5d3b5e1fb06c46c416d042b44","commit_message":"Merge pull request #46 from cypressru/pr-sibios\n\nfeat: match dolphin SIBios","measures":{"fuzzy_match_percent":1.0337248,"total_code":13039060,"matched_code":134788,"matched_code_percent":1.0337248,"total_data":7167754,"matched_data":22144,"matched_data_percent":0.30893916,"total_functions":39075,"matched_functions":725,"matched_functions_percent":1.8554064,"complete_code":134788,"complete_code_percent":1.0337248,"complete_data":23800,"complete_data_percent":0.33204263,"total_units":4773,"complete_units":82}},{"timestamp":"2026-07-24T02:38:29Z","commit_sha":"3b7c4d6a886cf6d71818e7711ac5a55492378c11","commit_message":"Merge pull request #45 from cypressru/pr-dbcomm\n\nfeat: match dolphin dbcomm\n\nClean merge, no conflicts. dbcomm was the last unit in the DOL still\nbelow 100%, so every carved unit there now matches except SIBios.c,\nwhich was carved a few commits ago and is still being written.\n\nVerified: full build, SHA-1 gate 18/18 OK, dbcomm.c 12/12 functions and\nits data at 100% and now linked. OSThread.c, autosaveD/table.c and the\ngame units are untouched at 100%.","measures":{"fuzzy_match_percent":0.71336275,"total_code":13039060,"matched_code":92880,"matched_code_percent":0.7123213,"total_data":7167762,"matched_data":17712,"matched_data_percent":0.24710642,"total_functions":39075,"matched_functions":494,"matched_functions_percent":1.2642355,"complete_code":92412,"complete_code_percent":0.70873207,"complete_data":19024,"complete_data_percent":0.2654106,"total_units":4742,"complete_units":56}},{"timestamp":"2026-07-24T02:32:33Z","commit_sha":"188e69f8e01760f028f83ec03a6c0c803c7b3114","commit_message":"feat: carve the SIBios translation unit","measures":{"fuzzy_match_percent":0.711878,"total_code":13039060,"matched_code":90640,"matched_code_percent":0.69514215,"total_data":7167762,"matched_data":17712,"matched_data_percent":0.24710642,"total_functions":39075,"matched_functions":486,"matched_functions_percent":1.243762,"complete_code":89732,"complete_code_percent":0.6881785,"complete_data":19000,"complete_data_percent":0.26507574,"total_units":4742,"complete_units":55}},{"timestamp":"2026-07-24T02:18:31Z","commit_sha":"95ca0db2d9514e27600793bf41944d3b79b36be6","commit_message":"Merge pull request #44 from cypressru/pr-osthread\n\nfeat: match OSThread\n\nThis PR branched from before OSThread moved on main and finishes the\nfile, so OSThread.c and the module's symbol names are taken from it\nwholesale rather than merged hunk by hunk: it matches all twenty one\nfunctions against the ten on main.\n\nBoth sides reached -inline noauto independently; the comment on main\nexplaining why is kept over the bare entry. The .bss bound here is the\nwider one from the PR, running to the end of the gap at 0x803F2DB0\nrather than stopping after RunQueue.\n\nVerified: full build, SHA-1 gate 18/18 OK, OSThread.c 21/21 at 100% and\nnow linked, autosaveD/table.c still 4/4, dbcomm the only unit left\nbelow 100%.","measures":{"fuzzy_match_percent":0.7072473,"total_code":13039060,"matched_code":90172,"matched_code_percent":0.69155294,"total_data":7167762,"matched_data":17712,"matched_data_percent":0.24710642,"total_functions":39075,"matched_functions":479,"matched_functions_percent":1.2258477,"complete_code":89732,"complete_code_percent":0.6881785,"complete_data":19000,"complete_data_percent":0.26507574,"total_units":4742,"complete_units":55}},{"timestamp":"2026-07-24T02:11:41Z","commit_sha":"da7bfef1ea5189466934ec8d80a7b867916f5389","commit_message":"feat: carve the first REL translation unit","measures":{"fuzzy_match_percent":0.6848607,"total_code":13039060,"matched_code":85964,"matched_code_percent":0.65928066,"total_data":7167762,"matched_data":15416,"matched_data_percent":0.21507409,"total_functions":39075,"matched_functions":468,"matched_functions_percent":1.1976968,"complete_code":84972,"complete_code_percent":0.6516728,"complete_data":16428,"complete_data_percent":0.22919287,"total_units":4743,"complete_units":54}},{"timestamp":"2026-07-24T01:48:24Z","commit_sha":"47ddf1d4cff8bf4fab978d8325d4cce2a34b4d1f","commit_message":"Merge pull request #43 from cypressru/pr-main\n\nfeat: match game main\n\nConflict was configure.py only: this PR branched before heap.c became\nMatching, so its side still had the old heap entry. Resolution keeps\nboth, heap.c from #42 and main.c from here.\n\nThis closes the six instructions main was stuck on. They were register\nallocation around the two tick words, and the answer is that the copy\ninto args is one eight-byte structure assignment rather than two word\nassignments; the notes on main already on the branch are kept and this\nis added to them.\n\nVerified: full build, SHA-1 gate 18/18 OK, game/main.c 7/7 and\ngame/heap.c 11/11 at 100%, so game/ is complete. OSThread.c still 10/21.","measures":{"fuzzy_match_percent":0.6838484,"total_code":13039060,"matched_code":85832,"matched_code_percent":0.6582683,"total_data":7167762,"matched_data":15416,"matched_data_percent":0.21507409,"total_functions":39075,"matched_functions":464,"matched_functions_percent":1.1874601,"complete_code":84840,"complete_code_percent":0.6506604,"complete_data":16428,"complete_data_percent":0.22919287,"total_units":4742,"complete_units":53}},{"timestamp":"2026-07-24T01:46:20Z","commit_sha":"1f95f039a2ad9d388f179b42d504d2ff5c0ffa80","commit_message":"feat: match OSThread exit and priority paths","measures":{"fuzzy_match_percent":0.68383455,"total_code":13039060,"matched_code":85440,"matched_code_percent":0.65526193,"total_data":7167762,"matched_data":15336,"matched_data_percent":0.213958,"total_functions":39075,"matched_functions":463,"matched_functions_percent":1.1849009,"complete_code":84244,"complete_code_percent":0.64608955,"complete_data":16332,"complete_data_percent":0.22785354,"total_units":4742,"complete_units":52}},{"timestamp":"2026-07-24T01:37:56Z","commit_sha":"c3ef7cfce26b3d5c3818e7f8daefae0464571d20","commit_message":"Merge pull request #42 from cypressru/pr-heap\n\nfeat: match game heap\n\nThis PR branched from before heap.c moved on main, and rewrites the\nwhole file. Its version is complete where the one on main was not, so\nheap.c is taken from the PR wholesale rather than merged hunk by hunk:\nit matches all eleven functions against eight, and it reaches them with\n-Cpp_exceptions on and -opt noschedule,nopropagation, which the version\non main did not use.\n\nNothing was lost the other way: the arena claim in the init, found\nseparately on main, is in this version too. The OSThread carve on main\nis untouched.\n\nVerified: full build, SHA-1 gate 18/18 OK, game/heap.c 11/11 functions\n100% matched and now linked, OSThread.c still 10/21.","measures":{"fuzzy_match_percent":0.6796361,"total_code":13039060,"matched_code":85440,"matched_code_percent":0.65526193,"total_data":7167762,"matched_data":15336,"matched_data_percent":0.213958,"total_functions":39075,"matched_functions":463,"matched_functions_percent":1.1849009,"complete_code":84244,"complete_code_percent":0.64608955,"complete_data":16332,"complete_data_percent":0.22785354,"total_units":4742,"complete_units":52}},{"timestamp":"2026-07-24T01:31:56Z","commit_sha":"4ec5f0e73cd8de59e1f3158aec808b0360aadaeb","commit_message":"feat: match OSThread reschedule and sleep queue","measures":{"fuzzy_match_percent":0.67816174,"total_code":13039060,"matched_code":84392,"matched_code_percent":0.6472246,"total_data":7167762,"matched_data":15164,"matched_data_percent":0.21155837,"total_functions":39075,"matched_functions":460,"matched_functions_percent":1.1772233,"complete_code":82008,"complete_code_percent":0.62894106,"complete_data":16160,"complete_data_percent":0.22545391,"total_units":4742,"complete_units":51}},{"timestamp":"2026-07-24T01:19:17Z","commit_sha":"59d4d73ec14359901fe7efb13121799de98564a2","commit_message":"feat: match OSThread run queue and stack helpers","measures":{"fuzzy_match_percent":0.67210644,"total_code":13039060,"matched_code":84344,"matched_code_percent":0.6468564,"total_data":7167762,"matched_data":15164,"matched_data_percent":0.21155837,"total_functions":39075,"matched_functions":459,"matched_functions_percent":1.1746641,"complete_code":82008,"complete_code_percent":0.62894106,"complete_data":16160,"complete_data_percent":0.22545391,"total_units":4742,"complete_units":51}},{"timestamp":"2026-07-24T01:16:12Z","commit_sha":"998d399ab8b89997d65088d395a33a25bb9e3c1d","commit_message":"feat: carve the OSThread translation unit","measures":{"fuzzy_match_percent":0.66952956,"total_code":13039060,"matched_code":84008,"matched_code_percent":0.64427954,"total_data":7167762,"matched_data":15164,"matched_data_percent":0.21155837,"total_functions":39075,"matched_functions":456,"matched_functions_percent":1.1669866,"complete_code":82008,"complete_code_percent":0.62894106,"complete_data":16160,"complete_data_percent":0.22545391,"total_units":4742,"complete_units":51}},{"timestamp":"2026-07-24T00:59:52Z","commit_sha":"3da75b868f77b84e5069c260ab9cffdf240634df","commit_message":"feat: match heap core allocator","measures":{"fuzzy_match_percent":0.66824114,"total_code":13039060,"matched_code":83840,"matched_code_percent":0.6429912,"total_data":7167770,"matched_data":14888,"matched_data_percent":0.20770757,"total_functions":39075,"matched_functions":450,"matched_functions_percent":1.1516315,"complete_code":82008,"complete_code_percent":0.62894106,"complete_data":16160,"complete_data_percent":0.22545366,"total_units":4743,"complete_units":51}},{"timestamp":"2026-07-24T00:50:29Z","commit_sha":"1ac9f39a0d12a4aef2c075611fbca9a2fc751ffc","commit_message":"Merge pull request #41 from cypressru/pr-dvd","measures":{"fuzzy_match_percent":0.6680844,"total_code":13039060,"matched_code":83508,"matched_code_percent":0.64044493,"total_data":7167770,"matched_data":14888,"matched_data_percent":0.20770757,"total_functions":39075,"matched_functions":449,"matched_functions_percent":1.1490723,"complete_code":82008,"complete_code_percent":0.62894106,"complete_data":16160,"complete_data_percent":0.22545366,"total_units":4743,"complete_units":51}},{"timestamp":"2026-07-24T00:46:40Z","commit_sha":"f16c1aa29b6bf69741e6824300c930698a00a1c4","commit_message":"feat: match heap init","measures":{"fuzzy_match_percent":0.5911463,"total_code":13039060,"matched_code":73476,"matched_code_percent":0.5635069,"total_data":7167770,"matched_data":14256,"matched_data_percent":0.19889031,"total_functions":39075,"matched_functions":403,"matched_functions_percent":1.03135,"complete_code":71976,"complete_code_percent":0.55200297,"complete_data":15528,"complete_data_percent":0.2166364,"total_units":4747,"complete_units":50}},{"timestamp":"2026-07-24T00:44:36Z","commit_sha":"fce99a327676eeb6dc686c7e1f9916372a83c22a","commit_message":"feat: match heap info","measures":{"fuzzy_match_percent":0.59074444,"total_code":13039060,"matched_code":73172,"matched_code_percent":0.5611754,"total_data":7167770,"matched_data":14256,"matched_data_percent":0.19889031,"total_functions":39075,"matched_functions":402,"matched_functions_percent":1.0287908,"complete_code":71976,"complete_code_percent":0.55200297,"complete_data":15528,"complete_data_percent":0.2166364,"total_units":4747,"complete_units":50}},{"timestamp":"2026-07-24T00:39:37Z","commit_sha":"4e9f95f7ffa1c17a16c52584981a0668de96aa7d","commit_message":"fix: narrow main to register allocation","measures":{"fuzzy_match_percent":0.5906616,"total_code":13039060,"matched_code":73056,"matched_code_percent":0.5602858,"total_data":7167770,"matched_data":14256,"matched_data_percent":0.19889031,"total_functions":39075,"matched_functions":401,"matched_functions_percent":1.0262316,"complete_code":71976,"complete_code_percent":0.55200297,"complete_data":15528,"complete_data_percent":0.2166364,"total_units":4747,"complete_units":50}},{"timestamp":"2026-07-24T00:32:49Z","commit_sha":"696c2ee198115aa5d109dbcee4ddca37385f0485","commit_message":"Merge pull request #40 from cypressru/pr-dvdlow","measures":{"fuzzy_match_percent":0.59063584,"total_code":13039060,"matched_code":73056,"matched_code_percent":0.5602858,"total_data":7167770,"matched_data":14256,"matched_data_percent":0.19889031,"total_functions":39075,"matched_functions":401,"matched_functions_percent":1.0262316,"complete_code":71976,"complete_code_percent":0.55200297,"complete_data":15528,"complete_data_percent":0.2166364,"total_units":4747,"complete_units":50}},{"timestamp":"2026-07-24T00:02:56Z","commit_sha":"56ea2e3177c31909dc795d7d087690ab72219b76","commit_message":"Merge pull request #39 from cypressru/pr-dvdfs\n\nfeat: match dvd filesystem\n\nResolved conflicts against the dvd objects that landed first:\n- splits.txt: this PR moved __mem.c and __start.c ahead of dvdfs.c while\n  main had them mid-dvd, which merged as duplicate blocks. Kept the\n  single pair in this PR's position and restored dvdidutils.c,\n  dvdFatal.c and fstload.c after dvderror.c\n- dvdfs.c called fn_801D2C4C through a #define shim; main names that\n  symbol OSPanic, so declared it in dolphin/os.h and dropped the shim\n\nVerified: full build, SHA-1 gate 18/18 OK, dvdfs.c 12/12 functions 100%\nmatched, every neighbouring dvd object still 100%.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":0.5621982,"total_code":13039060,"matched_code":69348,"matched_code_percent":0.53184813,"total_data":7167774,"matched_data":13968,"matched_data_percent":0.19487222,"total_functions":39075,"matched_functions":380,"matched_functions_percent":0.9724888,"complete_code":68268,"complete_code_percent":0.52356535,"complete_data":15240,"complete_data_percent":0.2126183,"total_units":4746,"complete_units":49}},{"timestamp":"2026-07-23T23:21:58Z","commit_sha":"0954be4ac76fd384f439932168603369f8ee5a79","commit_message":"Merge pull request #38 from cypressru/pr-fstload\n\nfeat: match fst load\n\nResolved conflicts against dvdFatal.c and dvdidutils.c, which landed\nfirst. The real one was the .sbss block at 0x8042CC60, which this PR\nstill saw as one 8-byte symbol:\n- symbols.txt: keep #36's split (FatalFunc at 0x8042CC60, lbl_8042CC64)\n  and take this PR's scope:local on lbl_8042CC68, which fstload owns\n- splits.txt / configure.py: keep all three objects\n\nVerified: full build, SHA-1 gate 18/18 OK, fstload.c 2/2 functions 100%\nmatched, dvdFatal.c and dvdidutils.c still 100%.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":0.544835,"total_code":13039060,"matched_code":67084,"matched_code_percent":0.51448494,"total_data":7167774,"matched_data":13568,"matched_data_percent":0.18929169,"total_functions":39075,"matched_functions":368,"matched_functions_percent":0.9417786,"complete_code":66004,"complete_code_percent":0.5062021,"complete_data":14840,"complete_data_percent":0.20703778,"total_units":4742,"complete_units":48}},{"timestamp":"2026-07-23T23:10:13Z","commit_sha":"8ca152e609f3bd745ce4beda032eb3e0f70a2f6b","commit_message":"Merge pull request #37 from cypressru/pr-dvdidutils\n\nfeat: match dvd id utils\n\nResolved conflicts against dvdFatal.c, which landed on main first. Both\nPRs name the same address range from opposite ends and agree on the\nsplit at 0x801DBA9C:\n- symbols.txt: keep DVDCompareDiskID (#37) and __DVDPrintFatalMessage (#36)\n- configure.py: keep both objects\n\nVerified: full build, SHA-1 gate 18/18 OK, dvdidutils.c 1/1 function 100%\nmatched, dvdFatal.c still 100%.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":0.5404175,"total_code":13039060,"matched_code":66508,"matched_code_percent":0.51006746,"total_data":7167782,"matched_data":13316,"matched_data_percent":0.18577573,"total_functions":39075,"matched_functions":366,"matched_functions_percent":0.9366603,"complete_code":65428,"complete_code_percent":0.5017846,"complete_data":14588,"complete_data_percent":0.2035218,"total_units":4745,"complete_units":47}},{"timestamp":"2026-07-23T23:09:16Z","commit_sha":"ee1fbcf7b7ba526e69af473b70ea53c6f73b92a3","commit_message":"Merge pull request #36 from cypressru/pr-dvdfatal\n\nfeat: match dvd fatal\n\nClean merge, no conflicts.\n\nVerified: full build, SHA-1 gate 18/18 OK, dvdFatal.c 1/1 function 100%\nmatched.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":0.5385155,"total_code":13039060,"matched_code":66260,"matched_code_percent":0.5081655,"total_data":7167782,"matched_data":13316,"matched_data_percent":0.18577573,"total_functions":39075,"matched_functions":365,"matched_functions_percent":0.9341011,"complete_code":65180,"complete_code_percent":0.49988264,"complete_data":14588,"complete_data_percent":0.2035218,"total_units":4745,"complete_units":46}},{"timestamp":"2026-07-23T23:07:57Z","commit_sha":"f56df0c5c0547e8a11538bc7455088fd96a7897e","commit_message":"Merge pull request #35 from cypressru/pr-oslink\n\nfeat: match os link\n\nConflict was configure.py's object list only: keep OSContext.c and\nOSError.c alongside the new OSLink.c.\n\nVerified: full build, SHA-1 gate 18/18 OK, OSLink.c 9/9 functions 100%\nmatched, pure C with no assembly.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":0.5381474,"total_code":13039060,"matched_code":66212,"matched_code_percent":0.50779736,"total_data":7167782,"matched_data":13312,"matched_data_percent":0.18571994,"total_functions":39075,"matched_functions":364,"matched_functions_percent":0.9315419,"complete_code":65132,"complete_code_percent":0.49951455,"complete_data":14584,"complete_data_percent":0.20346601,"total_units":4742,"complete_units":45}},{"timestamp":"2026-07-23T23:06:58Z","commit_sha":"c077b3cdda7dd214b77fff40e212ff93ad617d7b","commit_message":"Merge pull request #34 from cypressru/pr-oscontext\n\nfeat: match os context\n\nResolved conflicts against OSError.c, which landed on main first:\n- splits.txt / configure.py: keep both OSContext.c and OSError.c\n- OSError.c called fn_801D2770, renamed to OSGetStackPointer by this\n  PR; declared it in dolphin/os.h and used the real name\n\nVerified: full build, SHA-1 gate 18/18 OK, OSContext.c 13/13 functions\n100% matched, OSError.c still 100%.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>","measures":{"fuzzy_match_percent":0.51857543,"total_code":13039060,"matched_code":63660,"matched_code_percent":0.48822537,"total_data":7167782,"matched_data":13232,"matched_data_percent":0.18460383,"total_functions":39075,"matched_functions":355,"matched_functions_percent":0.90850925,"complete_code":62580,"complete_code_percent":0.47994256,"complete_data":14504,"complete_data_percent":0.2023499,"total_units":4743,"complete_units":44}},{"timestamp":"2026-07-23T22:56:44Z","commit_sha":"83a95270c73f11fa6d1b990f0682fa46a1276aec","commit_message":"Merge pull request #33 from cypressru/pr-oserror\n\nfeat: match os error","measures":{"fuzzy_match_percent":0.5020098,"total_code":13039060,"matched_code":61500,"matched_code_percent":0.47165975,"total_data":7167782,"matched_data":12760,"matched_data_percent":0.17801881,"total_functions":39075,"matched_functions":342,"matched_functions_percent":0.8752399,"complete_code":60420,"complete_code_percent":0.46337694,"complete_data":14032,"complete_data_percent":0.19576488,"total_units":4743,"complete_units":43}},{"timestamp":"2026-07-23T22:56:34Z","commit_sha":"8a336940faf331cea474fd54c2a238913cfa4cba","commit_message":"Merge pull request #32 from cypressru/pr-osmutex\n\nfeat: match os mutex","measures":{"fuzzy_match_percent":0.4889107,"total_code":13039060,"matched_code":59792,"matched_code_percent":0.45856065,"total_data":7167786,"matched_data":11884,"matched_data_percent":0.16579737,"total_functions":39075,"matched_functions":338,"matched_functions_percent":0.86500317,"complete_code":58712,"complete_code_percent":0.45027784,"complete_data":13156,"complete_data_percent":0.18354343,"total_units":4744,"complete_units":42}},{"timestamp":"2026-07-23T18:44:53Z","commit_sha":"08d777681357fd74b2fb17c098c5682548651e50","commit_message":"Merge pull request #31 from Jovinull/decomp/game-init\n\nfeat: carve the game heap translation unit before main","measures":{"fuzzy_match_percent":0.48805174,"total_code":13039060,"matched_code":59680,"matched_code_percent":0.45770168,"total_data":7167786,"matched_data":11884,"matched_data_percent":0.16579737,"total_functions":39075,"matched_functions":337,"matched_functions_percent":0.862444,"complete_code":58600,"complete_code_percent":0.44941887,"complete_data":13156,"complete_data_percent":0.18354343,"total_units":4744,"complete_units":41}},{"timestamp":"2026-07-23T17:57:34Z","commit_sha":"7f280028a0217693c91863344af95eee66a96af7","commit_message":"build: reproduce the rel modules with a patched decomp-toolkit","measures":{"fuzzy_match_percent":0.47301906,"total_code":13039060,"matched_code":59244,"matched_code_percent":0.45435792,"total_data":7167786,"matched_data":11884,"matched_data_percent":0.16579737,"total_functions":39075,"matched_functions":332,"matched_functions_percent":0.8496481,"complete_code":58600,"complete_code_percent":0.44941887,"complete_data":13156,"complete_data_percent":0.18354343,"total_units":4753,"complete_units":41}},{"timestamp":"2026-07-23T14:48:42Z","commit_sha":"0c3c06d75a6869a836b306ec0708a903be77d68a","commit_message":"docs: publish the game progress badge and refresh status","measures":{"fuzzy_match_percent":0.47301906,"total_code":13039060,"matched_code":59244,"matched_code_percent":0.45435792,"total_data":7167786,"matched_data":11884,"matched_data_percent":0.16579737,"total_functions":39075,"matched_functions":332,"matched_functions_percent":0.8496481,"complete_code":58600,"complete_code_percent":0.44941887,"complete_data":13156,"complete_data_percent":0.18354343,"total_units":4753,"complete_units":41}},{"timestamp":"2026-07-23T14:44:54Z","commit_sha":"b6b07e9a958f3f0fa3ef52c8989efe7731aa133f","commit_message":"Merge pull request #30 from Jovinull/decomp/main-tu\n\nfeat: widen the first game translation unit to its argued bounds","measures":{"fuzzy_match_percent":0.47301906,"total_code":13039060,"matched_code":59244,"matched_code_percent":0.45435792,"total_data":7167786,"matched_data":11884,"matched_data_percent":0.16579737,"total_functions":39075,"matched_functions":332,"matched_functions_percent":0.8496481,"complete_code":58600,"complete_code_percent":0.44941887,"complete_data":13156,"complete_data_percent":0.18354343,"total_units":4753,"complete_units":41}},{"timestamp":"2026-07-23T14:27:33Z","commit_sha":"457349f9de70163e9c468678fe75f737744da136","commit_message":"Merge pull request #29 from Jovinull/decomp/main\n\nfeat: carve the first game translation unit around main","measures":{"fuzzy_match_percent":0.47145453,"total_code":13039060,"matched_code":59040,"matched_code_percent":0.4527934,"total_data":7167786,"matched_data":11868,"matched_data_percent":0.16557413,"total_functions":39075,"matched_functions":326,"matched_functions_percent":0.834293,"complete_code":58600,"complete_code_percent":0.44941887,"complete_data":13156,"complete_data_percent":0.18354343,"total_units":4758,"complete_units":41}},{"timestamp":"2026-07-23T14:07:47Z","commit_sha":"7415ab274d80239a6443ec967587708eb6b8bb08","commit_message":"Merge pull request #28 from Jovinull/decomp/exibios\n\nfeat: match the external interface bus driver","measures":{"fuzzy_match_percent":0.46848777,"total_code":13039060,"matched_code":59040,"matched_code_percent":0.4527934,"total_data":7167786,"matched_data":11868,"matched_data_percent":0.16557413,"total_functions":39075,"matched_functions":326,"matched_functions_percent":0.834293,"complete_code":58600,"complete_code_percent":0.44941887,"complete_data":13156,"complete_data_percent":0.18354343,"total_units":4758,"complete_units":41}},{"timestamp":"2026-07-23T13:48:45Z","commit_sha":"36915dc1df52a977bbddd91e59983910ea861f60","commit_message":"Merge pull request #27 from Jovinull/decomp/dbcomm2\n\ndocs: record what actually blocks the dbcomm match","measures":{"fuzzy_match_percent":0.42043152,"total_code":13039060,"matched_code":52420,"matched_code_percent":0.40202284,"total_data":7167790,"matched_data":11672,"matched_data_percent":0.16283959,"total_functions":39075,"matched_functions":303,"matched_functions_percent":0.7754319,"complete_code":51980,"complete_code_percent":0.39864838,"complete_data":12960,"complete_data_percent":0.18080887,"total_units":4758,"complete_units":40}},{"timestamp":"2026-07-23T13:18:22Z","commit_sha":"a7b5f0b78d7232e124dca0d78352700e4b7e21f0","commit_message":"Merge pull request #26 from Jovinull/decomp/dbcomm\n\nrefactor: reach the exi registers by pointer bump in dbcomm","measures":{"fuzzy_match_percent":0.42043152,"total_code":13039060,"matched_code":52420,"matched_code_percent":0.40202284,"total_data":7167790,"matched_data":11672,"matched_data_percent":0.16283959,"total_functions":39075,"matched_functions":303,"matched_functions_percent":0.7754319,"complete_code":51980,"complete_code_percent":0.39864838,"complete_data":12960,"complete_data_percent":0.18080887,"total_units":4758,"complete_units":40}},{"timestamp":"2026-07-23T13:16:25Z","commit_sha":"5de2613654fa21598ce37ab7bd0a4b2320dc3407","commit_message":"Merge pull request #25 from cypressru/pr-os\n\nfeature: match OS","measures":{"fuzzy_match_percent":0.4185998,"total_code":13039060,"matched_code":52420,"matched_code_percent":0.40202284,"total_data":7167790,"matched_data":11672,"matched_data_percent":0.16283959,"total_functions":39075,"matched_functions":303,"matched_functions_percent":0.7754319,"complete_code":51980,"complete_code_percent":0.39864838,"complete_data":12960,"complete_data_percent":0.18080887,"total_units":4758,"complete_units":40}},{"timestamp":"2026-07-23T12:28:56Z","commit_sha":"1a6352eaaf6de318ae18756e9cecd40ed1199cf0","commit_message":"Merge pull request #24 from cypressru/pr-osinterrupt\n\nfeat: match os interrupt","measures":{"fuzzy_match_percent":0.41716105,"total_code":13039060,"matched_code":50352,"matched_code_percent":0.3861628,"total_data":7167790,"matched_data":11152,"matched_data_percent":0.15558492,"total_functions":39075,"matched_functions":297,"matched_functions_percent":0.76007676,"complete_code":49480,"complete_code_percent":0.3794752,"complete_data":12352,"complete_data_percent":0.17232648,"total_units":4759,"complete_units":39}},{"timestamp":"2026-07-23T12:26:30Z","commit_sha":"07e1ec9fa1475361862924dc5c6f2343f9c2b66e","commit_message":"Merge pull request #23 from cypressru/pr-osreboot\n\nfeat: match os reboot","measures":{"fuzzy_match_percent":0.4009022,"total_code":13039060,"matched_code":48232,"matched_code_percent":0.36990395,"total_data":7167790,"matched_data":11076,"matched_data_percent":0.15452461,"total_functions":39075,"matched_functions":290,"matched_functions_percent":0.7421625,"complete_code":47236,"complete_code_percent":0.36226538,"complete_data":12272,"complete_data_percent":0.17121038,"total_units":4758,"complete_units":38}},{"timestamp":"2026-07-23T12:26:21Z","commit_sha":"e337a7e0a635ee016f61f45511d855c6acda4eeb","commit_message":"Merge pull request #22 from cypressru/pr-osresetsw\n\nfeat: match os reset switch","measures":{"fuzzy_match_percent":0.39430666,"total_code":13039060,"matched_code":47372,"matched_code_percent":0.3633084,"total_data":7167790,"matched_data":11044,"matched_data_percent":0.15407817,"total_functions":39075,"matched_functions":287,"matched_functions_percent":0.734485,"complete_code":46376,"complete_code_percent":0.3556698,"complete_data":12224,"complete_data_percent":0.1705407,"total_units":4757,"complete_units":37}},{"timestamp":"2026-07-23T12:20:37Z","commit_sha":"2dca34d9836cf394e086db856d2f8b959733e32c","commit_message":"Merge pull request #13 from cypressru/pr-nubinit\n\nfeat: match nubinit","measures":{"fuzzy_match_percent":0.3862079,"total_code":13039060,"matched_code":46316,"matched_code_percent":0.35520968,"total_data":7167790,"matched_data":11044,"matched_data_percent":0.15407817,"total_functions":39075,"matched_functions":283,"matched_functions_percent":0.7242483,"complete_code":45320,"complete_code_percent":0.34757107,"complete_data":12192,"complete_data_percent":0.17009427,"total_units":4757,"complete_units":36}},{"timestamp":"2026-07-23T12:20:29Z","commit_sha":"4b2bd3a552265037b606884bbd25049ed8422fa3","commit_message":"Merge pull request #12 from cypressru/pr-nubevent\n\nfeat: match nubevent","measures":{"fuzzy_match_percent":0.38384578,"total_code":13039060,"matched_code":46008,"matched_code_percent":0.35284752,"total_data":7167790,"matched_data":11036,"matched_data_percent":0.15396656,"total_functions":39075,"matched_functions":282,"matched_functions_percent":0.7216891,"complete_code":44936,"complete_code_percent":0.34462607,"complete_data":12152,"complete_data_percent":0.16953622,"total_units":4757,"complete_units":35}},{"timestamp":"2026-07-23T12:20:22Z","commit_sha":"c0143375687f452f4508f1f3d5babb72c91c6551","commit_message":"Merge pull request #14 from cypressru/pr-dolphin-trk\n\nfeat: match dolphin-trk","measures":{"fuzzy_match_percent":0.3788454,"total_code":13039060,"matched_code":45356,"matched_code_percent":0.34784716,"total_data":7167790,"matched_data":10996,"matched_data_percent":0.15340851,"total_functions":39075,"matched_functions":279,"matched_functions_percent":0.71401155,"complete_code":44136,"complete_code_percent":0.33849066,"complete_data":12112,"complete_data_percent":0.16897817,"total_units":4756,"complete_units":34}},{"timestamp":"2026-07-23T12:20:15Z","commit_sha":"55058f7493552d2249823647eb4c7dd85c30e653","commit_message":"Merge pull request #18 from cypressru/pr-vi\n\nfeat: match video interface","measures":{"fuzzy_match_percent":0.37332353,"total_code":13039060,"matched_code":44636,"matched_code_percent":0.34232527,"total_data":7167794,"matched_data":2148,"matched_data_percent":0.029967379,"total_functions":39075,"matched_functions":276,"matched_functions_percent":0.706334,"complete_code":43076,"complete_code_percent":0.33036125,"complete_data":3264,"complete_data_percent":0.045537025,"total_units":4756,"complete_units":33}},{"timestamp":"2026-07-23T12:20:07Z","commit_sha":"26765247bda0cc185b26ba905352ab34cd87b890","commit_message":"Merge pull request #17 from cypressru/pr-ai\n\nfeat: match audio interface","measures":{"fuzzy_match_percent":0.31384072,"total_code":13039060,"matched_code":36880,"matched_code_percent":0.2828425,"total_data":7167794,"matched_data":1156,"matched_data_percent":0.016127696,"total_functions":39075,"matched_functions":255,"matched_functions_percent":0.65259117,"complete_code":35320,"complete_code_percent":0.27087843,"complete_data":1848,"complete_data_percent":0.025781993,"total_units":4755,"complete_units":32}},{"timestamp":"2026-07-23T12:19:59Z","commit_sha":"871c41ca132e23fa428a770a803ece30c6552de5","commit_message":"Merge pull request #16 from cypressru/pr-osaudiosystem\n\nfeat: match os audio system","measures":{"fuzzy_match_percent":0.29638547,"total_code":13039060,"matched_code":34604,"matched_code_percent":0.26538724,"total_data":7167794,"matched_data":1084,"matched_data_percent":0.015123203,"total_functions":39075,"matched_functions":236,"matched_functions_percent":0.6039667,"complete_code":33044,"complete_code_percent":0.25342318,"complete_data":1704,"complete_data_percent":0.023773003,"total_units":4757,"complete_units":31}},{"timestamp":"2026-07-23T12:19:52Z","commit_sha":"f898f44193ab9c1c39910d6458d713e0abd2c374","commit_message":"Merge pull request #6 from cypressru/pr-ar\n\nfeat: match ar","measures":{"fuzzy_match_percent":0.29132375,"total_code":13039060,"matched_code":33944,"matched_code_percent":0.26032552,"total_data":7167794,"matched_data":956,"matched_data_percent":0.013337437,"total_functions":39075,"matched_functions":234,"matched_functions_percent":0.5988484,"complete_code":32384,"complete_code_percent":0.24836147,"complete_data":1576,"complete_data_percent":0.021987239,"total_units":4758,"complete_units":30}},{"timestamp":"2026-07-23T12:19:45Z","commit_sha":"6a01e81a7138f3d6a9e9e6ed8d896279cbbeb3d9","commit_message":"Merge pull request #5 from cypressru/pr-arq\n\nfeat: match arq","measures":{"fuzzy_match_percent":0.23782296,"total_code":13039060,"matched_code":26968,"matched_code_percent":0.20682472,"total_data":7167794,"matched_data":844,"matched_data_percent":0.011774892,"total_functions":39075,"matched_functions":227,"matched_functions_percent":0.5809341,"complete_code":25408,"complete_code_percent":0.19486067,"complete_data":1464,"complete_data_percent":0.020424694,"total_units":4757,"complete_units":29}},{"timestamp":"2026-07-23T12:19:32Z","commit_sha":"0a5e83ad6b0d60f5fd87edb2f0310f0487b1ea0c","commit_message":"Merge pull request #21 from cypressru/pr-osmemory\n\nfeat: match os memory","measures":{"fuzzy_match_percent":0.23073657,"total_code":13039060,"matched_code":26044,"matched_code_percent":0.19973832,"total_data":7167794,"matched_data":724,"matched_data_percent":0.010100737,"total_functions":39075,"matched_functions":222,"matched_functions_percent":0.5681382,"complete_code":24484,"complete_code_percent":0.18777427,"complete_data":1344,"complete_data_percent":0.018750539,"total_units":4752,"complete_units":28}},{"timestamp":"2026-07-23T12:19:25Z","commit_sha":"86c34c006c79a6e0217b3462537909e2a76e368f","commit_message":"Merge pull request #20 from cypressru/pr-osalloc\n\nfeat: match os alloc","measures":{"fuzzy_match_percent":0.22515334,"total_code":13039060,"matched_code":25316,"matched_code_percent":0.1941551,"total_data":7167794,"matched_data":708,"matched_data_percent":0.009877516,"total_functions":39075,"matched_functions":216,"matched_functions_percent":0.55278313,"complete_code":23756,"complete_code_percent":0.18219104,"complete_data":1328,"complete_data_percent":0.018527318,"total_units":4749,"complete_units":27}},{"timestamp":"2026-07-23T12:19:17Z","commit_sha":"9b9c836cd56aede4b6df95699a81cb15e0a8a566","commit_message":"Merge pull request #11 from cypressru/pr-osreset\n\nfeat: match os reset","measures":{"fuzzy_match_percent":0.21914065,"total_code":13039060,"matched_code":24532,"matched_code_percent":0.1881424,"total_data":7167794,"matched_data":692,"matched_data_percent":0.009654295,"total_functions":39075,"matched_functions":210,"matched_functions_percent":0.537428,"complete_code":22972,"complete_code_percent":0.17617835,"complete_data":1304,"complete_data_percent":0.018192487,"total_units":4750,"complete_units":26}},{"timestamp":"2026-07-23T12:19:10Z","commit_sha":"725046951f70cc36ad4006fb4cb9d907b55b940d","commit_message":"Merge pull request #8 from cypressru/pr-osalarm\n\nfeat: match os alarm","measures":{"fuzzy_match_percent":0.21101122,"total_code":13039060,"matched_code":23472,"matched_code_percent":0.18001297,"total_data":7167794,"matched_data":676,"matched_data_percent":0.009431074,"total_functions":39075,"matched_functions":205,"matched_functions_percent":0.5246321,"complete_code":21912,"complete_code_percent":0.16804893,"complete_data":1288,"complete_data_percent":0.017969267,"total_units":4747,"complete_units":25}},{"timestamp":"2026-07-23T12:19:02Z","commit_sha":"12383b2afdde98d8bfa6a43f15b1d0768faebd48","commit_message":"Merge pull request #7 from cypressru/pr-sisamplingrate\n\nfeat: match si sampling rate","measures":{"fuzzy_match_percent":0.19797347,"total_code":13039060,"matched_code":21772,"matched_code_percent":0.16697523,"total_data":7167794,"matched_data":676,"matched_data_percent":0.009431074,"total_functions":39075,"matched_functions":200,"matched_functions_percent":0.51183623,"complete_code":20028,"complete_code_percent":0.15360002,"complete_data":1264,"complete_data_percent":0.017634436,"total_units":4747,"complete_units":24}},{"timestamp":"2026-07-23T12:18:55Z","commit_sha":"cd67b63fb8f35501bad66283cfcd1af0d2fa97a8","commit_message":"Merge pull request #15 from cypressru/pr-targimpl\n\nfeat: match trk target implementation","measures":{"fuzzy_match_percent":0.1959488,"total_code":13039060,"matched_code":21508,"matched_code_percent":0.16495055,"total_data":7167794,"matched_data":672,"matched_data_percent":0.0093752695,"total_functions":39075,"matched_functions":198,"matched_functions_percent":0.50671786,"complete_code":19764,"complete_code_percent":0.15157534,"complete_data":1108,"complete_data_percent":0.015458034,"total_units":4743,"complete_units":23}},{"timestamp":"2026-07-23T12:18:48Z","commit_sha":"772bbb7463f8403b3900e4b800640538ec2ed059","commit_message":"Merge pull request #19 from cypressru/pr-fix-wireless-id\n\nfix: export sram wireless id accessors","measures":{"fuzzy_match_percent":0.1959488,"total_code":13039060,"matched_code":21508,"matched_code_percent":0.16495055,"total_data":7167794,"matched_data":672,"matched_data_percent":0.0093752695,"total_functions":39075,"matched_functions":198,"matched_functions_percent":0.50671786,"complete_code":18320,"complete_code_percent":0.14050093,"complete_data":1096,"complete_data_percent":0.015290619,"total_units":4743,"complete_units":22}},{"timestamp":"2026-07-23T10:55:41Z","commit_sha":"67e98ff470ad57f47b5957a5290ec804ae333193","commit_message":"Merge pull request #3 from cypressru/match-osstopwatch\n\nfeat: match os stopwatch","measures":{"fuzzy_match_percent":0.14186513,"total_code":13039060,"matched_code":14456,"matched_code_percent":0.11086689,"total_data":7167794,"matched_data":432,"matched_data_percent":0.006026959,"total_functions":39075,"matched_functions":177,"matched_functions_percent":0.45297503,"complete_code":11268,"complete_code_percent":0.08641727,"complete_data":840,"complete_data_percent":0.011719086,"total_units":4735,"complete_units":20}},{"timestamp":"2026-07-22T19:14:29Z","commit_sha":"7bc334cae23f48cb106ecb3d4aac8621e4124713","commit_message":"chore: keep working notes in one ignored directory","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":432,"matched_data_percent":0.006026959,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T19:13:21Z","commit_sha":"562bae594a76fdb52f5475f8c64f21920fc7488f","commit_message":"fix: name the alarm reset callback","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":432,"matched_data_percent":0.006026959,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T19:11:27Z","commit_sha":"90abf6a9d8d1dba10478cc6382ffadacd74e7436","commit_message":"docs: correct the stale asm note","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T18:12:56Z","commit_sha":"a1efa6858f2ed910dd0cd56c144c49c6f836b32f","commit_message":"refactor: write the msl copy helpers in c","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T17:56:22Z","commit_sha":"84cb4e45e990dcec4f485e0bd4cb04f58eb572b9","commit_message":"chore: refuse extracted assembly rather than the extension","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T17:32:18Z","commit_sha":"7c45cf551d953481fee2a34f2a748e743856f8d7","commit_message":"docs: describe the process that actually exists","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T17:31:32Z","commit_sha":"8a02300fde038ea60891bd1b8c5963e4196d0fe8","commit_message":"style: add clang-format and enforce it in the hook","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T17:14:24Z","commit_sha":"efa5a08b520bad1670497e01ad1f886ff1c7eca3","commit_message":"refactor: share os types and prototypes in one header","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T17:12:37Z","commit_sha":"c1bac99ab7b45ca248c380ec5ce8447a9fe05c14","commit_message":"refactor: collect ppc register numbers in one header","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T17:02:34Z","commit_sha":"28f165aa7a487356cd5ee9b17992b81f355f2181","commit_message":"refactor: centralize bool and null in types.h","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T16:00:21Z","commit_sha":"b6772402887baf7026254ed8dc7d93a0dfc1558f","commit_message":"feat: match trk load context","measures":{"fuzzy_match_percent":0.11318208,"total_code":13039060,"matched_code":10716,"matched_code_percent":0.08218384,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":154,"matched_functions_percent":0.39411387,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T15:35:27Z","commit_sha":"a631bb95cf070820ebb3a8bbb3042c6d9f55e17c","commit_message":"feat: match trk extended register save and restore","measures":{"fuzzy_match_percent":0.11213907,"total_code":13039060,"matched_code":10580,"matched_code_percent":0.081140816,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":153,"matched_functions_percent":0.39155468,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T15:16:13Z","commit_sha":"904e4d50303493fd94a2ddd1d336daba1311dcb3","commit_message":"feat: match trk entry and target stubs","measures":{"fuzzy_match_percent":0.10539011,"total_code":13039060,"matched_code":9700,"matched_code_percent":0.074391864,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":151,"matched_functions_percent":0.38643634,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T14:54:49Z","commit_sha":"ee2ea691b55df2a80af497e05620f606ac676612","commit_message":"feat: match trk target init and entry point","measures":{"fuzzy_match_percent":0.10400964,"total_code":13039060,"matched_code":9520,"matched_code_percent":0.0730114,"total_data":7167794,"matched_data":416,"matched_data_percent":0.0058037383,"total_functions":39075,"matched_functions":146,"matched_functions_percent":0.37364042,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4733,"complete_units":17}},{"timestamp":"2026-07-22T14:24:57Z","commit_sha":"c0363bdb56e288be9581ee370641a31e44880d56","commit_message":"docs: add discord and point progress badges at the site","measures":{"fuzzy_match_percent":0.10210767,"total_code":13039060,"matched_code":9272,"matched_code_percent":0.07110942,"total_data":7167794,"matched_data":404,"matched_data_percent":0.005636323,"total_functions":39075,"matched_functions":141,"matched_functions_percent":0.36084455,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4731,"complete_units":17}},{"timestamp":"2026-07-22T14:14:35Z","commit_sha":"f864d7d2a76b70f69a3b4282beaea0576dc42337","commit_message":"docs: drop redundant discord line","measures":{"fuzzy_match_percent":0.10210767,"total_code":13039060,"matched_code":9272,"matched_code_percent":0.07110942,"total_data":7167794,"matched_data":404,"matched_data_percent":0.005636323,"total_functions":39075,"matched_functions":141,"matched_functions_percent":0.36084455,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4731,"complete_units":17}},{"timestamp":"2026-07-22T14:03:24Z","commit_sha":"7753894b0adfd4cab9c90d9aefd4e95f1bfd018c","commit_message":"docs: add discord link and fix badge wrapping","measures":{"fuzzy_match_percent":0.10210767,"total_code":13039060,"matched_code":9272,"matched_code_percent":0.07110942,"total_data":7167794,"matched_data":404,"matched_data_percent":0.005636323,"total_functions":39075,"matched_functions":141,"matched_functions_percent":0.36084455,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4731,"complete_units":17}},{"timestamp":"2026-07-22T13:07:32Z","commit_sha":"8ab65e664a123f2140cbd9904d9fdcfe79759b2d","commit_message":"ci: deploy pages only when docs change","measures":{"fuzzy_match_percent":0.10210767,"total_code":13039060,"matched_code":9272,"matched_code_percent":0.07110942,"total_data":7167794,"matched_data":404,"matched_data_percent":0.005636323,"total_functions":39075,"matched_functions":141,"matched_functions_percent":0.36084455,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4731,"complete_units":17}},{"timestamp":"2026-07-22T13:02:22Z","commit_sha":"95786e0051dfb6eb20e7734695dc06338b89e69e","commit_message":"feat: match trk event queue init","measures":{"fuzzy_match_percent":0.10210767,"total_code":13039060,"matched_code":9272,"matched_code_percent":0.07110942,"total_data":7167794,"matched_data":404,"matched_data_percent":0.005636323,"total_functions":39075,"matched_functions":141,"matched_functions_percent":0.36084455,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4731,"complete_units":17}},{"timestamp":"2026-07-22T12:42:16Z","commit_sha":"ae321559d90c0050c8b8ed5354b2d39f144e9350","commit_message":"feat: match trk nub teardown","measures":{"fuzzy_match_percent":0.100972615,"total_code":13039060,"matched_code":9124,"matched_code_percent":0.06997437,"total_data":7167794,"matched_data":404,"matched_data_percent":0.005636323,"total_functions":39075,"matched_functions":138,"matched_functions_percent":0.353167,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4730,"complete_units":17}},{"timestamp":"2026-07-22T12:09:49Z","commit_sha":"025264f1cdf4c97c812c0e9dc432bdcdcf75cac2","commit_message":"feat: match trk comm table entry points","measures":{"fuzzy_match_percent":0.10038975,"total_code":13039060,"matched_code":9048,"matched_code_percent":0.069391504,"total_data":7167794,"matched_data":404,"matched_data_percent":0.005636323,"total_functions":39075,"matched_functions":136,"matched_functions_percent":0.34804863,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4727,"complete_units":17}},{"timestamp":"2026-07-22T12:06:02Z","commit_sha":"423b17be54f84cc86c308665fea78a9758c5dd32","commit_message":"feat: match trk board support","measures":{"fuzzy_match_percent":0.0992547,"total_code":13039060,"matched_code":8900,"matched_code_percent":0.06825646,"total_data":7167794,"matched_data":404,"matched_data_percent":0.005636323,"total_functions":39075,"matched_functions":133,"matched_functions_percent":0.3403711,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4727,"complete_units":17}},{"timestamp":"2026-07-22T11:25:15Z","commit_sha":"00e435e32d78bdbd3ba1e600c654e23c04da7297","commit_message":"feat: match alarm init and decrementer handler","measures":{"fuzzy_match_percent":0.0977822,"total_code":13039060,"matched_code":8708,"matched_code_percent":0.06678396,"total_data":7167794,"matched_data":404,"matched_data_percent":0.005636323,"total_functions":39075,"matched_functions":128,"matched_functions_percent":0.32757518,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4725,"complete_units":17}},{"timestamp":"2026-07-21T19:39:52Z","commit_sha":"2f0941bfa8817622edddf75e8289d073550b0124","commit_message":"feat: match sram unlock and sync","measures":{"fuzzy_match_percent":0.096371055,"total_code":13039060,"matched_code":8524,"matched_code_percent":0.06537281,"total_data":7167794,"matched_data":396,"matched_data_percent":0.0055247126,"total_functions":39075,"matched_functions":125,"matched_functions_percent":0.31989765,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4722,"complete_units":17}},{"timestamp":"2026-07-21T19:20:47Z","commit_sha":"66f1b6cdde3e8df3c9e8763af5f5a96dab527ee1","commit_message":"feat: match os interrupt enable and handler table","measures":{"fuzzy_match_percent":0.09569616,"total_code":13039060,"matched_code":8436,"matched_code_percent":0.064697914,"total_data":7167794,"matched_data":312,"matched_data_percent":0.004352804,"total_functions":39075,"matched_functions":122,"matched_functions_percent":0.3122201,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547178,"total_units":4719,"complete_units":17}},{"timestamp":"2026-07-21T18:36:29Z","commit_sha":"6e0363503fe352b14457680732a513560b4ad0f8","commit_message":"feat: write exibios callback and interrupt paths","measures":{"fuzzy_match_percent":0.094745174,"total_code":13039060,"matched_code":8312,"matched_code_percent":0.06374693,"total_data":7167798,"matched_data":308,"matched_data_percent":0.004296996,"total_functions":39075,"matched_functions":117,"matched_functions_percent":0.2994242,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547172,"total_units":4717,"complete_units":17}},{"timestamp":"2026-07-21T16:09:16Z","commit_sha":"a7b7e6579bdfea1c2bf7aeedd97a73fcd8d1215e","commit_message":"feat: write dbwrite","measures":{"fuzzy_match_percent":0.09203087,"total_code":13039060,"matched_code":8312,"matched_code_percent":0.06374693,"total_data":7167798,"matched_data":308,"matched_data_percent":0.004296996,"total_functions":39075,"matched_functions":117,"matched_functions_percent":0.2994242,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547172,"total_units":4715,"complete_units":17}},{"timestamp":"2026-07-21T14:31:40Z","commit_sha":"7cf22d33c77cc7d13cc78d2374eaae0f275cc247","commit_message":"feat: write dbcomm block write","measures":{"fuzzy_match_percent":0.08799592,"total_code":13039060,"matched_code":8312,"matched_code_percent":0.06374693,"total_data":7167798,"matched_data":308,"matched_data_percent":0.004296996,"total_functions":39075,"matched_functions":117,"matched_functions_percent":0.2994242,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547172,"total_units":4715,"complete_units":17}},{"timestamp":"2026-07-21T14:05:00Z","commit_sha":"1785e97620b57d2c68ea5187ed729e75c225dea7","commit_message":"feat: write dbcomm block read","measures":{"fuzzy_match_percent":0.08691455,"total_code":13039060,"matched_code":8312,"matched_code_percent":0.06374693,"total_data":7167798,"matched_data":308,"matched_data_percent":0.004296996,"total_functions":39075,"matched_functions":117,"matched_functions_percent":0.2994242,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547172,"total_units":4715,"complete_units":17}},{"timestamp":"2026-07-21T13:10:28Z","commit_sha":"e804532ca42fbf565794359c02a18f6fe7d8e633","commit_message":"feat: write dbcomm read helpers","measures":{"fuzzy_match_percent":0.08137458,"total_code":13039060,"matched_code":8312,"matched_code_percent":0.06374693,"total_data":7167798,"matched_data":308,"matched_data_percent":0.004296996,"total_functions":39075,"matched_functions":117,"matched_functions_percent":0.2994242,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547172,"total_units":4715,"complete_units":17}},{"timestamp":"2026-07-21T12:23:34Z","commit_sha":"e57461e8482627d24d90fb914bb047ba19b1324b","commit_message":"feat: write dbcomm interrupt handlers","measures":{"fuzzy_match_percent":0.07718655,"total_code":13039060,"matched_code":8016,"matched_code_percent":0.061476823,"total_data":7167798,"matched_data":308,"matched_data_percent":0.004296996,"total_functions":39075,"matched_functions":115,"matched_functions_percent":0.29430583,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547172,"total_units":4715,"complete_units":17}},{"timestamp":"2026-07-21T01:46:24Z","commit_sha":"e275476e1d86af0dd523d8d017a849fda8ad7e81","commit_message":"feat: begin dbcomm","measures":{"fuzzy_match_percent":0.07629691,"total_code":13039060,"matched_code":7956,"matched_code_percent":0.06101667,"total_data":7167798,"matched_data":308,"matched_data_percent":0.004296996,"total_functions":39075,"matched_functions":114,"matched_functions_percent":0.29174665,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547172,"total_units":4715,"complete_units":17}},{"timestamp":"2026-07-21T01:11:30Z","commit_sha":"942631df26927a89a2f23a1b61d7300c64472868","commit_message":"feat: match dvderror","measures":{"fuzzy_match_percent":0.07479373,"total_code":13039060,"matched_code":7872,"matched_code_percent":0.06037245,"total_data":7167798,"matched_data":284,"matched_data_percent":0.003962165,"total_functions":39075,"matched_functions":113,"matched_functions_percent":0.28918746,"complete_code":7440,"complete_code_percent":0.05705933,"complete_data":756,"complete_data_percent":0.010547172,"total_units":4713,"complete_units":17}},{"timestamp":"2026-07-21T00:44:11Z","commit_sha":"e32274d90181189cadf127684bcfdaf3806a14ef","commit_message":"feat: add dvderror","measures":{"fuzzy_match_percent":0.073285654,"total_code":13039060,"matched_code":7464,"matched_code_percent":0.057243392,"total_data":7167798,"matched_data":284,"matched_data_percent":0.003962165,"total_functions":39075,"matched_functions":111,"matched_functions_percent":0.2840691,"complete_code":7032,"complete_code_percent":0.053930264,"complete_data":684,"complete_data_percent":0.009542679,"total_units":4713,"complete_units":16}},{"timestamp":"2026-07-21T00:17:00Z","commit_sha":"ec25d062eca1c7607de1b8d57a450d4cf606836a","commit_message":"chore: explain the assembly file rule in the hook","measures":{"fuzzy_match_percent":0.071664676,"total_code":13039060,"matched_code":7464,"matched_code_percent":0.057243392,"total_data":7167798,"matched_data":212,"matched_data_percent":0.0029576726,"total_functions":39075,"matched_functions":111,"matched_functions_percent":0.2840691,"complete_code":7032,"complete_code_percent":0.053930264,"complete_data":684,"complete_data_percent":0.009542679,"total_units":4711,"complete_units":16}},{"timestamp":"2026-07-21T00:10:01Z","commit_sha":"191e6328b0bf1283a6ac79e43bbadd0770e22e4d","commit_message":"feat: match dvdqueue","measures":{"fuzzy_match_percent":0.071664676,"total_code":13039060,"matched_code":7464,"matched_code_percent":0.057243392,"total_data":7167798,"matched_data":212,"matched_data_percent":0.0029576726,"total_functions":39075,"matched_functions":111,"matched_functions_percent":0.2840691,"complete_code":7032,"complete_code_percent":0.053930264,"complete_data":684,"complete_data_percent":0.009542679,"total_units":4711,"complete_units":16}},{"timestamp":"2026-07-20T23:59:36Z","commit_sha":"55285ed442e28ed84a75f2fbccd071367ffae65e","commit_message":"refactor: write ppc disable speculation in c","measures":{"fuzzy_match_percent":0.06779937,"total_code":13039060,"matched_code":6960,"matched_code_percent":0.05337808,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":106,"matched_functions_percent":0.2712732,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T23:45:49Z","commit_sha":"3b83a98d40efca886d7259158072f3556dee6302","commit_message":"refactor: write ppc disable speculation in c","measures":{"fuzzy_match_percent":0.06779937,"total_code":13039060,"matched_code":6960,"matched_code_percent":0.05337808,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":106,"matched_functions_percent":0.2712732,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T23:37:44Z","commit_sha":"57ad69c7fd23adfcf3b206001c5b30c90ac653bb","commit_message":"docs: forbid transcribed assembly for game code","measures":{"fuzzy_match_percent":0.06779937,"total_code":13039060,"matched_code":6960,"matched_code_percent":0.05337808,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":106,"matched_functions_percent":0.2712732,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T23:34:30Z","commit_sha":"06be870085d28c2cec1484d4842974b20410dbad","commit_message":"docs: update os.c status header","measures":{"fuzzy_match_percent":0.06779937,"total_code":13039060,"matched_code":6960,"matched_code_percent":0.05337808,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":106,"matched_functions_percent":0.2712732,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T23:32:21Z","commit_sha":"58a5b9f27f7c69701c001ed50f6faaa07cbe86cf","commit_message":"feat: close os.c clear arena","measures":{"fuzzy_match_percent":0.06779937,"total_code":13039060,"matched_code":6960,"matched_code_percent":0.05337808,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":106,"matched_functions_percent":0.2712732,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T23:30:13Z","commit_sha":"2f970c8cae52e1dd2816ce51f29cb8368264eb94","commit_message":"feat: match os.c console type","measures":{"fuzzy_match_percent":0.0677012,"total_code":13039060,"matched_code":6960,"matched_code_percent":0.05337808,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":106,"matched_functions_percent":0.2712732,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T23:19:07Z","commit_sha":"9746efb858647d44b9d502e369e3e8639485bae9","commit_message":"docs: note why init data is transcribed","measures":{"fuzzy_match_percent":0.067637086,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T23:13:39Z","commit_sha":"dadf727a7128baadeff6804fe079c56eb2059147","commit_message":"feat: add os.c exception init","measures":{"fuzzy_match_percent":0.067637086,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T22:52:14Z","commit_sha":"f3ec3458a603b1057e73797e996c8af5e2fbdb02","commit_message":"fix: block extracted assembly in pre-commit hook","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T22:45:45Z","commit_sha":"cc7d96efdf2747a730725ace3a2a6b30b255937b","commit_message":"docs: describe the inline assembly in the source","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T19:53:27Z","commit_sha":"0b37e132eb886091cb0cc892042ff86d4c9ff129","commit_message":"docs: add favicon and site identity metadata","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T18:54:16Z","commit_sha":"254b0d74f8229b895cfd34db7c844bec9199be8f","commit_message":"docs: add issue templates and split license notice","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T18:06:00Z","commit_sha":"99249d25321689d46d720ae83d164cfb86fa9adf","commit_message":"docs: add social preview image","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T17:38:51Z","commit_sha":"b041c1e0cb72992808612eb954b94fc30c9886bb","commit_message":"docs: improve page accessibility and image size","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T17:32:27Z","commit_sha":"cc20f2b35b273786d45c3e27a14551f951a01188","commit_message":"docs: link project page in readme","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T17:08:25Z","commit_sha":"0318b309053c1c9426a60c834065ff3906eafa71","commit_message":"docs: add sitemap","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T16:57:52Z","commit_sha":"8dcb14966592e7c1b6357d1ed62d9c14e8e2297d","commit_message":"docs: add search console verification tag","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T16:41:18Z","commit_sha":"b3e75bea234ff3f193cc993c9df504a361b4d7aa","commit_message":"docs: add github pages site","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T04:30:31Z","commit_sha":"28dd054066e40e3b21ef1b394ed70a53d62232ca","commit_message":"feat: add os.c osinit","measures":{"fuzzy_match_percent":0.06295577,"total_code":13039060,"matched_code":6920,"matched_code_percent":0.053071313,"total_data":7167798,"matched_data":180,"matched_data_percent":0.0025112315,"total_functions":39075,"matched_functions":105,"matched_functions_percent":0.268714,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T03:43:05Z","commit_sha":"d9b2927a779bc511ab7190e61ada482fbc875210","commit_message":"feat: add os.c clear arena","measures":{"fuzzy_match_percent":0.055151217,"total_code":13039060,"matched_code":6860,"matched_code_percent":0.052611157,"total_data":7167798,"matched_data":100,"matched_data_percent":0.0013951286,"total_functions":39075,"matched_functions":104,"matched_functions_percent":0.26615483,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4707,"complete_units":15}},{"timestamp":"2026-07-20T03:22:38Z","commit_sha":"95240c9ee286deada0e13b3c48fe195daf22f015","commit_message":"feat: add os.c console type and inquiry callback","measures":{"fuzzy_match_percent":0.05331059,"total_code":13039060,"matched_code":6860,"matched_code_percent":0.052611157,"total_data":7167798,"matched_data":100,"matched_data_percent":0.0013951286,"total_functions":39075,"matched_functions":104,"matched_functions_percent":0.26615483,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4707,"complete_units":15}},{"timestamp":"2026-07-20T02:55:08Z","commit_sha":"f23498ce62d73d848ae0e9967552a58e5577da8f","commit_message":"feat: add os.c exception vector and jump stub","measures":{"fuzzy_match_percent":0.052835096,"total_code":13039060,"matched_code":6860,"matched_code_percent":0.052611157,"total_data":7167798,"matched_data":100,"matched_data_percent":0.0013951286,"total_functions":39075,"matched_functions":104,"matched_functions_percent":0.26615483,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4707,"complete_units":15}},{"timestamp":"2026-07-20T02:17:52Z","commit_sha":"890d2954dac4d5395e7d49c423a2c96dc0cc05f7","commit_message":"fix: widen osexception split into os.c","measures":{"fuzzy_match_percent":0.051384073,"total_code":13039060,"matched_code":6700,"matched_code_percent":0.05138407,"total_data":7167798,"matched_data":96,"matched_data_percent":0.0013393235,"total_functions":39075,"matched_functions":102,"matched_functions_percent":0.26103646,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4708,"complete_units":15}},{"timestamp":"2026-07-20T01:51:15Z","commit_sha":"8f136e949d6c6a04f7d32b287e1189b4e372e970","commit_message":"feat: begin osexception","measures":{"fuzzy_match_percent":0.051384073,"total_code":13039060,"matched_code":6700,"matched_code_percent":0.05138407,"total_data":7167798,"matched_data":96,"matched_data_percent":0.0013393235,"total_functions":39075,"matched_functions":102,"matched_functions_percent":0.26103646,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4709,"complete_units":15}},{"timestamp":"2026-07-20T01:06:41Z","commit_sha":"c3b3e37ab92b7eeef42942e55561539c61359b66","commit_message":"feat: match osfpu","measures":{"fuzzy_match_percent":0.05006496,"total_code":13039060,"matched_code":6528,"matched_code_percent":0.050064955,"total_data":7167798,"matched_data":92,"matched_data_percent":0.0012835183,"total_functions":39075,"matched_functions":98,"matched_functions_percent":0.25079975,"complete_code":6528,"complete_code_percent":0.050064955,"complete_data":652,"complete_data_percent":0.009096239,"total_units":4706,"complete_units":15}},{"timestamp":"2026-07-20T00:02:52Z","commit_sha":"81f415f3e8fced9188880a4e0652ee5cb235757f","commit_message":"feat: match amcstubs","measures":{"fuzzy_match_percent":0.047794856,"total_code":13039060,"matched_code":6232,"matched_code_percent":0.047794856,"total_data":7167798,"matched_data":76,"matched_data_percent":0.0010602977,"total_functions":39075,"matched_functions":97,"matched_functions_percent":0.24824056,"complete_code":6232,"complete_code_percent":0.047794856,"complete_data":636,"complete_data_percent":0.0088730175,"total_units":4704,"complete_units":14}},{"timestamp":"2026-07-19T23:58:49Z","commit_sha":"e210d2b8f7741d2570d402989fe56530f2f92bac","commit_message":"docs: enable decomp.dev progress badges","measures":{"fuzzy_match_percent":0.047304023,"total_code":13039060,"matched_code":6168,"matched_code_percent":0.047304023,"total_data":7167798,"matched_data":76,"matched_data_percent":0.0010602977,"total_functions":39075,"matched_functions":86,"matched_functions_percent":0.22008957,"complete_code":6168,"complete_code_percent":0.047304023,"complete_data":636,"complete_data_percent":0.0088730175,"total_units":4702,"complete_units":13}},{"timestamp":"2026-07-19T23:49:29Z","commit_sha":"c7a51dd77a36624fbe31166dbde35c7ab5c81ac3","commit_message":"docs: use real objdiff screenshot","measures":{"fuzzy_match_percent":0.047304023,"total_code":13039060,"matched_code":6168,"matched_code_percent":0.047304023,"total_data":7167798,"matched_data":76,"matched_data_percent":0.0010602977,"total_functions":39075,"matched_functions":86,"matched_functions_percent":0.22008957,"complete_code":6168,"complete_code_percent":0.047304023,"complete_data":636,"complete_data_percent":0.0088730175,"total_units":4702,"complete_units":13}},{"timestamp":"2026-07-19T23:37:06Z","commit_sha":"151e5c7a4ce25248c1cacbca7b99d71a1de0c0ad","commit_message":"chore: add pre-commit hook blocking game data","measures":{"fuzzy_match_percent":0.047304023,"total_code":13039060,"matched_code":6168,"matched_code_percent":0.047304023,"total_data":7167798,"matched_data":76,"matched_data_percent":0.0010602977,"total_functions":39075,"matched_functions":86,"matched_functions_percent":0.22008957,"complete_code":6168,"complete_code_percent":0.047304023,"complete_data":636,"complete_data_percent":0.0088730175,"total_units":4702,"complete_units":13}},{"timestamp":"2026-07-19T23:24:33Z","commit_sha":"3e6dbe219fb188b78e65cecfc1a48a08ae6d62f7","commit_message":"chore: drop empty game progress category","measures":{"fuzzy_match_percent":0.047304023,"total_code":13039060,"matched_code":6168,"matched_code_percent":0.047304023,"total_data":7167798,"matched_data":76,"matched_data_percent":0.0010602977,"total_functions":39075,"matched_functions":86,"matched_functions_percent":0.22008957,"complete_code":6168,"complete_code_percent":0.047304023,"complete_data":636,"complete_data_percent":0.0088730175,"total_units":4702,"complete_units":13}},{"timestamp":"2026-07-19T23:13:10Z","commit_sha":"4b005a23b79af4b542c4881154d3fff223717e0b","commit_message":"chore: drop unneeded common off flag","measures":{"fuzzy_match_percent":0.047304023,"total_code":13039060,"matched_code":6168,"matched_code_percent":0.047304023,"total_data":7167798,"matched_data":76,"matched_data_percent":0.0010602977,"total_functions":39075,"matched_functions":86,"matched_functions_percent":0.22008957,"complete_code":6168,"complete_code_percent":0.047304023,"complete_data":636,"complete_data_percent":0.0088730175,"total_units":4702,"complete_units":13}},{"timestamp":"2026-07-19T22:36:40Z","commit_sha":"1af1a7ccec09b7ed80a5b5cffbb7eb8cf02f6e6c","commit_message":"feat: match dolphin db","measures":{"fuzzy_match_percent":0.047304023,"total_code":13039060,"matched_code":6168,"matched_code_percent":0.047304023,"total_data":7167798,"matched_data":76,"matched_data_percent":0.0010602977,"total_functions":39075,"matched_functions":86,"matched_functions_percent":0.22008957,"complete_code":6168,"complete_code_percent":0.047304023,"complete_data":636,"complete_data_percent":0.0088730175,"total_units":4702,"complete_units":13}},{"timestamp":"2026-07-19T22:03:47Z","commit_sha":"43f6a2058146c1d9784d2901d8b143abeee490a9","commit_message":"feat: match ostime","measures":{"fuzzy_match_percent":0.045494076,"total_code":13039060,"matched_code":5932,"matched_code_percent":0.045494076,"total_data":7167798,"matched_data":44,"matched_data_percent":0.0006138566,"total_functions":39075,"matched_functions":81,"matched_functions_percent":0.20729366,"complete_code":5932,"complete_code_percent":0.045494076,"complete_data":604,"complete_data_percent":0.008426577,"total_units":4699,"complete_units":12}},{"timestamp":"2026-07-19T21:18:15Z","commit_sha":"e6af3e2f5879d6fc762e92240fe625158bbc08e4","commit_message":"feat: match ppc eabi init","measures":{"fuzzy_match_percent":0.044481736,"total_code":13039060,"matched_code":5800,"matched_code_percent":0.044481732,"total_data":7167798,"matched_data":44,"matched_data_percent":0.0006138566,"total_functions":39075,"matched_functions":78,"matched_functions_percent":0.19961612,"complete_code":5800,"complete_code_percent":0.044481732,"complete_data":604,"complete_data_percent":0.008426577,"total_units":4697,"complete_units":11}},{"timestamp":"2026-07-19T20:16:36Z","commit_sha":"516d974927e1bb2d655f8258437d88229235d2ae","commit_message":"feat: match oscache","measures":{"fuzzy_match_percent":0.043346684,"total_code":13039060,"matched_code":5652,"matched_code_percent":0.043346684,"total_data":7167798,"matched_data":44,"matched_data_percent":0.0006138566,"total_functions":39075,"matched_functions":75,"matched_functions_percent":0.19193858,"complete_code":5652,"complete_code_percent":0.043346684,"complete_data":604,"complete_data_percent":0.008426577,"total_units":4695,"complete_units":10}},{"timestamp":"2026-07-19T19:42:27Z","commit_sha":"b964f76895d6717fd655bae5232301fa54cfd337","commit_message":"feat: match ppcarch","measures":{"fuzzy_match_percent":0.035063878,"total_code":13039060,"matched_code":4572,"matched_code_percent":0.035063878,"total_data":7167798,"matched_data":44,"matched_data_percent":0.0006138566,"total_functions":39075,"matched_functions":63,"matched_functions_percent":0.1612284,"complete_code":4572,"complete_code_percent":0.035063878,"complete_data":44,"complete_data_percent":0.0006138566,"total_units":4693,"complete_units":9}},{"timestamp":"2026-07-19T19:17:05Z","commit_sha":"582e9626bf9483688821ac8b72fbd42e32888391","commit_message":"feat: match osarena","measures":{"fuzzy_match_percent":0.03294716,"total_code":13039060,"matched_code":4296,"matched_code_percent":0.03294716,"total_data":7167798,"matched_data":44,"matched_data_percent":0.0006138566,"total_functions":39075,"matched_functions":41,"matched_functions_percent":0.10492642,"complete_code":4296,"complete_code_percent":0.03294716,"complete_data":44,"complete_data_percent":0.0006138566,"total_units":4691,"complete_units":8}},{"timestamp":"2026-07-19T18:33:31Z","commit_sha":"9147d8a9c77646d2903a93daa55bc35afc8e68d9","commit_message":"feat: match dolphin start","measures":{"fuzzy_match_percent":0.032701746,"total_code":13039060,"matched_code":4264,"matched_code_percent":0.032701746,"total_data":7167798,"matched_data":36,"matched_data_percent":0.0005022463,"total_functions":39075,"matched_functions":37,"matched_functions_percent":0.0946897,"complete_code":4264,"complete_code_percent":0.032701746,"complete_data":36,"complete_data_percent":0.0005022463,"total_units":4687,"complete_units":7}},{"timestamp":"2026-07-19T18:08:08Z","commit_sha":"384ff55db58c876e0b89700b0f0e258876075130","commit_message":"feat: match msl mem","measures":{"fuzzy_match_percent":0.026136853,"total_code":13039060,"matched_code":3408,"matched_code_percent":0.026136853,"total_data":7167798,"matched_data":32,"matched_data_percent":0.00044644118,"total_functions":39075,"matched_functions":29,"matched_functions_percent":0.074216254,"complete_code":3408,"complete_code_percent":0.026136853,"complete_data":32,"complete_data_percent":0.00044644118,"total_units":4686,"complete_units":6}},{"timestamp":"2026-07-19T17:48:04Z","commit_sha":"bc71aca87ac8400813607f91962e275154008bd9","commit_message":"chore: split and name msl mem functions","measures":{"fuzzy_match_percent":0.017669985,"total_code":13039060,"matched_code":2304,"matched_code_percent":0.017669987,"total_data":7167798,"matched_data":32,"matched_data_percent":0.00044644118,"total_functions":39075,"matched_functions":21,"matched_functions_percent":0.0537428,"complete_code":2304,"complete_code_percent":0.017669987,"complete_data":32,"complete_data_percent":0.00044644118,"total_units":4686,"complete_units":5}},{"timestamp":"2026-07-19T16:56:38Z","commit_sha":"ac9b3fc9846f3fa723cdba4b5b1456318da9a381","commit_message":"feat: match __mem","measures":{"fuzzy_match_percent":0.017669985,"total_code":13039060,"matched_code":2304,"matched_code_percent":0.017669987,"total_data":7167798,"matched_data":32,"matched_data_percent":0.00044644118,"total_functions":39075,"matched_functions":21,"matched_functions_percent":0.0537428,"complete_code":2304,"complete_code_percent":0.017669987,"complete_data":32,"complete_data_percent":0.00044644118,"total_units":4684,"complete_units":5}},{"timestamp":"2026-07-19T16:12:35Z","commit_sha":"6687f96d65daaee19bad2a0b91b04f24a1bcb82d","commit_message":"feat: match runtime asm helpers","measures":{"fuzzy_match_percent":0.015277175,"total_code":13039060,"matched_code":1992,"matched_code_percent":0.015277175,"total_data":7167798,"matched_data":32,"matched_data_percent":0.00044644118,"total_functions":39075,"matched_functions":18,"matched_functions_percent":0.04606526,"complete_code":1992,"complete_code_percent":0.015277175,"complete_data":32,"complete_data_percent":0.00044644118,"total_units":4683,"complete_units":4}},{"timestamp":"2026-07-19T15:18:44Z","commit_sha":"57f8c371abd1f4f5018c2d5e366d640808364405","commit_message":"feat: match __va_arg","measures":{"fuzzy_match_percent":0.003221091,"total_code":13039060,"matched_code":420,"matched_code_percent":0.003221091,"total_data":7167798,"matched_data":32,"matched_data_percent":0.00044644118,"total_functions":39075,"matched_functions":6,"matched_functions_percent":0.015355086,"complete_code":420,"complete_code_percent":0.003221091,"complete_data":32,"complete_data_percent":0.00044644118,"total_units":4682,"complete_units":3}},{"timestamp":"2026-07-19T14:31:32Z","commit_sha":"8c4a4b57531ec0375e8c7af0c0d33c32e15fc5c6","commit_message":"docs: disclose ai assistance","measures":{"fuzzy_match_percent":0.0016872382,"total_code":13039060,"matched_code":220,"matched_code_percent":0.0016872382,"total_data":7167798,"matched_data":32,"matched_data_percent":0.00044644118,"total_functions":39075,"matched_functions":5,"matched_functions_percent":0.012795905,"complete_code":220,"complete_code_percent":0.0016872382,"complete_data":32,"complete_data_percent":0.00044644118,"total_units":4681,"complete_units":2}},{"timestamp":"2026-07-19T14:20:20Z","commit_sha":"f97bbb202ce051d40021706aff43fd7632ffed84","commit_message":"feat: match global_destructor_chain","measures":{"fuzzy_match_percent":0.0016872382,"total_code":13039060,"matched_code":220,"matched_code_percent":0.0016872382,"total_data":7167798,"matched_data":32,"matched_data_percent":0.00044644118,"total_functions":39075,"matched_functions":5,"matched_functions_percent":0.012795905,"complete_code":220,"complete_code_percent":0.0016872382,"complete_data":32,"complete_data_percent":0.00044644118,"total_units":4681,"complete_units":2}},{"timestamp":"2026-07-19T14:09:31Z","commit_sha":"645f3611b05e4515c6317891b27f3077ab617b59","commit_message":"feat: match __init_cpp_exceptions","measures":{"fuzzy_match_percent":0.0009509888,"total_code":13039060,"matched_code":124,"matched_code_percent":0.00095098873,"total_data":7167798,"matched_data":20,"matched_data_percent":0.00027902573,"total_functions":39075,"matched_functions":3,"matched_functions_percent":0.007677543,"complete_code":124,"complete_code_percent":0.00095098873,"complete_data":20,"complete_data_percent":0.00027902573,"total_units":4681,"complete_units":1}},{"timestamp":"2026-07-19T14:00:54Z","commit_sha":"65d2259e0948aca75a92a72dcf6ff8a76fb58027","commit_message":"docs: add build status badge","measures":{"fuzzy_match_percent":0,"total_code":13039060,"matched_code":0,"matched_code_percent":0,"total_data":7167798,"matched_data":0,"matched_data_percent":0,"total_functions":39075,"matched_functions":0,"matched_functions_percent":0,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":4680,"complete_units":0}},{"timestamp":"2026-07-19T13:44:06Z","commit_sha":"bbd5ea3b9aee1689a315e93b61aa5941f43d0f2a","commit_message":"ci: add build workflow","measures":{"fuzzy_match_percent":0,"total_code":13039060,"matched_code":0,"matched_code_percent":0,"total_data":7167798,"matched_data":0,"matched_data_percent":0,"total_functions":39075,"matched_functions":0,"matched_functions_percent":0,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":4680,"complete_units":0}}]