Ilia Denisov
a692024b4e
feat(profile): advertise per-variant dictionary versions for offline preload
...
The Profile now carries dict_versions (game variant -> current dictionary
version), populated from the dictionary registry at the profileResponse
choke point, so an installed PWA can preload the matching dawg per enabled
variant off the existing cold-start profile request instead of adding a
round-trip for a rare feature.
Wire path: FBS DictVersion table + Profile.dict_versions (additive,
backward-compatible trailing field) -> backend dto/registry -> gateway
ProfileResp + FBS encoder -> client codec decode into a per-variant map on
model.Profile. Empty in a degenerate no-dictionary deployment; the mock
serves v1.3.0 for all three variants. Codec decode covered by a
bite-tested round-trip unit test.
2026-07-06 10:39:29 +02:00
..
2026-07-03 13:10:34 +02:00
2026-07-03 13:10:34 +02:00
2026-06-03 19:47:40 +02:00
2026-06-02 22:38:24 +02:00
2026-06-04 16:26:43 +02:00
2026-07-05 15:36:35 +02:00
2026-06-15 23:00:19 +02:00
2026-06-17 22:17:27 +00:00
2026-06-17 22:17:27 +00:00
2026-06-18 13:12:19 +02:00
2026-06-14 21:55:59 +02:00
2026-06-03 00:49:07 +02:00
2026-06-02 22:38:24 +02:00
2026-06-02 22:38:24 +02:00
2026-06-04 16:26:43 +02:00
2026-06-03 00:49:07 +02:00
2026-06-12 02:17:30 +02:00
2026-07-06 10:39:29 +02:00
2026-06-07 22:25:29 +02:00
2026-06-07 22:25:29 +02:00
2026-07-03 04:22:09 +02:00
2026-07-03 04:22:09 +02:00
2026-06-02 22:38:24 +02:00
2026-07-05 22:13:21 +02:00
2026-06-15 20:14:24 +02:00
2026-06-11 22:42:33 +02:00
2026-06-11 22:42:33 +02:00
2026-06-04 16:26:43 +02:00
2026-07-02 21:58:07 +00:00
2026-07-02 21:58:07 +00:00
2026-06-15 12:23:10 +02:00
2026-06-15 12:23:10 +02:00
2026-06-22 18:05:39 +02:00
2026-06-15 12:23:10 +02:00
2026-06-03 19:47:40 +02:00
2026-06-03 19:47:40 +02:00
2026-06-03 19:47:40 +02:00
2026-06-03 00:49:07 +02:00
2026-06-16 22:51:18 +02:00
2026-06-10 08:01:50 +02:00
2026-06-19 16:50:48 +02:00
2026-06-03 19:47:40 +02:00
2026-06-22 18:43:24 +02:00
2026-06-17 22:17:27 +00:00
2026-06-03 00:49:07 +02:00
2026-06-03 19:47:40 +02:00
2026-06-12 10:28:29 +02:00
2026-06-03 19:47:40 +02:00
2026-06-03 19:47:40 +02:00
2026-06-03 19:47:40 +02:00
2026-06-04 09:18:17 +00:00
2026-06-04 09:18:17 +00:00
2026-06-04 09:18:17 +00:00
2026-06-04 09:18:17 +00:00
2026-07-03 09:47:42 +02:00
2026-07-03 17:59:33 +02:00
2026-06-10 08:01:50 +02:00
2026-06-02 22:38:24 +02:00
2026-06-02 22:38:24 +02:00
2026-06-10 08:01:50 +02:00
2026-06-10 08:01:50 +02:00
2026-06-16 19:09:24 +02:00
2026-06-10 17:06:25 +02:00
2026-06-19 21:39:27 +02:00
2026-06-04 16:26:43 +02:00
2026-07-06 10:39:29 +02:00
2026-06-03 19:47:40 +02:00
2026-06-03 19:47:40 +02:00
2026-06-18 13:12:19 +02:00
2026-06-19 21:39:27 +02:00
2026-06-03 00:49:07 +02:00
2026-06-20 14:23:25 +02:00
2026-06-04 16:26:43 +02:00
2026-06-17 22:17:27 +00:00
2026-06-17 22:17:27 +00:00
2026-06-11 22:42:33 +02:00
2026-06-18 13:12:19 +02:00
2026-06-22 18:43:24 +02:00
2026-06-02 22:38:24 +02:00
2026-06-20 14:23:25 +02:00
2026-06-27 11:37:31 +02:00
2026-06-03 00:49:07 +02:00
2026-06-10 08:01:50 +02:00