diff --git a/docs/CONNECTION_ARCHITECTURE.md b/docs/CONNECTION_ARCHITECTURE.md index 60601d54ca..c1773b6a18 100644 --- a/docs/CONNECTION_ARCHITECTURE.md +++ b/docs/CONNECTION_ARCHITECTURE.md @@ -387,12 +387,15 @@ ShardokViewStatus { - Sends duplicate updates (client sees repeated actions) - Skips updates (client misses actions) -**No visible state recovery mechanism** in the code: -- No "resync" request to get full game state +**State recovery mechanism (partial):** +- Client can request resync by setting `filteredResultCount = 0` in `ShardokViewStatus` +- Server will send all results from the beginning when `filteredResultCount = 0` +- ⚠️ **NOTE:** The `request_full_resync` field exists in the proto (`eagle.proto:88`) but is **NOT read by the server**. It's effectively dead code. The resync works via `filteredResultCount = 0` instead. - No checksum/hash to verify client and server are in sync -- No explicit handling of "I missed updates" scenario -**Impact:** After connection drop during Shardok, game state may be inconsistent. +**TODO:** Either implement server-side handling of `request_full_resync`, or remove the field from the proto. + +**Impact:** After connection drop during Shardok, client can recover via resync, but relies on `filteredResultCount = 0` workaround. ## Recommendations