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

stacklok / toolhive / 23889040631 / 1
66%
main: 66%

Build:
DEFAULT BRANCH: main
Ran 02 Apr 2026 07:27AM UTC
Files 601
Run time 13s
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

02 Apr 2026 07:21AM UTC coverage: 65.488% (+0.005%) from 65.483%
23889040631.1

push

github

web-flow
Migrate session manager to DataStorage and add RestoreSession (#4464)

* Migrate session manager to DataStorage and add RestoreSession

Replace the *transportsession.Manager dependency in sessionmanager.Manager
with the DataStorage interface (introduced in split PR 1), enabling pluggable
session metadata storage (local or Redis) without coupling live session state
to the serialization layer.

Key changes:
- Add Exists() to the Storage interface with implementations for LocalStorage
  and RedisStorage; expose TTL() and Exists() on transportsession.Manager
- Add RestoreSession() to MultiSessionFactory (and decorating/mock impls);
  refactor makeSession → makeBaseSession so RestoreSession can reconstruct a
  live session from stored metadata without a bearer token
- Add RestoreHijackPrevention() in pkg/vmcp/session/internal/security to
  recreate the hijack-prevention decorator from stored hash/salt
- Rewrite sessionmanager.Manager to use DataStorage: node-local multiSessions
  sync.Map for hot-path lookups, singleflight-deduplicated RestoreSession on
  cache miss, and a background eviction loop that probes storage.Exists() to
  clean up expired MultiSession objects whose Redis TTL fired silently
- Replace *transportsession.Manager in discovery.Middleware with a
  MultiSessionGetter interface backed by the session manager; remove the 401
  for unknown sessions — the SDK now responds 404 via Validate()
- Wire server.go to create LocalSessionDataStorage and pass it to
  sessionmanager.New; route discovery middleware through vmcpSessionMgr

Closes: #4220

* fixes from review

---------

Co-authored-by: taskbot <taskbot@users.noreply.github.com>

54176 of 82726 relevant lines covered (65.49%)

64.03 hits per line

Source Files on job 23889040631.1
  • Tree
  • List 601
  • Changed 13
  • Source Changed 7
  • Coverage Changed 13
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 23889040631
  • 47c3651a on github
  • Prev Job for on main (#23870867049.1)
  • Next Job for on main (#23903394499.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc