Image decisions and closed checks#
What the images deliberately do not carry, and gaps that were checked and found closed.
Moved out of the root BACKLOG.md on 2026-09-30 so the backlog holds only
open work. Nothing here is a task; re-open an entry only with a new measurement.
Checked 2026-09-25 and closed — the consumer notes are stale#
Each item below is still described as a gap in a consumer file. The image says otherwise. The consumer notes are theirs to update; do not re-open these here.
CARGO_HOME/RUSTUP_HOMEare root-owned. Both are writable by uid 1001. Stale in AccelerANTgine (-e CARGO_HOME=/tmp/cargo), OxidANT (/tmp/cargo-home) and BeschleunigerBallett (common.shfallback).No rustup, no wasm32 std. rustup 1.29.1 is present, and 1.98.1 plus the dated
nightly-2026-06-28both carry wasm32, aarch64 and riscv64. BeschleunigerBallett’swasm-size-budget.shstill carries a skip for it.Adding a component to the baked nightly fails with EXDEV. Not reproduced:
rustup component add llvm-toolsexits 0 (OmniAccelerANT BACKLOG).CCACHE_SECONDARY_STORAGE=true. Absent.CCACHE_DIRandSCCACHE_DIRare writable/var/cachepaths.GSTREAMER_ROOT_ANDROIDis not exported. It is:/opt/android/gstreamer(OmniAccelerANT AGENTS.md and BACKLOG).slangc is below the WGSL floor. It is 2026.13.1, with Vulkan SDK 1.4.357.0 (BeschleunigerBallett BACKLOG and
getting_started.md).A second ONNX Runtime in
/opt/opencv5/lib. It is byte-identical to the chain build: same sha256, and both carry the chain’s source path 127 times. The ld.so cache listing it first is therefore harmless.Flutter differs between the images. Both carry 3.47.4: Linux measured, and the Windows 2026-09-22 build log shows
FLUTTER_VERSION = 3.47.4(OmniAccelerANT BACKLOG).The Windows image has no pkg-config and scoop-only Rust. Both are present:
Install-ScoopTools.ps1installspkg-config, andInstall-RustToolchain.ps1installs rustup (OmniAccelerANTplatforms.md).:latest’s children 404.ec4bb68bresolves and pulls (BeschleunigerBallettci-image-ref.sh).No patchelf.
/usr/bin/patchelf0.18.0 is present (WebDavClient’s laneapt-get).
Checked 2026-10-01 and closed — CON45’s claims hold in the published :winamd64#
The :winamd64 published 2026-09-30 (676980e3…, hub 18b08cc4) was checked in
throwaway process-isolated containers on the owner’s host, with the RX 9070 XT
passed in. Every claim the backlog listed holds:
clang_rt.profile-x86_64.libis there, and a clang-cl coverage build runs to anllvm-covreport (CON9).C:\llvm-patched\bin\clang-tidy.exe(LLVM 23.1.1) reads the BMI of a CMake + NinjaFILE_SET CXX_MODULESproject built with clang-cl (CON10).vulkan-1.dllresolves first fromC:\vulkan-loader(CON25).gstgdkpixbuf.dllregisters andai-edge-litert2.1.6 imports in the app venv (CON28).The image config has no volume (CON29), and no published Windows tag (
:winamd64,-nvidia,-rocm,:winarm64) names a remote sccache endpoint.An ORT session (
DmlExecutionProvider) and an OpenCV G-API ONNX session withcv2.gapi.onnx.ep.DirectML(0)both run.
The consumer workarounds are gone: BeschleunigerBallett’s coverage is ON again
and neither container script passes -SkipTidy (31ae0c51); AccelerANTgine’s
clang-tidy step sets ModuleImportPattern to '(?!)' (cab49ae).
Clear-UnreachableSccacheEndpoint stays: it is a no-op without an endpoint and
still guards a host whose own environment names an unreachable one.
:winamd64-rocm still bakes VOLUME C:\workspace until its next build (CON34).
Deliberate — not gaps#
These are recorded so nobody files them as gaps:
No GTK4 dev headers.
The distro
libgstreamer*-devpackages are purged.CPython 3.14 only.
The CUDA arch set is
86;87;89;120, with no PTX.riscv64 is built for the RVA23 baseline.
riscv64 uses the distro CMake 4.2.3.
riscv64 has no IREE compiler, no
ml-aiextra, no Flutter, appimagetool, Flatpak runtimes or Hailo, because upstream ships none for it.ORT QNN is opt-in on arm64.
The Android host tools are x86-64 only (upstream’s shape).
wasm-bindgen-cliandcxxbridge-cmdare installed at lane time, because their version must match the consumer’s ownCargo.lock.:latestis not pinned by digest.No GPU inside a Windows container.
There is no ATL in the VS Build Tools. It affects only this hub’s own builds.
arm64 and riscv64 keep a distro GStreamer 1.28 runtime beside
/opt/gstreamer: their cross-built GStreamer has no GTK, solibgstgtk4.soneeds Ubuntu’slibgtk-4-1, which depends on it.000-gstreamer.confsorts ours first and SHIPPED-TRUTH D fails any soname a distro copy wins; bundle from pkg-config, notldd, and never prepend/usr/lib/<triplet>/gstreamer-1.0toGST_PLUGIN_PATH(CON21).The arm64 and riscv64 GCC has no libgomp, libitm or gfortran, and amd64’s plain cross GCCs no target libasan: no consumer uses OpenMP, Fortran,
-fgnu-tmor a sanitized amd64-hosted GCC cross build (swept 2026-09-26). libgomp isall-/install-target-libgompinbuild-gcc.shthe day one does; Fortran needs it in the plain cross compilers first (four compilers rebuilt cold); the image ships the cross GCCs no binutils or sysroot (CON22).riscv64 TVM’s
llvmtarget defaults to LLVM’s generic CPU (soft-float, no vector), since TVM has no host-CPU default on any arch: name the baseline orriscv/spacemit-k3, and compile IREE for riscv64 elsewhere with explicit--iree-llvmcpu-*flags (docs/riscv64-rva23-baseline.md, CON24).cargo-auditandcargo-denystayed lane-installed at theirversions.envpins until CON65 (owner rule 2026-10-06: what a lane needs goes into the image). Both reasons were met, not waived: the image takes per-arch release pins and skips riscv64, which has no release binary and no lane that runs them, and the hub’scargo_install_pinnedkeeps a lane fromcargo installing over a binary cargo did not install (consumer-image-contract.md§ The cargo QA tools; CON20, CON65).No
pwshin the Linux image: Microsoft ships no riscv64 build, feature parity allows no third exemption, and OmniAccelerANT’s Pester suite tests Windows modules on the Windows runner (CON20).No OpenGL in the Windows image (owner decision 2026-09-26, CON25): Server Core has no
opengl32.dll, and the only software one, Mesa’s llvmpipe, exists as unsigned third-party builds (pal1000/mesa-dist-win). wgpu-linked binaries run on the host, as OxidANT’s renderer tests do. (Vulkan is the exception since 2026-10-04, CON50: Mesa’s lavapipe — mmozeiko/build-mesa’s unsigned build — ships inC:\runtime\lavapipewith an HKLM ICD registration, because the loader ignoresVK_DRIVER_FILESin an elevated process, andLP_NATIVE_VECTOR_WIDTH=256.)No slim
:winamd64-toolchaintag (owner decision 2026-09-28, CON26).:winamd64’s ~54 GB of layers exhaust a stockwindows-2025runner’sC:(hcsshim::ImportLayer … not enough space on the disk (0x70), BeschleunigerBallett, 2026-07-21); theset-docker-data-rootaction, which moves the data root toD:, stays the answer for every lane. CON12 takes 7.1 GB off the image regardless.Windows (CON28): no TAPPAS (upstream supports Ubuntu, Raspberry Pi OS and Yocto only); no
cargo-cbuild, although a Windows consumer now uses Rust GStreamer plugins (2026-10-05): OmniAccelerANT’s WebRTC stream needs gst-plugins-rs’swebrtcsink/webrtcsrcthere too, so the image buildsrswebrtcandrsrtpitself, with a plaincargo buildwhose cdylibs are the plugin DLLs; cargo-c makes C-ABI libraries and.pcfiles, which neither plugin needs (windows-builds.md§ gst-plugins-rs on Windows); opus SIMD off on both lanes, performance only (arm64’s RTCD passes-mfpu=neonand__emit, which clang-cl rejects, and opus’s meson gives clang-cl no per-file SSE4.1/AVX2 flags); no Windows pyhailort wheel orhailonet(no Windows consumer and no Hailo device); nogdkpixbufon arm64 (it needs a build-machineglib-compile-resources).