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

archetech / archon / 38332177517
93%

Build:
DEFAULT BRANCH: main
Ran 13 Oct 2026 01:36AM UTC
Jobs 1
Files 106
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

13 Oct 2026 01:26AM UTC coverage: 95.023% (+0.02%) from 95.007%
38332177517

push

github

web-flow
fix(keymaster): report Gatekeeper timeouts as 504 and outages as 503 (#1389)

* fix(keymaster): report Gatekeeper timeouts as 504 and outages as 503

A Gatekeeper request that timed out in the Python Keymaster raised
httpx.ReadTimeout, whose message is empty, so callers got a 500 with
{"error": ""} and the log got two tracebacks. The TypeScript Keymaster set
no Gatekeeper timeout and waited indefinitely, and its resolve-style routes
reported any failure, including an outage, as 404.

Both Gatekeeper clients now raise GatekeeperTimeoutError when no response
arrives in time and GatekeeperUnavailableError when Gatekeeper cannot be
reached. Both services map them to 504 and 503 with a message, and the
TypeScript service uses the same 30-second timeout as Python. Resolve-style
routes keep their 404 for resolution failures but pass these through.
The Python generic handler no longer logs a traceback Starlette already
logs. README section 16.3 records the classification.

Fixes #1380

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(keymaster): classify Drawbridge Lightning transport failures too

Review follow-up for #1389:

- DrawbridgeClient kept a private throwError that reduced transport
  failures to strings, so Lightning requests through the Keymaster
  service's client still answered 500. Reuse the typed helper, matching
  the Python client, where Lightning calls already share the wrapper.
- Restate the README's two status exceptions: the TypeScript resolve-style
  routes collapse resolution failures to 404 except Gatekeeper outages,
  /aliases never calls Gatekeeper, and the Python service applies the
  classification table to these routes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

3578 of 3995 branches covered (89.56%)

Branch coverage included in aggregate %.

24 of 24 new or added lines in 7 files covered. (100.0%)

9864 of 10151 relevant lines covered (97.17%)

22048.2 hits per line

Jobs
ID Job ID Ran Files Coverage
1 38332177517.1 13 Oct 2026 01:36AM UTC 106
95.02
GitHub Action Run
Source Files on build 38332177517
  • Tree
  • List 106
  • Changed 9
  • Source Changed 8
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #38332177517
  • 852a494c on github
  • Prev Build on main (#38331516593)
  • Next Build on main (#38408293504)
  • 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