Record verified LightBurn project MOPA serialization evidence
This commit is contained in:
parent
63f695fb85
commit
4024d14897
5 changed files with 69 additions and 10 deletions
10
README.md
10
README.md
|
|
@ -43,12 +43,16 @@ are preserved and analyzed. The operator confirmed a 110 mm lens; local test
|
||||||
projects are unverified and must not be used as working-project evidence. See
|
projects are unverified and must not be used as working-project evidence. See
|
||||||
the [local settings acquisition](docs/research/lightburn-local-settings-2026-10-24.md).
|
the [local settings acquisition](docs/research/lightburn-local-settings-2026-10-24.md).
|
||||||
|
|
||||||
|
Two operator-verified projects now establish project-level `frequency` and
|
||||||
|
`QPulseWidth` serialization; see the
|
||||||
|
[verified-project analysis](docs/research/lightburn-verified-projects-2026-10-24.md).
|
||||||
|
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. The remaining gates
|
recipe semantics, and a transport-free workflow preview. A reviewed Windows GTK
|
||||||
are a private known-working `.lbrn2` project and a reviewed Windows GTK runtime
|
runtime and the packaged no-device workflow test remain outstanding. See the
|
||||||
for the packaged no-device workflow test. See the
|
|
||||||
[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).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,9 +53,12 @@ python scripts/check_public_repo.py .
|
||||||
|
|
||||||
The closed-application local settings directory is now preserved and hashed in
|
The closed-application local settings directory is now preserved and hashed in
|
||||||
PrivateStash; see `docs/research/lightburn-local-settings-2026-10-24.md`.
|
PrivateStash; see `docs/research/lightburn-local-settings-2026-10-24.md`.
|
||||||
The operator confirmed a 110 mm installed lens. Local project candidates are
|
The operator confirmed a 110 mm installed lens. General local project candidates
|
||||||
unverified test files and must not be used; temporary copies were removed
|
remain excluded as unverified. The operator subsequently selected two specific
|
||||||
before analysis or commit. No known-working project was collected.
|
successful projects; their verified private copies establish project-level
|
||||||
|
`frequency` and `QPulseWidth` serialization. See
|
||||||
|
`docs/research/lightburn-verified-projects-2026-10-24.md`. One layer omits
|
||||||
|
`QPulseWidth`; its effective default remains unresolved.
|
||||||
|
|
||||||
M1 is not complete. Do not describe the repository as a finished desktop
|
M1 is not complete. Do not describe the repository as a finished desktop
|
||||||
application until both gates below have real evidence:
|
application until both gates below have real evidence:
|
||||||
|
|
@ -63,8 +66,9 @@ application until both gates below have real evidence:
|
||||||
1. A Windows artifact for the pinned Rayforge revision must be produced on a
|
1. A Windows artifact for the pinned Rayforge revision must be produced on a
|
||||||
reviewed build runner, verified without execution, and pass the manual
|
reviewed build runner, verified without execution, and pass the manual
|
||||||
no-device desktop checklist.
|
no-device desktop checklist.
|
||||||
2. A known-working private JPT `.lbrn2` project must establish how project-level
|
2. The known-working private JPT `.lbrn2` serialization evidence gate is met.
|
||||||
frequency and `QPulseWidth` are serialized before those fields are mapped.
|
Import mapping still requires explicit unit conversion and fail-closed
|
||||||
|
handling of absent pulse width, with synthetic offline tests.
|
||||||
|
|
||||||
Raw projects, screenshots containing identifiers, machine data and build
|
Raw projects, screenshots containing identifiers, machine data and build
|
||||||
binaries stay out of the public repository.
|
binaries stay out of the public repository.
|
||||||
|
|
@ -81,8 +85,9 @@ order:
|
||||||
4. `scripts/validate_m1_manual_acceptance.py`.
|
4. `scripts/validate_m1_manual_acceptance.py`.
|
||||||
|
|
||||||
If no artifact is available, do not install a build environment here. The next
|
If no artifact is available, do not install a build environment here. The next
|
||||||
useful input is the private known-working `.lbrn2` collection or Kaz's explicit
|
offline implementation task is evidence-backed MOPA import mapping with
|
||||||
decision on ADR 0003. The M3 protocol can also be reviewed offline, but its
|
synthetic tests; Kaz's explicit decision on ADR 0003 is also outstanding.
|
||||||
|
The M3 protocol can also be reviewed offline, but its
|
||||||
operation allowlist must stay empty until exact read-only request evidence is
|
operation allowlist must stay empty until exact read-only request evidence is
|
||||||
available. Until the external gates and separate hardware approval arrive,
|
available. Until the external gates and separate hardware approval arrive,
|
||||||
ADR 0002 remains Proposed and no controller backend, USB endpoint access,
|
ADR 0002 remains Proposed and no controller backend, USB endpoint access,
|
||||||
|
|
|
||||||
47
docs/research/lightburn-verified-projects-2026-10-24.md
Normal file
47
docs/research/lightburn-verified-projects-2026-10-24.md
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
# Operator-verified LightBurn projects
|
||||||
|
|
||||||
|
- Date: 2026-10-24
|
||||||
|
- Provenance: two files explicitly selected by the operator as successfully tested
|
||||||
|
- Scope: byte-preserving acquisition and offline XML analysis; no hardware access
|
||||||
|
|
||||||
|
The two explicitly supplied files supersede the earlier exclusion only for
|
||||||
|
these selected originals. Other unverified local projects remain excluded.
|
||||||
|
Raw geometry, names, paths and complete settings remain in PrivateStash.
|
||||||
|
Both copied files were verified against their originals with SHA-256.
|
||||||
|
See [public manifest](../../evidence/public-lightburn-verified-projects.jsonl).
|
||||||
|
|
||||||
|
Both roots are `LightBurnProject`, with `AppVersion="2.1.03"` and
|
||||||
|
`FormatVersion="1"`. Process settings occur as direct children of
|
||||||
|
`CutSetting`, with numeric strings in a `Value` attribute.
|
||||||
|
|
||||||
|
| Artifact ID | Layer type | Raw `frequency` | Raw `QPulseWidth` |
|
||||||
|
| --- | --- | ---: | ---: |
|
||||||
|
| `sha256-1e1ec8441cc23ee997a6` | Scan | 200000 | absent |
|
||||||
|
| `sha256-1e1ec8441cc23ee997a6` | Cut | 80000 | 180 |
|
||||||
|
| `sha256-1e1ec8441cc23ee997a6` | Scan | 1000000 | 10 |
|
||||||
|
| `sha256-0807d2a2d1613e1aff90` | Scan | 1000000 | 10 |
|
||||||
|
| `sha256-0807d2a2d1613e1aff90` | Cut | 80000 | 180 |
|
||||||
|
| `sha256-0807d2a2d1613e1aff90` | Scan | 1000000 | 10 |
|
||||||
|
|
||||||
|
All four Scan settings also have `crossHatch Value="1"`. These are stored
|
||||||
|
layer settings, not independent proof of which settings emitted on a machine.
|
||||||
|
Successful operation is the operator's statement; it was not replayed here.
|
||||||
|
|
||||||
|
## Import implications
|
||||||
|
|
||||||
|
This closes the missing operator-verified project serialization evidence gate:
|
||||||
|
`frequency` and case-sensitive `QPulseWidth` are now observed in actual
|
||||||
|
projects, consistent with the earlier device export findings.
|
||||||
|
|
||||||
|
The absent pulse-width field must remain distinguishable from zero or an
|
||||||
|
explicit value. Its effective LightBurn default or inheritance is not established
|
||||||
|
by this inspection. An importer must preserve absence and require an explicit,
|
||||||
|
validated resolution before a MOPA job can become executable.
|
||||||
|
|
||||||
|
These raw values do not independently establish units, safe ranges, calibration
|
||||||
|
or device identity. The next implementation should use synthetic geometry and
|
||||||
|
test explicit unit conversions, field absence and invalid values. It must not
|
||||||
|
copy private project geometry into public fixtures or enable hardware access.
|
||||||
|
|
||||||
|
The reviewed Windows artifact and manual no-device desktop acceptance remain
|
||||||
|
open. ADR 0002 remains Proposed until those gates have also passed.
|
||||||
2
evidence/public-lightburn-verified-projects.jsonl
Normal file
2
evidence/public-lightburn-verified-projects.jsonl
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
{"analysis_refs": ["docs/research/lightburn-verified-projects-2026-10-24.md"], "artifact_id": "sha256-1e1ec8441cc23ee997a6", "classification": "private-sensitive", "media_type": "application/octet-stream", "observed_at_utc": "2026-10-24T10:44:44.053873Z", "origin": "operator-confirmed successful JPT LightBurn projects", "sha256": "1e1ec8441cc23ee997a61d70592d1e8fa3035d3541729abf5a89f73c7f3aa528", "size_bytes": 202189}
|
||||||
|
{"analysis_refs": ["docs/research/lightburn-verified-projects-2026-10-24.md"], "artifact_id": "sha256-0807d2a2d1613e1aff90", "classification": "private-sensitive", "media_type": "application/octet-stream", "observed_at_utc": "2026-10-24T10:44:44.053873Z", "origin": "operator-confirmed successful JPT LightBurn projects", "sha256": "0807d2a2d1613e1aff90294fe515d7a26aa2df9ba214b77fd1990ba315bea9d1", "size_bytes": 1198348}
|
||||||
|
|
@ -52,6 +52,7 @@ class PublicEvidenceTests(unittest.TestCase):
|
||||||
"public-installer-configs.jsonl": 9,
|
"public-installer-configs.jsonl": 9,
|
||||||
"public-lightburn-exports.jsonl": 4,
|
"public-lightburn-exports.jsonl": 4,
|
||||||
"public-lightburn-local-settings.jsonl": 1,
|
"public-lightburn-local-settings.jsonl": 1,
|
||||||
|
"public-lightburn-verified-projects.jsonl": 2,
|
||||||
}
|
}
|
||||||
actual = {
|
actual = {
|
||||||
path.name: len(path.read_text(encoding="utf-8").splitlines())
|
path.name: len(path.read_text(encoding="utf-8").splitlines())
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue