Distribution: itch installer, inbuilt updater, R2 static content (plan from #223) nf-ldba ← Beads

⚠ 1 bd/gh call(s) failed while loading this page — data below may be incomplete, not necessarily empty.
closed priority 2 task unassigned

Twinned from https://github.com/cfsh/ninefold/issues/268 by tools/beads/import_github.py's reconcile pass.

> 🔒 Claimed by the distribution chat session (workstation, 2026-07-27). Other Claude sessions: do not pick this issue up from the poll loop — PRs for it are coming from the session that filed it.

Concrete plan to get distribution fully sorted, per the decisions in [discussion #223](https://github.com/cfsh/ninefold/discussions/223) ([summary comment](https://github.com/cfsh/ninefold/discussions/223#discussioncomment-17792131)): itch (secret URL) for the public installer download, Cloudflare R2 for static content (manifests, update files, later sample packs), no code signing for now, Supabase stays dedicated to Wavelet EDU.

Existing infra this builds on (mostly #166): installer/ is already a controller-friendly Godot updater — manifest fetch, sha256 diff sync, hash-verified downloads, stale-file cleanup, UDP LAN discovery, and rename-swap self-update. tools/gen_manifest.py generates the manifest; server/ is the LAN dev server + beacon. The work below is largely "point that machinery at the internet", not greenfield.

PR 1 — Installer exports + itch upload
PR 2 — Inbuilt updater in the game (supersedes the installer's updater role)
PR 3 — Release pipeline → R2 + itch
Setup (Aedan — blockers for PR 1/3 verification)
Later / out of scope here

PRs will land stacked where they touch the same files, per the normal workflow. Refs #166.

Dependencies

None.

Comments

No comments.

Add a comment