diff --git a/README.md b/README.md index aec52fb..35c6976 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,8 @@ Phase 0 has established a reproducible evidence and research baseline: - the public tests, provenance checks, leak guard, and clean-clone validation pass. -Phase 0 remains open while we collect the remaining device screenshots, machine -photos and operator notes directly from the actual control computer. The bundle, +Phase 0 remains open while we collect machine photos and operator notes directly +from the actual control computer. The settings and device screenshots, bundle, exported preferences, closed-application local settings and three explicitly operator-verified projects are preserved and analyzed. The operator confirmed a 110 mm lens; other local test projects remain unverified. See the @@ -86,8 +86,7 @@ real-project gates in The initial offline architecture spikes have passed. The next work remains hardware-free: -1. collect the remaining Device Settings screenshots, exterior labels and - startup/interlock notes; +1. collect exterior labels and startup/interlock notes; 2. obtain or produce a reviewed Windows Rayforge build artifact without installing a toolchain through this repository; 3. run and record the packaged no-device desktop interaction checklist; diff --git a/docs/CODEX_HANDOFF.md b/docs/CODEX_HANDOFF.md index f1548ae..47e7359 100644 --- a/docs/CODEX_HANDOFF.md +++ b/docs/CODEX_HANDOFF.md @@ -64,10 +64,10 @@ remains unresolved. Both image settings record `ditherMode="3dslice"`. The running control-machine application was also inspected while the laser was physically disconnected. LightBurn Pro 2.1.03 showed the JPT profile as `Disconnected`, the 110 mm material library, and explicit `Frequency (kHz)` / -`Q-Pulse (ns)` UI labels. The live preferences and newest native backup are -hashed in PrivateStash. The screenshot channel timed out, so the complete -Device Settings tab set and exterior hardware photographs remain open; see -`docs/research/lightburn-control-machine-observation-2026-10-24.md`. +`Q-Pulse (ns)` UI labels. The live preferences, newest native backup, all five +general Settings tabs and all three JPT Device Settings tabs are hashed in +PrivateStash. Exterior hardware photographs and startup/interlock notes remain +open; see `docs/research/lightburn-control-machine-observation-2026-10-24.md`. M1 is not complete. Do not describe the repository as a finished desktop application until both gates below have real evidence: diff --git a/docs/research/lightburn-control-machine-observation-2026-10-24.md b/docs/research/lightburn-control-machine-observation-2026-10-24.md index 7b16c7f..7f9ddce 100644 --- a/docs/research/lightburn-control-machine-observation-2026-10-24.md +++ b/docs/research/lightburn-control-machine-observation-2026-10-24.md @@ -44,16 +44,35 @@ the fallback, while SVG import uses the 96 DPI Inkscape convention with auto-detection enabled. The visible output curve tolerance is `0.050 mm`. These are observed application settings, not machine-safe processing values. +## JPT Device Settings screenshots + +Three further operator-supplied screenshots preserve every tab in Device +Settings for `100 JPT E2 MOPA`: Galvo and Basic Settings, Ports and Laser +Settings, and Additional Settings. The first confirms a 110 x 110 mm field, +linked metric control/design units, and enabled `Require Framing Before Start`. + +The laser-source pane identifies the source as `Fiber`, displays fiber type +`IPG_YLPM`, enables Q-pulse-width control, and shows a UI frequency range of +`1.000` to `4000.000 kHz`. The device name says JPT while the fiber-type field +literally displays `IPG_YLPM`; this is recorded as an observed LightBurn value +without interpreting it as a manufacturer identity or correcting it. + +The port assignments, correction coefficients, red-dot scaling, jump timing +and laser timing are retained only in the private screenshots and preference +snapshot. They are machine-specific evidence, not public defaults. The third +tab explicitly labels its speed and acceleration fields as preview/simulation +timing that does not affect the controller. + ## Collection limits -The five supplied screenshots close the ordinary Settings-dialog item. The -automation screenshot channel itself repeatedly returned `window capture timed -out`; geometry-dependent controls therefore could not be safely invoked to -capture every separate Device Settings tab. No substitute Support Data bundle +The five general Settings screenshots and three Device Settings screenshots +close both application-dialog screenshot items. The automation screenshot +channel itself repeatedly returned `window capture timed out`; the operator +supplied the screenshots directly instead. No substitute Support Data bundle was generated. No Start or Frame control was used, no USB endpoint or controller was opened, and no machine setting was intentionally changed. The operator's 110 mm lens statement remains operator-confirmed rather than photographically verified. -Exterior hardware labels and the complete Device Settings screenshot set remain -open evidence items. +Exterior hardware labels and startup/interlock notes remain open evidence +items. diff --git a/docs/status/phase-0.md b/docs/status/phase-0.md index e4cb2ea..f121f2d 100644 --- a/docs/status/phase-0.md +++ b/docs/status/phase-0.md @@ -39,12 +39,14 @@ Last updated: 2026-10-24 hashed; see the [control-machine observation](../research/lightburn-control-machine-observation-2026-10-24.md). - All five tabs of the ordinary LightBurn Settings dialog were supplied as screenshots and preserved privately with SHA-256 records. +- All three tabs of the JPT Device Settings dialog were subsequently supplied + and preserved privately. They confirm the 110 x 110 mm field, Q-pulse-width + enablement, visible 1-4000 kHz range and require-frame-before-start setting. ## Pending external acquisition These items remain pending from the actual control machine: -- Device Settings screenshots (the automation screenshot channel timed out); - safe exterior hardware/label photographs and startup/interlock notes; - stock-driver identity and version from the actual LightBurn control computer. diff --git a/evidence/public-lightburn-control-machine-observation.jsonl b/evidence/public-lightburn-control-machine-observation.jsonl index 8c15458..2d37b20 100644 --- a/evidence/public-lightburn-control-machine-observation.jsonl +++ b/evidence/public-lightburn-control-machine-observation.jsonl @@ -5,3 +5,6 @@ {"analysis_refs": ["docs/research/lightburn-control-machine-observation-2026-10-24.md"], "artifact_id": "sha256-1feb3cacfdf183900323", "classification": "private-sensitive", "media_type": "image/png", "observed_at_utc": "2026-10-24T11:18:02.6679330Z", "origin": "operator-supplied LightBurn general Settings screenshots", "sha256": "1feb3cacfdf18390032318087998b877e8ab6ad16257924537baf933bddb98b8", "size_bytes": 58680} {"analysis_refs": ["docs/research/lightburn-control-machine-observation-2026-10-24.md"], "artifact_id": "sha256-ba5e3d2f002f068d7e82", "classification": "private-sensitive", "media_type": "image/png", "observed_at_utc": "2026-10-24T11:18:02.6679330Z", "origin": "operator-supplied LightBurn general Settings screenshots", "sha256": "ba5e3d2f002f068d7e82b55916882bdd8030a7081741dedbd85b773d74c48638", "size_bytes": 60471} {"analysis_refs": ["docs/research/lightburn-control-machine-observation-2026-10-24.md"], "artifact_id": "sha256-0d861706bcd5a96d92e4", "classification": "private-sensitive", "media_type": "image/png", "observed_at_utc": "2026-10-24T11:18:02.6679330Z", "origin": "operator-supplied LightBurn general Settings screenshots", "sha256": "0d861706bcd5a96d92e45c003ed206cc7992ecabb8c53b5aecdaf5f3d85cddbb", "size_bytes": 43401} +{"analysis_refs": ["docs/research/lightburn-control-machine-observation-2026-10-24.md"], "artifact_id": "sha256-bddaa2313ec8850d23e7", "classification": "private-sensitive", "media_type": "image/png", "observed_at_utc": "2026-10-24T11:20:03.7120119Z", "origin": "operator-supplied LightBurn JPT Device Settings screenshots", "sha256": "bddaa2313ec8850d23e7c64f00b33646288ce9d63427a78b626310e8a3fb2a10", "size_bytes": 95069} +{"analysis_refs": ["docs/research/lightburn-control-machine-observation-2026-10-24.md"], "artifact_id": "sha256-3a2017c06614456dac8a", "classification": "private-sensitive", "media_type": "image/png", "observed_at_utc": "2026-10-24T11:20:03.7120119Z", "origin": "operator-supplied LightBurn JPT Device Settings screenshots", "sha256": "3a2017c06614456dac8aeb08810747a7ca944fc8ac87200ac11d6fce14cf2323", "size_bytes": 87183} +{"analysis_refs": ["docs/research/lightburn-control-machine-observation-2026-10-24.md"], "artifact_id": "sha256-21a3d4ac51d1578939ed", "classification": "private-sensitive", "media_type": "image/png", "observed_at_utc": "2026-10-24T11:20:03.7120119Z", "origin": "operator-supplied LightBurn JPT Device Settings screenshots", "sha256": "21a3d4ac51d1578939ed3e33dcfc2443a8181e41152931b9c1e2202824283b00", "size_bytes": 53195} diff --git a/tests/test_public_evidence.py b/tests/test_public_evidence.py index f797be5..380deb2 100644 --- a/tests/test_public_evidence.py +++ b/tests/test_public_evidence.py @@ -50,7 +50,7 @@ class PublicEvidenceTests(unittest.TestCase): def test_expected_manifest_entry_counts(self) -> None: expected = { "public-installer-configs.jsonl": 9, - "public-lightburn-control-machine-observation.jsonl": 7, + "public-lightburn-control-machine-observation.jsonl": 10, "public-lightburn-exports.jsonl": 4, "public-lightburn-local-settings.jsonl": 1, "public-lightburn-verified-projects.jsonl": 3,