{
  "schema": "webftr-js8lab-daemon-status-v2",
  "version": "step49-source-constants-rx-core-extract-audit",
  "created_utc": "2026-05-26T07:46:12Z",
  "updated_utc": "2026-05-27T10:03:15Z",
  "state": "diagnostics_ok",
  "detail": "Diagnose beendet; Status aus Log/Manifest nachgeführt",
  "exit_code": 0,
  "root": "/decoders/js8_decoder",
  "expected_root": "/decoders/js8_decoder",
  "wav": "/decoders/js8_test.wav",
  "mode": "full-audit",
  "start_guard": {
    "start_stops_existing_instance": true,
    "stale_pid_cleanup": true,
    "root_orphan_cleanup": true,
    "port_guard": true,
    "foreign_port_owner_not_killed": true
  },
  "server": {
    "host": "0.0.0.0",
    "port": 8000,
    "pid": 3133,
    "running": true,
    "log": "/decoders/js8_decoder/logs/js8_browser_server.log"
  },
  "diagnostics": {
    "pid": null,
    "running": false,
    "log": "/decoders/js8_decoder/logs/js8_start_diagnostics_latest.log",
    "last_command": "./run_js8_decoder_lab.sh full-audit /decoders/js8_test.wav"
  },
  "links": {
    "home": "/",
    "api_report": "/api/report",
    "api_status": "/api/status",
    "logs": "/logs/",
    "latest_log": "/logs/latest.log",
    "start_diagnostics_log": "/logs/js8_start_diagnostics_latest.log",
    "server_log": "/logs/js8_browser_server.log"
  },
  "rx_only_guard": {
    "tx": false,
    "ptt": false,
    "tune": false,
    "send": false,
    "js8call_runtime_control": false
  },
  "history": [
    {
      "utc": "2026-05-27T07:46:18Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-27T08:02:14Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:02:15Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:02:16Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-27T08:02:16Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: server-deep-run /decoders/js8_test.wav",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:02:16Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 1/9: INPUT CHECK",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:02:17Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:02:17Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 2/9A: QUICK WINDOW PREFILTER",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:02:30Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 2/9B: BOUNDED DIRTY WINDOW SCAN",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:03:31Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 3/9: PROFILE SCAN",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:04:56Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 4/9: FRAME RECOVER",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:07:30Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 5/9: AUTO LDPC PROBE",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:09:16Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 6/9: CANDIDATE EXPORT",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:09:18Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 7/11: TIMING / BOUNDARY SWEEP",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:12:00Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 8/11: LDPC MATRIX PROBE",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:12:03Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 9/11: LDPC SOFT DECODE",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:12:13Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 10/12: MESSAGE91 CRC VALIDATION",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:12:17Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 11/12: MESSAGE91 CRC DISTANCE RANKING",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:12:22Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 12/12: JS8LAB LOG BUNDLE",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:12:25Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-27T08:20:44Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:20:44Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:20:45Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-27T08:20:46Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: server-deep-run /decoders/js8_test.wav",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:20:46Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 1/9: INPUT CHECK",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:20:47Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:20:47Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 2/9A: QUICK WINDOW PREFILTER",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:21:00Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 2/9B: BOUNDED DIRTY WINDOW SCAN",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:22:00Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 3/9: PROFILE SCAN",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:23:27Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 4/9: FRAME RECOVER",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:26:01Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 5/9: AUTO LDPC PROBE",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:27:47Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 6/9: CANDIDATE EXPORT",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:27:49Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 7/11: TIMING / BOUNDARY SWEEP",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:30:30Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 8/11: LDPC MATRIX PROBE",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:30:33Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 9/11: LDPC SOFT DECODE",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:30:43Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 10/13: MESSAGE91 CRC VALIDATION",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:30:47Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 11/13: MESSAGE91 CRC DISTANCE RANKING",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:30:51Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 12/13: MESSAGE91 CRC GUIDED BIT REPAIR",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:31:52Z",
      "state": "diagnostics_running",
      "detail": "REAL-RUN STEP 13/13: JS8LAB LOG BUNDLE",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:31:56Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-27T08:43:04Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:43:04Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:43:05Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-27T08:43:05Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: full-audit ",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:43:06Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T08:51:48Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-27T10:03:14Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T10:03:14Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T10:03:15Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-27T10:03:15Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: full-audit ",
      "exit_code": null
    }
  ],
  "status_file": "/decoders/js8_decoder/runtime/js8lab_status.json",
  "status_inferred_by_browser": true,
  "status_inferred_source": {
    "job_log": "/decoders/js8_decoder/logs/js8_start_diagnostics_latest.log",
    "manifest": "/decoders/js8_decoder/logs/20260527T084305Z_full-audit_manifest.json",
    "manifest_status": "ok"
  }
}