Skip to content

Update the vendored Realm parser to read pre-Cluster rows - #1295

Merged
abrignoni merged 1 commit into
mainfrom
chore/revendor-realm-rowlevel
Sep 2, 2026
Merged

Update the vendored Realm parser to read pre-Cluster rows#1295
abrignoni merged 1 commit into
mainfrom
chore/revendor-realm-rowlevel

Conversation

@abrignoni

Copy link
Copy Markdown
Owner

Updates the vendored Realm parser to crush-forensics fc280180. Realm stores in the pre-Cluster layout used before file format 10 now return their rows, not just their class names.

  • parse_realm_file() re-implements the walk rather than calling RealmParser.parse(), so it needed the same dispatch by hand: the pre-Cluster walker chosen on the active ref's format byte, a streaming-form file's top ref resolved from its footer, and the (tables, reason) tuple both walkers now return unpacked. It surfaces the parser's reason string and the pre-Cluster format byte.
  • Realm - Undecoded Stores needed no logic change. A format 9 store decodes now, so the artifact stops reporting it, which is correct. Every Realm store in the seven registered corpora that hold one decodes, so it reports nothing on any of them; the notes say so and five corpora are recorded as checked absences from real runs.

Measured on 87 Realm files: no Cluster-layout file changed, 40 pre-Cluster files gained 80,372 rows. The vendored file stays byte-identical to the iLEAPP copy.

🤖 Generated with Claude Code

Takes crush-forensics fc280180. Realm stores in the pre-Cluster layout used
before file format 10 now return their rows, not just their class names.

The vendored parse_realm_file() re-implements the walk rather than calling
RealmParser.parse(), so it needed the same dispatch by hand: pick the
pre-Cluster walker on the active ref's format byte, resolve a streaming-form
file's top ref from its footer, and unpack the (tables, reason) tuple both
walkers now return. It surfaces the parser's own reason string and the
pre-Cluster format byte.

Realm - Undecoded Stores needed no logic change: a format 9 store now
decodes, so the artifact stops reporting it, which is correct. Every Realm
store in the seven registered corpora that hold one now decodes, so the
artifact reports nothing on any of them. Its notes are rewritten to say that
and five corpora are recorded as checked absences from real runs.

Measured on 87 Realm files: no Cluster-layout file changed, 40 pre-Cluster
files gained 80,372 rows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@abrignoni
abrignoni merged commit e337e24 into main Sep 2, 2026
10 checks passed
@abrignoni
abrignoni deleted the chore/revendor-realm-rowlevel branch September 2, 2026 11:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant