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

stacklok / toolhive / 30081604025
69%

Build:
DEFAULT BRANCH: main
Ran 24 Jul 2026 09:16AM UTC
Jobs 1
Files 826
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

24 Jul 2026 09:10AM UTC coverage: 69.336% (+0.1%) from 69.208%
30081604025

push

github

web-flow
Record project-scope skill installs in the lock file (#5894)

* Record project-scope skill installs in the lock file

RFC THV-0080 requires every project-scoped skill install to be
pinned in toolhive.lock.yaml, including transitively materialized
toolhive.requires dependencies, with a fail-hard guarantee so a
lock-write failure never leaves an install silently unpinned.

The whole feature stays inert on main until the full RFC v1 (this
lock-file stack plus the later Sigstore stack) has landed — gated
behind TOOLHIVE_SKILLS_LOCK_ENABLED, following the existing
TOOLHIVE_DEV precedent for staged rollouts. Each PR in the stack is
independently mergeable without exposing partial behavior.

- Install hooks into the single choke point (installAndRegister):
  compute contentDigest, upsert the lock entry, roll back the DB
  record if the lock write fails
- toolhive.requires dependencies materialize recursively (visited
  set guards cycles, skills.MaxDependencies bounds the whole tree),
  with RequiredBy merged across shared dependencies
- Uninstall cascades to orphaned, non-explicit dependencies via
  Lockfile.RemoveParentFromRequiredBy, itself cycle-safe
- E2E coverage for the real HTTP API + thv serve subprocess path

Part of the production stack for #5715 (RFC THV-0080). Stack: 3/6.

* Fix CI failure: gitRef test fixture hardcoded http scheme

gitresolver.ParseGitReference only uses "http://" when
TOOLHIVE_DEV=true; the correct default (and what GitHub Actions
CI runners use, since they don't set that var) is "https://".
The gitRef test helper hardcoded "http://" for the fixture
registration key, so every test using it failed in CI with
"no fixture registered for https://...". Compute the scheme the
same way the resolver does instead of hardcoding either one.

* Fix install rollback and dependency cycle detection gaps

installAndRegister's rollback only deleted the DB record, so a
dependency-materialization failure after the parent's own lock entry
had alre... (continued)

253 of 291 new or added lines in 7 files covered. (86.94%)

6 existing lines in 3 files now uncovered.

78164 of 112733 relevant lines covered (69.34%)

80.18 hits per line

Uncovered Changes

Lines Coverage ∆ File
16
57.89
pkg/skills/skillsvc/content_digest.go
12
85.44
-1.23% pkg/skills/skillsvc/uninstall.go
10
89.36
pkg/skills/skillsvc/lock.go

Coverage Regressions

Lines Coverage ∆ File
3
49.27
-0.62% pkg/transport/stdio.go
2
82.29
-0.21% pkg/vmcp/composer/workflow_engine.go
1
85.44
-1.23% pkg/skills/skillsvc/uninstall.go
Jobs
ID Job ID Ran Files Coverage
1 30081604025.1 24 Jul 2026 09:16AM UTC 826
69.34
GitHub Action Run
Source Files on build 30081604025
  • Tree
  • List 826
  • Changed 17
  • Source Changed 4
  • Coverage Changed 17
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30081604025
  • 669265ec on github
  • Prev Build on main (#30080549571)
  • Next Build on main (#30082959484)
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