feat: use label as container slug prefix when provided
lint / lint (push) Successful in 1m45s
test / unit (pull_request) Successful in 33s
test / integration (pull_request) Successful in 19s

When a user names a bottle via the TUI label field, that name is now
used as the slug prefix for the container identity instead of always
falling back to the agent name.
This commit is contained in:
2026-06-22 19:16:53 +00:00
parent 6e6890ebd9
commit e463670649
2 changed files with 32 additions and 1 deletions
+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()