docs(modules): phase 7b as built — configuration from the site, and the undo that makes it safe #260

Merged
whitlocktech merged 2 commits from docs/rust-phase-7b into main 2026-09-22 15:01:28 +00:00
Showing only changes of commit 7f008fd1f3 - Show all commits

View File

@@ -3143,11 +3143,18 @@ Two rigs, because the site half and the plugin half fail in different places.
config files: the recursive walk (including a nested `Kits/kits.json`), a form save that reloaded,
a save that rolled back, a refusal, a write with no reload, a version conflict with the current
file handed back, and the locked keys. Five outcomes, all five in the audit trail.
- **The plugin half** ran on the **live Oxide rig**: 1,050 new lines of C# `compiled successfully in
0ms`, the plugin loaded, and `rg.config` answered
`protocol=5 framework=oxide root=/home/container/oxide/config`. That is `Interface.Oxide.
ConfigDirectory` resolving and the runtime framework detection agreeing, on a real server, without
a line of conditional compilation.
- **The plugin half** ran on **both live rigs**, from one byte-identical file. On Oxide 2.0.4143,
1,050 new lines of C# `compiled successfully in 0ms` and the plugin loaded; on Carbon 2.0.259.0 it
loaded in 3,267 ms. `rg.config` answers
`protocol=5 framework=oxide root=/home/container/oxide/config` on the first and
**`protocol=5 framework=carbon root=/home/container/carbon/configs`** on the second.
That is two things at once and the second is the more valuable. `Interface.Oxide.ConfigDirectory`
resolves to a *different directory* on each framework, exactly as R18's amendment predicted — a
literal `oxide/config/` in this editor would have missed every config on half of all installs — and
the runtime framework detection, which the `c.reload` fallback depends on, agrees with the host it
is running on. Neither needed a line of conditional compilation, so R19's claim survives protocol
5.
**The acceptance line is not met**: "an admin flips a ZoneManager setting from the website and it
takes effect" needs the plugin and the sidecar on one host, and the rig's plugin still cannot reach