Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions strix/runtime/backends.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,15 @@ async def _docker_backend(
``docker`` lazily so deployments that target a non-Docker
backend don't need the docker-py library installed.

``session.start()`` is what materializes the manifest entries
(LocalDir copies and manifest-declared volume/FUSE mounts) into the
running container — the SDK's ``client.create()`` only builds the inner
session object without applying the manifest. ``async with session:``
would call it too, but Strix manages session lifetime explicitly via
``client.delete()`` so we trigger ``start()`` ourselves.
``session.start()`` materializes any manifest-declared volume/FUSE
mounts into the running container. Local source trees are no longer
carried as SDK ``LocalDir`` entries (that path is per-file and hangs
on large repos); the session manager imports them after ``start()``
via a single tar ``put_archive``. The SDK's ``client.create()`` only
builds the inner session object without applying the manifest.
``async with session:`` would call ``start()`` too, but Strix manages
session lifetime explicitly via ``client.delete()`` so we trigger
``start()`` ourselves.

``bind_mounts`` are host directories (e.g. large repos passed via
``--mount``) bind-mounted read-only; unlike manifest entries they are
Expand Down
5 changes: 3 additions & 2 deletions strix/runtime/docker_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,9 @@ async def _create_container(
extra_hosts = create_kwargs.setdefault("extra_hosts", {})
extra_hosts["host.docker.internal"] = "host-gateway"

# Strix injection: host bind mounts (e.g. large repos passed via --mount)
# that bypass the SDK's file-by-file LocalDir copy.
# Strix injection: host bind mounts (e.g. large repos passed via --mount).
# Non-mount local sources are imported after start via tar put_archive
# (session_manager._import_local_sources), not via SDK LocalDir.
bind_mounts = getattr(self, "strix_bind_mounts", ())
if bind_mounts:
mounts = create_kwargs.setdefault("mounts", [])
Expand Down
Loading