feat(bridge): server id from the environment, and the first release workflow (phase 18) #13
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/phase-18-release"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Step 3 of the phase-18 build order (docs/modules/rust/PLAN.md §34.2.7), into
edge. The cutover ofedgeintomainfollows as its own PR, and that merge cuts this repository's first release.The environment seam (D150, §34.2.4)
LoadDefaultConfigruns only when no config file exists. IfRUSTLINK_SERVER_IDthen holds a valid id, it becomes the file'sServerId.^[a-z0-9][a-z0-9-]{0,63}$, checked without a Regex.PrintWarningand ignored.The release (D145, §34.2.1)
release.ymlreuses servuo-plugins' release engine unchanged: tag-only, secrets preflighted, orphan tags recovered and swept, retry on 5xx, and the installer'sbundle.ymldispatched at the end.checkPlugin.js, then packagesrunicgateway-rust-plugin-<ver>.tar.gzandSHA256SUMS. The tarball isrunicgateway-rust-plugin/{RunicGateway.cs, manifest.json}and names no framework.manifest.jsoncarriesprotocol,min_oxide_version,min_carbon_version,requires_plugins, the version, the commit and the file's sha256. This is exactly what installer#27's compose job reads.overlay.tomlgainsmin_carbon_version = "2.0.259"(§34.4).For your review
[Info("Runic Gateway", "RunicGateway", "…")], sooxide.plugins/c.pluginsnames the release a server runs. The committed file keeps0.1.0, and the manifest records the commit. The alternative was every release reporting0.1.0forever. The gate refuses a file with zero or two[Info]lines.REGISTRY_USER/REGISTRY_TOKENexist on this repository. Please check them before the cutover. If they are missing, the preflight fails before any tag is pushed.Tested
checkPlugin.js: ok (protocol 12, 32 hooks).checkPlugin.test.js: 14 pass, 0 fail.debian:12:0.2.3changes exactly the one[Info]line.Not touched: the README still lists
PopupNotificationsamong the prerequisites, althoughoverlay.tomlhas called it optional since D141. That is outside this phase, so I'm naming it rather than fixing it.🤖 Generated with Claude Code
https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
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