Aetheria/docs/build-delivery-target.md
Meta Vens 2c2b92579f Map build delivery, and narrow the Idunn invariant to services
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 22:00:45 +02:00

61 lines
3 KiB
Markdown

# Build Delivery Target
Date: 2026-09-17
Status: target. Operator direction only; no substrate map or cut map yet. This
document owns the ends. A cut map, written after an Imagination pass over the
Body, owns the means.
## Why
Aetheria has no player build pipeline and no way for anyone to play it. Builds
are Unity batchmode runs by hand, Windows 64-bit only, and the output never
leaves the machine (`Build/`). Nothing in GameCult publishes a downloadable
artifact: Idunn deploys services to Yggdrasil, not files.
## Operator direction (2026-09-17)
- **A build is downloadable from the GameCult site, served from Yggdrasil.**
Operator: "deployment to a build downloadable from our site via Yggdrasil".
- **Public.** No login, no gate. Operator: "public, with a version feed and
changelog pages".
- **A version feed and changelog pages come with it**, not as a later nicety.
## Ends
- **A build is an artifact with an identity**: a version, the commit it was
built from, the platform, a size and a hash a downloader can check.
- **Publishing is one action**, and it publishes the artifact, the feed entry
and the changelog entry together, or it publishes nothing.
- **The feed is the authority on what exists.** The site's download page and
the changelog pages are projections of it, never separately edited truth.
- **A published version stays published.** Its bytes and its entry do not
change under it; a mistake is a new version, not an edit.
- **The download page tells a visitor what they are getting**: version, date,
platform, size, and what changed since the last one.
- **A build is reproducible from its commit**: the feed entry names it, and a
build from that commit produces the same artifact contents.
## Invariants that must survive
- **State is CultCache, not JSON** (`F:\Projects\CLAUDE.md`). The release
record and the changelog are typed documents. Anything a browser eats is a
projection at the xenos boundary, and is derived, never authored.
- **Idunn owns *service* deployment to Yggdrasil**, and only that. Probed
2026-09-17 (`docs/build-delivery-cut.md`): every Idunn unit is a supervised
process that must publish signed health, and Idunn pulls rather than pushes, so
it cannot carry a file artifact. Publishing uses the host's existing static-file
path and does not invent a second *service* deployment authority.
- **The site's brand is the site's** (`F:\Projects\gamecult-site`), and the
download and changelog pages follow it.
- **The build host is Windows.** Unity 6000.3.24f1 builds on Starfire; the
serving host is Linux. Say which host produced an artifact.
- **Git LFS and repo size** are part of the problem: the checkout alone is
1.7 GB. A build path that needs a fresh clone per release has to say so.
## Not in scope
- Auto-updating clients, launchers, patching, or delta updates.
- Platforms other than Windows 64-bit, until one is asked for.
- Accounts, entitlements, or telemetry. The download is public and anonymous.
- Selling anything.