D636 - A record older than the repository
Status: measured Date: 2026-09-09
The regression cannot be bisected, because the build is not here
D634 found PPSA28061 reaching 26 imports against a committed best of 47, and D635 built the instrument that says so. The obvious next step was to bisect against the build that measured 47.
compat/PPSA28061-app0.toml measured_on = "2026-08-23"
git log --reverse 60030c0 2026-09-01 Initial commit
The record is nine days older than the repository's first commit. There is nothing to bisect against; the build that reached 47 imports does not exist in this history and cannot be recovered from it.
Checked across every record, because one instance is an anecdote:
PPSA28061 is the only one. Fourteen others carry dates
before the initial commit, all 2026-08-31, and every one of
them reports imports = 0 - payloads that reached nothing,
so there is nothing to reproduce.
The ratchet is protecting exactly what it exists to prevent
keep_status refuses a backwards move, and its reason is
written into the code:
A run under a looser stub policy reaches further by construction, so ranking on the numbers alone would let one line of configuration permanently overwrite an honestly measured entry - and the database would then carry a best-ever result that nothing can reproduce.
That is the state it is now defending. The guard is right and the entry it guards is unreproducible by a different route than the one the guard was built for - not a looser policy, but a build that predates the repository.
Not corrected here. Deleting or overwriting a measurement is destructive and it is the operator's data; the finding is worth more than the tidy-up, and D635's line now says the shortfall on every run so nothing is hidden while it stands.
What the title actually stops on
Worth having, because the regression is now a dead end and the current wall is not:
! the guest called abort - it decided to stop rather than failing
just before: libc::abort(0xbe9c0) from 0x480000a1c7ad
just before: libkernel::0x04df812afad225d7(0x600000800e20) -> 0x7fff0001 from 0x480000a1c760
just before: libSceAgc::sceAgcCreateShader(0x4000004f6c68) -> 0x7fff0001
just before: libSceAgcDriver::sceAgcDriverRegisterDefaultOwner(0x0) -> 0x7fff0001
The guest calls an unnamed libkernel function, is handed the placeholder, and aborts seventy-seven bytes later from the same function in its own module. That is a check-and-give-up, and the name is the blocker: without it there is nothing to implement.
sceAgcCreateShader is two calls above, which makes this
the third title in the corpus stopped in the same neighbourhood.
Seven unnamed, and four of them are answerable
| hash | can a vendor vocabulary name it? |
|---|---|
PS5Util::0xa96b2b178383025c,
0xf316b8b2109d7727, 0xf948d02a4f9f5ace |
no - the game's own module (D631) |
libkernel::0x04df812afad225d7 |
yes, and it aborts PPSA28061 |
libSceAgc::0x53bbd82b51d172db |
yes |
libScePad::0xda809fad5f12799f |
yes |
unknown::0x384a0ae5cd37b0d4 |
yes |
The generated search has already failed on all four, so the
vocabulary is what is short. obSCEne walks the kernel export
table - 102-net/resolve:*:kexport proves it reads
one - but it looks up a NID it computed from a name it already had,
which cannot answer the reverse question.
An enumeration of that table's NIDs would settle up to four of these at once, one of them a title's wall. Queued as the next bus request; two are open and the protocol says keep one or two.