docs: record verified Windows checkpoint build and runtime setup

This commit is contained in:
kasper 2026-10-28 20:27:09 +01:00
parent df7cf6d29b
commit 81bf21e0b8
3 changed files with 95 additions and 9 deletions

View file

@ -52,8 +52,10 @@ Missing pulse width still requires explicit resolution before executable import.
The offline M1 reuse proofs now pass as one consolidated acceptance checkpoint: The offline M1 reuse proofs now pass as one consolidated acceptance checkpoint:
the Rayforge/MeerK40t path has deterministic mock encoding, fail-closed JCZ the Rayforge/MeerK40t path has deterministic mock encoding, fail-closed JCZ
profile and parameter gates, list buffering, cancellation/recovery, layer and profile and parameter gates, list buffering, cancellation/recovery, layer and
recipe semantics, and a transport-free workflow preview. A reviewed Windows GTK recipe semantics, and a transport-free workflow preview. The Windows build
runtime and the packaged no-device workflow test remain outstanding. See the environment is installed and the pinned package has passed non-executing
verification; the packaged no-device workflow test remains outstanding. See the
[Windows build record](docs/research/windows-build-environment-2026-10-28.md),
[Phase 0 status](docs/status/phase-0.md) and [Phase 0 status](docs/status/phase-0.md) and
[Rayforge GUI preflight](docs/research/rayforge-windows-gui-preflight.md). [Rayforge GUI preflight](docs/research/rayforge-windows-gui-preflight.md).
@ -85,8 +87,8 @@ release gate, not an architecture-decision gate; see
The initial offline architecture spikes have passed. The next work remains The initial offline architecture spikes have passed. The next work remains
hardware-free: hardware-free:
1. obtain or produce a reviewed Windows Rayforge build artifact without 1. prepare the checksummed acceptance kit for the built and verified Windows
installing a toolchain through this repository; Rayforge artifact;
2. run and record the packaged no-device desktop interaction checklist; 2. run and record the packaged no-device desktop interaction checklist;
3. promote only evidence-backed vector MOPA imports through the existing 3. promote only evidence-backed vector MOPA imports through the existing
fail-closed review boundary; fail-closed review boundary;

View file

@ -1,12 +1,20 @@
# Codex continuation brief # Codex continuation brief
- Updated: 2026-10-26 - Updated: 2026-10-28
- Current focus: produce and accept the packaged Windows M1 checkpoint - Current focus: accept the built and verified packaged Windows M1 checkpoint
- Hardware access: prohibited - Hardware access: prohibited
- Automatic toolchain installation: prohibited - Automatic toolchain installation: prohibited
## Verified checkpoint ## Verified checkpoint
The operator-authorized local Windows build environment is now installed.
The pinned Windows checkpoint build and non-executing artifact verification
passed, as did consolidated M1 automated acceptance using UCRT64 Python.
The portable ZIP, installer, license sidecar and manifest are in ignored
`.build/artifacts/`. Packaged desktop interaction remains untested. See
[the build record](research/windows-build-environment-2026-10-28.md) for hashes,
runtime versions and unresolved dependency/image-format warnings.
The complete public unit-test suite and public-repository guard pass at this The complete public unit-test suite and public-repository guard pass at this
checkpoint. The offline Rayforge/MeerK40t evidence covers addon lifecycle, MOPA checkpoint. The offline Rayforge/MeerK40t evidence covers addon lifecycle, MOPA
settings and units, layer and recipe semantics, JCZ record/list encoding, settings and units, layer and recipe semantics, JCZ record/list encoding,
@ -74,9 +82,8 @@ checkpoint; see
M1 is not yet a packaged desktop checkpoint. Only these two result-oriented M1 is not yet a packaged desktop checkpoint. Only these two result-oriented
gates remain: gates remain:
1. A Windows artifact for the pinned Rayforge revision must be produced on a 1. The locally built Windows artifact has passed non-executing verification;
reviewed build runner, verified without execution, and pass the manual it must still pass the manual no-device desktop checklist.
no-device desktop checklist.
2. The known-working private JPT `.lbrn2` serialization and unit-contract gates 2. The known-working private JPT `.lbrn2` serialization and unit-contract gates
are met for LightBurn 2.1.03 vector settings. Promotion still requires are met for LightBurn 2.1.03 vector settings. Promotion still requires
explicit resolution of absent pulse width, image equivalence and complete explicit resolution of absent pulse width, image equivalence and complete

View file

@ -0,0 +1,77 @@
# Windows build environment, 2026-10-28
## Scope
The operator explicitly authorized installing the Windows build environment.
MSYS2 was installed at `C:\msys64` through the `MSYS2.MSYS2` winget package
(installer version 20260927). The MSYS2 base was updated, including restarting
the shell after the core runtime update. No controller interaction or packaged
desktop acceptance was performed as part of this setup.
The source was fetched with `scripts/prepare_rayforge_build.ps1` and verified
against Rayforge commit `c28918c87f8273dd1d244f5a057addc192807fa5`.
The pinned upstream `scripts/win/win_setup.sh` was reviewed and explicitly run
in a UCRT64 shell. Repository scripts still do not install a toolchain
implicitly.
## Installed runtime
- Python 3.14.9
- GTK 4.24.1 and Libadwaita 1.10.0
- GCC 16.2.0 and Rust 1.99.1
- PyInstaller 6.22.3 and NSIS 3.13
- Raygeo 1.66.0 and Raydriver 0.3.0, compiled locally
- Cairo 1.18.4-4, selected by the pinned upstream setup script
The setup installs the upstream system-package set and its Python dependencies.
Run shell-based setup and build commands with `MSYSTEM=UCRT64` and
`CHERE_INVOKING=1`; run them from the repository root to preserve the working
directory. Source and outputs remain in the ignored `.build` cache.
## Observations and validation
- The 152 repository unit tests and public-repository guard passed before
installation using a writable temporary directory.
- The consolidated `run_m1_no_device_acceptance.py` report passed using the
newly installed UCRT64 Python and the pinned Rayforge checkout.
- Direct imports succeeded for GTK4, Libadwaita, Raygeo, Raydriver, Vtracer,
Zeroconf, OpenCV, NumPy, SciPy, PyMuPDF and PyVips. This is an import check,
not a successful desktop interaction test.
- `pip check` exited with status 1, reporting that the Raygeo and Raydriver
distributions are not supported on this platform. Both locally compiled
modules imported successfully; the metadata/platform warning remains
unresolved and must not be represented as a clean dependency check.
- VIPS warned that its HEIF and ImageMagick modules could not load. Coverage
of these image formats has not been established.
- PyInstaller warned about missing `scipy.special._cdflib`; successful bundle
creation alone does not establish coverage of that module.
The first package download hit a connection reset and succeeded on retry.
The first Python wheel-build batch ran out of disk space while building
Zeroconf. Temporary build cleanup allowed the automatic retry to complete.
The new installation's downloaded pacman package cache was subsequently
removed; installed packages were retained. Allow substantial temporary disk
headroom beyond the roughly 5 GiB system-package installed-size estimate.
## Produced checkpoint
`scripts/build_rayforge_windows_checkpoint.ps1` completed successfully using
the pinned source and staged no-device addon. Outputs under `.build/artifacts/`:
- `rayforge-vpirateray-c28918c87f82.zip`: 354,161,221 bytes,
SHA-256 `8640244f54aebe5d043f33db2949842fa9cb5e14e74dd75ec91af4f6873f274c`
- `rayforge-vpirateray-c28918c87f82-installer.exe`: 258,711,163 bytes,
SHA-256 `a74620b3869803c755a9ffc20c35772e57ea2fef62bcf323ac971ae4a2aa8d5a`
- `Rayforge-LICENSE.txt` and `rayforge-windows-checkpoint.json`
The non-executing checkpoint verifier passed, including the exact 12-file
addon set, ZIP path checks, license notices and artifact hashes. Its local
report is `rayforge-windows-verification.json`. Binaries and local reports
remain outside version control. No packaged application was launched.
## Next gate
Prepare the checksummed acceptance kit from the passing verification report
and checkpoint manifest, then complete the isolated no-device desktop checklist described
in `m1-no-device-acceptance.md`. Neither setup nor automated acceptance closes
the manual packaged-app gate or authorizes hardware access.