feat(bridge): protocol 5 — configuration from the site, and the reload that undoes itself #5
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/phase-7b-config"
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?
Phase 7b, the plugin half of R18. Spec:
docs/rust-link/PROTOCOL.md§11; as built:PLAN.md§21 (docs PR alongside).Three verbs
config.list— a recursive walk rooted atInterface.Oxide.ConfigDirectory(sooxide/configon Oxide,carbon/configson Carbon, and wherever an operator moved it), plus every loaded plugin so the website can offer a reload target. It hashes nothing: a version comes fromconfig.read, on the one file somebody opened, because hashing 500 files would be up to 128 MB of reads in a frame.config.read— one file's text and its version.config.write— a set of files and one reload target.DataDirectoryis never walked. It holds live state and both frameworks' permission stores, which is protocol 4's mirror one directory over.The write, and why the last step is the feature
Resolve, version-check and parse-check everything before the first byte lands (the
perm.syncposture: a refusal that has touched nothing has nothing to unwind), then back the set up, write it, reload through the framework, and wait four seconds forOnPluginLoaded. If it never arrives, restore every file, reload again, and report the failure with the tail of the newest log file.Without that this is a web form that takes a required plugin off a production server one typo at a time — and R6/R17 make four of them required.
Four seconds is arithmetic: the worst path is two windows while a caller holds the sidecar's 10s RPC budget.
Two refusals worth reading
reload-self— reloading this plugin would close the link carrying the answer and leave the rollback with nothing watching it...and reparse points. Protocol 4 addressed things by name; this addresses them by path, which is the change that introduces the bug class.Proven
rg.configon the live Oxide rig answersprotocol=5 framework=oxide root=/home/container/oxide/config— 1,050 new lines compiled in 0 ms and loaded, with the framework detected at runtime rather than by conditional compilation. The Carbon rig is the other half of R19 and is booting.The in-game leg (a setting changed on the site taking effect) needs the sidecar and the game on one host; it is written down in
PLAYER_WALK.md.🤖 Generated with Claude Code
https://claude.ai/code/session_01PMH6bw1jXMgbyF3ZWGEzSM