scroll.server/crates
WiseDev eb0e59f6f4 give every object a new id once the client is live
the client never asks for the state, so the objects it decoded before
the battle screen installed its listener were stuck without models for
the whole battle - and every later snapshot matched them by global id
and reused them, so the "newly created" flag the visual depends on was
never set again.

the first sector command is the client telling us it is up. at that
point every object is handed a fresh id: nothing matches, so the client
builds them all from scratch and they get models. the leaders and the
tower lists are remapped with them and the column is re-sorted, since
the client binary searches it.

the battle itself is complete as of this run: a princess tower fell and
the first crown was scored, towers (2, 1) and stars (1, 0) in the log.
2026-08-23 14:36:16 +03:00
..
auth-service stop minting a new account on every login 2026-08-23 08:54:43 +03:00
game-service give every object a new id once the client is live 2026-08-23 14:36:16 +03:00
gateway answer the client when it asks for the sector state 2026-08-23 14:32:20 +03:00
logic answer the client when it asks for the sector state 2026-08-23 14:32:20 +03:00
logic-derive move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
scroll-server supervised mode: run the services as child processes 2026-08-23 09:46:59 +03:00
service-rpc answer the client when it asks for the sector state 2026-08-23 14:32:20 +03:00
storage fix chest shop prices and gate the free chest 2026-08-23 09:02:49 +03:00
titan compare the server checksum against the client's 2026-08-23 13:44:51 +03:00
titan-derive build and send the battle sector state 2026-08-23 10:24:20 +03:00