Document Shardok resync mechanism and unused request_full_resync field (#4623)

The request_full_resync field exists in eagle.proto but is not read by the server.
The actual resync mechanism uses filteredResultCount = 0 instead.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-03 20:45:58 -08:00
committed by GitHub
co-authored by Claude
parent 83c4ac7d38
commit acad796662
+7 -4
View File
@@ -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