SkillHub
← All releases
v0.12.0

Search that searches, and pages that tell the truth

  • web
  • api
  • sources
  • security

Searching skills.sh from Explore never worked. Not "worked slowly" or "worked sometimes" — the request was never sent. This release makes it real, alongside a set of fixes to pages that were quietly saying things that were not true.

Highlights

  • External search actually searches. Explore's skills.sh tab returned an empty list for every query because the credential it needed was read from a place it never arrives. It now uses the per-request credential the platform issues, so a search for anthropic returns what you would expect. Results also carry the right identifier, so Import works on them.
  • A failed search no longer looks like an empty one. When an upstream is unreachable, rate-limited, or refuses us, the page says so instead of showing "no results" and letting you conclude the corpus is empty.
  • Dead links return a real 404. A registry or skill URL that does not resolve used to render a "doesn't resolve" page while telling browsers, crawlers and scripts that everything was fine. The page looks the same; the status code now matches it. A private registry stays indistinguishable from a nonexistent one.
  • Tab switches are instant. Moving between README, Files and Versions on a skill — or between tabs on a registry or in settings — cost a full server round-trip of several seconds to change which panel was visible. The content was already in your browser the whole time. Deep links to a tab still work.
  • Signed-in pages got faster. Loading a page verified your session about fourteen times over the network. It now verifies once. Signing out still takes effect immediately.
  • Sign up with an email address. SkillHub previously required a GitHub account. There is now an email and password sign-up page beside the existing sign-in, with GitHub still the quickest route.
  • A less confusing CLI login. Mistyping the device code sent you to a server error page instead of the screen that explains the mistake, and exhausting the retry limit told you to wait "undefineds" before trying again.