Repository navigation
fix(installer): persist the installer tier as TIER in .env - #6617
Open
IronicRayquaza wants to merge 1 commit into
Open
IronicRayquaza wants to merge 1 commit into
IronicRayquaza wants to merge 1 commit into
Conversation
Lightheartdevs
added a commit
that referenced
this pull request
Sep 26, 2026
A live sample on the 16 GB WSL laptop (Qwen3.5-9B, 64K, b9014) showed that a Pixel conversation is cached with all its context checkpoints: a 48,465-token prompt with 32 checkpoints took 2,464 MiB, a 52,019-token one 2,523 MiB. A quarter of the headroom (2304 MiB) is below one such entry, so the next short prompt saved after it evicts it (b9014 evicts oldest-first once the total exceeds the limit). A third of the memory left after 6 GiB gives 3072 MiB in that VM, which is also a quarter of the 12G container limit of its runtime profile: one full agent conversation plus a few short prompts. Hosts from about 30 GiB keep llama.cpp's default unless their container limit is smaller. Also keeps the Windows test's new assertions away from the lines #6617 changes, and restores LF endings in the new Python test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All three env generators wrote the tier only into a header comment
("# Tier: ..."), never as TIER=. Everything that reads it back got an
empty value or its own default: `ods status-json` reports "tier": "",
`ods mode` and `ods model current` (ods-cli and ods.ps1) never show a
tier, the host agent and ods-cli pass --tier 1 to the compose resolver,
and bootstrap-upgrade falls back to tier 1 when it re-resolves the
stack. The host agent only wrote TIER after a later model activation.
Write TIER beside MODEL_PROFILE in the Linux phase 06, macOS and Windows
env generators (it is already declared in .env.schema.json), and assert
it in the installer env smoke test, the macOS env schema test and the
Windows env generator test.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
IronicRayquaza
force-pushed
the
fix/installer-persist-tier
branch
from
October 4, 2026 15:04
572bcc6 to
32ece48
Compare
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.
Fixes #7325
Summary
TIERis declared in.env.schema.jsonand read back by several components, but no installer ever writes it. The Linux phase 06, macOS and Windows env generators only put the tier into a header comment:The readers therefore see an empty value, or fall back to their own default:
ods status-json(--arg tier "${TIER:-}")"tier": "", although its help promises mode/tier/modelods mode,ods model current(grep "^TIER=") andods.ps1 model currentods-cli_regenerate_compose_flags, host agentTIER = env.get("TIER", "1")--tier 1toresolve-compose-stack.shbootstrap-upgrade.shcompose-flags recovery1TIERonly appeared after a later host-agent model activation wrote it. This also matters for the open tier-0 memory-overlay fixes (#6077 / #5467): they resolve the overlay from the tier, and the tier never reaches the resolver.Fix
Write
TIER=<installer tier>besideMODEL_PROFILEin:installers/phases/06-directories.sh(TIER=$(dotenv_value "${TIER}"))installers/macos/lib/env-generator.shinstallers/windows/lib/env-generator.ps1On reinstall it is regenerated from the installer's tier, the same way
LLM_MODELandGGUF_FILEalready are.AI Assistance
Claude Code (Claude Opus 5.5) found the defect in an audit of the live
maintree. It added the assertions first; the macOS and Windows generator tests failed onmainwith "must persist TIER". It also drafted the fix and this description. I reviewed the diff and the validation.Release Lane
release/2.6.xmainChanged Surface
Risk And Validation
.env. No Compose file interpolatesTIER, and every reader already expects it.git diff --checkCommands/results:
Operational Change Check
.env, and all three generators are exercised by existing tests that also validate the output against.env.schema.json.Notes For Reviewers
I ran the smoke test under Git Bash on Windows. All
.envassertions passed; its finalgrep -ohPfunction-resolution check needs PCREgrep, which Git Bash lacks, so that check exits early there. It runs normally on the Linux CI image.🤖 Generated with Claude Code