Twinned from https://github.com/cfsh/ninefold/issues/738 by tools/beads/import_github.py's reconcile pass.
Pieces 1 and 3 of the design 005 work breakdown (§8), under #686. Piece 3 is a one-liner the doc says to fold into piece 1, so it ships here.
Covers S1 (import cache) and S16 (notes/machines.md core count). Closes #619.
.gitignore excludes .godot/, dotnet build knows nothing about it, and the running game never imports — so nothing in this repo builds the Godot import cache, and nothing checks it. A probe run without it loads no textures and no audio and exits 0:
``` ERROR: Unable to open file: res://.godot/imported/triangle.png-2b56….ctex ERROR: Failed loading resource: res://…/36_C4_m60.wav. …probe done — screenshots in probe_out/ ```
probe.py's docstring already makes this argument about the *other* build artifact — *"a stale [DLL] is indistinguishable from a genuine regression in the log"* — and this is the same failure with nothing standing behind it.
It is live on this box, not hypothetical. Three dev worktrees (argo, review-cadence, session-state) have .godot/ at 8.6 MB — mono/ only — so every UI gate run from them has been rendering without its glyph badges.
The doc calls a warm cache *"the single largest per-probe win, ~1.8×"* (§0, §2.2, S1). Measured here it is not a win at all, and the sign is wrong. Six paired alternating runs of tonapse-home on nf-dev-sg, each pair back to back so drifting box load cancels:
| pair | warm | cold | |---|---|---| | 1 | 9.25 | 8.84 | | 2 | 9.39 | 8.99 | | 3 | 13.29 | 10.76 | | 4 | 9.74 | 9.00 | | 5 | 10.13 | 9.58 | | 6 | 11.86 | 9.43 |
Warm is slower in 6 of 6, by 0.4–2.4 s — a warm run loads 222 MB of resources where a cold one fails fast. Two candidate explanations for the doc's numbers were tested and both refuted: there is no first-run project-setup penalty (three runs after wiping .godot but for mono/: 9.57 / 9.00 / 8.84 s, flat), and dotnet build is only ~3 s of a warm probe.py. The likeliest reading is that 21.6 s and 11.8 s were taken unpaired at different box loads — load alone swung identical runs here between 8.8 s and 13.3 s.
Consequence for the chunk, not just for this piece: piece 2's parallelism is the actual cost win in Phase 1, and S1 should be read as #619's fix. Filed here rather than as a doc amendment because the suggestion still ships unchanged — only its justification moves.
tonapse-home, cold vs warm, same commit:
| shot | differing px |
|---|---|
| 01-home | 1014 (0.049%) |
| 02-focus-moved | 3210 (0.155%) |
| 03-after-accept | 1488 (0.072%) |
Independently reproducing #619's 1995 px / 0.096% on focus-ring. After the preflight, 01 and 03 are byte-identical to the warm reference.
⚠️ 02-focus-moved is non-deterministic on its own — three consecutive runs at a constant warm cache differ by 320 and 488 px. That is unrelated to the cache and is a datapoint for pieces 4/5 (#668's frame-counted waits); noted here so nobody re-measures it against this piece.
nflib/godot_import.py — completeness read from every *.import's dest_files, not "is .godot/imported/ non-empty", because an interrupted import leaves a partial cache and the cheap test passes it. 42 ms for 422 artifacts, which is what makes it affordable per probe (~1.4 s across a 34-probe sweep) rather than needing an escape hatch.--headless --import . measures 8.2–10.0 s warm.Failed to create an autoload, script 'res://shared/VisualProbe.cs' is not compiling for every autoload.import field (#619 direction 3 / #380 option C), so a pasted log carries it.presubmit.py --doctor reports it — optional, not required: an absent cache on a fresh clone is a "not yet", and a required check that cannot go green on a supported box is the mistake #566 fixed for godot.The doc says notes/machines.md:100 claims 2 cores against a measured 4. nproc reports 8 today (15 GiB RAM). All three disagree, so the line now says to measure rather than pinning a fourth number that will rot the same way — and anything sizing itself to the host reads nproc at runtime. This matters directly for piece 2.
None.
No comments.