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

stacklok / toolhive-studio / 24785506739 / 1
70%
main: 70%

Build:
DEFAULT BRANCH: main
Ran 22 Apr 2026 03:00PM UTC
Files 476
Run time 17s
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

22 Apr 2026 02:57PM UTC coverage: 66.656% (+0.04%) from 66.615%
24785506739.1

push

github

web-flow
feat(analytics): add UTM suite and instance id to on-ramp outbound links (#2075)

* refactor(hooks): extract useInstanceId into a shared hook

The react-query call that fetches the instance id from the main
process was inlined in useHubSpotForm. Lift it into a dedicated
renderer/src/common/hooks/use-instance-id.ts so other renderer
surfaces (on-ramp links, analytics) can share the cached value
without duplicating the queryKey.

* feat(analytics): add buildOnrampDocsUrl helper for on-ramp outbound links

Small builder that emits docs URLs with the full UTM suite
(utm_source, utm_medium, utm_campaign, utm_content) plus an
optional tdi param populated from the instance id. Params are
emitted in a stable, documented order; tdi is omitted when the
instance id query has not yet resolved so the link remains
clickable during the first render.

* feat(nav): attach full UTM suite and instance id to Enterprise upgrade link

The header "Upgrade to Enterprise" button now routes through
buildOnrampDocsUrl with campaign=enterprise-upgrade and
content=app-header, and carries the instance id as tdi, so the
marketing site can attribute clicks back to the app surface and
to the user's install.

* feat(registry): attach full UTM suite and instance id to custom registry promo link

The "Build a custom registry" promo tile now uses the shared
on-ramp URL builder with campaign=custom-registry and
content=registry-view-tile, including the instance id as tdi for
attribution parity with the Enterprise upgrade CTA.

* refactor(hooks): cache useInstanceId for a few days

The instance id is stable across restarts but the IPC itself is
cheap, so pinning the cache forever is overkill. Set staleTime
to three days — enough to avoid the per-mount refetch without
locking the value in the client cache for the lifetime of the
app.

* refactor(nav): scope instance-id fetch to the Enterprise upgrade button

Extract the upgrade CTA into its own small component that owns
the useInstanceId ca... (continued)

3892 of 6380 branches covered (61.0%)

6049 of 9075 relevant lines covered (66.66%)

120.62 hits per line

Source Files on job 24785506739.1
  • Tree
  • List 476
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 24785506739
  • a25a722f on github
  • Prev Job for on main (#24785404638.1)
  • Next Job for on main (#24789477987.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