load_routes is no longer used in any production code path — egress_apply.py, supervise_server.py, and egress_addon.py all call load_config now (this PR migrated the last few). It…
Empirical grounding for the ranking
A Jan 2026 large-scale study (Malicious Agent Skills in the Wild, arXiv:2602.06547) measured the real-world exfil…
Done (5eb27cd): changed docker/compose.py and smolmachines/launch.py to bind-mount the egress directory (/etc/egress) instead of just the routes file, matching the fix applied to macos-contai…
Done in 8ab2472.
Added a Freezer ABC (backend/freeze.py) following the same pattern as BottleBackend:
Freezer.commit(agent: ActiveAgent, bottle: Bottle)— primary entry point for…
Fixed in 3cd4a7a.
container export requires the container to be stopped. The commit command now:
- Checks if the bottle is running (
container list --quiet) - Prompts "commit will stop it.…
Done — stripped the legacy fallback, _routes_path now just returns egress_state_dir(slug) / EGRESS_ROUTES_FILENAME. (5606797)
For smolmachines, the local registry machinery already exists in local_registry.py — the implementation path is: docker-commit the running container, push it to the ephemeral registry, and…