Skip to content

feat(worker): create player identities - #107

Merged
Poooel merged 4 commits into
version-game-state-mutationsfrom
player-identity-storage
Aug 1, 2026
Merged

feat(worker): create player identities#107
Poooel merged 4 commits into
version-game-state-mutationsfrom
player-identity-storage

Conversation

@Poooel

@Poooel Poooel commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • configure isolated staging and production D1 databases with automatic pre-deploy migrations
  • add a shared runtime-validated player credentials contract
  • create pseudonymous UUID identities with one-time credentials while storing only SHA-256 hashes

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 31, 2026

Copy link
Copy Markdown

Deploying knucklebones with  Cloudflare Pages  Cloudflare Pages

Latest commit: 72ff5c5
Status: ✅  Deploy successful!
Preview URL: https://53585613.knucklebones-8ep.pages.dev
Branch Preview URL: https://player-identity-storage.knucklebones-8ep.pages.dev

View logs

@Poooel
Poooel merged commit b05e45f into version-game-state-messages Aug 1, 2026
2 checks passed
@Poooel
Poooel deleted the player-identity-storage branch August 1, 2026 06:19
Poooel added a commit that referenced this pull request Aug 1, 2026
* feat(common): version game state messages

* feat(game): use versioned state messages

* fix(worker): reject invalid plays (#104)

* feat(game): validate plays

* fix(worker): reject invalid plays

* fix(worker): reject client websocket messages (#105)

* feat(game): version state mutations (#106)

* feat(game): add state revisions

* feat(worker): increment state revisions

* fix(front): ignore stale game states

* feat(worker): create player identities (#107)

* chore(worker): configure player databases

* feat(common): add player credentials contract

* feat(worker): create player identities

* fix(ci): keep d1 migrations out of deploy

* feat(front): bootstrap player identity (#108)

* feat(front): bootstrap player identity

* refactor(front): remove legacy name ids

* feat: authenticate player mutations (#109)

* feat(worker): authenticate player mutations

* feat(front): send player credentials

* feat: authenticate websocket sessions (#110)

* feat(common): add websocket ticket contract

* feat(worker): authenticate websocket sessions

* feat(front): connect with websocket tickets

* feat: transfer player identities (#111)

* feat(common): add player transfer codes

* feat(worker): verify transferred identities

* feat(front): add identity transfer controls

* feat: make game mutations idempotent (#112)

* feat(worker): make game mutations idempotent

* feat(front): retry game mutations safely

* feat: add ranked player profiles (#113)

* feat(common): add elo rating model

* feat(worker): add ranked player profiles

* feat: add ranked matchmaking queue (#114)

* feat(common): add matchmaking contracts

* feat(worker): add ranked matchmaking queue

* fix(worker): parse game settings query parameters

* fix(front): restore friendly player names

* test: add automated test suite (#116)

* chore(test): configure automated test runners

* test(common): cover rules and message contracts

* test(front): cover player identity lifecycle

* test(worker): cover identity and matchmaking APIs

* test(e2e): cover game and identity flows

* ci(test): run suites before deployment

* fix(common): isolate deserialized game state

* test(front): cover reconnect and request failures

* test(worker): cover security and matchmaking edges

* test(e2e): cover reconnect and localization
Poooel added a commit that referenced this pull request Aug 1, 2026
* feat(common): add game state schema

* fix(front): validate game state messages

* feat(game): version game state messages (#103)

* feat(common): version game state messages

* feat(game): use versioned state messages

* fix(worker): reject invalid plays (#104)

* feat(game): validate plays

* fix(worker): reject invalid plays

* fix(worker): reject client websocket messages (#105)

* feat(game): version state mutations (#106)

* feat(game): add state revisions

* feat(worker): increment state revisions

* fix(front): ignore stale game states

* feat(worker): create player identities (#107)

* chore(worker): configure player databases

* feat(common): add player credentials contract

* feat(worker): create player identities

* fix(ci): keep d1 migrations out of deploy

* feat(front): bootstrap player identity (#108)

* feat(front): bootstrap player identity

* refactor(front): remove legacy name ids

* feat: authenticate player mutations (#109)

* feat(worker): authenticate player mutations

* feat(front): send player credentials

* feat: authenticate websocket sessions (#110)

* feat(common): add websocket ticket contract

* feat(worker): authenticate websocket sessions

* feat(front): connect with websocket tickets

* feat: transfer player identities (#111)

* feat(common): add player transfer codes

* feat(worker): verify transferred identities

* feat(front): add identity transfer controls

* feat: make game mutations idempotent (#112)

* feat(worker): make game mutations idempotent

* feat(front): retry game mutations safely

* feat: add ranked player profiles (#113)

* feat(common): add elo rating model

* feat(worker): add ranked player profiles

* feat: add ranked matchmaking queue (#114)

* feat(common): add matchmaking contracts

* feat(worker): add ranked matchmaking queue

* fix(worker): parse game settings query parameters

* fix(front): restore friendly player names

* test: add automated test suite (#116)

* chore(test): configure automated test runners

* test(common): cover rules and message contracts

* test(front): cover player identity lifecycle

* test(worker): cover identity and matchmaking APIs

* test(e2e): cover game and identity flows

* ci(test): run suites before deployment

* fix(common): isolate deserialized game state

* test(front): cover reconnect and request failures

* test(worker): cover security and matchmaking edges

* test(e2e): cover reconnect and localization
Poooel added a commit that referenced this pull request Aug 1, 2026
* fix(worker): return structured errors

* fix(front): validate game state messages (#102)

* feat(common): add game state schema

* fix(front): validate game state messages

* feat(game): version game state messages (#103)

* feat(common): version game state messages

* feat(game): use versioned state messages

* fix(worker): reject invalid plays (#104)

* feat(game): validate plays

* fix(worker): reject invalid plays

* fix(worker): reject client websocket messages (#105)

* feat(game): version state mutations (#106)

* feat(game): add state revisions

* feat(worker): increment state revisions

* fix(front): ignore stale game states

* feat(worker): create player identities (#107)

* chore(worker): configure player databases

* feat(common): add player credentials contract

* feat(worker): create player identities

* fix(ci): keep d1 migrations out of deploy

* feat(front): bootstrap player identity (#108)

* feat(front): bootstrap player identity

* refactor(front): remove legacy name ids

* feat: authenticate player mutations (#109)

* feat(worker): authenticate player mutations

* feat(front): send player credentials

* feat: authenticate websocket sessions (#110)

* feat(common): add websocket ticket contract

* feat(worker): authenticate websocket sessions

* feat(front): connect with websocket tickets

* feat: transfer player identities (#111)

* feat(common): add player transfer codes

* feat(worker): verify transferred identities

* feat(front): add identity transfer controls

* feat: make game mutations idempotent (#112)

* feat(worker): make game mutations idempotent

* feat(front): retry game mutations safely

* feat: add ranked player profiles (#113)

* feat(common): add elo rating model

* feat(worker): add ranked player profiles

* feat: add ranked matchmaking queue (#114)

* feat(common): add matchmaking contracts

* feat(worker): add ranked matchmaking queue

* fix(worker): parse game settings query parameters

* fix(front): restore friendly player names

* test: add automated test suite (#116)

* chore(test): configure automated test runners

* test(common): cover rules and message contracts

* test(front): cover player identity lifecycle

* test(worker): cover identity and matchmaking APIs

* test(e2e): cover game and identity flows

* ci(test): run suites before deployment

* fix(common): isolate deserialized game state

* test(front): cover reconnect and request failures

* test(worker): cover security and matchmaking edges

* test(e2e): cover reconnect and localization
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