v0.1.0 shipped on 2026-08-07, so every doc that said "not released yet"
was wrong the moment the cutover merged.
- INSTALL.md: replace the pre-release status banner. The installer is the
path the guide leads with; Appendix A is reframed as supported-not-
deprecated, for hosts that cannot run the binary, operators who want to
place files themselves, and development from a working tree.
- PLAN.md: status is Shipped, both cutover gates recorded as met (incl.
the Windows 1053 handshake bug the real SCM run found), Phase 5 table
and 5.4 closed out.
- README.md: point anyone setting up a shard at INSTALL.md first.
- link/link-README.md: mark the pre-split snapshot as historical, so its
deploy.ps1 instructions stop reading as the setup path.
Co-Authored-By: Claude <noreply@anthropic.com>
| [INSTALL.md](installer/INSTALL.md) | **Operator guide** — installing Runic Gateway on a ServUO shard, connecting it to the website, and diagnosing it. Includes the by-hand path, which works today |
| [INSTALL.md](installer/INSTALL.md) | **Start here to set up a shard** — the installer deploys the plugin overlay and the uo-link sidecar, registers the service, and connects it to the website. Appendix A is the same thing byhand, still supported |
| [PLAN.md](installer/PLAN.md) | Installer design of record — phases, locked decisions, the bundle/compat-matrix model |
| [PLAN.md](installer/PLAN.md) | Installer design of record — phases, locked decisions, the bundle/compat-matrix model |
deployment done by hand — bundle fetch, tarball verify + overlay copy, the optional patch tier,
provisioning, and a systemd unit / `sc create` service — composed from the released artifacts'
`--print-config` provisioning, and a systemd unit / `sc create` service — composed from the
actual contents and the sidecar's config and CLI source rather than from memory. That appendix
released artifacts' actual contents and the sidecar's config and CLI source rather than from
doubles as **Phase 1's acceptance test**: walking it end to end on a real shard is what proves
memory. That appendix doubles as **Phase 1's acceptance test**: walking it end to end on a real
the automated path has nothing left to discover.
shard is what proves the automated path has nothing left to discover.
- **The installer does not install itself.** §5's `runicgateway doctor` sketch implied a name on
- **The installer does not install itself.** §5's `runicgateway doctor` sketch implied a name on
`PATH`; nothing places one there, and adding self-installation would give the tool a second
`PATH`; nothing places one there, and adding self-installation would give the tool a second
lifecycle to manage. The guide names the downloaded artifact, says to keep it, and shortens it
lifecycle to manage. The guide names the downloaded artifact, says to keep it, and shortens it
@@ -889,20 +901,20 @@ MSI, arm64 cross build, optional automated backup before upgrade — and the org
on 2026-08-05: **two of the four are dropped rather than deferred**, because what stops them is an
on 2026-08-05: **two of the four are dropped rather than deferred**, because what stops them is an
ownership conflict that does not improve with time, and two are built.
ownership conflict that does not improve with time, and two are built.
**It runs before the `edge → main` cutover rather than after it.** The original order assumed the
**It ran before the `edge → main` cutover rather than after it.** The original order assumed the
cutover would cut a v1 and packaging would follow as a v1.x — but this phase changes the *release
cutover would cut a v1 and packaging would follow as a v1.x — but this phase changes the *release
layout* (§3), so shipping first would mean a first release that is superseded by the next one, and
layout* (§3), so shipping first would have meant a first release superseded by the next one, and
operators who downloaded a bare binary being told to re-download a package. Deferring the cutover
operators who downloaded a bare binary being told to re-download a package. Deferring the cutover
costs nothing: nothing is published from `edge`, and the guide's Appendix A is the supported path
cost nothing: nothing was published from `edge`, and the guide's Appendix A was the path meanwhile
meanwhile.
(and remains supported now that it is no longer the default).
| Item | Decision | State |
| Item | Decision | State |
|---|---|---|
|---|---|---|
| `.deb` for uo-link | **Dropped** (§5.1) | — |
| `.deb` for uo-link | **Dropped** (§5.1) | — |
| Windows MSI | **Dropped** (§5.1) | — |
| Windows MSI | **Dropped** (§5.1) | — |
| arm64 cross build | **Build** — Linux `aarch64`, both components (§5.2) | In review: [installer#9](https://gitea.whitlocktech.com/RunicGateway/installer/pulls/9), [link#26](https://gitea.whitlocktech.com/RunicGateway/link/pulls/26), [installer#10](https://gitea.whitlocktech.com/RunicGateway/installer/pulls/10); step 3 waits on link's first arm64 release |
| arm64 cross build | **Build** — Linux `aarch64`, both components (§5.2) | ✅ Merged — [installer#9](https://gitea.whitlocktech.com/RunicGateway/installer/pulls/9), [link#26](https://gitea.whitlocktech.com/RunicGateway/link/pulls/26), [installer#10](https://gitea.whitlocktech.com/RunicGateway/installer/pulls/10) |
| Backup before upgrade | **Build** — on by default, scoped to what a run overwrites (§5.3) | In review: [installer#11](https://gitea.whitlocktech.com/RunicGateway/installer/pulls/11) |
| Backup before upgrade | **Build** — on by default, scoped to what a run overwrites (§5.3) | ✅ Merged — [installer#11](https://gitea.whitlocktech.com/RunicGateway/installer/pulls/11) |
| Docs the release invalidates | **Do** (§5.4) | ✅ Done — `INSTALL.md` took the `aarch64` and backup content pre-cutover; the status rewrites landed after it |
#### 5.1 What ships is plain binaries: no `.deb`, no MSI
#### 5.1 What ships is plain binaries: no `.deb`, no MSI
@@ -1024,20 +1036,23 @@ that is still downloadable, and the noise would bury the two files that matter.
Not optional, and grouped here because a first release is the moment these are read for the first
Not optional, and grouped here because a first release is the moment these are read for the first
time by someone who was not in the room:
time by someone who was not in the room:
- **`installer/README.md`'s status table still says Phase 1 is built and Phase 2 is next**, four
- **`installer/README.md`'s status table** — the first thing a visitor to the repo reads, and it
phases later. It is the first thing a visitor to the repo reads.
described a tool that was neither finished nor released. Rewritten at the cutover.
- **`INSTALL.md`** gains the `aarch64` download lines, the backup behaviour and `--no-backup`.
- **`INSTALL.md`** gained the `aarch64` download lines, the backup behaviour and `--no-backup`
- **This file:** §3 loses the `.deb` and gains the `aarch64` assets, §2.6's arm64 bullet is now
before the cutover, and its status banner afterwards: the installer is the path the guide leads
historical, and §7.1's example bundle grows the third asset key.
with, Appendix A the supported manual one.
- **This file:** §3 lost the `.deb` and gained the `aarch64` assets, §2.6's arm64 bullet is now
historical, and §7.1's example bundle grew the third asset key.
#### Cutover entry criteria
#### Cutover entry criteria — met, 2026-08-07
The `edge → main` cutover is gated on this phase **and** on the outstanding **Windows SCM
Both gates were satisfied before
verification** (see the status header and [Phase 2 as built](#phase-2--uo-link-install-and-service)).
[installer#17](https://gitea.whitlocktech.com/RunicGateway/installer/pulls/17) merged: this phase,
The second is not busywork: running the systemd half for real found a bug that unit tests could not,
and the **Windows SCM verification** (see the status header and
and `sc create` remains the only code in the crate that has never executed. The smoke script at the
[Phase 2 as built](#phase-2--uo-link-install-and-service)). The second was not busywork — it failed
workspace root was run on 2026-08-05 and stopped at its first check — an unelevated shell — so
on its first real run with 1053 and needed a sidecar fix before it passed, exactly as running the
nothing in that half has executed yet; it needs one run from an elevated PowerShell.
systemd half for real had turned up a bug unit tests could not. The bundle the release shipped
against was `2026.08.07`: link `v1.2.1`, overlay `v0.2.0`, both declaring protocol 3.
> (plugin). Kept for the architecture notes below. **To set a shard up, use
> [installer/INSTALL.md](../installer/INSTALL.md)** — `deploy.ps1` as described here is a developer
> tool, not the operator path.
ServUO ⇄ Rust sidecar bridge. The shard emits newline-delimited JSON over a loopback TCP socket; the sidecar owns the WebSocket the website consumes.
ServUO ⇄ Rust sidecar bridge. The shard emits newline-delimited JSON over a loopback TCP socket; the sidecar owns the WebSocket the website consumes.
```
```
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.