ThePirateRay/docs/status/phase-0.md

97 lines
4.9 KiB
Markdown

# Phase 0 status
Last updated: 2026-10-20
## Completed
- Both repositories use `main` and have pushed, reviewable histories.
- PrivateStash uses Git LFS and preserves `raw/**` without line-ending or text
normalization.
- The existing installer-stick source was read without modifying Google Drive.
- Private evidence snapshot `b6edf29` contains 307 files totaling 79,386,307
bytes; 135 new LFS objects were uploaded in that import.
- Private manifest commit `50e589c` contains 307 SHA-256 entries, 307 matching
Drive-file provenance entries, and 29 folder provenance entries.
- Public configuration analysis is linked to nine sanitized evidence entries.
- A private 340-token deny-list checks known Drive and machine identifiers
without storing those identifiers publicly.
- A fresh clone of both remotes passed `git fsck`; the private clone additionally
passed `git lfs fsck` and reproduced the expected file and byte counts.
- The public test suite and leak guard pass against the fresh private deny-list.
- Passive Windows enumeration of the connected controller confirmed device
description `USBLMCV4`, USB VID/PID `9588:9899`, vendor-specific class, and
USB revision descriptor `0005`. No compatible function driver is installed
on the development computer; no endpoint was opened.
- Four LightBurn exports are preserved privately with SHA-256 manifests and
Git LFS. Their public evidence records contain no private source locators.
- All three bundle manifests identify LightBurn `2.1.03`.
- The JPT export confirms a `JCZFiber`/`LibUSB` device profile, 110 x 110 mm
work area, enabled Q-pulse-width control, `QPulseWidth` cut-list fields and
a require-frame-before-start setting.
- The Eduard export confirms a Ruida/Serial profile with a 1500 x 1000 mm work
area. A separate 500 x 300 mm Ruida profile remains physically unassigned.
- No vendor executable, plugin, DLL, or driver was run. No USB capture, framing,
machine command, or laser output was performed.
## Pending external acquisition
These items remain pending from the actual control machine:
- closed-application preferences-folder archive;
- Device Settings screenshots;
- known-working `.lbrn2` examples;
- safe exterior hardware/label photographs and startup/interlock notes;
- stock-driver identity and version from the actual LightBurn control computer.
An About screenshot is useful corroboration, but the imported bundle manifests
already establish version `2.1.03`.
Collect them directly into a dated directory under PrivateStash by following
the [LightBurn checklist](../collection/lightburn.md). Do not use Google Drive
as an intermediate project workspace and do not generate Support Data.
Phase 0 remains open until the safety- and interoperability-relevant remainder
is hashed, committed, pushed, and represented by sanitized public evidence.
The work that does not depend on this acquisition can proceed in parallel.
The [product and research roadmap](../roadmap.md) defines the offline application
core, configuration analysis, protocol research, gated hardware experiments,
and workshop release as separate milestones.
## Offline M1 status
The Rayforge/MeerK40t reuse track has now produced public, transport-free
evidence for:
- deterministic MeerK40t BalorMK mock MOPA encoding, hatch planning and mock
spooling;
- an external Rayforge no-device addon with profile import, fixed-size list
buffering, safe state ordering, cancellation and explicit recovery;
- semantic and 12-byte-record agreement between a Rayforge `Ops` stream and
the pinned BalorMK mock values;
- fail-closed profile and encoder negative cases;
- Rayforge workflow-model serialization and preview behavior for power,
frequency and pulse width.
- independent layer visibility/output state and ordered serialization;
- material-recipe matching plus a fail-closed PirateRay provenance and exact
machine/source/lens/correction compatibility gate;
- one consolidated no-device acceptance report that reruns all 74 public
tests and the leak guard, then hashes the regression evidence;
- a non-executing Windows artifact verifier that checks portable paths,
archive safety, sizes, hashes, the pinned Rayforge revision and every
packaged addon source while retaining the manual GUI gate.
The remaining M1 gates are deliberately explicit:
- a private known-working `.lbrn2` project is still required before mapping
project-level `QPulseWidth` into workflow settings;
- packaged Windows/GTK interaction is blocked until a reviewed Rayforge
runtime with PyGObject and MSYS2/UCRT64 is available; the repository build
entry point fetches pinned source but never installs that runtime;
- graphical workflow, import, lens correction and controller protocol
behavior remain unproven at the physical boundary;
- ADR 0002 remains **Proposed** until those gaps are resolved or rejected by
evidence.
No item in this section authorizes USB access, controller commands or laser
output.