Repository navigation
M4: complete the authoritative multiplayer vertical slice - #11
mhmdibrahimm wants to merge 7 commits into
Conversation
|
@mhmdibrahimm strong M4 work — the authoritative server logic is genuinely solid (the client never submits outcome or score, the terminal result is deeply validated server-side, and reconnect can't reopen a committed result), and CI is green. But one decision has to change before this can merge: This PR removes the on-chain Hive match publication and makes Postgres the sole authority for match history. We're not going that direction — Chameleon needs to stay Hive-native, with the match/round score posted on-chain. Please restore the on-chain result publication:
Everything else in the PR — the authoritative round logic, 60s reconnect, scoring, spectator/Answer-Check, official map + Unity UI — is good and stays. While you're re-adding the on-chain path, please also: (a) tighten/comment the reconnect fallback window (the Ping me once the on-chain publication is back in and I'll re-review. |
|
Closing in favor of a new PR that restores on-chain match result publication per manager feedback on #33. All M4 work will be included in the replacement PR. |
Re-create the outbox and HAF-projection tables the DB-only refactor (PR #11) dropped, so a finished round's canonical summary can be published on-chain and re-read via HAF (card #33): - game.match_publication_request / _outbox / _item - hive_projection.match_event / match_result / match_result_change - enums, indexes, domain-integrity triggers, and invariant partial indexes - the hc_match_publisher NOLOGIN role, its scoped grants, and RLS policy - re-grant hc_projector (INSERT/UPDATE) and hc_api (SELECT) on the match tables, which the drop-with-CASCADE also removed The embedded canonical_complete_result bytea added by the removal migration is kept as-is. Schema-test fixtures updated for the restored objects. Forward-only migration; verified via dbmate + the schema-test suite.
…ontracts Reinstate the match event family removed alongside PR #11: the match_results_batch / _corrected / _invalidated Zod schemas, their inclusion in the hive.chameleon discriminated union and eventFamily(), and the official match_publisher signer policy/contract surface. Test fixtures and specs updated.
Summary
Scope notes
Validation
npm run verifyTrello