Appearance
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:
| Tag | Behavior |
|---|---|
latest | Updated 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:
| Tag | Meaning | Audience |
|---|---|---|
latest | Most recent stable release | Default for end users |
next | Pre-release candidate (release-candidate quality) | Early adopters, integrators |
beta | Active development snapshot, known to be unstable | Internal testers, Matrix team |
alpha | Experimental / spike branches | Internal testers |
When this scheme lands, the publish pipeline will:
- Tag
latestonly onmasterreleases. - Tag
nexton release-branch publications. - Tag
beta/alphaon 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 latestThis 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:
- Run
npm dist-tag add @open-matrix/chat@0.2.2 latest(against the Gitea registry). - Update the publish pipeline's notion of "current latest" if it caches.
- 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 fornext/beta/alphais in the publishing workstream backlog and not in code today.