fix(serve_harness): the per-run home wins over an inherited HIPFIRE_HOME - #709
Merged
Merged
Conversation
spawn_serve isolates the daemon by setting HOME=<run home> and writing <run home>/.hipfire/config.toml — but it inherits os.environ, and ConfigPaths::discover prefers HIPFIRE_HOME over $HOME/.hipfire. hw-gate exports HIPFIRE_HOME per lane, so every gate daemon resolved the lane's pinned config (no [speculation] section) instead of the harness's `mtp = "off"`, and the schema default `auto` auto-attached a sibling .mtp head wherever one existed. On #691's run (33900101473) that made the two lanes diverge on host state: hiptrx has qwen3.8-27b.mq4v2.xt.mtp beside the symlink target and ran the chain under MTP (one degenerate turn); hipx has no sidecar and ran AR. The pre-flight printed `mtp_mode: off` either way — the harness's intent, not what the daemon resolved. Reproduced on hiptrx with the base daemon, same config.toml, `mtp="off"`: inherited HIPFIRE_HOME -> "MTP head loaded"; HIPFIRE_HOME=<run home>/.hipfire -> no head. The env now sets HIPFIRE_HOME to the run home explicitly.
Kaden-Schutt
added a commit
that referenced
this pull request
Sep 4, 2026
revert: serve_harness HIPFIRE_HOME override (#709)
Open
4 tasks
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.
Summary
spawn_serveisolates the daemon withHOME=<run home>+<run home>/.hipfire/config.toml, but inheritsos.environ— andConfigPaths::discoverprefersHIPFIRE_HOMEover$HOME/.hipfire. hw-gate exportsHIPFIRE_HOMEper lane (hw-gate.yml:207), so every gate daemon read the lane's pinned config (no[speculation]section) instead of the harness'smtp = "off"; the schema defaultautothen auto-attached a sibling.mtphead wherever one existed.On #691's run (33900101473) the lanes diverged on host state: hiptrx has
qwen3.8-27b.mq4v2.xt.mtpbeside the symlink target → chain ran under MTP (drafter=mtp, one degenerate turn → fixture fail); hipx has no sidecar → AR, clean. The pre-flight printedmtp_mode: offon both — the harness's intent, not what the daemon resolved.Evidence (hiptrx, base daemon
17ba7dfa, identicalconfig.tomlwithmtp="off")HIPFIRE_HOME=<gate lane home>(inherited)MTP head loaded×1HIPFIRE_HOME=<run home>/.hipfire(this fix)Change
One env entry:
HIPFIRE_HOME=os.path.join(home, ".hipfire")inspawn_serve's daemon env. Scripts-only;run.pyruns the harness from the PR checkout, so ladder PRs pick it up on rebase. Also removes a class of "which config did the daemon actually read" ambiguity from every harness user, not just the gate.Which surface(s) does this touch?
scripts/serve_harness.pyonly