Versioning policy
What a slivingdoc release contains and how it is tagged, what is stable across releases, and how this documentation is versioned and archived.
This page has two halves: how the tool is released, and how these docs are versioned alongside it.
Release tags
A release is a v<semver> Git tag. The current release is v1.1.0,
after v1.0.0 to v1.0.3 and the v0.2.x line. This documentation
set is version 1.0. It was written against v0.2.5 and is to be
re-verified against the released tool; the space creation pages are
written ahead of the next tag (Changelog).
One tag publishes native binaries for:
- linux/amd64, linux/arm (32-bit ARMv7, including Raspberry Pi OS armhf), and linux/arm64
- darwin/amd64 and darwin/arm64
- windows/amd64
They ship together with a strict SHA256SUMS file and the license
NOTICE. Asset names follow slivingdoc-v<semver>-<os>-<arch>, with
.exe on Windows.
The npm package slivingdoc is a launcher rather than a copy of the
binary. It selects the asset for its exact version and platform, verifies
the published SHA-256, caches the verified bytes, and
forwards stdio to the child process. An unsupported platform fails before
any download, with an actionable error. See
Installation.
A prerelease tag — v1.2.3-rc1, for example — publishes to the next
npm dist-tag. A stable tag publishes to latest.
Publication order
The order is enforced, not conventional:
- The tag builds every target and assembles the GitHub release.
- The npm publish job runs only after the release job, which is what
orders them.
npm run check-releaseruns as a guard beforenpm publish: it sends one HEAD request per required artifact and fails if any is missing. It does not wait for the release to complete. - The same tag then publishes the npm launcher automatically.
- Only after that does the MCP Registry job publish the checked-in
server.jsoncard, because the Registry can verify ownership only once the matching npm package version is public. The version may not be readable the momentnpm publishreturns, so the job first polls the npm registry every 30 seconds, for up to 15 minutes, then validates the card and submits it, retrying the submission up to three times, 60 seconds apart.
Publication uses npm trusted publishing (OIDC): the repository stores no npm token and no Registry token, and provenance relies on the attestation that npm trusted publishing adds by default; no provenance flag is passed. The Registry card’s server version and the npm package version always move together.
What is stable across releases
The tool’s architecture contract names exactly what a caller may depend on:
- The error
code,reason, andactiontokens, and everyfiles[].reasontoken, are stable. Message text can change. See Errors. - The storage format is versioned in the manifest itself: a future
incompatible or extended schema uses a different
version, and a version 1 reader rejects it before touching a pack. MCP callers do not depend on the internal representation at all.
Beyond that, the published sources make no compatibility promise, and neither does this page. The tool is pre-1.0.
How these docs are versioned
A docs version is one tool minor release. Two exist today: 0.1, archived
and frozen, and 1.0, the latest. Version 1.0 does not follow the rule
exactly. It was cut from 0.1 because the tool’s behaviour outgrew the 0.1
set during the v0.2.x line, ahead of the v1.0.0 release it is named
for, so it documents v0.2.5 until that re-verification, plus the space
creation pages. Read “docs 1.0” as the docs version, not the tool’s: the
tool is at v1.1.0.
- Latest lives at the plain URL.
/docs/…is always the newest version. Bookmarks and links to a page keep pointing at its current form. - Archived versions get a prefix. When a version is cut, the old set
moves to
/docs/v<label>/…and stays there, frozen. - An archived page says so. It carries a banner linking to the latest version of the same page, and declares that latest page as canonical for search engines when one exists.
- Archived pages are excluded from the site search and from the
/llms.txtand/llms-full.txtindexes, so neither a person nor an agent lands on a stale page by accident. They still have a Markdown representation like every other page.
Changes inside one version are listed on the Changelog.