ThePirateRay/docs/CODEX_HANDOFF.md
2026-10-21 09:54:43 +02:00

60 lines
2.3 KiB
Markdown

# Codex continuation brief
- Updated: 2026-10-21
- Current focus: M1 build, packaging and no-device acceptance
- Hardware access: prohibited
- Automatic toolchain installation: prohibited
## Verified checkpoint
The public repository currently passes 83 unit tests and the public-repository
guard. The offline Rayforge/MeerK40t evidence covers addon lifecycle, MOPA
settings and units, layer and recipe semantics, JCZ record/list encoding,
negative cases, cancellation/recovery and synthetic LightBurn imports.
The repository now provides:
- an on-demand source/build entry point that never installs the Windows
toolchain;
- a non-executing verifier for externally produced Windows artifacts;
- a checksummed acceptance-kit generator containing only allowlisted public
synthetic inputs;
- a fail-closed manual desktop-acceptance report and validator.
Run the ordinary checkpoint with the bundled Codex Python or another supported
Python interpreter and a writable `TEMP`/`TMP`:
```powershell
python -m unittest discover -s tests -v
python scripts/check_public_repo.py .
```
## External gates
M1 is not complete. Do not describe the repository as a finished desktop
application until both gates below have real evidence:
1. A Windows artifact for the pinned Rayforge revision must be produced on a
reviewed build runner, verified without execution, and pass the manual
no-device desktop checklist.
2. A known-working private JPT `.lbrn2` project must establish how project-level
frequency and `QPulseWidth` are serialized before those fields are mapped.
Raw projects, screenshots containing identifiers, machine data and build
binaries stay out of the public repository.
## Suggested first task
If a Windows artifact is available, keep the machine disconnected and run, in
order:
1. `scripts/verify_rayforge_windows_checkpoint.py`;
2. `scripts/prepare_m1_acceptance_kit.py`;
3. the manual checklist in
`docs/research/m1-no-device-acceptance.md`;
4. `scripts/validate_m1_manual_acceptance.py`.
If no artifact is available, do not install a build environment here. The next
useful input is the private known-working `.lbrn2` collection. Until either
external gate arrives, ADR 0002 remains Proposed and no controller backend,
USB discovery, physical framing, galvo motion or laser output is authorized.