Skip to content

v0.22.0: turn pass reasons, connection replacement, game full, per-mode caps - #37

Merged
cycle-five merged 1 commit into
masterfrom
version/0.22.0
Oct 17, 2026
Merged

cycle-five merged 1 commit into
masterfrom
version/0.22.0

Conversation

@cycle-five

Copy link
Copy Markdown
Owner

v0.22.0 — wire support for the turn and presence owner

Additive only. Every new field is optional with #[serde(default)] and is omitted when absent, and every new message is a new variant. An older backend or frontend keeps working.

Design: workspace spec docs/superpowers/specs/2026-10-17-turn-and-presence-owner-design.md, plan docs/superpowers/plans/2026-10-17-turn-and-presence-owner.md (Task 1).

Changes

  • TurnPassReason (voluntary | timer | disconnected | left) and TurnPassed.reason: Option<…> — every pass names why (D6); absent means unknown.
  • PlayerReconnected.game_id: Option<String> — the server now broadcasts a return (D2).
  • ConnectKind (fresh | reconnect | take_over) and ConnectParams { tab, kind } — the WebSocket URL handshake (C1, C2) that decides which connection holds a seat (D3).
  • ServerMessage::ConnectionReplaced — told to a connection that lost its seat to another window (D3).
  • ServerMessage::GameFull { game_id, game_type } — told to a pooled player the cap left out of a start (D11).
  • ModeCap and LobbySnapshot.mode_caps: Vec<ModeCap> — each mode's cap is advertised (D9). max_players is unchanged for older clients.

Verification

  • cargo test: 112 passed, plus 2 doctests. Each addition has a wire test in both directions: old JSON without the field parses, and an absent value is not serialized.
  • cargo doc --no-deps: 0 warnings. cargo clippy --all-targets: clean.
  • Self-reviewed for wire compatibility; the protocol repo has no automated reviewer.

🤖 Generated with Claude Code

…de caps (v0.22.0)

Co-Authored-By: Claude & Lothrop (cycle.five@proton.me)
@cycle-five
cycle-five merged commit add63b3 into master Oct 17, 2026
1 check passed
@cycle-five
cycle-five deleted the version/0.22.0 branch October 17, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant