feat(rust): Run console commands and Reward by console command (PLAN_REDESIGNS §16) #50

Merged
whitlocktech merged 1 commits from feat/command-steps into edge 2026-10-16 02:47:30 -05:00
Member

What

Two event steps in server/eventCommands.js on a new budget, rust.commands (D382–D385). There is no core change: the commands are core's multiple string field (MODULE_API 1.14.0), used as a free text box with no allowlist (D384). Each step has a required "I am sure" toggle.

  • rust.command.run, Run console commands. It is irreversible / ledger, with up to 10 commands once on one server and optional teardown commands.
    • The ledger row keeps the teardown as it was when the step ran, and core's revert runs it once under <key>:teardown.
    • D385: the run also hands its teardown to the bridge. A revert with only the key covers a step that failed part-way, or whose answer was lost, so core recorded no row. It asks every enabled server to run what it kept, and a server the step never reached runs nothing.
    • Priced one unit per command, teardown included.
  • rust.command.reward, Reward by console command. It is irreversible / none.
    • It uses the kit reward's recipient modes, linked included, by Steam id, so no website account is needed. The bridge fills {steamid} and {name}, never the site.
    • Offline recipients are skipped and named in the run log (D383).
    • Priced commands × people, at the 100 bound for a mode that is not a count.
  • Refusals: {steamid} / {name} in a run step. unknown-command, malformed, interrupted, failed and events-disabled are permanent, and the error says how many commands ran before it.
  • sidecarClient.commandsRun → POST /commands/run. ci/bundle.json lists the new file, and entry.test.js pins the new ids. README updated.

Tested

  • npm test: 664 pass, including 21 new tests in test/commandSteps.test.js.
  • check:imports, check:bundle, check:swagger and check:engagement are clean.
  • Walk rows (§16.9) join the end walk (D331).

Pairs with Rust-Plugins (command.run), Rust-Link (the forward) and docs (PROTOCOL §20.11, PLAN_REDESIGNS §16.10).

  • AI-assisted: written with Claude Code (Claude Opus 5.5)

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What Two event steps in `server/eventCommands.js` on a new budget, `rust.commands` (D382–D385). There is no core change: the commands are core's `multiple` string field (MODULE_API 1.14.0), used as a free text box with no allowlist (D384). Each step has a required "I am sure" toggle. - **`rust.command.run`**, *Run console commands*. It is `irreversible` / `ledger`, with up to 10 commands once on one server and optional teardown commands. - The ledger row keeps the teardown as it was when the step ran, and core's revert runs it once under `<key>:teardown`. - **D385:** the run also hands its teardown to the bridge. A revert with only the key covers a step that failed part-way, or whose answer was lost, so core recorded no row. It asks every enabled server to run what it kept, and a server the step never reached runs nothing. - Priced one unit per command, teardown included. - **`rust.command.reward`**, *Reward by console command*. It is `irreversible` / `none`. - It uses the kit reward's recipient modes, `linked` included, by Steam id, so no website account is needed. The bridge fills `{steamid}` and `{name}`, never the site. - Offline recipients are skipped and named in the run log (D383). - Priced commands × people, at the 100 bound for a mode that is not a count. - **Refusals:** `{steamid}` / `{name}` in a run step. `unknown-command`, `malformed`, `interrupted`, `failed` and `events-disabled` are permanent, and the error says how many commands ran before it. - `sidecarClient.commandsRun` → `POST /commands/run`. `ci/bundle.json` lists the new file, and `entry.test.js` pins the new ids. README updated. ## Tested - `npm test`: 664 pass, including 21 new tests in `test/commandSteps.test.js`. - `check:imports`, `check:bundle`, `check:swagger` and `check:engagement` are clean. - Walk rows (§16.9) join the end walk (D331). Pairs with Rust-Plugins (`command.run`), Rust-Link (the forward) and docs (PROTOCOL §20.11, PLAN_REDESIGNS §16.10). - [x] AI-assisted: written with Claude Code (Claude Opus 5.5) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-10-16 02:44:27 -05:00
feat(rust): Run console commands and Reward by console command (PLAN_REDESIGNS §16)
All checks were successful
PR Checks / client-build (pull_request) Successful in 23s
PR Checks / server-tests (pull_request) Successful in 29s
PR Checks / frozen-manifest (pull_request) Successful in 56s
5686d9fd17
Two event steps in server/eventCommands.js, on one new budget,
`rust.commands` (D382-D385):

- rust.command.run: up to 10 typed commands once on one server, with
  optional teardown commands. irreversible / ledger: the ledger row keeps
  the teardown as it was, and core reverts it when the run ends or is
  cancelled. Priced one unit per command, teardown included.
- rust.command.reward: the kit reward's recipient picker (tally modes and
  linked), by Steam id, so no website account is needed. The bridge fills
  {steamid} and {name}; offline recipients are skipped and named (D383).
  irreversible / none. Priced commands x people, the bound for a mode that
  is not a count.

Both take core's `multiple` string field as a free text box (no
allowlist, D384) and a required "I am sure" toggle. {steamid}/{name} in a
run step are refused. unknown-command, malformed, events-disabled,
interrupted are permanent; the error says how many ran before it.

D385: the run also hands its teardown to the bridge, which keeps it with
the key. A revert with only the key (the step failed, or its answer was
lost, so core recorded nothing) asks every enabled server to run what it
kept; a server the step never reached runs nothing.

sidecarClient.commandsRun -> POST /commands/run; ci/bundle.json lists the
new file; entry.test.js pins the new ids; 21 tests in
test/commandSteps.test.js.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech merged commit 49d9e42a23 into edge 2026-10-16 02:47:30 -05:00
whitlocktech deleted branch feat/command-steps 2026-10-16 02:47:31 -05:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RunicGateway/Module-Rust#50
No description provided.