stacklok / stacklok/toolhive-studio

Align studio registry consumers with toolhive's v0.1 registry surface

Open
#2,252 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
167
Forks
24
Avg merge
11h 32m
Merged PRs (30d)
91

Description

Summary

The toolhive backend is removing the legacy registry format and aligning its registry API with the v0.1 surface that stacklok/toolhive-registry-server exposes. Studio needs to follow.

Phase 1 — Remove registry_legacy_format handling

Once the BE stops emitting registry_legacy_format (stacklok/toolhive#5278), the corresponding FE branches are dead code.

Files:

  • renderer/src/common/components/settings/registry/registry-errors-message.tsREGISTRY_LEGACY_FORMAT_CODE, isRegistryLegacyFormatError, legacy-format toast
  • renderer/src/common/components/error/registry-error.tsxisLegacyFormat branch
  • Corresponding tests

Blocked on: stacklok/toolhive#5278

Phase 2 — Switch to v0.1 API and retype RegistryItem

Toolhive is removing /api/v1beta/registry/{name}/servers and aligning its v0.1 surface with toolhive-registry-server's swagger (stacklok/toolhive#5279). Studio needs to:

  • Switch from /api/v1beta/registry/{name}/servers to the v0.1 endpoints — same pattern studio already uses for skills.
  • Adopt the per-version sub-resources (/servers/{serverName}/versions, /versions/{version}) as they replace /versions/latest.
  • Retype RegistryItem from RegistryImageMetadata | RegistryRemoteServerMetadata to the upstream MCP shape.
  • Regenerate common/api/generated/ against the new OpenAPI spec.

Files (~15+): everything in renderer/src/features/registry-servers/ and renderer/src/features/mcp-servers/ that imports the legacy types, plus common/api/registry-types.ts.

Blocked on: stacklok/toolhive#5279

References

  • BE phase 1: stacklok/toolhive#5278
  • BE phase 2: stacklok/toolhive#5279
  • Surface reference: stacklok/toolhive-registry-server docs/thv-registry-api/swagger.yaml
  • Landed: stacklok/toolhive-catalog#1215, stacklok/toolhive-core#105, stacklok/toolhive#5273

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with docs/thv-registry-api/swagger.yaml and the changes in stacklok/toolhive#5278 and #5279, then inspect common/api/registry-types.ts and the registry consumer files under renderer/src/features/registry-servers/ and renderer/src/features/mcp-servers/. Regenerate common/api/generated/ and update the corresponding registry error tests; done means Studio no longer handles the legacy format and consumes the v0.1 endpoints and types.

Written by the indexing model from the issue text.

Assessment

Tech stack
openapi, typescript
Domain
api, frontend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.