We should clean up the Python package shape. Right now parts of the repo treat src/server as the import root, so we do things like import gateway, from store import ..., and tests patch sys.path, but other code lives next to server under src, which makes imports awkward. I think the cleaner shape is to make src the actual project root and have server/, training/, and snapshot_agent/ as sibling packages: server owns API/queues/process launch, training owns trainer workers/math, and snapshot_agent owns GPU residency/checkpoint coordination. Then we run things as python -m server.clock_cycle, python -m server.gateway, etc., and tests import the same way production does without sys.path.insert.
We should clean up the Python package shape. Right now parts of the repo treat src/server as the import root, so we do things like import gateway, from store import ..., and tests patch sys.path, but other code lives next to server under src, which makes imports awkward. I think the cleaner shape is to make src the actual project root and have server/, training/, and snapshot_agent/ as sibling packages: server owns API/queues/process launch, training owns trainer workers/math, and snapshot_agent owns GPU residency/checkpoint coordination. Then we run things as python -m server.clock_cycle, python -m server.gateway, etc., and tests import the same way production does without sys.path.insert.