• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

archetech / archon / 32420044363
87%

Build:
DEFAULT BRANCH: main
Ran 20 Aug 2026 09:37PM UTC
Jobs 1
Files 89
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Aug 2026 09:33PM UTC coverage: 94.066% (-0.007%) from 94.073%
32420044363

push

github

web-flow
feat(wallet): Add out-of-band invitations to the wallets (#910)

* feat(wallet): Add out-of-band invitations to the wallets

Phase 4 of #905. Connecting to someone meant pasting a DID; an out-of-band
invitation is how that works without one.

Create shows a QR code and a link for the current identity. Accept takes a
scanned or pasted invitation, names the inviter, and hands off to Compose.

The invitation carries no endpoint -- everything needed to reach the inviter
resolves from the DID it names -- and it is unsigned, so the inviter is a
claim: anyone can mint one naming any DID. Accepting therefore starts a
message rather than asserting a relationship, and the code says so where the
button is.

This is the first surface where the wallets genuinely differ rather than
having drifted: react-wallet scans with the Capacitor barcode scanner, and
browser has no camera, so the shared KeymasterUI is paste-only. Both display
QR codes.

KeymasterUI inlines the invitation encoding for the same reason it inlines the
protocol URIs -- the server-wallet demo depends on the thin client package
only, and importing the keymaster package for two helpers would pull it into
that bundle. A test pins the library's wire format against the btoa
construction those copies use, so an encoding change here fails rather than
stranding invitations between wallets.

Refs #905

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wallet): Make the invitation scan work, and pin the codec that matters

Five review findings on phase 4.

**The Scan button could never succeed.** scanQrCodeRaw is not raw: it returns a
barcode only when extractDid matches it first, and an invitation is
`https://didcomm.org?_oob=<base64url>` -- the DID sits inside the payload and
the base64url alphabet has no colon, so nothing matched and every scan reported
failure. Added scanQrText, which returns the scanned text with no
interpretation, and left validation to the caller that knows what... (continued)

3772 of 4247 branches covered (88.82%)

Branch coverage included in aggregate %.

8433 of 8728 relevant lines covered (96.62%)

687.02 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32420044363.1 20 Aug 2026 09:37PM UTC 178
95.09
GitHub Action Run
Source Files on build 32420044363
  • Tree
  • List 89
  • Changed 75
  • Source Changed 0
  • Coverage Changed 75
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32420044363
  • e65be498 on github
  • Prev Build on main (#32413083312)
  • Next Build on main (#32441040486)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc