Drew T
867f09221c
feat(oracle): main gets its independent second oracle — contract §1.3 closed
...
The roadmap's completion contract requires both audit oracles green before any
100% claim on main, and main had none: audit-corpus covered overlays and
resident only, and R34 is explicit that the byte gate is a perfect CORRECTNESS
oracle and a NULL COVERAGE oracle — green whether a function was sliced right
or invented, because the .s pieces paste back either way.
sig_image gains multi-range signing, closing all three blockers
docs/second-oracle.md scoped:
* the 0x800 PS-X EXE header -> --vram-base 0x8000F800 puts file offset 0 at
vram, so the header falls below the first range
* interleaved data + linked islands -> --segments derives 28 game-code ranges
from the splat yaml's SEGMENT rows
* one text range -> the signer loops ranges, bootstrapping INSIDE each, which
is what stops the linear partition running through a data island and minting
functions out of it (the detector manufacturing the class it detects)
INDEPENDENCE IS PRESERVED, NOT WORKED AROUND. Ranges come from segment TYPES,
never from splat's function boundaries; entries are still found by byte-derived
jal-closure. Seeding from splat's symbols would make every phantom look real —
the trap the design doc names. .run/sig.main.jsonl (the splat-SEEDED atlas sig)
is a different file and corpus.ORACLE_SIG keeps the audit off it.
RESULT: 986 functions signed. main audit = 0 PHANTOM, 0 TRUNCATED, 1 PAD-TAIL.
Fleet audit-corpus = 0 + 0, unchanged for resident and overlays.
NEW AUDIT CLASS, from the first real finding. func_80062144: splat .s 65 ins,
oracle 64 — the extra line is a nop one line BELOW endlabel. That is an
alignment pad the matching side already emits from C (§295; two S77 wave agents
did it on func_8005E13C and func_8005D538), not a mis-slice. Lumping it with
TRUNCATED would make the oracle's first finding look like a defect and bury the
class that is one.
COVERAGE ASSERTED both ways before trusting it (R32): all 30 game-code stubs
fall inside a range, and 0 of 199 addr-parseable LINKED stubs do.
2026-09-03 21:58:17 -06:00
..
2026-06-14 03:56:07 -06:00
2026-06-14 03:19:23 -06:00
2026-06-15 17:15:31 -06:00
2026-06-13 19:47:42 -06:00
2026-06-14 03:56:07 -06:00
2026-08-06 13:34:50 -06:00
2026-08-25 23:50:26 -06:00
2026-06-14 03:56:07 -06:00
2026-06-14 03:56:07 -06:00
2026-07-28 14:53:47 -06:00
2026-07-02 23:32:38 -06:00
2026-08-13 17:44:20 -06:00
2026-09-02 01:29:59 -06:00
2026-06-29 12:52:39 -06:00
2026-09-03 14:20:44 -06:00
2026-08-23 00:12:07 -06:00
2026-08-23 12:59:59 -06:00
2026-08-26 01:14:36 -06:00
2026-09-02 05:38:28 -06:00
2026-09-01 14:09:38 -06:00
2026-08-14 18:06:46 -06:00
2026-08-25 11:28:51 -06:00
2026-08-06 10:55:38 -06:00
2026-08-04 21:48:57 -06:00
2026-08-06 10:57:17 -06:00
2026-07-29 00:42:40 -06:00
2026-07-31 14:18:11 -06:00
2026-06-19 10:05:58 -06:00
2026-06-21 13:12:04 -06:00
2026-06-18 23:15:31 -06:00
2026-06-21 13:06:34 -06:00
2026-07-28 19:34:00 -06:00
2026-08-06 10:57:17 -06:00
2026-07-14 21:25:19 -06:00
2026-08-16 17:21:10 -06:00
2026-07-26 23:08:07 -06:00
2026-09-03 19:16:51 -06:00
2026-07-23 19:54:19 -06:00
2026-07-14 09:22:31 -06:00
2026-07-23 11:43:28 -06:00
2026-08-26 20:19:41 -06:00
2026-08-14 23:44:03 -06:00
2026-08-07 18:57:10 -06:00
2026-07-22 15:24:59 -06:00
2026-08-26 15:02:15 -06:00
2026-06-17 00:30:45 -06:00
2026-06-20 17:12:00 -06:00
2026-07-14 19:59:56 -06:00
2026-08-05 11:05:35 -06:00
2026-09-03 18:49:56 -06:00
2026-08-14 12:08:50 -06:00
2026-09-01 20:10:51 -06:00
2026-08-07 20:36:04 -06:00
2026-09-03 20:08:27 -06:00
2026-08-10 16:01:49 -06:00
2026-08-24 13:36:58 -06:00
2026-09-03 21:58:17 -06:00
2026-08-26 00:47:38 -06:00
2026-08-18 15:44:55 -06:00
2026-06-14 14:47:01 -06:00
2026-08-10 10:43:44 -06:00
2026-07-14 02:50:28 -06:00
2026-09-02 22:15:20 -06:00
2026-07-24 14:25:28 -06:00
2026-08-26 15:41:20 -06:00
2026-07-16 12:07:37 -06:00
2026-07-15 18:20:55 -06:00
2026-08-06 09:51:39 -06:00
2026-08-25 00:49:24 -06:00
2026-09-03 15:02:50 -06:00
2026-09-03 14:47:46 -06:00
2026-08-07 15:07:55 -06:00
2026-06-29 16:49:11 -06:00
2026-09-02 14:54:27 -06:00
2026-07-15 18:20:55 -06:00
2026-06-30 01:46:54 -06:00
2026-08-14 19:54:57 -06:00
2026-08-14 19:59:21 -06:00
2026-08-11 13:42:40 -06:00
2026-07-14 09:40:38 -06:00
2026-09-01 17:34:21 -06:00
2026-08-31 14:24:03 -06:00
2026-08-07 22:09:05 -06:00
2026-09-01 17:36:57 -06:00
2026-08-27 12:19:36 -06:00
2026-07-23 12:42:43 -06:00
2026-08-24 23:19:47 -06:00
2026-06-30 01:46:54 -06:00
2026-08-16 21:07:03 -06:00
2026-09-03 00:12:07 -06:00
2026-08-18 11:08:29 -06:00
2026-08-24 19:08:47 -06:00
2026-09-03 13:00:16 -06:00
2026-09-03 21:05:50 -06:00
2026-09-02 20:30:22 -06:00
2026-09-02 00:39:18 -06:00
2026-08-31 13:48:56 -06:00
2026-09-01 17:37:49 -06:00
2026-06-19 10:05:58 -06:00
2026-07-14 00:08:59 -06:00
2026-06-15 20:55:28 -06:00
2026-06-15 23:25:00 -06:00
2026-06-14 03:19:23 -06:00
2026-06-14 03:19:23 -06:00
2026-06-14 02:04:28 -06:00
2026-06-14 02:04:28 -06:00
2026-07-02 16:56:56 -06:00
2026-07-01 21:03:08 -06:00
2026-07-31 12:26:03 -06:00
2026-09-03 14:14:11 -06:00
2026-08-23 12:59:59 -06:00
2026-07-01 23:13:29 -06:00
2026-06-25 13:09:02 -06:00
2026-08-25 15:00:31 -06:00
2026-08-07 22:09:05 -06:00
2026-06-30 11:15:11 -06:00
2026-08-26 14:04:54 -06:00
2026-08-26 14:34:32 -06:00
2026-09-02 12:02:23 -06:00
2026-09-02 20:30:22 -06:00
2026-09-02 17:15:28 -06:00
2026-09-02 22:15:20 -06:00
2026-09-02 18:11:48 -06:00
2026-08-24 12:31:14 -06:00
2026-08-26 00:29:05 -06:00
2026-09-02 23:34:01 -06:00
2026-08-31 18:59:50 -06:00
2026-09-02 01:59:46 -06:00
2026-09-02 19:34:09 -06:00
2026-08-14 19:54:57 -06:00
2026-08-14 19:54:57 -06:00
2026-07-23 19:54:19 -06:00
2026-08-05 00:37:59 -06:00
2026-06-30 15:32:56 -06:00
2026-08-10 16:01:49 -06:00
2026-09-02 23:05:27 -06:00
2026-08-26 11:05:02 -06:00
2026-08-26 15:02:15 -06:00
2026-06-15 20:55:28 -06:00
2026-06-15 13:44:32 -06:00
2026-06-15 20:55:28 -06:00
2026-08-29 12:56:20 -06:00
2026-07-02 23:10:54 -06:00
2026-09-03 14:17:53 -06:00
2026-06-14 03:19:23 -06:00
2026-08-26 15:48:50 -06:00
2026-08-31 22:08:34 -06:00
2026-08-06 12:36:49 -06:00
2026-08-06 10:59:03 -06:00
2026-07-18 20:30:43 -06:00
2026-08-31 16:50:09 -06:00
2026-08-31 01:46:16 -06:00
2026-07-31 08:41:54 -06:00
2026-09-03 14:17:53 -06:00
2026-06-22 21:22:35 -06:00
2026-09-02 19:22:16 -06:00
2026-09-02 00:19:59 -06:00
2026-06-18 23:40:17 -06:00
2026-06-18 23:15:31 -06:00
2026-08-05 15:59:27 -06:00
2026-08-26 14:29:35 -06:00
2026-09-02 20:30:22 -06:00
2026-07-07 20:20:43 -06:00
2026-09-03 21:09:59 -06:00
2026-07-21 15:05:56 -06:00
2026-08-14 19:42:55 -06:00
2026-08-06 10:57:17 -06:00
2026-08-18 15:32:32 -06:00
2026-09-03 00:01:11 -06:00
2026-06-14 21:24:10 -06:00
2026-06-15 21:00:36 -06:00
2026-08-31 17:03:50 -06:00
2026-06-14 21:24:10 -06:00
2026-06-15 21:00:36 -06:00
2026-06-15 21:00:36 -06:00
2026-06-15 21:00:36 -06:00
2026-08-31 18:59:50 -06:00
2026-06-19 13:03:14 -06:00
2026-09-02 13:48:00 -06:00
2026-09-02 20:30:22 -06:00
2026-08-11 21:12:44 -06:00
2026-06-26 03:06:54 -06:00
2026-09-01 11:03:06 -06:00
2026-08-24 21:33:32 -06:00
2026-09-03 21:05:50 -06:00
2026-08-24 22:29:29 -06:00
2026-07-27 00:06:01 -06:00
2026-09-01 20:32:12 -06:00
2026-07-28 19:34:00 -06:00
2026-09-01 11:03:06 -06:00
2026-08-31 22:24:56 -06:00
2026-09-02 00:39:18 -06:00
2026-08-31 14:24:03 -06:00
2026-08-31 14:24:03 -06:00
2026-09-03 14:25:26 -06:00
2026-08-24 22:22:12 -06:00
2026-08-26 00:29:05 -06:00
2026-08-16 18:11:32 -06:00
2026-08-11 19:07:07 -06:00
2026-08-31 01:46:16 -06:00
2026-07-28 20:15:11 -06:00
2026-09-01 13:06:27 -06:00
2026-06-30 01:46:54 -06:00
2026-08-07 18:57:10 -06:00
2026-09-03 21:58:17 -06:00
2026-07-14 15:39:07 -06:00
2026-09-02 18:11:48 -06:00
2026-09-02 19:22:16 -06:00
2026-08-31 01:46:16 -06:00
2026-08-26 14:04:54 -06:00
2026-07-28 13:20:27 -06:00
2026-08-25 10:43:10 -06:00
2026-07-24 21:30:08 -06:00
2026-09-03 20:38:59 -06:00
2026-08-27 12:19:36 -06:00
2026-08-31 13:48:56 -06:00
2026-08-29 15:22:14 -06:00
2026-08-27 10:25:01 -06:00
2026-07-10 00:02:55 -06:00
2026-08-24 10:42:11 -06:00
2026-08-24 12:43:40 -06:00
2026-08-07 18:50:29 -06:00
2026-07-21 15:05:56 -06:00
2026-06-29 20:07:48 -06:00
2026-07-30 22:00:32 -06:00
2026-08-31 23:53:50 -06:00
2026-09-01 14:50:26 -06:00
2026-08-29 19:14:02 -06:00
2026-07-23 20:51:42 -06:00
2026-08-23 12:59:59 -06:00
2026-09-03 12:05:37 -06:00
2026-09-03 12:05:37 -06:00
2026-09-03 15:02:50 -06:00
2026-09-01 14:50:26 -06:00
2026-07-28 13:20:27 -06:00
2026-09-02 20:30:22 -06:00
2026-08-31 19:59:27 -06:00
2026-06-19 12:13:38 -06:00
2026-08-14 19:59:21 -06:00
2026-08-31 23:53:50 -06:00
2026-08-26 20:19:41 -06:00
2026-08-26 19:35:54 -06:00
2026-08-18 15:25:49 -06:00
2026-07-14 09:22:31 -06:00
2026-09-02 00:19:59 -06:00
2026-09-01 18:59:04 -06:00
2026-07-16 02:01:15 -06:00