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

ilpanich / axiam-typescript-sdk / 31327955085
94%

Build:
DEFAULT BRANCH: main
Ran 09 Aug 2026 06:02PM UTC
Jobs 1
Files 40
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

09 Aug 2026 06:01PM UTC coverage: 94.732% (-0.6%) from 95.313%
31327955085

push

github

web-flow
feat: §16 retry, §17 memo, §18 close(), §19 telemetry (D5) (#47)

Implements the four contract-1.8 quality-of-life sections, and fixes two
defects found while doing it. Re-vendors CONTRACT.md at 1.8.1.

THE BUG THAT MATTERED: withRetry was never called.

`src/rest/retry.ts` was exported, unit-tested and green — and no production
path invoked it. `checkAccess` went straight to axios. So this SDK performed
NO read-only retries at all, while `test/rest/retry.test.ts` passed and the
exported symbol made it look wired. §11.2 rule 5 has required retries here
since it was written, and the requirement was silently unmet.

A tested helper nobody calls is worse than an absent one: the passing tests are
exactly what stop anyone from looking. That is why the new conformance tests
assert through the public `checkAccess` surface — counting requests on the wire
— rather than against the helper in isolation, and why contract 1.8.1 now
requires that of every SDK claiming §16.

The second defect, in the same file: `retryAfterMs ?? backoffDelayMs(attempt)`
made the server's hint REPLACE the computed backoff, so a `Retry-After: 0`
retried immediately and defeated the policy entirely. That is precisely what
§16.1's "floor, never a ceiling" forbids. I wrote that clause on principle for
contract 1.8; it turned out to describe a defect we already shipped.

§16. The policy now matches the normative table: 3 attempts, 200 ms base, 5 s
cap, full jitter over [0, backoff], Retry-After as a floor. The old parameters
(1000 ms / 8 s / partial jitter) were a third divergent invention — Java, Rust
and this SDK each had different ones, which is what contract 1.8 exists to end.
Full jitter is the substantive change: partial jitter keeps every client's
retries clustered around the same instant, causing the thundering herd retries
are meant to prevent. `maxAttempts` is gone from RetryOptions — §16.1 fixes the
cap and forbids raising it.

§17. Opt-in decision memo, off by default (`decisio... (continued)

857 of 935 branches covered (91.66%)

Branch coverage included in aggregate %.

90 of 95 new or added lines in 7 files covered. (94.74%)

16 existing lines in 2 files now uncovered.

1409 of 1457 relevant lines covered (96.71%)

40.01 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
85.37
src/core/decisionMemo.ts
1
93.62
-3.26% src/rest/retry.ts

Coverage Regressions

Lines Coverage ∆ File
9
94.96
-2.91% src/node/oidc.ts
7
90.11
-0.9% src/grpc/client.ts
Jobs
ID Job ID Ran Files Coverage
1 31327955085.1 09 Aug 2026 06:02PM UTC 40
94.73
GitHub Action Run
Source Files on build 31327955085
  • Tree
  • List 40
  • Changed 7
  • Source Changed 7
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31327955085
  • 1929b6a6 on github
  • Prev Build on main (#30940090104)
  • Next Build on main (#31368047246)
  • 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