Skip to content

Commit 791cf37

Browse files
Merge pull request #1021 from yasinBursali/fix/host-agent-install-no-deps
fix(host-agent): start extension sidecars during install
2 parents ae2f760 + 80ba1b1 commit 791cf37

2 files changed

Lines changed: 38 additions & 1 deletion

File tree

dream-server/bin/dream-host-agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1220,7 +1220,7 @@ def _run_install():
12201220
_write_progress(service_id, "starting", "Starting container...")
12211221
_precreate_data_dirs(service_id)
12221222
start_result = subprocess.run(
1223-
["docker", "compose"] + flags + ["up", "-d", "--no-deps", service_id],
1223+
["docker", "compose"] + flags + ["up", "-d", service_id],
12241224
cwd=str(INSTALL_DIR), capture_output=True, text=True,
12251225
timeout=SUBPROCESS_TIMEOUT_START,
12261226
)

dream-server/extensions/services/dashboard-api/tests/test_host_agent.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,43 @@ def test_setup_hook_uses_resolve_hook_with_post_install(self):
284284
)
285285

286286

287+
# --- Install "up -d" must not use --no-deps (regression) ---
288+
#
289+
# _handle_install previously passed --no-deps to `docker compose up -d`, which
290+
# prevented an extension's private sidecar services (declared in its own
291+
# compose fragment) from starting — including cross-extension depends_on
292+
# relationships like perplexica -> searxng. The fix removes --no-deps from
293+
# the install path only; docker_compose_recreate (used for core-service
294+
# force-recreate after a model swap) intentionally keeps --no-deps.
295+
296+
297+
class TestInstallStartCommandNoDeps:
298+
299+
def _install_source(self):
300+
import inspect
301+
return inspect.getsource(_mod.AgentHandler._handle_install)
302+
303+
def _recreate_source(self):
304+
import inspect
305+
return inspect.getsource(_mod.docker_compose_recreate)
306+
307+
def test_install_up_command_does_not_pass_no_deps(self):
308+
src = self._install_source()
309+
assert '"--no-deps"' not in src and "'--no-deps'" not in src, (
310+
"_handle_install must not pass --no-deps to `docker compose up -d`; "
311+
"extensions with private sidecars or cross-extension depends_on "
312+
"need compose to bring dependencies up."
313+
)
314+
315+
def test_docker_compose_recreate_still_uses_no_deps(self):
316+
src = self._recreate_source()
317+
assert '"--no-deps"' in src or "'--no-deps'" in src, (
318+
"docker_compose_recreate must keep --no-deps; "
319+
"core-service recreation (e.g. after a model swap) is intentionally "
320+
"scoped to the named services only."
321+
)
322+
323+
287324
# --- _handle_env_update ---
288325

289326

0 commit comments

Comments
 (0)