Public badge
NCM 1.19.0 · Hub 2.2.0
This host. Hub 2.2.0 is the app surface.
Lifecycle
Flywheel versions the hub the way operators actually recover: SemVer, a digested snapshot, a pointer-swap that does not execute payload code, and last-known-good restore. Public badge NCM 1.19.0 · Hub 2.2.0. A later kit on disk is not this badge.

Documented, not a public SLA
Hub unfroze 2026-09-15. Public badge is NCM 1.19.0 · Hub 2.2.0. Earlier kits (including 1.17.0 and 1.18.0) remain on disk as packs. They are not this badge.
How it connects
Flywheel’s upgrade grammar is SemVer plus last-known-good restore. It is not a public SLA.
Prefer a forward fix only when smoke mostly passes
Signed Windows upgrade / downgrade-policy / update-rollback entry paths are still absent. That is unavailable — not a claimed installer SLA. Adapter rollback is a separate, documented control-plane op.
Four identities
Public badge
This host. Hub 2.2.0 is the app surface.
Hub product file
Product-line VERSION.
Python package
Runtime authority. Separate string.
Prior kits on disk
Present as packs. Not this badge.
SemVer 2.0.0
MAJOR
Breaking occupancy, API, or storage contract. Operators should expect a restore drill before they apply it.
MINOR
New surfaces or families that stay refuse-first. Complementary sockets added here stay nominated until bound.
PATCH
Fixes that must not change occupancy grammar, claim silicon, or silently grant a tool.
Operator path
Pin the version you are onRecord NCM 1.19.0 · Hub 2.2.0 (or the Hub version this instance actually reports). Do not apply a pack that targets a newer binary than you run.PreflightConfirm disk, path, digest, and that a backup is required. Hub preflight fails closed if those are missing. Operator consent shows notes, size, migrations, and backup.Encrypted backupHub recovery creates a SQLite online snapshot, encrypts it, decrypt-checks it, and verifies integrity before it is published. NCM apply is backup-gated. Restore is digest-bound.Apply the packNCM apply is a pointer-swap of digested blobs (executes_code = false). Then the ordinary migration lifecycle. Migrations require backup, upgrade, downgrade, and failure tests.Smoke the hubSmoke the active blob (digest + pointer + honesty flags). Open orbit, a labeled map, catalog, and one Observe room. A green HTTP code is not completion.Rollback or forward-rollbackIf smoke fails, restore the last backup pointer / retained prior package. If SemVer forbids a lower number, forward-rollback ships last-good bytes as the next patch so the version still increases.
Record NCM 1.19.0 · Hub 2.2.0 (or the Hub version this instance actually reports). Do not apply a pack that targets a newer binary than you run.
Confirm disk, path, digest, and that a backup is required. Hub preflight fails closed if those are missing. Operator consent shows notes, size, migrations, and backup.
Hub recovery creates a SQLite online snapshot, encrypts it, decrypt-checks it, and verifies integrity before it is published. NCM apply is backup-gated. Restore is digest-bound.
NCM apply is a pointer-swap of digested blobs (executes_code = false). Then the ordinary migration lifecycle. Migrations require backup, upgrade, downgrade, and failure tests.
Smoke the active blob (digest + pointer + honesty flags). Open orbit, a labeled map, catalog, and one Observe room. A green HTTP code is not completion.
If smoke fails, restore the last backup pointer / retained prior package. If SemVer forbids a lower number, forward-rollback ships last-good bytes as the next patch so the version still increases.
When to roll back
Rollback surfaces
documented
FW2-DATA-022: verified encrypted backup, last-known-good restore, pre-migration backup, staged restore, quarantine of displaced DB/WAL/SHM. Production DR reconciliation of restored sessions remains a residual gate — not a public SLA.
documented
Rollback restores the last backup pointer. Forward-rollback ships last-good bytes as the next patch when a lower SemVer is not allowed. Apply does not execute payload code.
documented
Control-plane op: if activate or hotswap fails, the prior route is restored. Multi-LoRA compose fails closed. This is not a Windows installer rollback.
documented
Durable model update retains the prior digest and swaps an alias. Provider weights are not rewritten in place.
documented
Shadow, then canary, with a named rollback policy and an idempotency key. Canary live ≠ certified deploy. Promotion is human.
documented
Pack flags default off and are inventory-only. Kill is a Hub flag row (flag_kill). Rolling back files does not automatically kill a flag. Not a third-party flag SaaS.
documented
SHA-256 bound SQLite snapshot with a backup-manifest. Restore is integrity-checked. Arbitrary paths are rejected.
unavailable
FW2-INSTALL-028: signed upgrade, downgrade-policy, and update-rollback entry paths are still absent on the Windows desktop matrix. Compatibility for Windows 10/11 is release_gated. We do not claim that installer SLA.
Hub upgrade API
/intelligence/upgrade/catalogProtocol map and honesty stamps./intelligence/upgrade/pollChannel versus the active pointer./intelligence/upgrade/preflightDisk, path, digest, backup required./intelligence/upgrade/backupCreate a verified snapshot./intelligence/upgrade/rollbackRestore the last backup pointer./intelligence/upgrade/forward-rollbackLast-good bytes as the next patch./intelligence/upgrade/smokeDigest + pointer + honesty flags./intelligence/upgrade/fail-slotRevert an NCM staging slot to A./intelligence/upgrade/flag-killTurn a first-party flag off after a file restore.NCM apply is a pointer-swap of digested blobs. Flag kill is separate from file restore. Canary live is not a certified deploy.
Protocol map
| Topic | Flywheel | Label |
|---|---|---|
| Semantic Versioning 2.0.0 | Public pin NCM 1.19.0 · Hub 2.2.0. MAJOR.MINOR.PATCH. Kits numbered later than the pin are not this badge. | documented |
| Change log | Hub changelog uses Keep-a-Changelog sections. This host publishes the public badge story. We will not pretend NCM 1.8.0 is current. | documented |
| Conventional Commits / semantic-release | Version numbers are authored and gated. They are not inferred from commit verbs. Not a public SLA. | unavailable |
| In-app poll / consent | Hub can poll a channel and show that a new version is available. Operator consent shows notes, compatibility, size, migrations, and backup. Not a silent store updater. | documented |
| Backup before apply | Apply is backup-gated. Missing backup fails closed. Encrypted snapshot, integrity check, digest-bound restore. | documented |
| Database migrations | Checksummed forward and downgrade paths. Restore runs before database initialization. Some downgrades refuse until an explicit export exists. | documented |
| Canary | Shadow then canary with a named rollback policy. Canary live is not a certified deploy. No auto-promote to 100%. | documented |
| Feature flags | First-party flags default off. Kill is flag_kill. Not LaunchDarkly. File restore does not auto-kill a flag. | documented |
| API versioning | Additive is compatible. Breaking needs a versioned route. Occupancy grammar is not versioned away. NCM version is the public protocol pin. | documented |
| Compatibility matrix | Windows 10/11 release_gated. Linux/macOS planned. Ollama/Cursor/OpenAI/MCP contract_tested. Not certified on every OS. | documented |
| SBOM | CycloneDX SBOM is generated in CI evidence. That is not a claim that every CVE auto-halts a release. | documented |
| Keep prior stables | Keep git tags and the last verified kits. Scheduled DB retention is a documented snapshot policy, not a hosted two-zip SLA. Windows “last two signed installers” is intended, not landed. | illustrative |
| Hosted traffic promote | Flywheel is a local hub. There is no hosted traffic-promote control on this product. | unavailable |
| Uptime / availability SLA | Support response hours are targets, not measured SLAs. Status on this host refuses fake uptime. invented_metrics = false. | unavailable |
| Silent store / Omaha / crash-rate halt | Not claimed. No Chrome-style silent updater, no crash-rate freeze dashboard, no CDN/P2P distribution. | unavailable |
Prevention
ChangelogWhat actually changed. No invented metrics. Public badge is NCM 1.19.0 · Hub 2.2.0.Adapter rollbackAdapter rollback is a different verb from installer restore. Eight operations • seven states.Status (no fake uptime)No fake uptime wall. Occupancy is nominated | live-bound | unavailable.Upgrade stepperPin and preflight are real acts. Apply without backup fails closed. Hover each verb.