ui/phase-14: rename planet end-to-end + order read-back
Wires the first end-to-end command through the full pipeline:
inspector rename action → local order draft → user.games.order
submit → optimistic overlay on map / inspector → server hydration
on cache miss via the new user.games.order.get message type.
Backend: GET /api/v1/user/games/{id}/orders forwards to engine
GET /api/v1/order. Gateway parses the engine PUT response into the
extended UserGamesOrderResponse FBS envelope and adds
executeUserGamesOrderGet for the read-back path. Frontend ports
ValidateTypeName to TS, lands the inline rename editor + Submit
button, and exposes a renderedReport context so consumers see the
overlay-applied snapshot.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -220,6 +220,31 @@ table UserGamesOrder {
|
||||
// — kept as a typed envelope for future extension.
|
||||
table UserGamesCommandResponse {}
|
||||
|
||||
// UserGamesOrderResponse is the success acknowledgement returned for
|
||||
// `MessageTypeUserGamesOrder`. Mirrors `UserGamesCommandResponse`.
|
||||
table UserGamesOrderResponse {}
|
||||
// UserGamesOrderResponse mirrors the engine's `PUT /api/v1/order`
|
||||
// success body: it echoes the stored order back to the caller with
|
||||
// the engine-assigned `updated_at` timestamp and per-command
|
||||
// `cmd_applied` / `cmd_error_code` populated on every entry.
|
||||
table UserGamesOrderResponse {
|
||||
game_id: common.UUID;
|
||||
updated_at: int64;
|
||||
commands: [CommandItem];
|
||||
}
|
||||
|
||||
// UserGamesOrderGet is the signed-gRPC request payload for
|
||||
// `MessageTypeUserGamesOrderGet`. Fetches the player's stored order
|
||||
// for the given turn — the caller always knows the current turn from
|
||||
// the lobby record so `turn` is required and must be non-negative.
|
||||
table UserGamesOrderGet {
|
||||
game_id: common.UUID (required);
|
||||
turn: int64;
|
||||
}
|
||||
|
||||
// UserGamesOrderGetResponse carries the result of
|
||||
// `MessageTypeUserGamesOrderGet`. `found = false` is how the FBS
|
||||
// envelope conveys the engine's `204 No Content` (no order stored
|
||||
// for this player on this turn). When `found = true`, `order` is
|
||||
// the engine's stored order for the turn.
|
||||
table UserGamesOrderGetResponse {
|
||||
found: bool;
|
||||
order: UserGamesOrder;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user