Use label as container slug prefix when provided #242

Merged
didericis merged 3 commits from use-label-as-container-slug into main 2026-06-22 15:36:55 -04:00
2 changed files with 32 additions and 1 deletions
Showing only changes of commit e463670649 - Show all commits
+2 -1
View File
@@ -34,7 +34,8 @@ from . import BottleSpec
def mint_slug(spec: BottleSpec) -> str:
"""Return the bottle identity: the recorded identity for a resume,
or a freshly minted one for a new start."""
return spec.identity or bottle_identity(spec.agent_name)
name = spec.label or spec.agent_name
return spec.identity or bottle_identity(name)
def write_launch_metadata(
+30
View File
@@ -16,6 +16,7 @@ from bot_bottle import bottle_state
from bot_bottle import supervise
from bot_bottle.backend import BottleSpec
from bot_bottle.backend.docker import DockerBottleBackend
from bot_bottle.backend.resolve_common import mint_slug
from bot_bottle.backend.smolmachines import SmolmachinesBottleBackend
from bot_bottle.manifest import Manifest
@@ -115,5 +116,34 @@ class TestSmolmachinesPrepare(_FakeStateMixin, unittest.TestCase):
)
class TestMintSlug(unittest.TestCase):
def _spec(self, *, label: str = "", identity: str = "") -> BottleSpec:
manifest = _manifest()
return BottleSpec(
manifest=manifest,
agent_name="demo",
copy_cwd=False,
user_cwd="/tmp",
label=label,
identity=identity,
)
def test_no_label_uses_agent_name_as_prefix(self) -> None:
slug = mint_slug(self._spec(label=""))
self.assertTrue(slug.startswith("demo-"), slug)
def test_label_used_as_slug_prefix(self) -> None:
slug = mint_slug(self._spec(label="my-run"))
self.assertTrue(slug.startswith("my-run-"), slug)
def test_label_with_spaces_slugified(self) -> None:
slug = mint_slug(self._spec(label="My Feature Run"))
self.assertTrue(slug.startswith("my-feature-run-"), slug)
def test_identity_takes_precedence_over_label(self) -> None:
slug = mint_slug(self._spec(label="my-run", identity="fixed-id"))
self.assertEqual("fixed-id", slug)
if __name__ == "__main__":
unittest.main()