[{"timestamp":"2026-09-30T22:37:26Z","commit_sha":"a8bf4d79e74f9e39092aa96e2a1acc9003ef3f7e","commit_message":"Update the build\n\nAlso updated: ROADMAP.md, CONTRIBUTING.md, tools/lint_c.py.","measures":{"fuzzy_match_percent":2.9032,"total_code":510776,"matched_code":9912,"matched_code_percent":1.9406,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":231,"matched_functions_percent":11.3962,"complete_code":9912,"complete_code_percent":1.9406,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T21:53:51Z","commit_sha":"77b77f5503517de6c6d0be6f5fed8580e4e54430","commit_message":"Match 19 functions in game_00, game_memcard\n\nMatched (19): func_0012C840, func_0012CA30, func_0012CA60,\n  func_0012E820, func_0012E850, func_0012E870, func_0012E920,\n  func_0012E950, func_0012E970, func_0013BD20, func_00142E30,\n  func_00142E40, func_00142E50, func_00145140, func_00145150,\n  func_00145A70, func_00145A80, func_00146E90, func_00147F50\nAlso updated: CONTRIBUTING.md.\n\nCo-Authored-By: Claude <noreply@anthropic.com>","measures":{"fuzzy_match_percent":2.9032,"total_code":510776,"matched_code":9912,"matched_code_percent":1.9406,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":231,"matched_functions_percent":11.3962,"complete_code":9912,"complete_code_percent":1.9406,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T21:03:10Z","commit_sha":"46c4853ccd28c0f0fb3d0127f20a12d7474f82ed","commit_message":"Update README","measures":{"fuzzy_match_percent":2.7865,"total_code":510776,"matched_code":9372,"matched_code_percent":1.8349,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":212,"matched_functions_percent":10.4588,"complete_code":9372,"complete_code_percent":1.8349,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T20:56:53Z","commit_sha":"4e1006e404e00c55a334de6843310f0ee7365f6a","commit_message":"Update CONTRIBUTING.md, tools/lint_c.py\n\nUpdated: CONTRIBUTING.md, tools/lint_c.py. Also updated: ROADMAP.md.","measures":{"fuzzy_match_percent":2.7865,"total_code":510776,"matched_code":9372,"matched_code_percent":1.8349,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":212,"matched_functions_percent":10.4588,"complete_code":9372,"complete_code_percent":1.8349,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T20:20:48Z","commit_sha":"12dbbec728aabcb90fe34480e2e6329776daa835","commit_message":"game_00: Match 32 functions\n\nMatched (32): func_0012C810, func_0012E8A0, func_0012E8E0,\n  func_0012E9A0, func_0012E9C0, func_0012E9E0, func_0012EA50,\n  func_0012EE90, func_00131390, func_001313A0, func_00131420,\n  func_00131430, func_00131440, func_001314C0, func_001314D0,\n  func_001314E0, func_00131560, func_00131570, func_00131580,\n  func_00131620, func_00131730, func_00131800, func_0013BAE0,\n  func_0013BAF0, func_0013BB00, func_0013BB10, func_0013DBE0,\n  func_0013E620, func_0013E6A0, func_0013E6B0, func_001401F0,\n  func_00142A70\nAlso updated: CONTRIBUTING.md.\n\nCo-Authored-By: Claude <noreply@anthropic.com>","measures":{"fuzzy_match_percent":2.7865,"total_code":510776,"matched_code":9372,"matched_code_percent":1.8349,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":212,"matched_functions_percent":10.4588,"complete_code":9372,"complete_code_percent":1.8349,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T19:14:19Z","commit_sha":"5aca3c9bb49344bd5eadb0d4b96c1ba838a396c3","commit_message":"Clean up 1 matched function file\n\nFiles: game_01/unit_00152040.c\n\nCo-Authored-By: Claude <noreply@anthropic.com>","measures":{"fuzzy_match_percent":2.673,"total_code":510776,"matched_code":8864,"matched_code_percent":1.7354,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":180,"matched_functions_percent":8.8801,"complete_code":8864,"complete_code_percent":1.7354,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T18:41:59Z","commit_sha":"4cc45f23e6c4390f9b7214a59155381304c41588","commit_message":"Update tools/lint_c.py\n\nUpdated: tools/lint_c.py. Also updated: ROADMAP.md.","measures":{"fuzzy_match_percent":2.673,"total_code":510776,"matched_code":8864,"matched_code_percent":1.7354,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":180,"matched_functions_percent":8.8801,"complete_code":8864,"complete_code_percent":1.7354,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T17:36:28Z","commit_sha":"598b0ab69ea1b2f740e87ffa6cc657c77138fe58","commit_message":"Update the build\n\nAlso updated: ROADMAP.md, tools/lint_c.py.","measures":{"fuzzy_match_percent":2.673,"total_code":510776,"matched_code":8864,"matched_code_percent":1.7354,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":180,"matched_functions_percent":8.8801,"complete_code":8864,"complete_code_percent":1.7354,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T16:55:13Z","commit_sha":"d30517d8d7a517c59d3b58119acd7fba42e7d372","commit_message":"Update the build\n\nAlso updated: ROADMAP.md, CONTRIBUTING.md.","measures":{"fuzzy_match_percent":2.673,"total_code":510776,"matched_code":8864,"matched_code_percent":1.7354,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":180,"matched_functions_percent":8.8801,"complete_code":8864,"complete_code_percent":1.7354,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T15:52:47Z","commit_sha":"0cc20a222e1bb47b5915cd969c97735fae40abd2","commit_message":"Update README","measures":{"fuzzy_match_percent":2.673,"total_code":510776,"matched_code":8864,"matched_code_percent":1.7354,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":180,"matched_functions_percent":8.8801,"complete_code":8864,"complete_code_percent":1.7354,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T15:28:46Z","commit_sha":"64b82aef7d2dfd0fdeebc58417720f4c3ed9a994","commit_message":"Update CONTRIBUTING.md, tools/lint_c.py\n\nUpdated: CONTRIBUTING.md, tools/lint_c.py. Also updated: ROADMAP.md.","measures":{"fuzzy_match_percent":2.673,"total_code":510776,"matched_code":8864,"matched_code_percent":1.7354,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":180,"matched_functions_percent":8.8801,"complete_code":8864,"complete_code_percent":1.7354,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T15:04:43Z","commit_sha":"bb1368cf8415f8d28a866905ee77ff283dac29ab","commit_message":"Match 33 functions in game_00, game_01\n\nMatched (33): func_00121880, func_00122460, func_00122480,\n  func_00122490, func_00128B40, func_0012B490, func_0012BA70,\n  func_0012BA80, func_0012BA90, func_0012BAA0, func_0012C660,\n  func_0012C670, func_0012C680, func_0012C690, func_0012EA00,\n  func_0012EA20, func_0012EDF0, func_0012EE10, func_0012EE30,\n  func_0012EE50, func_0012EE70, func_001312F0, func_00131300,\n  func_00131310, func_00131320, func_00131330, func_00131340,\n  func_00131350, func_00131360, func_00131370, func_00131380,\n  func_00140F10, func_0015AD30\n\nCo-Authored-By: Claude <noreply@anthropic.com>","measures":{"fuzzy_match_percent":2.673,"total_code":510776,"matched_code":8864,"matched_code_percent":1.7354,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":180,"matched_functions_percent":8.8801,"complete_code":8864,"complete_code_percent":1.7354,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-30T00:50:40Z","commit_sha":"ad89ece974f50b1dd07f7928a820dc5deaf71fe7","commit_message":"Update README","measures":{"fuzzy_match_percent":2.5015,"total_code":510776,"matched_code":8172,"matched_code_percent":1.5999,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":147,"matched_functions_percent":7.2521,"complete_code":8172,"complete_code_percent":1.5999,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-29T23:49:32Z","commit_sha":"fed8f628504a3fdcfd8963c5e4343a17dd58aee3","commit_message":"Match 4 functions in game_00, game_01\n\nMatched (4): func_00120340, func_00176F80, func_00178B10, func_0017A220\n\nCo-Authored-By: Claude <noreply@anthropic.com>","measures":{"fuzzy_match_percent":2.5015,"total_code":510776,"matched_code":8172,"matched_code_percent":1.5999,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":147,"matched_functions_percent":7.2521,"complete_code":8172,"complete_code_percent":1.5999,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-29T00:08:10Z","commit_sha":"a28b87467d0539d0952dd7b80d76cfda2e41a913","commit_message":"Move 14 matched functions into 2 translation units\n\nUnits (2): game_01/unit_0014DF80.c, game_01/unit_0016D830.c\nHeaders: common.h, game_01/node90.h, game_01/obj168.h\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nAssisted-by: deepseek:deepseek-flash (MatchRunner)\nAssisted-by: deepseek:deepseek-v4-pro (MatchRunner)","measures":{"fuzzy_match_percent":2.4727,"total_code":510776,"matched_code":7836,"matched_code_percent":1.5341,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":143,"matched_functions_percent":7.0548,"complete_code":7836,"complete_code_percent":1.5341,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-28T23:52:34Z","commit_sha":"9ed748f24655dae703aeb5f382017250ca2c5e18","commit_message":"Name 407 symbols from evidence\n\nNamed: func_00100008 -> entry, func_001000F0 -> mwOverlayInit,\n  func_00100170 -> mwBload, func_00100210 -> mwLoadOverlay,\n  func_00100260 -> __destroy_new_array, func_00100300 -> __destroy_arr,\n  func_00100370 -> __construct_array,\n  func_001004A0 -> __construct_new_array,\n  func_00100710 -> default_new_handler__3stdFv,\n  func_00100810 -> __nw__FUi, func_001008D0 -> __throw_catch_compare,\n  func_00100BF0 -> __initialize_cpp_rts,\n  func_00100C50 -> __DecodeUnsignedNumber__FPcPUi,\n  func_00100CF0 -> __DecodeSignedNumber__FPcPi,\n  func_00100D90 -> __end__catch,\n  func_00100DD0 -> __ThrowHandler__FP12ThrowContext,\n  func_00100F70 -> FindExceptionHandler__FP12ThrowContextP13ExceptionInfoPl,\n  func_00101250 -> __unexpected,\n  func_001014A0 -> FindMostRecentException__FP12ThrowContextP13ExceptionInfo,\n  func_001015D0 -> UnwindStack__FP12ThrowContextP13ExceptionInfoPc,\n  func_00101E00 -> NextAction__FP14ActionIterator,\n  func_001020F0 -> FindExceptionRecord__FPcP13ExceptionInfo,\n  func_001022B0 -> __TransferControl__FP12ThrowContextP13ExceptionInfoPc,\n  func_00102320 -> __throw, func_001023A0 -> __SkipUnwindInfo__FPc,\n  func_00102410 -> __SetupFrameInfo__FP12ThrowContextP13ExceptionInfo,\n  func_001024C0 -> __PopStackFrame__FP12ThrowContextP13ExceptionInfo,\n  func_00102628 -> sceGsResetGraph, func_00102748 -> sceGsResetPath,\n  func_001027B0 -> sceGsSetDefDispEnv,\n  func_00102A20 -> sceGsPutDispEnv, func_00102AE0 -> sceGszbufaddr,\n  func_00102BA8 -> sceGsSetDefDrawEnv,\n  func_00102D90 -> sceGsSetDefClear, func_00102E98 -> sceGsPutDrawEnv,\n  func_00102F80 -> sceGsSetDefDBuff, func_00103218 -> sceGsSwapDBuff,\n  func_00103278 -> sceGsSyncV, func_00103310 -> sceGsSyncPath,\n  func_00103628 -> memclr, func_00103660 -> sceDmaGetChan,\n  func_00103688 -> sceDmaReset, func_00103778 -> sceDmaPutEnv,\n  func_00103950 -> sceDmaGetEnv, func_00103988 -> sceDmaPutStallAddr,\n  func_001039B0 -> sceDmaSend, func_00103A88 -> sceDmaSendN,\n  func_00103B70 -> sceDmaSendI, func_00103C58 -> sceDmaRecv,\n  func_00103D20 -> sceDmaRecvN, func_00103E10 -> sceDmaRecvI,\n  func_00103F00 -> sceDmaSync, func_00103FC8 -> sceDmaWatch,\n  func_001040D8 -> sceVu0ApplyMatrix, func_00104108 -> sceVu0MulMatrix,\n  func_00104170 -> sceVu0InnerProduct,\n  func_00104198 -> sceVu0Normalize,\n  func_001041D0 -> sceVu0TransposeMatrix,\n  func_00104218 -> sceVu0InversMatrix,\n  func_00104288 -> sceVu0DivVector,\n  func_001042A8 -> sceVu0DivVectorXYZ,\n  func_001042C8 -> sceVu0InterVector,\n  func_00104350 -> sceVu0TransMatrix,\n  func_00104390 -> sceVu0CopyMatrix, func_001043F8 -> sceVu0UnitMatrix,\n  func_00104420 -> _sceVu0ecossin, func_00104498 -> sceVu0RotMatrixZ,\n  func_00104540 -> sceVu0RotMatrixX, func_001045E8 -> sceVu0RotMatrixY,\n  func_00104690 -> sceVu0RotMatrix, func_001046E0 -> sceVu0ClampVector,\n  func_00104708 -> sceVu0CameraMatrix,\n  func_001047B8 -> sceVu0NormalLightMatrix,\n  func_00104878 -> sceVu0LightColorMatrix,\n  func_001048E0 -> sceVu0ViewScreenMatrix,\n  func_001049E8 -> sceVu0DropShadowMatrix,\n  func_00104B78 -> sceVu0RotTransPersN,\n  func_00104BD0 -> sceVu0RotTransPers,\n  func_00104C38 -> sceVu0InterVectorXYZ,\n  func_00104C80 -> sceVu0ClipScreen,\n  func_00104CC8 -> sceVu0ClipScreen3, func_00104D28 -> sceVu0ClipAll,\n  func_00104DB8 -> sceVpu0Reset, func_001056E0 -> VSync,\n  func_00105720 -> VSync2, func_00105780 -> write,\n  func_00105800 -> read, func_001058B8 -> sbrk, func_00105990 -> kill,\n  func_00105A08 -> _sceSDC, func_00105B48 -> _sceIDC,\n  func_00105EC8 -> kCopy, func_00105F10 -> InitAlarm,\n  func_00106198 -> iWakeupThread,\n  func_00106230 -> iRotateThreadReadyQueue,\n  func_001062B0 -> iSuspendThread, func_00106348 -> sceDeci2Open,\n  func_00106390 -> sceDeci2Close, func_001063B8 -> sceDeci2ReqSend,\n  func_001063E8 -> sceDeci2Poll, func_00106410 -> sceDeci2ExRecv,\n  func_00106448 -> sceDeci2ExSend, func_00106480 -> sceDeci2ExReqSend,\n  func_001064B0 -> sceDeci2ExLock, func_001064D8 -> sceDeci2ExUnLock,\n  func_00106500 -> kputs, func_00106550 -> QueuePeekWriteDone,\n  func_00106590 -> QueuePeekReadDone, func_001065D0 -> sceTtyHandler,\n  func_00106768 -> sceTtyWrite, func_001068B8 -> sceTtyRead,\n  func_00106988 -> sceTtyInit, func_00106A48 -> kputchar,\n  func_00106A80 -> deci2Putchar, func_00106B30 -> serialPutchar,\n  func_00106B68 -> ftoi, func_00106BF8 -> printfloat,\n  func_00106D60 -> _printf, func_00107328 -> kprintf,\n  func_00107360 -> scePrintf, func_00107438 -> sceSifInitCmd,\n  func_001076B8 -> sceSifExitCmd, func_00107720 -> sceSifAddCmdHandler,\n  func_00107750 -> sceSifRemoveCmdHandler,\n  func_00107778 -> _sceSifSendCmd, func_001078B0 -> sceSifSendCmd,\n  func_001078F0 -> isceSifSendCmd, func_00107930 -> _sceSifCmdIntrHdlr,\n  func_00107B08 -> sceSifInitRpc, func_00107D98 -> _sceRpcGetFPacket,\n  func_00107DC8 -> _sceRpcGetFPacket2, func_00107E08 -> _request_end,\n  func_00107EC0 -> _request_rdata, func_00107F20 -> sceSifGetOtherData,\n  func_00108078 -> _search_svdata, func_001080C8 -> _request_bind,\n  func_00108178 -> sceSifBindRpc, func_001082B8 -> _request_call,\n  func_00108348 -> sceSifCallRpc, func_00108538 -> sceSifCheckStatRpc,\n  func_00108578 -> sceSifSetRpcQueue,\n  func_00108610 -> sceSifRegisterRpc, func_001086E0 -> sceSifRemoveRpc,\n  func_00108778 -> sceSifRemoveRpcQueue,\n  func_00108808 -> sceSifGetNextRequest,\n  func_00108860 -> sceSifExecRequest, func_00108A28 -> sceSifRpcLoop,\n  func_00108A68 -> _sceFsIobSemaMK, func_00108AC8 -> new_iob,\n  func_00108B50 -> get_iob, func_00108BC0 -> _sceFs_Rcv_Intr,\n  func_00108F78 -> _sceFsSemInit, func_00108FC8 -> _sceFsWaitS,\n  func_00109008 -> sceFsInit, func_00109238 -> sceFsReset,\n  func_00109270 -> sceOpen, func_001094F8 -> sceClose,\n  func_00109678 -> sceLseek, func_001098B0 -> sceRead,\n  func_00109B20 -> sceWrite, func_00109DE0 -> sceIoctl,\n  func_0010A130 -> sceIoctl2, func_0010A308 -> _sceCallCode,\n  func_0010A4D0 -> sceMkdir, func_0010A6A0 -> sceFormat,\n  func_0010A910 -> sceAddDrv, func_0010AA50 -> sceDopen,\n  func_0010AAF0 -> sceDclose, func_0010AC58 -> sceDread,\n  func_0010ADB0 -> sceGetstat, func_0010AF50 -> sceChstat,\n  func_0010B190 -> sceRename, func_0010B3A0 -> sceSync,\n  func_0010B538 -> sceMount, func_0010B7C8 -> sceLseek64,\n  func_0010BA00 -> sceDevctl, func_0010BC30 -> sceSymlink,\n  func_0010BE10 -> sceReadlink, func_0010BFD8 -> _lf_bind,\n  func_0010C168 -> sceSifLoadFileReset,\n  func_0010C1A0 -> _sceSifLoadModuleBuffer,\n  func_0010C3E8 -> _sceSifLoadModule,\n  func_0010C650 -> _sceSifLoadElfPart, func_0010C778 -> sceSifLoadElf,\n  func_0010C7A0 -> sceSifGetIopAddr, func_0010C890 -> sceSifSetIopAddr,\n  func_0010C970 -> sceSifResetIop, func_0010CAA0 -> sceSifIsAliveIop,\n  func_0010CAC8 -> sceSifSyncIop, func_0010CB10 -> sceSifRebootIop,\n  func_0010CC20 -> DIntr, func_0010CCA0 -> _send_to_iop,\n  func_0010CDD0 -> scePadInit, func_0010CF10 -> scePadInit2,\n  func_0010CFB0 -> scePadEnd, func_0010D030 -> scePadPortOpen,\n  func_0010D218 -> scePadPortClose, func_0010D2D0 -> scePadGetDmaStr,\n  func_0010D330 -> scePadGetFrameCount, func_0010D380 -> scePadRead,\n  func_0010D400 -> scePadGetState,\n  func_0010D478 -> scePadStateIntToStr,\n  func_0010D4B0 -> scePadSetReqState,\n  func_0010D518 -> scePadGetReqState, func_0010D5A0 -> scePadInfoAct,\n  func_0010D6C0 -> scePadInfoComb, func_0010D7E0 -> scePadInfoMode,\n  func_0010D918 -> scePadSetMainMode,\n  func_0010D9D0 -> scePadSetActDirect,\n  func_0010DA88 -> scePadSetActAlign,\n  func_0010DB60 -> scePadGetButtonMask,\n  func_0010DC18 -> scePadSetButtonInfo,\n  func_0010DCC8 -> scePadInfoPressMode,\n  func_0010DD28 -> scePadEnterPressMode,\n  func_0010DD80 -> scePadExitPressMode,\n  func_0010DDD8 -> scePadSetVrefParam,\n  func_0010DEA8 -> scePadGetPortMax, func_0010DF10 -> scePadGetSlotMax,\n  func_0010DF78 -> scePadGetModVersion,\n  func_0010DFE0 -> scePadSetWarningLevel,\n  func_0010E070 -> sceCdDelayThread, func_0010E0D8 -> sceCdCallback,\n  func_0010E408 -> cmd_sem_init, func_0010E4A0 -> cdvd_exit,\n  func_0010E520 -> sceCdIntToPos, func_0010E5E8 -> sceCdPosToInt,\n  func_0010E648 -> sceCdPOffCallback,\n  func_0010E6B8 -> _sceCd_Poff_Intr, func_0010E6F8 -> PowerOffCB,\n  func_0010E880 -> sceCdSearchFile,\n  func_0010ECF0 -> sceCdNcmdDiskReady,\n  func_0010ED88 -> sceCdGetReadPos, func_0010EDB8 -> sceCdReadChain,\n  func_0010F0A0 -> sceCdRead, func_0010F268 -> sceCdReadIOPm,\n  func_0010F3A8 -> sceCdGetToc, func_0010F638 -> sceCdSeek,\n  func_0010F708 -> sceCdStandby, func_0010F7B8 -> sceCdStop,\n  func_0010F868 -> sceCdPause, func_0010F918 -> sceCdSync,\n  func_0010F9B8 -> sceCdSyncS, func_0010FB98 -> sceCdInit,\n  func_0010FE78 -> sceCdDiskReady, func_00110070 -> sceCdBreak,\n  func_00110128 -> sceCdGetDiskType, func_001101C0 -> sceCdStatus,\n  func_00110278 -> sceCdGetError, func_00110310 -> _sceCdRI,\n  func_001103E8 -> _sceCdRM, func_001104D0 -> sceCdPowerOff,\n  func_00110588 -> sceCdMmode,\n  func_00110648 -> sceCdChangeThreadPriority,\n  func_00110708 -> sceCdReadClock, func_00110800 -> sceCdApplyNCmd,\n  func_00110A00 -> sceCdTrayReq, func_00110AE8 -> sceCdStInit,\n  func_00110B18 -> sceCdStStart, func_00110B50 -> sceCdStSeekF,\n  func_00110B80 -> sceCdStSeek, func_00110BB0 -> sceCdStStop,\n  func_00110BE8 -> sceCdStRead, func_00110D70 -> sceCdStPause,\n  func_00110DC0 -> sceCdStResume, func_00110E18 -> sceCdStStat,\n  func_00110E60 -> sceCdStream, func_00110FC0 -> sceMcInit,\n  func_00111178 -> _lmcGetClientPtr,\n  func_001111A8 -> sceMcChangeThreadPriority,\n  func_00111260 -> sceMcGetSlotMax, func_00111320 -> sceMcOpen,\n  func_00111430 -> sceMcMkdir, func_00111468 -> sceMcClose,\n  func_00111520 -> sceMcSeek, func_001115F8 -> mceIntrReadFixAlign,\n  func_00111688 -> sceMcRead, func_001117A8 -> sceMcWrite,\n  func_00111930 -> mcDelayThread, func_00111978 -> sceMcSync,\n  func_00111A58 -> mceGetInfoApdx, func_00111AB0 -> sceMcGetInfo,\n  func_00111C38 -> sceMcGetDir, func_00111D68 -> mceStorePwd,\n  func_00111DF0 -> sceMcChdir, func_00111F20 -> sceMcFormat,\n  func_00111FE8 -> sceMcDelete, func_001120F0 -> sceMcFlush,\n  func_001121A8 -> sceMcSetFileInfo, func_00112360 -> sceMcRename,\n  func_001124A0 -> sceMcUnformat, func_00112568 -> sceMcGetEntSpace,\n  func_00112660 -> __ieee754_acosf, func_00112A90 -> __ieee754_asinf,\n  func_00112E30 -> __ieee754_atan2f, func_001133E8 -> __ieee754_logf,\n  func_00113710 -> __ieee754_rem_pio2f,\n  func_00113B08 -> __ieee754_sqrtf, func_00113C38 -> __kernel_cosf,\n  func_00113DC0 -> __kernel_rem_pio2f, func_00114670 -> __kernel_sinf,\n  func_00114828 -> matherr, func_00114850 -> atanf,\n  func_00114B28 -> cosf, func_00114C58 -> floorf,\n  func_00114EC8 -> sinf, func_001151B8 -> atan2f,\n  func_00115688 -> _close_r, func_001156E0 -> quorem,\n  func_00115900 -> _dtoa_r, func_00116A88 -> fflush,\n  func_00116B98 -> std, func_00116BF0 -> __sfmoreglue,\n  func_00116C60 -> __sfp, func_00116D60 -> __sinit,\n  func_00116DF0 -> _free_r, func_00117118 -> _malloc_trim_r,\n  func_001172E8 -> __sfvwrite, func_001176B0 -> _fwalk,\n  func_00117748 -> _setlocale_r, func_00117890 -> __smakebuf,\n  func_00117A08 -> _memalign_r, func_00117C10 -> malloc_extend_top,\n  func_00117E78 -> _malloc_r, func_001185E8 -> _mbtowc_r,\n  func_00118628 -> memchr, func_00118708 -> memcmp,\n  func_001187A0 -> memcpy, func_00118850 -> memmove,\n  func_00118958 -> memset, func_00118A28 -> _Balloc,\n  func_00118AD0 -> _Bfree, func_00118B00 -> _multadd,\n  func_00118C08 -> _s2b, func_00118D40 -> _hi0bits,\n  func_00118DC8 -> _lo0bits, func_00118E88 -> _i2b,\n  func_00118EC0 -> _multiply, func_001190C8 -> _pow5mult,\n  func_001191C8 -> _lshift, func_00119330 -> __mcmp,\n  func_00119398 -> __mdiff, func_00119528 -> _ulp,\n  func_001195C0 -> _b2d, func_00119740 -> _d2b,\n  func_001198C0 -> _ratio, func_00119980 -> _mprec_log10,\n  func_001199F0 -> _printf_r, func_00119A40 -> printf,\n  func_00119AB0 -> rand, func_00119B40 -> _sbrk_r,\n  func_00119BA0 -> _init_signal_r, func_00119C10 -> _signal_r,\n  func_00119CA0 -> _raise_r, func_00119D98 -> __sigtramp_r,\n  func_00119F88 -> _sprintf_r, func_0011A000 -> sprintf,\n  func_0011A080 -> __sread, func_0011A0E8 -> __swrite,\n  func_0011A168 -> __sseek, func_0011A1F0 -> strcat,\n  func_0011A330 -> strcmp, func_0011A478 -> strcpy,\n  func_0011A590 -> strlen, func_0011A6C8 -> strncpy,\n  func_0011A888 -> __sprint, func_0011A8D0 -> __sbprintf,\n  func_0011A9B8 -> _vfprintf_r, func_0011BF58 -> cvt,\n  func_0011C100 -> exponent, func_0011C240 -> __swsetup,\n  func_0011C350 -> __divdi3, func_0011CA20 -> __fixunsdfdi,\n  func_0011CB10 -> __floatdidf, func_0011CBA8 -> __moddi3,\n  func_0011D1D8 -> __muldi3, func_0011D238 -> __udivdi3,\n  func_0011D7F8 -> __umoddi3, func_0011DD10 -> __pack_d,\n  func_0011DE40 -> __unpack_d, func_0011E118 -> dpadd,\n  func_0011E170 -> dpsub, func_0011E1D8 -> dpmul,\n  func_0011E490 -> dpdiv, func_0011E5F0 -> __fpcmp_parts_d,\n  func_0011E708 -> dpcmp, func_0011E758 -> litodp,\n  func_0011E810 -> dptoli, func_0011E8A8 -> dptoul,\n  func_0011E948 -> __negdf2, func_0011E980 -> __make_dp,\n  func_0011E9B0 -> dptofp, func_0011EA08 -> __pack_f,\n  func_0011EB18 -> __unpack_f, func_0011EDE0 -> fpadd,\n  func_0011EE38 -> fpsub, func_0011EEA0 -> fpmul,\n  func_0011F098 -> fpdiv, func_0011F1F0 -> __fpcmp_parts_f,\n  func_0011F308 -> fpcmp, func_0011F358 -> sitofp,\n  func_0011F410 -> fptosi, func_0011F4A0 -> fptoui,\n  func_0011F538 -> __negsf2, func_0011F570 -> __make_fp,\n  func_0011F5A0 -> fptodp, func_0013DCD0 -> smsBufferPush,\n  func_0013DD40 -> smsBufferPop","measures":{"fuzzy_match_percent":2.4727,"total_code":510776,"matched_code":7836,"matched_code_percent":1.5341,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":143,"matched_functions_percent":7.0548,"complete_code":7836,"complete_code_percent":1.5341,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-28T23:40:02Z","commit_sha":"8fb32194d1795145ca2d41595359a0d20bb0ef40","commit_message":"Move 129 matched functions into 39 translation units\n\nUnits (39): game_00/unit_001313B0.c, game_00/unit_00144A20.c,\n  game_01/unit_0014EB90.c, game_01/unit_001510C0.c,\n  game_01/unit_00152040.c, game_01/unit_001569A0.c,\n  game_01/unit_00157CC0.c, game_01/unit_00158C80.c,\n  game_01/unit_00159EE0.cpp, game_01/unit_00159F10.c,\n  game_01/unit_0015D4E0.cpp, game_01/unit_0015D510.c,\n  game_01/unit_001608D0.c, game_01/unit_00162930.c,\n  game_01/unit_00164040.c, game_01/unit_001651D0.c,\n  game_01/unit_001666F0.c, game_01/unit_00167ED0.c,\n  game_01/unit_00169120.c, game_01/unit_00169EC0.c,\n  game_01/unit_0016BDF0.c, game_01/unit_0016C690.cpp,\n  game_01/unit_0016C710.c, game_01/unit_0016C720.cpp,\n  game_01/unit_0016C780.c, game_01/unit_0016D1D0.cpp,\n  game_01/unit_0016D240.c, game_01/unit_0016D770.cpp,\n  game_01/unit_0016DE30.c, game_01/unit_0016E9A0.c,\n  game_01/unit_0016FA30.c, game_01/unit_00170BE0.c,\n  game_01/unit_00171F10.c, game_01/unit_00172C00.c,\n  game_01/unit_00173F40.c, game_01/unit_00176730.c,\n  game_01/unit_00177080.c, game_01/unit_001793C0.c,\n  game_01/unit_00179E20.c\nHeaders: common.h\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nAssisted-by: deepseek:deepseek-flash (MatchRunner)\nAssisted-by: deepseek:deepseek-v4-pro (MatchRunner)","measures":{"fuzzy_match_percent":2.4727,"total_code":510776,"matched_code":7836,"matched_code_percent":1.5341,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":143,"matched_functions_percent":7.0548,"complete_code":7836,"complete_code_percent":1.5341,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-28T21:34:39Z","commit_sha":"e8f4c022f63ba9336ab5f6682cf4e1d3f6e4cf61","commit_message":"Add the standalone build: configure.py and ninja\n\nAlso updated: the symbol map (symbols/), PLATFORM.md, ROADMAP.md, the splat configuration.","measures":{"fuzzy_match_percent":2.4727,"total_code":510776,"matched_code":7836,"matched_code_percent":1.5341,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":143,"matched_functions_percent":7.0548,"complete_code":7836,"complete_code_percent":1.5341,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-27T12:46:13Z","commit_sha":"2831f05327e322c1df60141d737ccc7f08d4ee68","commit_message":"Update CONTRIBUTING.md, tools/lint_c.py","measures":{"fuzzy_match_percent":2.4727,"total_code":510776,"matched_code":7836,"matched_code_percent":1.5341,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":143,"matched_functions_percent":7.0548,"complete_code":7836,"complete_code_percent":1.5341,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-27T12:05:04Z","commit_sha":"b3a734f7c20db73896ed0aaedfbed5f06552b76d","commit_message":"game_01: Match 11 functions\n\nMatched (11): func_0014EB90, func_001526C0, func_00157DF0,\n  func_00159400, func_0015D600, func_0016C690, func_0016D1D0,\n  func_0016D770, func_0016D830, func_0016F850, func_00179F40\nHeaders: game_01/obj1F0.h, game_01/obj2F8.h, game_01/pool70.h\n\nCo-Authored-By: Claude <noreply@anthropic.com>","measures":{"fuzzy_match_percent":2.4727,"total_code":510776,"matched_code":7836,"matched_code_percent":1.5341,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":143,"matched_functions_percent":7.0548,"complete_code":7836,"complete_code_percent":1.5341,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-23T14:25:25Z","commit_sha":"8775ec1979902061fa1b900c925067d7c50ca87f","commit_message":"Clean up 38 matched function files\n\nFiles: game_01/func_0014DF80.c, game_01/func_0014E460.c,\n  game_01/func_0014E490.c, game_01/func_0014EA70.c,\n  game_01/func_0014EAB0.c, game_01/func_0014EAF0.c,\n  game_01/func_0014F060.c, game_01/func_00151820.c,\n  game_01/func_001522E0.c, game_01/func_00152300.c,\n  game_01/func_00152380.c, game_01/func_001525D0.c,\n  game_01/func_00152600.c, game_01/func_00159860.c,\n  game_01/func_0015B500.c, game_01/func_0015B540.c,\n  game_01/func_00162790.c, game_01/func_00162900.c,\n  game_01/func_00166D90.c, game_01/func_00168360.c,\n  game_01/func_001683A0.c, game_01/func_0016BED0.c,\n  game_01/func_0016DC40.c, game_01/func_0016FA50.c,\n  game_01/func_0016FA80.c, game_01/func_00170BE0.c,\n  game_01/func_00170C00.c, game_01/func_00172A40.c,\n  game_01/func_00172A80.c, game_01/func_00179870.c,\n  game_01/func_00179D30.c, game_01/func_00179DF0.c,\n  game_01/func_00179E80.c, game_01/func_0017A3D0.c,\n  game_01/func_0017A5B0.c, game_01/func_0017A640.c,\n  game_01/func_0017A950.c, game_01/func_0017BEE0.c\nHeaders: game_01/actorC4.h, game_01/node90.h, game_01/obj2F8.h,\n  game_01/obj430.h, game_01/obj530.h, game_01/obj80.h, game_01/objC0.h\n\nCo-Authored-By: Claude <noreply@anthropic.com>","measures":{"fuzzy_match_percent":2.229,"total_code":510776,"matched_code":6668,"matched_code_percent":1.3055,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":132,"matched_functions_percent":6.5121,"complete_code":6668,"complete_code_percent":1.3055,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-23T13:53:03Z","commit_sha":"1f2645a047167f74007bb72c842e829d65cca7ea","commit_message":"Update tools/lint_c.py","measures":{"fuzzy_match_percent":2.229,"total_code":510776,"matched_code":6668,"matched_code_percent":1.3055,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":132,"matched_functions_percent":6.5121,"complete_code":6668,"complete_code_percent":1.3055,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-23T10:10:19Z","commit_sha":"683009d8da6c61c56e5e8d297d36062512d8fce7","commit_message":"remediation 2026-09-23-remediation-19: publication hygiene — tools/lint_c.py (member-offset rule) and ledger/stats.json refreshed by progress.py","measures":{"fuzzy_match_percent":2.229,"total_code":510776,"matched_code":6668,"matched_code_percent":1.3055,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":132,"matched_functions_percent":6.5121,"complete_code":6668,"complete_code_percent":1.3055,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-23T10:10:19Z","commit_sha":"8879ccd0acc9505b7b3d7e52f045aa878e18bb4f","commit_message":"Update tools/lint_c.py","measures":{"fuzzy_match_percent":2.229,"total_code":510776,"matched_code":6668,"matched_code_percent":1.3055,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":132,"matched_functions_percent":6.5121,"complete_code":6668,"complete_code_percent":1.3055,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-23T09:34:59Z","commit_sha":"7c5e5e75855490fffdc41327b1a014dee29e26b2","commit_message":"run 2026-09-23-016-match-batch: match-batch — friction report re-exported (F-7 mistyped artifact path retired)","measures":{"fuzzy_match_percent":2.229,"total_code":510776,"matched_code":6668,"matched_code_percent":1.3055,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":132,"matched_functions_percent":6.5121,"complete_code":6668,"complete_code_percent":1.3055,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-23T08:22:15Z","commit_sha":"34f858c00c447b59b070e84bc394473810d0b46b","commit_message":"remediation 2026-09-19-remediation-17: publication hygiene — refresh the shipped tools/lint_c.py\n\nThe copy contributors run had drifted 28 lines from the toolkit's: it rejected\nthe inline float-to-int asm block (K1 6.20) that the project now accepts as\nfinal C. Nothing kept the two in sync; progress.py now refreshes it at every\nSHIP, beside the README table and CONTRIBUTING's pinned-compiler line.\nThe README and progress.json stamps come from that same regeneration.","measures":{"fuzzy_match_percent":2.0321,"total_code":510776,"matched_code":5244,"matched_code_percent":1.0267,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":121,"matched_functions_percent":5.9694,"complete_code":5244,"complete_code_percent":1.0267,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-19T14:49:01Z","commit_sha":"cf1caca85d8efdc9801fc9af28c088aeff1378b7","commit_message":"run 2026-09-19-015-calibrate: calibrate — pin stands; the vtable dispatch is a C++ virtual call and byte-matches under it","measures":{"fuzzy_match_percent":2.0321,"total_code":510776,"matched_code":5244,"matched_code_percent":1.0267,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":121,"matched_functions_percent":5.9694,"complete_code":5244,"complete_code_percent":1.0267,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-19T13:52:47Z","commit_sha":"dfcee836a12ee7770dfa472d27e229f3b542643a","commit_message":"remediation 2026-09-19-remediation-16: publication hygiene — regenerate the README progress table after the last run was closed\n\nThe SHIP order ran progress.py before next_step.py --close-run, and progress.py takes\nsteps_run and the last-run name from state/steps.jsonl, which --close-run writes. Both\npublic READMEs were therefore one run behind. The order is fixed in dps2-step SKILL.md\nand PROJECT-INSTRUCTIONS <run_lifecycle>; this commit republishes the current numbers.","measures":{"fuzzy_match_percent":2.0321,"total_code":510776,"matched_code":5244,"matched_code_percent":1.0267,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":121,"matched_functions_percent":5.9694,"complete_code":5244,"complete_code_percent":1.0267,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-19T13:25:07Z","commit_sha":"3d269cf468a4b4dda42244d1cd2f4538bc73722e","commit_message":"run 2026-09-19-014-match-batch: match-batch — 8 of 12 matched byte-identical, 4 parked on two compiler boundaries","measures":{"fuzzy_match_percent":2.0321,"total_code":510776,"matched_code":5244,"matched_code_percent":1.0267,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":121,"matched_functions_percent":5.9694,"complete_code":5244,"complete_code_percent":1.0267,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-19T12:47:53Z","commit_sha":"871bb93a9c5a6ba95141e86c37979e9e70cd664b","commit_message":"run 2026-09-19-013-repair: repair — check green again after aborted external batch 016; func_00178B30 unblocked\n\nThe red was a stale link, not a byte diff (diff_count 0): batch 2026-09-19-016 marked func_0014EAB0 at 100 and crashed before its rebuild. Re-split and rebuilt; nothing unmarked. Also pinned func_00178B10 (0x14) and func_00178B30 (0x288) in symbol_addrs.txt, so splat stops swallowing func_00178B30 into the preceding jr-$t9 thunk and match.py prepare cuts it again, and parked the runner.json the crash left at state=running so select_batch escalates it.","measures":{"fuzzy_match_percent":1.8656,"total_code":510776,"matched_code":4148,"matched_code_percent":0.8121,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":113,"matched_functions_percent":5.5747,"complete_code":4148,"complete_code_percent":0.8121,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-19T09:15:23Z","commit_sha":"0fb55b878df576dc6c7fdedead26b6a1b6e60e2f","commit_message":"remediation 2026-09-19-remediation-15: publication hygiene — ignore reference/type-census.json\n\nThe S8 type census (xrefs.py --type-census) is regenerated every consolidate from\nsrc/ and include/, like the xrefs index and the naming census beside it.","measures":{"fuzzy_match_percent":1.4478,"total_code":510776,"matched_code":3480,"matched_code_percent":0.6813,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":104,"matched_functions_percent":5.1307,"complete_code":3480,"complete_code_percent":0.6813,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-19T09:01:03Z","commit_sha":"96464fbb02ccd4cc4cdbf4bd48789d327fcbb7d4","commit_message":"run 2026-09-19-012-consolidate: consolidate — 46 SDK stubs named from the Ghidra export, the three lint errors rewritten onto typed structs","measures":{"fuzzy_match_percent":1.4478,"total_code":510776,"matched_code":3480,"matched_code_percent":0.6813,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":104,"matched_functions_percent":5.1307,"complete_code":3480,"complete_code_percent":0.6813,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-19T06:44:56Z","commit_sha":"06a92b9c9ea623d09d7e1c4995abdd350722d44b","commit_message":"run 2026-09-19-011-match-batch: match-batch — 6 of 12 matched byte-identical (77 -> 83), including the target's first operator VU0 macro-mode function; 6 parked with the exact remaining diff noted","measures":{"fuzzy_match_percent":1.2005,"total_code":510776,"matched_code":2796,"matched_code_percent":0.5474,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":83,"matched_functions_percent":4.0947,"complete_code":2796,"complete_code_percent":0.5474,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-19T04:53:52Z","commit_sha":"042ba0e167d659b968afde7670779ad40509f6c8","commit_message":"run 2026-09-19-010-ghidra-hints: ghidra-hints — scrub token redacted from the friction log and the report before publication","measures":{"fuzzy_match_percent":1.1384,"total_code":510776,"matched_code":2500,"matched_code_percent":0.4895,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":77,"matched_functions_percent":3.7987,"complete_code":2500,"complete_code_percent":0.4895,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-19T04:09:55Z","commit_sha":"3354e9f581088e61db70b553b4b6c031472c3eb8","commit_message":"run 2026-09-19-009-consolidate: consolidate — six shared headers for the structs 14 matched functions agreed on; every lint error rewritten to plain C and re-marked byte-identical","measures":{"fuzzy_match_percent":1.1384,"total_code":510776,"matched_code":2500,"matched_code_percent":0.4895,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":77,"matched_functions_percent":3.7987,"complete_code":2500,"complete_code_percent":0.4895,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-18T21:39:42Z","commit_sha":"e991c51288e06dafadb4817435b763a32d4de756","commit_message":"remediation 12: xrefs timestamps from the transcript re-run","measures":{"fuzzy_match_percent":0.5399,"total_code":510776,"matched_code":1196,"matched_code_percent":0.2342,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":33,"matched_functions_percent":1.628,"complete_code":1196,"complete_code_percent":0.2342,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-18T21:30:04Z","commit_sha":"9897b1e1ef36e004b65ca5d2ba9712596b67b58a","commit_message":"remediation 12: xrefs evidence for 4 calibration-matched functions, recovered by the endlabel fix (run 008 F-1)","measures":{"fuzzy_match_percent":0.5399,"total_code":510776,"matched_code":1196,"matched_code_percent":0.2342,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":33,"matched_functions_percent":1.628,"complete_code":1196,"complete_code_percent":0.2342,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-18T21:01:02Z","commit_sha":"89c8687eb9c4b7bf7322b217df9449d30aec58ab","commit_message":"run 2026-09-18-008-consolidate: consolidate — two shared headers for the structs 7 matched functions agreed on, all 7 re-marked at objdiff 100; no name clears the evidence bar","measures":{"fuzzy_match_percent":0.5399,"total_code":510776,"matched_code":1196,"matched_code_percent":0.2342,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":33,"matched_functions_percent":1.628,"complete_code":1196,"complete_code_percent":0.2342,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-17T14:43:52Z","commit_sha":"30592f408fa0614e25f9cbe98c8f81d89726aeab","commit_message":"remediation 10: community practice — a VU0 macro-mode asm block over register locals is final C; tools/lint_c.py reports it as vu0-asm (advisory), any other asm as inline-asm","measures":{"fuzzy_match_percent":0.2781,"total_code":510776,"matched_code":636,"matched_code_percent":0.1245,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":13,"matched_functions_percent":0.6413,"complete_code":636,"complete_code_percent":0.1245,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-17T14:18:05Z","commit_sha":"a99b6ca704c6524175eb9ba13fa343b546e020e9","commit_message":"run 2026-09-17-007-match-batch: match-batch — 9 of 12 matched in game_01 (13/2027), 3 parked (2 need a VU0 macro-mode C form); check ok","measures":{"fuzzy_match_percent":0.2781,"total_code":510776,"matched_code":636,"matched_code_percent":0.1245,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":13,"matched_functions_percent":0.6413,"complete_code":636,"complete_code_percent":0.1245,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-17T07:24:10Z","commit_sha":"37f410c8db980aaeeafc1f578dc9455fb3c3417b","commit_message":"remediation 9: community practice — CONTRIBUTING names the pinned compiler id and flags (regenerated by progress.py); README progress line refreshed","measures":{"fuzzy_match_percent":0.0799,"total_code":510776,"matched_code":284,"matched_code_percent":0.0556,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":4,"matched_functions_percent":0.1973,"complete_code":284,"complete_code_percent":0.0556,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-17T07:02:17Z","commit_sha":"6cbec83c49d8bd21b7efe9c022c0a732dc500615","commit_message":"run 2026-09-17-006-segment-map: segment-map — 18 segments final (crt0, MW runtime, 8 SDK libs, game_00/game_memcard/game_01, data x3, rodata, bss); split build green; 2027 functions in the ledger","measures":{"fuzzy_match_percent":0.0799,"total_code":510776,"matched_code":284,"matched_code_percent":0.0556,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":2027,"matched_functions":4,"matched_functions_percent":0.1973,"complete_code":284,"complete_code_percent":0.0556,"complete_data":0,"complete_data_percent":0,"total_units":13,"complete_units":0}},{"timestamp":"2026-09-17T04:52:38Z","commit_sha":"3973bec41cb7eeae48ee02bb364cd271c7cdb880","commit_message":"remediation 2026-09-17-remediation-6: publication hygiene — scrub device hostname from bootstrap friction report","measures":{"fuzzy_match_percent":80.1087,"total_code":552,"matched_code":284,"matched_code_percent":51.4493,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":8,"matched_functions":4,"matched_functions_percent":50,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":1,"complete_units":0}},{"timestamp":"2026-09-17T03:52:32Z","commit_sha":"4693d0bbf0aaf329db074042dd444a4951dbb588","commit_message":"remediation 2026-09-17-remediation-5: decomp.dev progress report — tools/objdiff_report.py (objdiff v2 report from the ledger), Progress report workflow uploading <BOOT2>_report, README title/badges/reporting section, CONTRIBUTING tools section","measures":{"fuzzy_match_percent":80.1087,"total_code":552,"matched_code":284,"matched_code_percent":51.4493,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":8,"matched_functions":4,"matched_functions_percent":50,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":1,"complete_units":0}},{"timestamp":"2026-09-17T03:52:32Z","commit_sha":"7cf075c9ec2324160ac5db15cbe0f3781b512534","commit_message":"remediation 2026-09-17-remediation-5: decomp.dev progress report — tools/objdiff_report.py (objdiff v2 report from the ledger), Progress report workflow uploading <BOOT2>_report, README title/badges/reporting section, CONTRIBUTING tools section","measures":{"fuzzy_match_percent":80.1087,"total_code":552,"matched_code":284,"matched_code_percent":51.4493,"total_data":0,"matched_data":0,"matched_data_percent":0,"total_functions":8,"matched_functions":4,"matched_functions_percent":50,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":1,"complete_units":0}}]