Add BitSquiggle visualization to every master-fingerprint display - #957
Open
schnuartz-ai wants to merge 3 commits into
Open
Add BitSquiggle visualization to every master-fingerprint display#957schnuartz-ai wants to merge 3 commits into
schnuartz-ai wants to merge 3 commits into
Conversation
Renders a compact BitSquiggle32 pattern (github.com/maggo83/BitSquiggles) next to the master fingerprint on SeedFinalizeScreen, so it can be compared by eye against the same fingerprint shown in a companion wallet app instead of matching hex characters one by one. The core 32-bit mixer/renderer is vendored unmodified (pure Python, no new dependencies); a small PIL adapter renders it to a pixel-exact, nearest-neighbor-scaled image sized to whatever space is free around the fingerprint line, then the icon/text/squiggle group is re-centered as a unit.
Collaborator
|
@schnuartz-ai can you post an actual screenshot to help the review process? |
Adds the same compact BitSquiggle32 glyph (already on the seed finalize
screen) to the six other places SeedSigner shows a master fingerprint:
- SeedOptionsScreen: appended after the top-nav title
- SeedExportXpubDetailsScreen: inline next to the fingerprint row
- ToolsAddressExplorerAddressTypeScreen: inline next to the fingerprint row
- ToolsCalcFinalWordDoneScreen: centered group, same layout as the finalize screen
- MultisigWalletDescriptorScreen: one squiggle per cosigner, shown as a row
below the existing hex text (falls back to text-only if there isn't at
least one native-size row of vertical room, e.g. with 5+ cosigners
wrapping the hex text to 3 lines)
- SeedReviewPassphraseScreen: replaces the "{before} >> {after}" hex text
with two squiggles and a ">>" separator, since there wasn't room for
both the long combined hex string and squiggles side by side
Each screen was rendered via the repo's screenshot-generator mocks and
checked by an independent review pass against its own screenshot; two
placement issues (vertical centering on the wrong sub-element) and one
real overlap bug (the multisig row's minimum-size floor could push into
the button list when the cosigner list wraps to 3 lines) were found and
fixed this way.
Illustrative screenshots for pull request review only, generated via the screenshot-generator's hardware mocks. Not part of the app itself; fine to drop before merge if maintainers prefer.
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.
Summary
src/seedsigner/helpers/bitsquiggle32.py, under its original "Grug 2-Clause License" (permissive, see the upstream repo). A small adapter insrc/seedsigner/helpers/bitsquiggle.pyrenders it to a pixel-exact, nearest-neighbor-scaled PIL image, sized to fit whatever space is actually free on each screen.Screens covered
{before} >> {after}hex text with two squiggles and a>>separator, since there wasn't room for both the long combined hex string and squiggles side by sideScreenshots
Rendered via the repo's own screenshot-generator hardware mocks (
ScreenshotRenderer). Included in this branch underdocs/pr-screenshots/bitsquiggle/for review — illustrative only, not part of the app, fine to drop before merge.1. Finalize Seed

2. Seed Options (per-seed menu)

3. Xpub Details

4. Address Explorer

5. 12th/24th Word tool

6. Multisig Descriptor Loaded (one squiggle per cosigner)

7. Verify Passphrase (before >> after)

Test plan
pytest tests/test_flows_seed.py tests/test_flows_tools.py tests/test_seed.py— 33/33 pass, unchangedseedsigner-translations(German, Russian) on the original finalize-screen placement to confirm the layout doesn't clip🤖 Generated with Claude Code