Skip to content

feat(desktop): scannable QR on the connect card (v0.16.3) - #37

Merged
clawnchdev merged 2 commits into
mainfrom
feat/connect-qr
Jun 2, 2026
Merged

feat(desktop): scannable QR on the connect card (v0.16.3)#37
clawnchdev merged 2 commits into
mainfrom
feat/connect-qr

Conversation

@clawnchdev

Copy link
Copy Markdown
Owner

Adds a real scannable QR to the WalletConnect connect card (the last item from the desktop-UI backlog), after confirming the dependency is safe.

Change

  • connect_card embeds a scannable QR of the WC URI as inline SVG (black on a white tile so wallet scanners read it against the dark card), alongside the existing copyable-URI fallback. Best-effort: falls back to URI-only if encoding fails (_qr_svg returns "").

Dependency safety (verified before adding)

  • qrcode>=8.0 — BSD-licensed, maintained by Lincoln Loop, the de-facto standard Python QR lib.
  • Pinned without the [pil] extra and used via the SvgPathImage factory → no Pillow, no C extensions. Verified in a clean venv: only qrcode installs, Pillow absent, SVG generates.
  • Zero transitive deps on macOS/Linux (colorama is Windows-only).
  • No known advisories in OSV across all versions.

Verification

  • 4575 passed, 8 skipped
  • 100% line coverage (16,227 statements, 0 missing)
  • ruff check + ruff format clean
  • plugin.yaml byte-identical (root + clawmes/)
  • Tool count unchanged

This closes out the desktop-UI backlog. Remaining deferred items (read-tool token links without an address+chain pair; per-toolset descriptions unsupported by the Hermes API) are documented as intentionally skipped.

connect_card now embeds a real scannable QR of the WalletConnect URI
(black on a white tile so scanners read it against the dark card),
alongside the copyable URI fallback. Rendered as inline SVG via qrcode's
SvgPathImage factory — best-effort, falling back to URI-only on failure.

Dependency: adds qrcode>=8.0 (BSD, Lincoln Loop), pinned WITHOUT the
[pil] extra and used via SvgPathImage, so it pulls in no Pillow / no C
extensions — pure-Python, zero transitive deps on macOS/Linux. Verified
against OSV (no advisories).

Verification: 4575 passed, 8 skipped; 100% line coverage (16,227
statements, 0 missing); ruff check + format clean; plugin.yaml
byte-identical; tool count unchanged.
@clawnchdev
clawnchdev merged commit 29555a7 into main Jun 2, 2026
4 checks passed
@clawnchdev
clawnchdev deleted the feat/connect-qr branch June 2, 2026 18:53
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