acdream/src
Erik 600c331ac6 feat(launcher): Gitea-backed alpha update feed replaces the GitHub Releases source
The launcher reported "no client available" because its update source was
pinned to a GitHub Releases manifest in a PRIVATE repo — nothing anonymous
could ever be fetched from it. Switch the feed to the PUBLIC Gitea repo so a
friend needs no account, and add the two commands that publish it.

- ReleaseManifestClient.ProductionManifestUri now points at
  git.snakedesert.se/erik/acdream raw on the `dist` branch. No update
  machinery changed: the existing strict reader already accepts any HTTPS
  manifest, so this is a URL swap plus a build script.

- tools/publish-bin.ps1 publishes the payloads into /bin and writes
  bin/manifest.json (schema v1, SHA-256 + size per artifact):
    client-win-x64.zip    AcDream.App + acdream-headless
    launcher-win-x64.zip  acdream-launcher + co-deployed acdream-bake
  Stamps InformationalVersion ONLY — never -p:Version, which also rewrites
  project-reference versions inside the committed packages.<rid>.lock.json
  files and churned every one of them with a throwaway build stamp.

- tools/publish-dist.ps1 pushes /bin to the Gitea-only `dist` branch from a
  throwaway worktree, leaving the developer's checkout, index, and HEAD
  untouched. It refuses a GitHub remote outright.

Why `dist` and not main: the launcher payload is ~103 MB because the launcher
and its co-deployed bake CLI are each self-contained single files (deliberate,
see AcDream.Launcher.csproj). GitHub hard-rejects files over 100 MB, and all
three refs currently track main, so payloads on main would break every GitHub
push. `dist` is a single-commit orphan branch that each publish REPLACES, so
superseded builds never accumulate. /bin stays gitignored repo-wide and is
force-added only on that branch.

Verified live: manifest and both payloads serve anonymously over HTTPS, and a
downloaded client payload matches its declared SHA-256 and size byte for byte.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 19:49:06 +02:00
..
AcDream.App test: replace campaign labels with behavior names 2026-08-18 12:25:00 +02:00
AcDream.Bake build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Cli build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Content build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Core build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Core.Net build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Headless build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Launcher build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Launcher.Core feat(launcher): Gitea-backed alpha update feed replaces the GitHub Releases source 2026-08-18 19:49:06 +02:00
AcDream.Platform build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Plugin.Abstractions build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Plugins.Smoke build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AcDream.Runtime test: replace campaign labels with behavior names 2026-08-18 12:25:00 +02:00
AcDream.UI.Abstractions test: remove ambient timing from double-click contracts 2026-08-18 11:38:31 +02:00