Josh Creek
d937cb153c
feat(multiplayer): add server process/assignment-ready registration API
...
Add POST /v1/servers/{id}/register (and its /api/v1 contract alias),
authenticated by the same workload binding as the result route. A
game server reports its protocol version and image digest and asks
to advance ALLOCATING -> PROCESS_READY -> ASSIGNMENT_READY; the store
boundary (AdvanceServerRegistration) does this as one idempotent
SERIALIZABLE transaction that also advances every participant's queue
ticket, and gates the final transition on every participant having a
live, unexpired assignment.
Adversarial review of the surrounding routing turned up a pre-existing
bug: contractServerMutation rejected any path containing '/', so the
already-documented /api/v1/servers/{id}/result route (and this new
/register route) 404'd for every real caller despite being declared
in the OpenAPI contract. Fix it to delegate shape validation to
serverMutation, matching how contractQueueMutation handles its own
two-segment paths, and add a regression test covering both contract
routes end to end.
2026-09-01 12:35:30 +01:00
Josh Creek
9dc1cc2d6f
feat(multiplayer): refresh allocator ready servers
2026-09-01 10:44:43 +01:00
Josh Creek
013eb0778b
fix(multiplayer): advance tickets on allocation bind
2026-09-01 10:42:10 +01:00
Josh Creek
25fdc2c2c8
fix(multiplayer): recover recorded allocations
2026-09-01 10:40:10 +01:00
Josh Creek
55c46f56ec
feat(multiplayer): run leased allocator worker
2026-09-01 10:38:45 +01:00
Josh Creek
6f7d61eafb
feat(multiplayer): lease allocating match claims
2026-09-01 10:36:13 +01:00
Josh Creek
03ff8e485e
feat: promote accepted proposals from API
2026-09-01 10:29:50 +01:00
Josh Creek
e0ba6c6ead
fix: enforce ranked match promotion size
2026-09-01 10:22:26 +01:00
Josh Creek
7807b9706b
feat: promote accepted proposals into matches
2026-09-01 10:21:41 +01:00
Josh Creek
2d750cbcab
feat: enable guarded ranked matcher role
2026-09-01 10:14:22 +01:00
Josh Creek
d882469c79
feat: repair matcher candidates through redis projection
2026-09-01 10:11:54 +01:00
Josh Creek
7a3d520608
fix: bind rated result to durable receipt
2026-09-01 10:09:40 +01:00
Josh Creek
dd80b52a11
feat: apply certified ratings during result completion
2026-09-01 10:08:11 +01:00
Josh Creek
388300c553
fix: validate durable result submissions
2026-09-01 10:02:29 +01:00
Josh Creek
eebab1bc19
feat: add workload-authenticated result API
2026-09-01 10:01:04 +01:00
Josh Creek
febc69bdef
feat: gate allocator roster publication
2026-09-01 09:55:09 +01:00
Josh Creek
8b5b5333c6
fix: verify signed assignment rosters
2026-09-01 09:53:45 +01:00
Josh Creek
55e07648cf
test: cover provider allocation reconciliation SQL
2026-09-01 09:52:00 +01:00
Josh Creek
0023bdab6e
feat: reconcile Agones allocations durably
2026-09-01 09:51:52 +01:00
Josh Creek
4bbaf0976f
feat: add ranked season maintenance role
2026-09-01 09:46:57 +01:00
Josh Creek
e729570010
test: cover allocator PostgreSQL claims
2026-09-01 09:45:02 +01:00
Josh Creek
b1966a3423
feat: add durable allocator claim boundary
2026-09-01 09:43:33 +01:00
Josh Creek
def60169a8
feat: persist authenticated queue probe RTT
2026-09-01 09:40:25 +01:00
Josh Creek
25cc182793
feat: persist queue probe metadata
2026-09-01 09:37:47 +01:00
Josh Creek
e170bcf0ef
fix: bind matcher source to playlist
2026-09-01 09:35:00 +01:00
Josh Creek
d0952adaf9
feat: add runnable casual matcher role
2026-09-01 09:32:22 +01:00
Josh Creek
18888ed520
feat: add PostgreSQL migration runner
2026-09-01 09:21:26 +01:00
Josh Creek
5b80c97337
test: cover PostgreSQL season rollover
2026-09-01 09:06:10 +01:00
Josh Creek
bd26aa3dc4
test: cover PostgreSQL result and outbox flow
2026-09-01 09:05:15 +01:00
Josh Creek
9d210d254a
test: cover PostgreSQL proposal transactions
2026-09-01 09:04:16 +01:00
Josh Creek
c8a542a3af
feat: repair Redis candidates from durable source
2026-09-01 09:02:55 +01:00
Josh Creek
eadaa7b54e
feat: add rebuildable Redis candidate index
2026-09-01 09:01:32 +01:00
Josh Creek
414df530f0
test: expand PostgreSQL adapter coverage
2026-09-01 08:59:39 +01:00
Josh Creek
5234390931
test: add PostgreSQL integration harness
2026-09-01 08:58:28 +01:00
Josh Creek
23134796ee
feat: add durable outbox dispatcher
2026-09-01 08:12:33 +01:00
Josh Creek
fec4f91672
feat: bind signed rosters to assignments
2026-09-01 08:10:05 +01:00
Josh Creek
63f4f11aa8
feat: publish assignment rosters atomically
2026-09-01 08:08:00 +01:00
Josh Creek
f520584368
fix: expire proposals on response boundary
2026-09-01 08:06:17 +01:00
Josh Creek
eef7cf28da
feat: make proposal responses durable
2026-09-01 07:52:52 +01:00
Josh Creek
30b4560bd5
feat: persist participant-scoped proposal recovery
2026-09-01 07:50:11 +01:00
Josh Creek
3ae2daec88
feat: persist player-scoped assignments
2026-08-31 23:19:23 +01:00
Josh Creek
fe246bf54e
feat: add replayable outbox adapter
2026-08-31 23:14:33 +01:00
Josh Creek
b3284d4bd6
feat: persist authenticated sessions
2026-08-31 22:23:59 +01:00
Josh Creek
59cf29949f
feat: wire persistent queue backend into API
2026-08-31 22:17:32 +01:00
Josh Creek
b2d68d93cf
fix: make SQL queue recovery expire authoritatively
2026-08-31 22:14:30 +01:00
Josh Creek
068b66b234
fix: bind proposal claims to playlist
2026-08-31 22:13:37 +01:00
Josh Creek
e37a519ef8
fix: bind proposal claims to players
2026-08-31 22:12:47 +01:00
Josh Creek
a45d2ddbb7
fix: rebuild candidate cache from queue authority
2026-08-31 22:12:03 +01:00
Josh Creek
948d603c0e
feat: persist queue heartbeat and cancel mutations
2026-08-31 22:10:36 +01:00
Josh Creek
9263133e64
feat: add durable queue ticket repository
2026-08-31 22:08:45 +01:00