feat(bridge): server id from the environment, and the first release workflow (phase 18)
All checks were successful
PR Checks / plugin-checks (pull_request) Successful in -1m35s

Module-rust phase 18, step 3 of docs/modules/rust/PLAN.md §34.2.7.

The environment seam (D150): when the plugin writes its default config and
RUSTLINK_SERVER_ID holds a valid id (the site's ^[a-z0-9][a-z0-9-]{0,63}$),
the file's ServerId is that value. It is read nowhere else: after that write
the file is canonical and the site's lock applies. An invalid value is logged
and ignored. This is how the egg names a server; not a message change, so the
protocol stays at 12.

The release (D145, §34.2.1): release.yml reuses servuo-plugins' release engine
unchanged (tag-only, secrets preflighted, orphan tags recovered and swept, the
installer's bundle.yml dispatched at the end). The adapter re-runs
checkPlugin.js and packages runicgateway-rust-plugin-<version>.tar.gz with a
framework-neutral layout: RunicGateway.cs, its [Info] version stamped to the
release, and a manifest.json folding in overlay.toml.

overlay.toml gains min_carbon_version = "2.0.259", the build R19 was proven on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-09-25 22:54:38 -05:00
parent 78726b89de
commit 497b7c4f64
4 changed files with 586 additions and 3 deletions

View File

@@ -46,6 +46,17 @@ protocol = 12
# simpler than the ServUO one.
min_oxide_version = "2.0.7585"
# ── Carbon compatibility ─────────────────────────────────────────────────────
#
# The same file runs unchanged on Carbon (docs/modules/rust/PLAN.md R19); the
# installer and the egg decide whether it lands in `oxide/plugins/` or
# `carbon/plugins/`. This is the build R19 was proven on (PLAN.md §34.4).
#
# Neither floor is measured from a DLL by `doctor`: a plugin that compiled and
# connected on this framework is the fact a floor only approximates, so a
# connected plugin is the pass, and the floors are printed with any failure.
min_carbon_version = "2.0.259"
# The `oxide/plugins/` files this overlay expects to find already installed. They
# are not shipped here — they are third-party plugins an operator installs from
# uMod — and the installer's `doctor` reports a missing one rather than