Skip to content

epic: align skill-router release + self-update with maximal's manifest-based mechanism #30

Description

@stuffbucket

Bring the skill-router MCP's self-update UX in line with the manifest-based update mechanism used by stuffbucket/maximal, so users on the primary npm/npx distribution actually learn about and can apply new releases.

Current state (what already works vs. what's broken)

The mechanism to mirror (maximal)

maximal's detector (src/lib/update/update-check.ts) is the reference:

  • Source of truth is a small JSON fetched over plain HTTP (a CDN-served, channel-keyed manifest), chosen over the GitHub REST API because anonymous REST is 60/h/IP and fails behind shared NAT (docs/decisions/site-runtime-version-manifest.md).
  • The check is total / never-throws: offline, non-200, timeout, and malformed all resolve to a coherent status with a diagnostic last_error, preserving last-known.
  • In-process TTL cache, fetch timeout, UA header, no auth; hand-rolled semver-precedence compare, zero deps.
  • Surfaced notify-only (no auto-install).

For the MCP, the portable adaptation is: read the current version from the package package.json, take "latest" from the npm registry (works for every install type), and keep maximal's cache + never-throws + semver-compare shape.

Work items

Suggested order

#27 (the engine) → #28 (the surface, depends on #27) → #29 (the apply step). #28 and #29 can proceed in parallel once #27 lands.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions