The PR title is: fix(host-agent): runtime hygiene — narrow pull, surface failures, normalize bind volumes
The PR modifies a single file: dream-server/bin/dream-host-agent.py (73 insertions, 13 deletions).
-
Narrow
docker compose pull: Filter out other user extensions' compose files from thepullstep so an unrelated extension's unset:?guard no longer aborts the install. The downstreamupstep still uses full flags. -
stderr tail-truncation: Replace
stderr[:N](head-truncation) withstderr[-N:](tail-truncation) at three sites in_handle_install. Docker-compose errors appear at the END of stderr after the layer-pull preamble. -
_write_model_statusOSError logging: Log OSError write failures instead of silently swallowing them. Behavior preserved (does not raise) so the activate flow continues. -
_recreate_llama_serverraises on failure: Replace silent log-and-fall-through withRuntimeErrorthat includes the docker-run stderr tail. This prevents the activate flow from hanging for 5 minutes waiting for a health check that will never succeed. -
HTTP 403 vs 500 distinction: Distinguish "model not in catalog" (403) from "model catalog unavailable" (500) in the host-agent's library validation. Apply the same
logger.exception+ 500 pattern to_handle_model_list. -
_precreate_data_dirslong-form volume support: Handle long-form Compose volume entries ({type: bind, source: ./foo, target: /bar}) and skip relative bind sources Docker does not pre-expand (~,$VAR, backtick, backslash).
The PR does not explicitly state a bounty tier. Given the scope (6 distinct fixes in one file), this appears to be a Medium ($150) tier PR — multiple related fixes in a single file with moderate risk.
Yasin Bursalı (yasinbursali38@gmail.com), co-authored by Claude Opus 4.7.