Skip to content

fix(compose): layer tier0 memory overlay in compose resolver - #6077

Closed
vaibhavsrv wants to merge 1 commit into
Osmantic:public-betafrom
vaibhavsrv:fix/resolve-compose-tier0-overlay
Closed

vaibhavsrv wants to merge 1 commit into
Osmantic:public-betafrom
vaibhavsrv:fix/resolve-compose-tier0-overlay

Conversation

@vaibhavsrv

Copy link
Copy Markdown
Contributor

Fixes #5466

Why this matters

docker-compose.tier0.yml defines capped memory limits for low-RAM machines (<8GB RAM): capping llama-server at 4G (instead of 6G), dashboard containers at 512M (instead of 2G), and Open WebUI at 1G (instead of 4G). While installers/lib/compose-select.sh logs that it includes this overlay when TIER=0, subsequent phases and the CLI re-resolve the stack via scripts/resolve-compose-stack.sh, which previously lacked handling for docker-compose.tier0.yml. As a result, the overlay was discarded, and low-RAM machines ran with higher baseline limits that exceeded available host memory.

This change teaches resolve-compose-stack.sh to layer docker-compose.tier0.yml whenever tier is resolved as 0 or T0 (matching installer convention) and the file is present in the compose directory. Higher tiers and non-Tier 0 configurations remain untouched.

Validation

  • Baseline reproduction: Running resolve-compose-stack.sh --tier 0 --gpu-backend cpu omitted docker-compose.tier0.yml, outputting only base and cpu compose files.
  • Post-fix verification: Running ods/tests/test_resolve_compose_tier0_overlay.py confirms that --tier 0 and --tier T0 include -f docker-compose.tier0.yml, whereas --tier 1 cleanly excludes it.
  • Telemetry: Compose resolver test suite passes: test_resolve_compose_tier0_overlay.py passes cleanly (exit code 0). Wired into Linux CI workflow under compose resolution tests.

Overlap check

Risk / AI disclosure

AI-assisted investigation, implementation, and test regressions. This aligns resolve-compose-stack.sh with existing installer expectations in compose-select.sh. Independent human review and platform/runtime qualification remain gates. No running configuration, deployment or upstream merge changed.

Follow-up integration evidence

Composed with #5871, #5951, #5952, #5953, and #6076 at HEAD without conflicts. Production and test diffs passed together; resolver and compose contracts remain intact.
Backlog composition was local-only (production/test diffs, excluding workflow/Makefile wiring); it is not an upstream merge or independent human approval. Declared live-review gates remain open.

@Lightheartdevs

Copy link
Copy Markdown
Collaborator

Thanks for this contribution. public-beta was promoted into main on 2026-09-24 and no longer receives changes, so we're closing pull requests that target it. This isn't a judgment on the change itself. If it's still needed, please rebase onto main and open a focused PR. See #7253 for details and the contribution policy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants