diff --git a/modules/rust/PLAN.md b/modules/rust/PLAN.md index 056479b..be90ad9 100644 --- a/modules/rust/PLAN.md +++ b/modules/rust/PLAN.md @@ -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