fix(host-agent): start extension sidecars during install#1021
Merged
Lightheartdevs merged 1 commit intoLight-Heart-Labs:mainfrom Apr 27, 2026
Merged
Conversation
_handle_install() passed --no-deps to `docker compose up -d`, so any service declared in an extension's own compose fragment beyond the primary one (e.g. paperless-postgres/redis, cross-extension deps on searxng) never started. Drop --no-deps from the install path. Leave it on docker_compose_recreate() where skipping peers during a forced recreate is intentional. Regression test in tests/test_host_agent.py asserts the install argv no longer contains --no-deps and the recreate argv still does.
yasinBursali
added a commit
to yasinBursali/DreamServer
that referenced
this pull request
Apr 28, 2026
…lainers PR Light-Heart-Labs#1021 dropped --no-deps from the install command path. Three comments in this branch's neighborhood still referenced the old form when explaining WHY the post-install core recreate is needed: bin/dream-host-agent.py:348 docstring of _post_install_core_recreate bin/dream-host-agent.py:1260 call-site comment in _handle_install tests/test_host_agent.py:328 comment block above TestPostInstallCoreRecreate The underlying causal claim is unchanged: docker compose up -d <ext> won't recreate already-running siblings without --force-recreate. Comments now describe the present-day install command accurately, with the missing --force-recreate flag named as the reason recreate is required, instead of the no-longer-passed --no-deps flag. No behaviour change. 45 host-agent tests still pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Remove
--no-depsfrom thedocker compose up -dcall inside_handle_install()so that extension sidecar services and cross-extensiondepends_ontargets start correctly when an extension is installed.Why
_handle_install()calleddocker compose up -d --no-deps <service>, which tells Compose to bring up only the named service and skip everything it depends on. Extensions that declare private sidecar containers in their own compose fragment (e.g. a paperless extension shipping its own postgres and redis) had those sidecars silently ignored. Cross-extensiondepends_onrelationships (e.g. perplexica → searxng) were also skipped, leaving services in a broken state after install.How
One-character change: drop
"--no-deps"from thesubprocess.runargv in_handle_install()(line 1151 ofbin/dream-host-agent.py).docker_compose_recreate()— used for core-service force-recreate after a model swap — retains--no-depsintentionally; that call site is unchanged.Testing
dashboard-api/tests/test_host_agent.pyTestInstallStartCommandNoDepsregression test usesinspect.getsource(file's existing pattern) to lock the argv shape for both paths:test_install_up_command_does_not_pass_no_deps— asserts--no-depsabsent from_handle_installtest_docker_compose_recreate_still_uses_no_deps— asserts--no-depspresent indocker_compose_recreatePlatform Impact
Known Considerations
Follow-up candidate: the subprocess argv in
_run_installcould be extracted into module-level helpers to enable direct argv-mock tests rather than source inspection. Good candidate for a standalone refactor PR if the pattern spreads.