From ef7d3c5cac48edc22b567c500826b90d7c5da9c6 Mon Sep 17 00:00:00 2001 From: Ronald Tse Date: Thu, 27 Aug 2026 20:29:15 +0800 Subject: [PATCH] =?UTF-8?q?docs(distribution):=20shipped=20index=20channel?= =?UTF-8?q?=20=E2=80=94=20Release=20assets=20+=20sidecar,=20pinned=20runti?= =?UTF-8?q?mes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TODO.distribution/00-overview.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/TODO.distribution/00-overview.md b/TODO.distribution/00-overview.md index 4ca3730..d95ee52 100644 --- a/TODO.distribution/00-overview.md +++ b/TODO.distribution/00-overview.md @@ -53,6 +53,24 @@ Ruby model cache → ~/.cache/interscript///model.onnx Each channel serves a real audience. None is redundant. +## Model index channel (SHIPPED 2026-08-27) + +`models.yaml` is published as a **GitHub Release asset** — never +raw.githubusercontent.com, never a branch head: + +- Tag shape: `index-vN` (monotonic, immutable in practice; add a tag + protection rule for `index-v*`). +- Assets per release: `models-index.yaml` + `models-index.yaml.sha256`. +- Workflow: `release-index.yml` (fires on `index-v*` tag push or + workflow_dispatch). +- Runtimes pin + `https://github.com/interscript/interscript-ml/releases/download/index-vN/models-index.yaml` + and MUST verify the `.sha256` sidecar before parsing (all four + crystals: interscript-ts 3.1.0, secryst-ts 0.2.0, secryst-py 0.1.2, + secryst gem 1.0.1 — sidecar good/bad/missing covered by tests). +- Adding a model: WO03 gate → merge entry → cut `index-vN+1` → + runtimes pick it up on their next pin bump. + ## File index - `00-overview.md` — this file