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

archetech / archon / 34427326808
87%

Build:
DEFAULT BRANCH: main
Ran 10 Sep 2026 01:58AM UTC
Jobs 1
Files 98
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

10 Sep 2026 01:54AM UTC coverage: 92.412% (-0.1%) from 92.509%
34427326808

push

github

web-flow
feat(keymaster): Credentials other DID methods can verify (#1085)

* feat(cipher): Add Ed25519 signing and Multikey encoding

The Data Integrity cryptosuites that verifiers outside Archon accept are
defined for Ed25519, and the repo had no Ed25519 signing anywhere -- only
the birational map that turns a foreign Ed25519 key into an X25519 one
for DIDComm.

Ed25519Jwk* sits beside the Okp* triple rather than widening it: that one
is pinned to X25519 for key agreement, and the two curves are never
interchangeable.

multikey.ts holds the multibase encodings the DID document and a
proofValue need -- prefixed with a multicodec for a verification method,
bare for a signature -- and takes over the constants that were private to
didcomm.ts. canonicalizeJSON joins the Cipher interface because
eddsa-jcs-2022 canonicalizes the proof config and the document
separately, and keymaster holds the interface rather than the class.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYGMfX3foBcVqP7AQNXjWj

* fix(keymaster): Keep keys published beside the one being rotated

rotateKeys rebuilt verificationMethod as a single-element array, so every
key published alongside the identity key was dropped. keyAgreement was
not rebuilt with it, leaving publishDidComm's #key-agreement-1 named by a
relationship whose verification method no longer existed -- a document no
sender can dereference, and DIDComm to that identity stops working.

The rotated key is replaced in place now and the relationships that named
it are rewritten, leaving every other method alone.

didCommFragment was never DIDComm-specific and rotateKeys needs the same
comparison, so it and its Python twin become one keyFragment helper each.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYGMfX3foBcVqP7AQNXjWj

* feat(keymaster): Derive and publish an Ed25519 assertion key

The Data Integrity cryptosuites a d... (continued)

4080 of 4695 branches covered (86.9%)

Branch coverage included in aggregate %.

214 of 226 new or added lines in 6 files covered. (94.69%)

1 existing line in 1 file now uncovered.

8744 of 9182 relevant lines covered (95.23%)

744.42 hits per line

Uncovered Changes

Lines Coverage ∆ File
11
90.89
-0.33% packages/keymaster/src/keymaster.ts
1
90.91
packages/cipher/src/multikey.ts

Coverage Regressions

Lines Coverage ∆ File
1
90.89
-0.33% packages/keymaster/src/keymaster.ts
Jobs
ID Job ID Ran Files Coverage
1 34427326808.1 10 Sep 2026 01:58AM UTC 196
93.52
GitHub Action Run
Source Files on build 34427326808
  • Tree
  • List 98
  • Changed 82
  • Source Changed 5
  • Coverage Changed 82
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #34427326808
  • d6eb9a05 on github
  • Prev Build on main (#34260439067)
  • Next Build on main (#34432555197)
  • 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