feat(sidecar): protocol 14 — the console command run forward (PLAN_REDESIGNS §16)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 3m21s

`POST /commands/run`, stamped `command.run` the way `world.call`,
`dt.start` and `gc.place` are (PROTOCOL.md §20.11). The plugin keeps the
key, fills {steamid} and {name} and decides who is online; the sidecar
moves the line and knows nothing of what a command does (D384, no
allowlist). Joins protocol 14, still unreleased on edge.

Stamp test: the body's key, commands and recipients pass through byte for
byte, placeholders and quotes included.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-10-16 02:32:02 -05:00
parent 532abc5761
commit 6bf8a3624e
2 changed files with 56 additions and 0 deletions

View File

@@ -208,6 +208,11 @@ use tracing_subscriber::EnvFilter;
/// retry never places a second; the crate is kept when the run ends (D373). `gc.started`,
/// `gc.ended` and `gc.failed` ride the feed like any other event.
///
/// Console commands as event steps (§20.11, the module's PLAN_REDESIGNS.md §16) add one forward,
/// `POST /commands/run`: the commands a step's author typed, run once or once per online
/// recipient. The plugin remembers the key so nothing runs twice; this process keeps nothing and
/// knows nothing of what a command does.
///
/// `docs/rust-link/PROTOCOL.md` is the specification — §8 the read path, §9 identity, §10 the
/// mirror, §11 configuration, §12 clans, §13 the raid frame, §14 the leases, §15 the world verbs,
/// §16 the rewards, §17 the map, §18 the optional mods, §19 the walk's fixes, §20 the step editor;