Skip to content

fix(FIX-NAS-PATH-1073): resolve every live checkpoint default through CHECKPOINT_ROOT - #1084

Merged
localai-bot merged 4 commits into
mainfrom
row/FIX-NAS-PATH-1073
Aug 17, 2026
Merged

fix(FIX-NAS-PATH-1073): resolve every live checkpoint default through CHECKPOINT_ROOT#1084
localai-bot merged 4 commits into
mainfrom
row/FIX-NAS-PATH-1073

Conversation

@localai-bot

Copy link
Copy Markdown
Collaborator

/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 the untracked .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 and survives. On
2026-08-16, after an 8 h 19 min outage, the mount came back because the /oem
boot-stage unit worked and /mnt/nas_share did not. A bare path correction would
invite 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 sibling
scripts 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 .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.

What was classified as a record, and kept

All 41 /mnt/nas_share hits were classified before any edit.
.agents/benchmark-record.md, the LTX-2.5 and Nemotron-H specs,
.agents/model-matrix.md, the captured goldens under tests/parity/goldens/ and
the generated .inc headers state where a past measurement read its bytes. That
is 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:67 is the second entry of a
probe list whose first entry is already /usr/local, so a fresh run resolves,
and the measured fact covers dgx.casa rather than the cluster nodes.
tests/vllm/test_pretokenizer.cpp:377 states that the GPT-4o regex was
transcribed from that path into tools/gen_pretok_goldens.py; it is the same
sentence 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

Claim Result
scripts/agent-preflight.sh PASS before the edits, and PASS on the merged head except test_cpu_x86_llamacpp_floor
that one failure #618, the load-dependent contended-leg case: AssertionError: 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 foreign minimax-music3- job held 1345% CPU throughout, and git diff origin/main HEAD -- tests/scripts/ tests/tools/ is EMPTY, so the failing gate runs main's own code
check-doc-checkpoint.py --base origin/main --head HEAD OK: public documents match the claims this change makes.
check-commit-trailers.py and check-commit-style.py ok for all three commits
the changed gate builds and runs warning-free on the merged tree; with the root unset, 6 cases print SKIP music3 q4_k artifact identity: VLLM_CPP_MUSIC3_GGUF and CHECKPOINT_ROOT are both unset; with CHECKPOINT_ROOT set they name the composed …/minimax-music3-gguf/rvq_depth_decoder_q4_k.gguf
the tokenizer tool refuses cleanly with the root unset and no arguments, error: the following arguments are required: --tokenizer-json; with it set, --help prints the $CHECKPOINT_ROOT/… default

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. 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:29 and
tests/vllm/multimodal/test_ltx2_video.cpp:2128-2132 each state that nothing in
the tree reads CHECKPOINT_ROOT, and six gates read it. It is left because
test_ltx2_video.cpp reasons FROM that claim when it chooses a separate
variable, and reversing a design decision needs its own review rather than a path
substitution. It is listed under ## Owed in the spec.

windows-msvc-cpu and windows-msvc-vulkan are red on every pull request
(#584,
#968) and are inherited, not
caused here.

origin/main moved to a332fb98d during the work and appended an issue-index
row. 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 as
CONFLICTING 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]

mudler added 4 commits August 16, 2026 22:57
…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
localai-bot merged commit 22056e2 into main Aug 17, 2026
24 of 26 checks passed
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]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants