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

stacklok / toolhive / 40322280336
73%

Build:
DEFAULT BRANCH: main
Ran 26 Oct 2026 12:31PM UTC
Jobs 1
Files 977
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

26 Oct 2026 12:24PM UTC coverage: 71.778% (+0.02%) from 71.754%
40322280336

push

github

web-flow
Merge commit from fork

* Stop composite workflow on skip_remaining

The skip_remaining elicitation action is documented as skipping the
remaining workflow steps, but the engine only recorded the gate step as
a success and returned nil. The DAG executor then ran every later step,
so tool calls gated behind a declined, cancelled or timed-out
elicitation were still executed.

Return an internal sentinel from the skip_remaining handler. The DAG
executor stops on it before applying continue-on-error, and
ExecuteWorkflow records every step that did not run as skipped (with
its defaultResults and a step-skipped audit event) before completing
the workflow successfully. This keeps skip_remaining distinct from
abort, which fails the workflow.

Cover it with a workflow-engine regression test and an in-process
end-to-end test that drives a real client, vMCP and a real backend:
declining or cancelling the gate must leave the backend tool uncalled,
accepting it must run the tool once.

Document the abort, skip_remaining and continue semantics in the
elicitation example and the vMCP architecture doc.

Fixes GHSA-hjq9-7gq7-wg83

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Giuseppe Scuglia <peppescg@gmail.com>

* Report timeouts during a skip_remaining gate

A workflow timeout or caller deadline that expired while a
skip_remaining elicitation waited was mapped to an elicitation timeout,
routed to onCancel, and reported as a successfully completed workflow.
Report the context error instead so the existing timeout and failure
handling applies; the gate's own timeout is still a graceful skip.

Document what skip_remaining guarantees: only steps that depend on the
gate never run, while steps on the same DAG level may have run or be
cancelled. Add the decline/cancel/timeout semantics to the operator
guide and the architecture doc, fix comments that said a skipped step
always means a false condition, and make the elicitation example ... (continued)

19 of 19 new or added lines in 2 files covered. (100.0%)

146 existing lines in 8 files now uncovered.

89489 of 124675 relevant lines covered (71.78%)

128.9 hits per line

Coverage Regressions

Lines Coverage ∆ File
67
87.5
0.18% pkg/vmcp/server/server.go
28
81.4
0.54% pkg/vmcp/server/sessionmanager/session_manager.go
27
79.32
0.0% pkg/vmcp/server/serve_handlers.go
9
83.54
2.72% pkg/transport/session/session_data_storage_redis.go
6
72.34
-6.38% pkg/secrets/keyring/keyctl_linux.go
4
95.4
0.6% pkg/transport/session/session_data_storage_local.go
3
83.13
-0.17% pkg/authserver/storage/redis.go
2
80.0
0.0% pkg/transport/session/session_data_storage.go
Jobs
ID Job ID Ran Files Coverage
1 40322280336.1 26 Oct 2026 12:31PM UTC 977
71.78
GitHub Action Run
Source Files on build 40322280336
  • Tree
  • List 977
  • Changed 16
  • Source Changed 12
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #40322280336
  • c3f5032b on github
  • Prev Build on main (#40137921395)
  • Next Build on main (#40334339708)
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