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

archetech / archon / 29530298357
90%
main: 90%

Build:
Build:
LAST BUILD BRANCH: dependabot/npm_and_yarn/shell-quote-1.10.0
DEFAULT BRANCH: main
Ran 16 Jul 2026 08:04PM UTC
Jobs 1
Files 61
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

16 Jul 2026 08:00PM UTC coverage: 90.328% (-0.003%) from 90.331%
29530298357

Pull #732

github

macterra
feat: author real input schemas for structured-object tools (#727)

Five tools declared a loose JsonObjectSchema (any JSON object at all) and
handed it to a keymaster method needing a specific shape, so the server
advertised "send me anything" and failed deeper in. They now declare the real
shape: StoredWallet, VerifiableCredential, PollConfig, DmailMessage.

The unvalidatedShape() markers from #728 are gone, and so is get_property's:
didDocumentData is `unknown` and often not an object, so it now guards with
isJsonObject instead of casting -- which also stops an index into a string or
array returning a nonsense "property".

The hazard here is the opposite of the outputSchema one. Zod STRIPS unknown
keys on input parse rather than rejecting them, so a plain object where the
source type declares `[key: string]: any` would silently delete data: a
restored wallet's custom metadata, or a credential's claims. Schemas
passthrough exactly where the type declares an extension point (WalletFile,
IDInfo, Seed, credentialSubject) and stay closed where it does not (PollConfig,
DmailMessage), so junk is dropped rather than stored.

Nothing is stricter than the keymaster method behind it, or the tool would
reject input the CLI and REST API accept: deadlines stay plain strings (not
.datetime()) because keymaster accepts anything new Date() parses, and `proof`
is left unmodelled because updateCredential deletes and re-signs it. Semantic
rules keymaster owns -- deadline in the future, recipient resolves to an agent
-- are not duplicated; only what a client can act on before calling is.

The sweep test's fixtures were never valid shapes (a poll config with a `title`
field), which nothing caught while the schemas accepted anything.

Cost: ~615 tokens on listTools. Verified through a real McpServer/Client that
the wallet union survives JSON Schema generation as anyOf, custom metadata
survives the wire and parse, and malformed input is rejected before keymaster.

Breaking... (continued)
Pull Request #732: feat: author real input schemas for structured-object tools (#727)

2940 of 3486 branches covered (84.34%)

Branch coverage included in aggregate %.

14 of 14 new or added lines in 1 file covered. (100.0%)

6 existing lines in 1 file now uncovered.

6119 of 6543 relevant lines covered (93.52%)

836.86 hits per line

Coverage Regressions

Lines Coverage ∆ File
6
92.81
-0.15% packages/mcp-server/src/tools.ts
Jobs
ID Job ID Ran Files Coverage
1 29530298357.1 16 Jul 2026 08:04PM UTC 122
91.5
GitHub Action Run
Source Files on build 29530298357
  • Tree
  • List 61
  • Changed 56
  • Source Changed 1
  • Coverage Changed 56
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29530298357
  • Pull Request #732
  • PR Base - main (#29528958821)
  • 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