Skip to content

Channels

A "channel" in Matrix means an npm dist-tag. Dist-tags are pointers from named labels to specific versions; consumers can install @open-matrix/chat@latest, @open-matrix/chat@beta, etc.

Today

Only one channel is actively published:

TagBehavior
latestUpdated on every successful publish. The default for npm install <pkg> with no version specifier.

Pre-release tags (next, beta, alpha) are not currently produced by the publish pipeline. They are reserved.

Target state

The intended channel scheme is:

TagMeaningAudience
latestMost recent stable releaseDefault for end users
nextPre-release candidate (release-candidate quality)Early adopters, integrators
betaActive development snapshot, known to be unstableInternal testers, Matrix team
alphaExperimental / spike branchesInternal testers

When this scheme lands, the publish pipeline will:

  1. Tag latest only on master releases.
  2. Tag next on release-branch publications.
  3. Tag beta / alpha on workstream-branch publications (under explicit maintainer approval).

This is target state. The publish pipeline today writes only latest.

How channels interact with version ranges

A consumer pinning to a tag instead of a version range:

json
{
  "dependencies": {
    "@open-matrix/chat": "next"
  }
}

…installs whatever version next currently points to. On npm install, that resolves at install time and is captured in the lockfile. Rerunning npm install with a stale lockfile does NOT re-resolve the tag — the lockfile version wins. To pick up a new next, run npm update or delete the lockfile.

Tags are read-once at resolve time. They are not a live subscription.

Channels in Gitea

Gitea supports dist-tags via the standard npm protocol. The packages page in Gitea's UI shows tag pointers. Operators can manually retag through:

bash
NPM_CONFIG_REGISTRY=https://registry.hivecast.ai/api/packages/hivecast-admin/npm/ \
NPM_CONFIG__AUTH_TOKEN=<gitea-token> \
npm dist-tag add @open-matrix/chat@0.2.3 latest

This is the same command that works against npmjs.com. Gitea's npm packages API is fully compatible.

Channel rollback

Today there is no automated rollback. To revert latest to a previous version:

  1. Run npm dist-tag add @open-matrix/chat@0.2.2 latest (against the Gitea registry).
  2. Update the publish pipeline's notion of "current latest" if it caches.
  3. Notify consumers who may have already pinned the bad version through their lockfile to run npm update.

The catalog's discovery-index.json is unaffected by tag changes — it is indexed by literal version, not by tag.

See also

Source: Today's publish pipeline emits only latest. Target state for next/beta/alpha is in the publishing workstream backlog and not in code today.