fix(FIX-NAS-PATH-1073): resolve every live checkpoint default through CHECKPOINT_ROOT - #1084
Merged
Conversation
…uching a default The NAS moved to `/usr/local/nas_share` and `/mnt/nas_share` is gone. The spec records why the old path cannot come back, so the next reader does not restore it as a convenience symlink: `/mnt` is the ephemeral root overlay of the gate box's immutable OS and does not survive a reboot, while `/usr/local` is `COS_PERSISTENT` and does. It also classifies all 41 `/mnt/nas_share` hits before any edit. The live defaults change and the records do not, because a record states where a past measurement read its bytes. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:claude-opus-5 [claude-code]
… CHECKPOINT_ROOT `/mnt/nas_share` no longer exists on the gate box, so every tracked default built on it named a path that cannot resolve. The DGX profile in `.agents/environment.md` named no NAS location at all, which is why the correction went into `.env` alone and the tree kept the dead path. The profile now gives the live location and the reason it cannot move back. `/mnt` is the ephemeral root overlay of an immutable Kairos OS and loses its contents at every reboot; `/usr/local` is `COS_PERSISTENT`. On 2026-08-16 the mount survived an outage and `/mnt/nas_share` did not, so a bare path correction would invite the next reader to restore a symlink that the following reboot deletes. The seven live defaults now derive from `CHECKPOINT_ROOT`, which four sibling scripts already did. One `.env` line then moves the location, instead of another sweep. `test_minimax_music3_quant_real` loses its literal fallback: an undeclared root skips and names the two variables, rather than probing a path nobody declared. Records keep the old path. `.agents/benchmark-record.md`, the LTX-2.5 and Nemotron-H specs, the captured goldens and the generated headers state where a past measurement read its bytes. Rewriting those skip messages surfaced #1079, fixed in the same flow. All four streamed the case name as a `const char*`, which doctest 2.5.2 stringifies through its bool overload, so each printed `SKIP 1` and named no case. That binary reports 6 passed with 0 assertions when the checkpoint is absent, so the message is what separates a skipped run from a gated one. Closes #1073. Closes #1079. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:claude-opus-5 [claude-code]
…ed by hand `a332fb98d` appended an issue-index row while this branch held three of its own. The union driver merged both sides and placed main's row after mine, which leaves main's file not a prefix of the result. This commit takes main's version of the index whole and re-appends only the three rows this branch owns, so the file stays append-only in the order the rows landed. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:claude-opus-5 [claude-code]
`main` advanced to b5756ea and GitHub reported CONFLICTING on `.agents/issue-index.md`. GitHub does not run the `merge=union` driver that `.gitattributes:7` sets, so the resolution happens locally where it does. The union auto-merge was DISCARDED rather than trusted: took b5756ea's file wholesale, then re-appended only this row's three rows. A clean union merge INTERLEAVES, which preserves well-formedness, uniqueness and presence and fails only the PREFIX property. Verified rather than assumed: 293 rows, zero duplicate keys, main's file a strict PREFIX of the result. The pipe-part histogram reads {6: 292, 10: 1}; the single 10-part row is `#1003`, malformed on `main` and INHERITED here -- it is repaired by #1078, which owns it, and taking main's file wholesale means this branch picks that repair up automatically once #1078 lands. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:claude-opus-5 [claude-code]
localai-bot
pushed a commit
that referenced
this pull request
Aug 17, 2026
`main` advanced (#1084 and #1085 landed) and GitHub reported CONFLICTING on `.agents/issue-index.md`. GitHub does not run the `merge=union` driver that `.gitattributes:7` sets, so the resolution happens locally where it does. The union auto-merge was DISCARDED rather than trusted: main's file taken wholesale, only this row's own rows re-appended, and main's file asserted to be a strict PREFIX of the result. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:claude-opus-5 [claude-code]
localai-bot
pushed a commit
that referenced
this pull request
Aug 17, 2026
`main` advanced (#1084 and #1085 landed) and this branch conflicted for two different reasons, resolved two different ways. `.agents/issue-index.md` is append-only under `merge=union`, which GitHub does not run -- so the union auto-merge was DISCARDED, main's file taken wholesale, and only this row's own rows re-appended. Main's file is a strict PREFIX of the result, zero duplicate keys. `docs/FEATURES.md` was a GENUINE content conflict, not a merge-driver artifact: both sides added a `NemotronHForCausalLM` row -- this branch's, and main's from #1085. A keyed table gets ONE row per key carrying BOTH sides' content, so the two were merged rather than one being chosen: - from this branch: the forward computes on landed `vt::Mamba2*` ops (#496) -- the finding that retired this row's false blocker -- and the loader's quantization breakdown (5935 NVFP4 g16, 46 FP8 W8A8, bf16); - from #1085: the A2-Q2a device MoE arm (23 blocks, NVFP4 g16 Marlin) and the sharper unreachability statement, G-SAFE refuses FIRST with A2-P owning the wiring; - from both: no e2e gate and no number. The merged row is 6 parts with a maximum cell of 214 against the 220 cap, so it fits without deleting anyone else's entry -- the "cap the entry, never the file" rule doing its job. `check-public-doc-tables.py` and `check-agent-record.py` both exit 0, and the tree carries no conflict markers. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:claude-opus-5 [claude-code]
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.
/mnt/nas_shareno longer exists on the gate box, so every tracked default builton it named a path that cannot resolve. The DGX profile in
.agents/environment.mdnamed no NAS location at all, which is why thecorrection went into the untracked
.envalone and the tree kept the dead path.The profile now gives the live location and the reason it cannot move back.
/mntis the ephemeral root overlay of an immutable Kairos OS and loses itscontents at every reboot;
/usr/localisCOS_PERSISTENTand survives. On2026-08-16, after an 8 h 19 min outage, the mount came back because the
/oemboot-stage unit worked and
/mnt/nas_sharedid not. A bare path correction wouldinvite the next reader to restore a convenience symlink that the following reboot
deletes, so the profile carries the reason and not only the value.
The seven live defaults now derive from
CHECKPOINT_ROOT, which four siblingscripts already did (
scripts/measure-ltx2-keyframes-meta.py:30,scripts/gen-ltx2-prompt-tokens-goldens.py:28,scripts/measure-ltx2-prompt-adaln.py:27,tools/oracle/music3_oracle.py:31).One untracked
.envline then moves the location, instead of another sweep.test_minimax_music3_quant_realloses its literal fallback: an undeclared rootskips and names the two variables, rather than probing a path nobody declared.
What was classified as a record, and kept
All 41
/mnt/nas_sharehits were classified before any edit..agents/benchmark-record.md, the LTX-2.5 and Nemotron-H specs,.agents/model-matrix.md, the captured goldens undertests/parity/goldens/andthe generated
.incheaders state where a past measurement read its bytes. Thatis provenance, and AGENTS.md is explicit that rewriting an existing file to
satisfy a rule is out of scope unless a row asks for the rewrite.
Two live-looking hits are deliberately left, and §4 of the spec says why.
tests/vllm/multimodal/test_qwen3_5_moe_vl_hw.cpp:67is the second entry of aprobe list whose first entry is already
/usr/local, so a fresh run resolves,and the measured fact covers
dgx.casarather than the cluster nodes.tests/vllm/test_pretokenizer.cpp:377states that the GPT-4o regex wastranscribed from that path into
tools/gen_pretok_goldens.py; it is the samesentence shape as two comments this change does update, #1073 lists those two and
not this one, and an implementer should not decide that by guessing.
Evidence
scripts/agent-preflight.shtest_cpu_x86_llamacpp_floorAssertionError: 4 != 2,NO_QUIET_WINDOW after 30s (busy=118% load=29.11), so the harness exits 4 instead of the 2 it asserts. 9 of its 10 cases pass. Attributed rather than assumed: a foreignminimax-music3-job held 1345% CPU throughout, andgit diff origin/main HEAD -- tests/scripts/ tests/tools/is EMPTY, so the failing gate runs main's own codecheck-doc-checkpoint.py --base origin/main --head HEADOK: public documents match the claims this change makes.check-commit-trailers.pyandcheck-commit-style.pySKIP music3 q4_k artifact identity: VLLM_CPP_MUSIC3_GGUF and CHECKPOINT_ROOT are both unset; withCHECKPOINT_ROOTset they name the composed…/minimax-music3-gguf/rvq_depth_decoder_q4_k.gguferror: the following arguments are required: --tokenizer-json; with it set,--helpprints the$CHECKPOINT_ROOT/…defaultRewriting those skip messages surfaced
#1079, fixed in the same flow.
All four streamed the case name as a
const char*, which doctest 2.5.2stringifies through its bool overload, so each printed
SKIP 1and named nocase. That binary reports 6 passed with 0 assertions when the checkpoint is
absent, so the message is what separates a skipped run from a gated one. Measured
scope before the fix: 4 hits, all in this one file.
#1077 was also found and is NOT
fixed here.
.env.example:37,.agents/environment.md:29andtests/vllm/multimodal/test_ltx2_video.cpp:2128-2132each state that nothing inthe tree reads
CHECKPOINT_ROOT, and six gates read it. It is left becausetest_ltx2_video.cppreasons FROM that claim when it chooses a separatevariable, and reversing a design decision needs its own review rather than a path
substitution. It is listed under
## Owedin the spec.windows-msvc-cpuandwindows-msvc-vulkanare red on every pull request(#584,
#968) and are inherited, not
caused here.
origin/mainmoved toa332fb98dduring the work and appended an issue-indexrow. The merge is local, and the index was rebuilt by hand rather than left to
the union driver, which had placed main's row after this branch's three. Main's
file is now a byte-exact prefix of the result, 306 of 309 lines, checked with
diff. GitHub does not run that driver, so the file would otherwise present asCONFLICTING there. The merged tree was rebuilt and rerun, not only merged clean.
Spec:
.agents/specs/nas-mount-path.md.Closes #1073. Closes #1079.
FOLLOWING_AGENTS_PROTOCOL
Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [claude-code]