Document local LightBurn settings acquisition and confirmed 110 mm lens

This commit is contained in:
Codex 2026-10-24 12:43:33 +02:00
parent a22cb1e759
commit 63f695fb85
6 changed files with 68 additions and 4 deletions

1
.gitattributes vendored
View file

@ -7,3 +7,4 @@
*.yaml text eol=lf *.yaml text eol=lf
*.yml text eol=lf *.yml text eol=lf
*.png binary *.png binary
third_party/licenses/*.txt text eol=lf

View file

@ -37,9 +37,11 @@ Phase 0 has established a reproducible evidence and research baseline:
pass. pass.
Phase 0 remains open while we collect known-working LightBurn projects, device Phase 0 remains open while we collect known-working LightBurn projects, device
screenshots, the closed-application preferences folder, machine photos, and screenshots, machine photos, and operator notes directly from the actual control
operator notes directly from the actual control computer. The bundle and computer. The bundle, exported preferences and closed-application local settings
exported preferences are already preserved and analyzed. 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
the [local settings acquisition](docs/research/lightburn-local-settings-2026-10-24.md).
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

View file

@ -1,6 +1,6 @@
# Codex continuation brief # Codex continuation brief
- Updated: 2026-10-21 - Updated: 2026-10-24
- Current focus: M1 build, packaging and no-device acceptance - Current focus: M1 build, packaging and no-device acceptance
- Hardware access: prohibited - Hardware access: prohibited
- Automatic toolchain installation: prohibited - Automatic toolchain installation: prohibited
@ -51,6 +51,12 @@ python scripts/check_public_repo.py .
## External gates ## External gates
The closed-application local settings directory is now preserved and hashed in
PrivateStash; see `docs/research/lightburn-local-settings-2026-10-24.md`.
The operator confirmed a 110 mm installed lens. Local project candidates are
unverified test files and must not be used; temporary copies were removed
before analysis or commit. No known-working project was collected.
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:

View file

@ -0,0 +1,53 @@
# Local LightBurn settings acquisition
- Date: 2026-10-24
- Scope: offline acquisition of the closed application's local settings directory
- Hardware access: none; connection status was not tested
## Evidence and integrity
The complete settings directory was archived in PrivateStash. Its 255 files
include 250 preference backups, current and previous settings, two JSON files
and a material-test preset. Archive members were checked against source SHA-256
digests before and after copying; ZIP integrity and the final archive digest
were also checked. The source files were not modified.
The archive SHA-256 is
`d64320d13d8a543820ab1dd25e42791ac9a6faff89b7cb07aadbd707e9a3ca39`.
The current settings member SHA-256 is
`0b1f3496e9838788cd1e8469a2ddae279a7d0dc872767768f77fbeeaff4603e2`.
The public artifact contract is recorded in
[`public-lightburn-local-settings.jsonl`](../../evidence/public-lightburn-local-settings.jsonl).
Raw preferences, backup contents and exact local paths remain private.
## Observations
The current settings file contains JSON despite its INI extension. It has four
device records. Exactly one uses `LibUSB` with a 110 x 110 mm work area. That
profile enables `Laser_QPulseWidthEnabled` and `RequireFrameBeforeStart`.
The global cut list has 60 entries, including 35 with `frequency` and 25 with
`QPulseWidth`. These counts agree with the earlier export analysis; they do
not establish that every profile field is unchanged or that global recipes
belong to a particular machine.
The operator separately confirmed the installed lens as **110 mm**. This is
an operator statement, not an independent verification of the lens label,
calibration or correction profile. A stored connection type does not establish
that a controller is connected or works.
## Excluded project files and remaining gates
The operator stated that the locally discovered project candidates are
unverified test files and instructed us not to use them. Nine temporary copies
were removed from this acquisition before analysis or commit. Their originals
were unchanged; no project content was analyzed or retained as evidence.
This collection closes the missing closed-application settings snapshot. It
does **not** close the known-working JPT project gate: project-level frequency
and pulse-width serialization still require independently identified,
operator-verified project evidence. Do not derive an executable import mapping
from these settings or the excluded test projects.
The reviewed Windows artifact and manual no-device desktop acceptance also
remain outstanding. No controller, USB endpoint, framing, motion or laser
operation was performed or authorized by this collection.

View file

@ -0,0 +1 @@
{"analysis_refs": ["docs/research/lightburn-local-settings-2026-10-24.md"], "artifact_id": "sha256-d64320d13d8a543820ab", "classification": "private-sensitive", "media_type": "application/x-zip-compressed", "observed_at_utc": "2026-10-24T10:36:56.001526Z", "origin": "closed local LightBurn settings", "sha256": "d64320d13d8a543820ab1dd25e42791ac9a6faff89b7cb07aadbd707e9a3ca39", "size_bytes": 1781002}

View file

@ -51,6 +51,7 @@ class PublicEvidenceTests(unittest.TestCase):
expected = { expected = {
"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,
} }
actual = { actual = {
path.name: len(path.read_text(encoding="utf-8").splitlines()) path.name: len(path.read_text(encoding="utf-8").splitlines())