feat(sidecar)!: bump PROTOCOL_VERSION to 3 #20
Reference in New Issue
Block a user
No description provided.
Delete Branch "chore/protocol-3-cutover"
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?
What & why
Order 6 of the Protocol 3.0 plan (
v3.md§4) — the sidecar half of the cutover.3.0 is feature-complete on
edge:world.ruleset(#17),points.board(#18) andvendor.listing/vendor.listing.remove(#19) all landed there whilePROTOCOL_VERSIONdeliberately stayed at2. A bump is an operator-visible hard break —web.rs::gate409s every protected route on mismatch, and the website closes the WS on thews.hellomismatch — so bumping per phase would have broken the live site four times. This is the one time it happens.Nothing that existed in v2 changed shape, so the constant and its doc comment are the whole change. The README's worked example moves with it: it still claimed
PROTOCOL_VERSION, currently **1**, which was two bumps stale.Merge order matters. This lands on
edge; then the fouredge→mainPRs merge together, and that merge is the cutover. Merging this one alone changes nothing for anyone, because nothing runs offedge.How it was tested
cargo build --releaseandcargo clippy --all-targetsclean. Against the release binary:GET /health→{"protocol":3,…}, and every response carriesx-uolink-version: 3.GET /rulesetwithX-UOLink-Version: 3→ 200.2→ 409{"error":"protocol version mismatch","sidecar_protocol":3,"client_protocol":"2"}— the break lands exactly where it should, and legibly.Checklist
AI-assisted contributions (required)
Claude Code. I have reviewed and understandevery change, and take responsibility for it. AI-authored commits are
marked with a
Co-Authored-By/Assisted-Bytrailer.License
(GNU GPL v3.0 or later), and I have the right to contribute it.
Protocol 3.0 is feature-complete on `edge` -- world.ruleset, points.board and vendor.listing / vendor.listing.remove all landed there while the sidecar kept declaring 2, because a bump is an operator-visible hard break (409 on every protected route via web.rs::gate, and the website closes the WS on the ws.hello mismatch). Doing it per phase would have broken the site four times; this is the one time it happens. Nothing that existed in v2 changed shape, so the version constant and its doc comment are the whole change here. The README's worked example moves with it -- it still claimed "currently 1", two bumps stale. Verified against the release binary: /health reports "protocol": 3, every response carries `X-UOLink-Version: 3`, an authenticated request declaring 2 is refused 409 {"sidecar_protocol":3,"client_protocol":"2"}, and one declaring 3 gets 200 off /ruleset. cargo build --release + cargo clippy --all-targets clean. Co-Authored-By: Claude <noreply@anthropic.com>