Format Recognition (#2590): census fixture tooling and the recognizer spine, stacked on the v40 fix - #2636
Draft
zancas wants to merge 2 commits into
Draft
Format Recognition (#2590): census fixture tooling and the recognizer spine, stacked on the v40 fix#2636zancas wants to merge 2 commits into
zancas wants to merge 2 commits into
Conversation
One writer replica per Format Census row (issue #2590), organized into era modules under wallet_grammars, with a wallet-grammar-fixtures binary that renders the synthetic corpus zingolib's recognition tests consume. Each fixture is named NN_<defining-commit>.dat: the row number is presentation order, and the Defining Commit hash is the stable key, per the census's central finding that the version word does not identify a format. The corpus directory lands with its README; the generator renders the fixture files themselves. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The recognizer's spine: one WalletFormat arm per census row, each carrying its Defining Commit and its discriminator, plus the bounded Cursor whose length validation retires the read_string allocation class that aborts today's reader on a dev-v40 file. The corpus test and the dev-v40 refusal test ride along. The four era discriminator modules the spine declares (era_inception, era_keys, era_capability, era_modern) are not yet written. The module is therefore not yet declared in disk.rs and does not compile into zingolib; the hookup lands together with the discriminators. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR carries
This PR is the second of two carved from draft #2633, stacked on #2635 (the immediate version-40 fix). It carries the Format Recognition arc beyond the fix, in two commits.
wallet-grammar-fixturesbinary renders the synthetic corpus. The corpus directory lands with its README only.recognition.rsholds theWalletFormatmanifest (one arm per census row, keyed by Defining Commit), the boundedCursor, and the verdict enum. The file is not yet declared indisk.rs, sozingolibbuilds green.Draft status and remaining work
This PR is a draft because the recognizer spine is incomplete. The four era discriminator modules it declares (
era_inception,era_keys,era_capability,era_modern) are not yet written. The remaining work, in order:mod recognition;indisk.rsin the same change.LightWallet::readon the Recognition Verdict, restoring the two misparse windows that remain after fix: read both version-40 wallet grammars and bound wallet-file string lengths #2635 (cc78c2358-era and v34 price files).References
Issue #2590 (the Format Census). #2635 (the base of this stack; merge it first). Draft #2633 (superseded by this pair; closed).
🤖 Generated with Claude Code