docs(rust): phase 18 plan of record — the installer and the egg (PLAN §34, D145–D153) #279

Merged
whitlocktech merged 1 commits from docs/rust-phase-18 into main 2026-09-26 03:35:42 +00:00
Member

The plan of record for module-rust phase 18, written before any code. It covers R4's installer and R20's egg, built together. It records your nine decisions from 2026-09-25 as D145–D153.

What reading the repositories changed

  • Neither bridge repository has ever released. Rust-Link and Rust-Plugins have no release.yml, and their main is at protocol 2. They cut over in this phase (D145).
  • Bundle schema 1 names ServUO in its shape, and every shipped installer refuses any other schema. Schema 2 covers both games (D146). It is published at a new path, and schema 1 keeps being composed beside it (D147).
  • The installer is single-instance. It learns named Rust instances (D148).
  • The Rust sidecar has no Windows service entry point, which is link's error 1053 again (D149).
  • The egg cannot set a server id. The plugin now takes it from RUSTLINK_SERVER_ID when it writes its first config (D150).

Two corrections to R22 (§34.1)

  • A web bind cannot be derived from an allocation. Pterodactyl tells a container nothing about its extra allocations, so the egg takes a typed port.
  • The game bind and the database path are not variables at all. The install script moves rust-link/ aside before its own rm -rf ${REMOVE_FILES}, so no wipe list can reach the database or the token.

For your review

  • §34.4, the readings you were not asked about. The ones most worth a look:

    • one schema-2 document per game, not one naming both;
    • schema 1 retires on 2027-01-01, frozen rather than deleted;
    • doctor's version check is "the plugin connected", not a version read out of a DLL;
    • FRAMEWORK=vanilla installs nothing of ours and does not fail the install.
  • §34.2.7, the order things land. bundle.yml changes on installer main first, then each bridge repository cuts over, then the installer.

  • A known window. Until phase 19, the released Module-Rust (v0.3.0, protocol 2) is behind the released bridge (protocol 12). A site pairing them answers 409.

  • The walk (§34.3) needs you twice. Once to run the Windows SCM step from an elevated shell, and once to import the egg in the panel, because Pterodactyl has no API for writing an egg.

  • AI-assisted: Claude Code (Claude Opus 5.5)

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

The plan of record for module-rust phase 18, written before any code. It covers R4's installer and R20's egg, built together. It records your nine decisions from 2026-09-25 as D145–D153. **What reading the repositories changed** - **Neither bridge repository has ever released.** Rust-Link and Rust-Plugins have no `release.yml`, and their `main` is at protocol 2. They cut over in this phase (D145). - **Bundle schema 1 names ServUO in its shape**, and every shipped installer refuses any other schema. Schema 2 covers both games (D146). It is published at a new path, and schema 1 keeps being composed beside it (D147). - **The installer is single-instance.** It learns named Rust instances (D148). - **The Rust sidecar has no Windows service entry point**, which is `link`'s error 1053 again (D149). - **The egg cannot set a server id.** The plugin now takes it from `RUSTLINK_SERVER_ID` when it writes its first config (D150). **Two corrections to R22 (§34.1)** - A web bind cannot be derived from an allocation. Pterodactyl tells a container nothing about its extra allocations, so the egg takes a typed port. - The game bind and the database path are not variables at all. The install script moves `rust-link/` aside before its own `rm -rf ${REMOVE_FILES}`, so no wipe list can reach the database or the token. **For your review** - **§34.4, the readings you were not asked about.** The ones most worth a look: - one schema-2 document per game, not one naming both; - schema 1 retires on **2027-01-01**, frozen rather than deleted; - `doctor`'s version check is "the plugin connected", not a version read out of a DLL; - `FRAMEWORK=vanilla` installs nothing of ours and does not fail the install. - **§34.2.7, the order things land.** `bundle.yml` changes on installer `main` first, then each bridge repository cuts over, then the installer. - **A known window.** Until phase 19, the released Module-Rust (v0.3.0, protocol 2) is behind the released bridge (protocol 12). A site pairing them answers 409. - **The walk (§34.3) needs you twice.** Once to run the Windows SCM step from an elevated shell, and once to import the egg in the panel, because Pterodactyl has no API for writing an egg. - [x] AI-assisted: Claude Code (Claude Opus 5.5) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-09-26 03:34:17 +00:00
Rust-Link and Rust-Plugins release and cut over here; bundle schema 2 for
both games beside schema 1; named Rust instances in the installer; a
Windows service for the sidecar; the plugin's server id from the
environment; the egg with a wipe guard and a pinnable bundle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech merged commit 758c9ad038 into main 2026-09-26 03:35:42 +00:00
whitlocktech deleted branch docs/rust-phase-18 2026-09-26 03:35:43 +00:00
Sign in to join this conversation.
No description provided.