{
  "schema": "webftr-js8lab-daemon-status-v2",
  "version": "step84-real-wav-status-surface-report-slim",
  "created_utc": "2026-05-26T07:46:12Z",
  "updated_utc": "2026-05-28T03:56:11Z",
  "state": "diagnostics_ok",
  "detail": "Diagnose fertig",
  "exit_code": 0,
  "root": "/decoders/js8_decoder",
  "expected_root": "/decoders/js8_decoder",
  "wav": "/decoders/js8_test.wav",
  "mode": "real-wav-status-surface-regression",
  "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": 82171,
    "running": true,
    "log": "/decoders/js8_decoder/logs/js8_browser_server.log"
  },
  "diagnostics": {
    "pid": 82187,
    "running": false,
    "log": "/decoders/js8_decoder/logs/js8_start_diagnostics_latest.log",
    "last_command": "./run_js8_decoder_lab.sh real-wav-status-surface-regression /decoders/js8_test.wav"
  },
  "latest_chain_summary": {
    "available": true,
    "path": "/decoders/js8_decoder/logs/js8_real_wav_message174_regeneration_latest.json",
    "stat": {
      "exists": true,
      "size": 93483,
      "mtime_utc": "2026-05-28T03:56:08Z"
    },
    "tool_version": "step84-real-wav-status-surface-report-slim",
    "created_utc": "2026-05-28T03:56:08Z",
    "verdict": "step83_wav_to_message174_regeneration_confirmed",
    "input_wav": "/decoders/js8_test.wav",
    "analysis_wav": "/decoders/js8_decoder/runtime/step83_quick_windows/js8_quick_selected_window.wav",
    "wav_was_read": true,
    "wav_duration_seconds": 192.016583,
    "quick_window_selected": true,
    "candidate_export_ok": true,
    "runtime_info87_rows_count": 48,
    "post_ldpc_zero_distance_candidate_count": 0,
    "source_exact_zero_distance_candidate_count": 2,
    "message174_decode_count": 2,
    "frame_probe_count": 2,
    "frame_type_counts": {
      "FrameHeartbeat": 1,
      "FrameDirected": 1
    },
    "control_frame_release_count": 2,
    "webftr_display_count": 2,
    "webftr_rx_rows_preview": [
      {
        "id": "js8-rx67-de15d3110b0d",
        "source_candidate_id": "js8-frame66-bf1ce62fdb4a",
        "source_decode_id": "js8-msg174-44978e4b",
        "mode": "JS8",
        "raw_message174": "001XqOA2iDZ0",
        "valid_message174_crc12": true,
        "crc12_distance": 0,
        "received_crc12": 2920,
        "computed_crc12": 2920,
        "frame_type": "FrameHeartbeat",
        "confidence": "high",
        "confidence_score": 6,
        "confidence_reasons": [
          "valid_heartbeat_callsign",
          "valid_heartbeat_grid"
        ],
        "show_in_rx_list": true,
        "candidate_class": "webftr_control_frame_display_ready",
        "release_guard": "step67_source_confirmed_fixed_control_frame_only",
        "sort_index": 0,
        "source": {
          "source_file": "/decoders/js8_decoder/logs/20260528T035339Z_step83_source_exact_map_probe_output.json",
          "json_path": "$.top_llr_row_exports[0].hard_bits",
          "source_kind": "generic_bit_list",
          "row_index": 165,
          "map_name": "raw",
          "map_source": null
        },
        "status": "HB",
        "from": "004REY/0V4",
        "to": "@HB",
        "grid": "OJ16",
        "message": "HB 004REY/0V4 OJ16",
        "text": "HB 004REY/0V4 OJ16",
        "display_text": "HB 004REY/0V4 OJ16",
        "is_control_frame": true
      },
      {
        "id": "js8-rx67-bd37f68199eb",
        "source_candidate_id": "js8-frame66-66ab29ded46c",
        "source_decode_id": "js8-msg174-8368257f",
        "mode": "JS8",
        "raw_message174": "Q0VsKWqfJ96x",
        "valid_message174_crc12": true,
        "crc12_distance": 0,
        "received_crc12": 980,
        "computed_crc12": 980,
        "frame_type": "FrameDirected",
        "confidence": "high",
        "confidence_score": 10,
        "confidence_reasons": [
          "valid_directed_from",
          "valid_directed_to",
          "directed_command"
        ],
        "show_in_rx_list": true,
        "candidate_class": "webftr_control_frame_display_ready",
        "release_guard": "step67_source_confirmed_fixed_control_frame_only",
        "sort_index": 1,
        "source": {
          "source_file": "/decoders/js8_decoder/logs/20260528T035339Z_step83_source_exact_map_probe_output.json",
          "json_path": "$.top_llr_row_exports[6].hard_bits",
          "source_kind": "generic_bit_list",
          "row_index": 171,
          "map_name": "raw",
          "map_source": null
        },
        "status": "INFO",
        "from": "9I2TZR/P",
        "to": "0Z0PMP",
        "command": "INFO",
        "extra": 59,
        "extra_value": {
          "kind": "number",
          "value": 28
        },
        "message": "INFO 28",
        "text": "9I2TZR/P 0Z0PMP INFO 28",
        "display_text": "9I2TZR/P 0Z0PMP INFO 28",
        "is_control_frame": true
      }
    ],
    "source_chain_ran_from_real_wav_this_step": true,
    "exit_codes": {
      "input_check": 0,
      "quick_window_scan": 0,
      "candidate_export": 0,
      "post_ldpc_info87_runtime_export": 0,
      "source_exact_map_probe": 0,
      "source_confirmed_message174_decode": 0,
      "source_varicode_frame_unpack_probe": 0,
      "source_confirmed_control_frame_rx_release": 0
    },
    "next_action": "If Step84 confirms message174/control-frame regeneration from the real WAV, continue with either a wider real-WAV search for FrameDataCompressed or a real JS8Call/RF comparison fixture."
  },
  "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-27T19:39:43Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-27T19:39:47Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T02:35:08Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:35:08Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:35:09Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T02:35:09Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: real-fixture-operator-bundle ",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:35:10Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:35:14Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T02:43:27Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:43:27Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:43:28Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T02:43:28Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: real-fixture-command-export ",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:43:30Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:43:33Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T02:48:52Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:48:53Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:48:54Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T02:48:54Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: real-compressed-text-release-gate ",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:48:55Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:49:02Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T02:57:02Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:57:03Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:57:04Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T02:57:04Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: jsc-cpp-reference-compare-probe ",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:57:05Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T02:57:13Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T03:07:25Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:07:26Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:07:27Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T03:07:27Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: jsc-cpp-reference-map-transport-fix ",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:07:28Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:07:40Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T03:18:38Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:18:38Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:18:39Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T03:18:39Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: real-wav-full-chain-regression /decoders/js8_test.wav",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:18:40Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:19:11Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T03:38:58Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:38:58Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:38:59Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T03:38:59Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: real-wav-message174-regeneration /decoders/js8_test.wav",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:39:01Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:41:40Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T03:53:37Z",
      "state": "restarting",
      "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:53:37Z",
      "state": "server_starting",
      "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:53:39Z",
      "state": "server_running",
      "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
      "exit_code": 0
    },
    {
      "utc": "2026-05-28T03:53:39Z",
      "state": "diagnostics_running",
      "detail": "Diagnose läuft: real-wav-status-surface-regression /decoders/js8_test.wav",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:53:40Z",
      "state": "diagnostics_running",
      "detail": "Diagnosejob im Hintergrund gestartet",
      "exit_code": null
    },
    {
      "utc": "2026-05-28T03:56:11Z",
      "state": "diagnostics_ok",
      "detail": "Diagnose fertig",
      "exit_code": 0
    }
  ],
  "status_file": "/decoders/js8_decoder/runtime/js8lab_status.json"
}