chore(release): cut edge over to main — protocol 14 #32

Merged
whitlocktech merged 16 commits from edge into main 2026-10-22 05:23:06 -05:00
Member

What & why

Stage 6 of docs/modules/rust/PLAN_LAST_FIXES.md: the protocol 14 release. edge → main, with
PROTOCOL_VERSION = 14.

The sidecar's protocol 14 forwards, all already reviewed into edge: POST /kits/uses (§2.6), Economics (§11.2),
Backpacks (§11.3), world event call (§14.3.1), Dangerous Treasures start (§14.3.4), guarded crate placement (§14.3.5),
console command run (§16), raid base spawn and spot check (§11.4).

Merge with Rust-Plugins' and installer's cutover PRs. The bundle job composes v2/rust/current.json once both
bridge halves are released at 14. Module-Rust's cutover comes after it.

How it was tested

Each forward's PR passed this repo's checks and was walked against both rigs in the end walk (PLAN_LAST_FIXES §8).
After release I check SHA256SUMS for both sidecar binaries, the launcher and the egg JSON, and install the released
bundle on both rigs. I also run the egg's install script from the released JSON in ghcr.io/ptero-eggs/installers:debian
over scratch Oxide and Carbon roots.

Checklist

  • I have read CONTRIBUTING.md.
  • The change builds and existing tests/checks pass locally.
  • I have added or updated tests/docs where it makes sense.
  • My commits are reasonably scoped with clear messages.

AI-assisted contributions (required)

  • No AI tools were used to produce this contribution.
  • AI tools were used. Tool(s): Claude Code (Claude Opus 5.5). I have reviewed and understand every change, and
    take responsibility for it. AI-authored commits are marked with a Co-Authored-By trailer.

License

  • I agree that my contribution is licensed under this project's license (GNU GPL v3.0 or later), and I have
    the right to contribute it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What & why Stage 6 of `docs/modules/rust/PLAN_LAST_FIXES.md`: the protocol 14 release. `edge` → `main`, with `PROTOCOL_VERSION = 14`. The sidecar's protocol 14 forwards, all already reviewed into `edge`: `POST /kits/uses` (§2.6), Economics (§11.2), Backpacks (§11.3), world event call (§14.3.1), Dangerous Treasures start (§14.3.4), guarded crate placement (§14.3.5), console command run (§16), raid base spawn and spot check (§11.4). **Merge with Rust-Plugins' and installer's cutover PRs.** The bundle job composes `v2/rust/current.json` once both bridge halves are released at 14. Module-Rust's cutover comes after it. ## How it was tested Each forward's PR passed this repo's checks and was walked against both rigs in the end walk (PLAN_LAST_FIXES §8). After release I check `SHA256SUMS` for both sidecar binaries, the launcher and the egg JSON, and install the released bundle on both rigs. I also run the egg's install script from the released JSON in `ghcr.io/ptero-eggs/installers:debian` over scratch Oxide and Carbon roots. ## Checklist - [x] I have read CONTRIBUTING.md. - [x] The change builds and existing tests/checks pass locally. - [x] I have added or updated tests/docs where it makes sense. - [x] My commits are reasonably scoped with clear messages. ## AI-assisted contributions (required) - [ ] No AI tools were used to produce this contribution. - [x] AI tools were used. Tool(s): `Claude Code (Claude Opus 5.5)`. I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with a `Co-Authored-By` trailer. ## License - [x] I agree that my contribution is licensed under this project's license (**GNU GPL v3.0 or later**), and I have the right to contribute it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 16 commits 2026-10-22 05:19:59 -05:00
feat(sidecar): protocol 14 — POST /kits/uses (PLAN_REDESIGNS §2.6)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 16m11s
ef4fdb6e25
Opens protocol 14 (D332) for the step editor: one thin forward, POST /kits/uses
-> kits.uses ({kit, steamIds} in, counts out), for the kit weekend's warning.
perm.sync's new notices (D333) pass through untouched like the rest of the
body. PROTOCOL_VERSION 13 -> 14; one forward test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
Reviewed-on: #24
feat(sidecar): protocol 14 — the Economics forwards (PLAN_REDESIGNS §11.2)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 4m7s
e720c21c09
POST /economics/pay, /economics/balances and /economics/adjust, thin
forwards like /kits/uses: each body is stamped with its own command and
passed to the plugin, which remembers a payment's key. Nothing is kept here.
The tally's `balance` and the `economics.wiped` event ride the feed like any
frame. Still protocol 14 (D332); one forward test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
Reviewed-on: #25
feat(sidecar): protocol 14 — the Backpacks forward (PLAN_REDESIGNS §11.3)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 2m29s
a95ecb8e25
POST /backpacks/read, a thin forward like /kits/uses: the body is stamped
`backpacks.read` whatever it names, so the route can only ever read. Nothing is
kept here. The bigger backpack an event lends is a permission in an ordinary
perm.sync (D337) and needs nothing new. Still protocol 14 (D332); one test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
Reviewed-on: #26
feat(sidecar): protocol 14 — the world event call forward (PLAN_REDESIGNS §14.3.1)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 5m49s
4ad5cb0545
POST /world/call, a thin forward like /world/place: the body is stamped
`world.call` whatever it names, so the route cannot place, revert or zone
anything. What a call starts is kept, so nothing is remembered here; the
plugin keeps the call's key. The `world.event` frames (24 types, told apart by
`event`) ride the feed like any other event, and hello's `console` like any
other field. Still protocol 14 (D332); one new test, 71 pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
Reviewed-on: #27
feat(sidecar): protocol 14 — the Dangerous Treasures start forward (PLAN_REDESIGNS §14.3.4)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 2m46s
1ab0cab80a
POST /dt/start, stamped dt.start whatever its body names, forwarded to the
plugin and answered with its dt.opened or dt.error. The plugin remembers the
key; DT despawns its own chest; nothing is kept here. dt.started, dt.won and
dt.ended ride the feed like any other event (docs rust-link/PROTOCOL.md §20.8).

72 tests (one new), fmt and clippy clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
Reviewed-on: #28
feat(sidecar): protocol 14 — the guarded crate placement forward (PLAN_REDESIGNS §14.3.5)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 1m44s
f96878441d
POST /gc/place stamps the body gc.place and forwards it; the plugin keeps the
key and the crate is kept when the run ends, so nothing is kept here. Spec:
docs rust-link/PROTOCOL.md §20.9.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
Reviewed-on: #29
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
6bf8a3624e
`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
Reviewed-on: #30
feat(sidecar): protocol 14 — the raid base spawn and spot check forwards (PLAN_REDESIGNS §11.4)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 7m7s
b8e860d85e
POST /raid/spawn stamps the body raid.spawn and POST /raid/check stamps it
raid.check, and each forwards it. The plugin keeps the key and the run's
base in its world registry, so world.revert takes it back like a zone;
nothing is kept here. The five raid.* events ride the feed like any other.
Spec: docs rust-link/PROTOCOL.md §20.12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
Reviewed-on: #31
whitlocktech merged commit 5c4eaf5a31 into main 2026-10-22 05:23:06 -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/Rust-Link#32
No description provided.