Skip to content

fix: point the well-known index at each release's own archives - #64

Merged
nicknisi merged 1 commit into
mainfrom
nicknisi/well-known-versioned-archive-urls
Oct 28, 2026
Merged

nicknisi merged 1 commit into
mainfrom
nicknisi/well-known-versioned-archive-urls

Conversation

@nicknisi

Copy link
Copy Markdown
Member

Why

Review on workos/workos#77885 caught a gap in #62. workos.com serves the latest release's index.json, and the index listed archives by relative name, so they resolved to the latest release's archives too. An index fetched or cached just before a release could pair with the next release's archives and fail its digest check.

  • Each archive URL in the index now points at the release that built it, for example https://github.com/workos/skills/releases/download/v0.9.1/workos.tar.gz. Release assets don't change, so any copy of the index, however old, resolves to archives that match its digests.
  • The release URL is now a required argument, so a later workflow edit can't quietly fall back to relative URLs.
  • The worker on workos.com then only needs to serve index.json; #77885 drops its archive route to match.

Proof

  • Served an index built with absolute URLs from a local server, with the archives under a separate /releases/download/v9/ path. npx skills add http://localhost:8799 --skill workos workos-widgets -a claude-code -y read the index from /.well-known/agent-skills/ and downloaded both archives from the release path, installing all 76 files.

Not proven

The workflow change runs on the next release. To fix the live v0.9.0 index before 0.9.1, dispatch "Publish well-known skills" with tag: v0.9.0 after merging. main will still have the v0.9.0 skill content then, so the regenerated index points at the v0.9.0 archives and their digests match.

workos.com serves the latest release's index.json. With relative archive
URLs, an index fetched or cached before a release could resolve to the
next release's archives and fail its digest check. Absolute URLs into
the release that built the index never change, so the index and its
archives always match.
@greptile-apps

greptile-apps Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge.

Summary

The discovery index now points at each release’s own archives, so a cached index keeps its matching downloads after another release.

  • The skills index sends clients to its release’s own archives.

Acknowledged by nicknisi: updating the live v0.9.0 index requires a manual workflow run after merging. The PR intentionally leaves that step separate.

Review checks were limited to reading code; tests were not run.

Diagram

sequenceDiagram
  participant Client
  participant Workos as workos.com
  participant Release as GitHub release vX
  Client->>Workos: Fetch index.json
  Workos-->>Client: Index with archive URLs for vX
  Note over Workos: A newer release may become latest
  Client->>Release: Download archives for vX
  Release-->>Client: Archives matching the index digests
Loading

Reviews (1) · Last reviewed commit: "fix: point the well-known index at each ..." · Reviewed by Greptile

@nicknisi
nicknisi merged commit 630c763 into main Oct 28, 2026
4 checks passed
@nicknisi
nicknisi deleted the nicknisi/well-known-versioned-archive-urls branch October 28, 2026 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant