Twinned from https://github.com/cfsh/ninefold/issues/619 by tools/beads/import_github.py's reconcile pass.
Found while working #572 on the Linux gating VM (nf/devs/probe-divergence). Filing rather than fixing: the repo-side fix is a design choice, and the machine-side fix is one command that will silently rot again.
.godot/ on this box contained only mono/. No imported/, no uid cache — i.e. godot --headless --import . had never been run here. Every probe therefore ran against a project with zero imported resources, and every .png load failed:
``` ERROR: Error loading resource: 'res://shared/pad_glyphs/triangle.png'. at: load (core/core_bind.cpp:82) [4] Godot.Texture2D Ninefold.Shared.PadGlyphs+GlyphBadge.TextureFor(...) (shared/PadGlyphs.cs:118) [5] void Ninefold.Shared.PadGlyphs+GlyphBadge._Draw() (shared/PadGlyphs.cs:125) ```
Running the import produced 896 imported resources where there were 0. Re-running focus-ring before and after, on an otherwise identical tree, changed 1995 pixels — 0.096% of the frame (the glyph badges that had been failing to draw).
probe.py's own docstring already contains the argument, for the other artifact:
> *"The probe runs whatever DLL dotnet build last produced, and a stale one is indistinguishable from a genuine regression in the log. It has already caused a wrong root-cause call... and a wrong probe baseline (#371)."*
A missing or stale import cache is indistinguishable from a genuine visual regression in exactly the same way — and unlike the DLL, nothing builds it, nothing stamps it, and nothing checks it. The provenance line ([probe] build: dll <mtime> · git <sha>) vouches for the DLL and says nothing about the resources actually rendered. A visual gate whose renderer is missing its textures is the #389 shape: it runs, it reports, and it is measuring less than the reader assumes.
It also matters for cross-host comparison specifically, which is #572's whole subject: design 003 §2.2 measurement #2 ran godot --headless --import . on its box, so that box and this one were not rendering the same thing.
Worth recording so nobody re-runs it: this is not the cause of focus-ring's 1px shift. Measured at x=180, before and after the import, the ring's top stroke is amber at y=124-125 in both, with y=126 pennant fill in both. The Linux-vs-Windows 1px difference in #572/#615 is real and survives the import. The two are independent.
probe.py imports before it probes, the way it already builds before it probes — same argument, same place. Costs a few seconds when up to date; probe_all would do it once, like the build.presubmit.py --doctor learns to check it (design 003 S11 is already widening --doctor for Linux). Cheap, and turns a silent gap into a loud one, which is this repo's usual floor.[probe] build: dll <mtime> · import <n resources> · git <sha> — so a pasted log carries it and a bad run is at least visible after the fact (#380 option C, applied to the other artifact).notes/machines.md as a provisioning step. Weakest option: it rots exactly like the last one did.Related: #572, #615, #380/#382 (the stale-DLL precedent this mirrors), #389, design 003 (#547) S9/S11.
Unclaimed.
None.
No comments.