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

stacklok / toolhive / 37516136801
71%

Build:
DEFAULT BRANCH: main
Ran 06 Oct 2026 07:11PM UTC
Jobs 1
Files 940
Run time 2min
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

06 Oct 2026 07:03PM UTC coverage: 70.956% (+0.002%) from 70.954%
37516136801

push

github

web-flow
Add compare-and-set update for DCR credentials (#6758)

* Add compare-and-set DCR credential update

DCRCredentialStore could only create-if-absent or overwrite-if-present,
so a caller coordinating DCR re-registration across replicas could not
make its overwrite safe against a concurrent writer: a lock holder that
stalls past its lease would clobber a newer row on resume. The check and
the write cannot be made atomic from outside the store because the lock
and row keys hash to different Cluster slots and the row encoding is
unexported.

Implements changes for issue #6757:
- Add UpdateDCRCredentialsIfUnchanged and ErrDCRCredentialsChanged
- Memory: compare and write under the storage mutex
- Redis: single-key WATCH/MULTI comparing decoded stored forms, so it
  is Cluster-safe and tolerant of the stored one-second time precision
- TTL handling matches UpdateDCRCredentialsIfPresent
- Regenerate mocks; add unit and Sentinel integration tests

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

* Add start barrier to memory DCR CAS race test

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

* Clarify DCR compare-and-set contract

Addresses stacklok/toolhive#6758 review comments:
- MEDIUM types.go (4198367657): document how a decorator with a
  non-reproducible transform supplies the stored form of expected
- LOW redis.go (4198367706): document the retry-exhaustion outcome
- LOW memory.go (4198367719): note new time.Time fields must be
  compared with Equal in dcrCredentialsEqual
- LOW redis.go (4198367731): extend maxDCRClaimRetries comment to
  cover UpdateDCRCredentialsIfUnchanged

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

* Cover remaining DCR compare-and-set paths

Addresses stacklok/toolhive#6758 review comments:
- MEDIUM redis_test.go (4198367681): test WATCH retry, retry
  exhaustion, corrupt stored row, and expired-but-present row
- MEDIUM memory_test.go (4198367695): per-field comparison table run
  on both backends, wi... (continued)

94 of 107 new or added lines in 4 files covered. (87.85%)

14 existing lines in 4 files now uncovered.

84884 of 119629 relevant lines covered (70.96%)

126.13 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
43.23
-0.47% pkg/authserver/storage/mocks/mock_storage.go
4
82.82
0.25% pkg/authserver/storage/redis.go

Coverage Regressions

Lines Coverage ∆ File
6
72.34
-6.38% pkg/secrets/keyring/keyctl_linux.go
5
59.63
-0.52% pkg/workloads/manager.go
2
80.0
-5.71% pkg/vmcp/backendregistry/registry.go
1
81.07
-0.12% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 37516136801.1 06 Oct 2026 07:11PM UTC 940
70.96
GitHub Action Run
Source Files on build 37516136801
  • Tree
  • List 940
  • Changed 11
  • Source Changed 4
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37516136801
  • 4c866b51 on github
  • Prev Build on main (#37446960850)
  • Next Build on main (#37679606147)
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