JS8Lab Step 53

Status

FERTIG / BEREIT

State: diagnostics_ok
Detail: Diagnose fertig
Diagnose läuft: nein Server läuft: ja
Letzte Manifest-Auswertung: ok
Version: step53-focused-source-bitpath-audit-timeout-fix
Root: /decoders/js8_decoder
WAV: /decoders/js8_test.wav

Links

/api/status frisch /api/report frisch /logs/ frisch Diagnose-Startlog frisch Lab latest.log frisch Report JSON frisch
Cache-Buster dieses Abrufs: ?t=1779884731482

Bundles

js8_decoder_lab_real_run_20260527T110128Z.zip 5270021 B
js8_decoder_lab_real_run_20260527T104133Z.zip 4699383 B
js8_decoder_lab_full_audit_20260527T100315Z.zip 4129065 B
js8_decoder_lab_full_audit_20260527T084305Z.zip 4007964 B
js8_decoder_lab_real_run_20260527T082046Z.zip 4028163 B
js8_decoder_lab_real_run_20260527T080216Z.zip 3541087 B
js8_decoder_lab_real_run_20260527T073615Z.zip 3065595 B
js8_decoder_lab_real_run_20260527T072638Z.zip 2615145 B
js8_decoder_lab_real_run_20260527T070658Z.zip 2232505 B
js8_decoder_lab_real_run_20260527T064500Z.zip 1771764 B
js8_decoder_lab_real_run_20260527T062127Z.zip 1595958 B
js8_decoder_lab_real_run_20260527T055654Z.zip 1408988 B

Latest log tail

 ""
            },
            {
              "line": 100,
              "text": "  public slots:"
            },
            {
              "line": 101,
              "text": ""
            }
          ]
        },
        {
          "line": 104,
          "match": "void decode();",
          "context": [
            {
              "line": 101,
              "text": ""
            },
            {
              "line": 102,
              "text": "    void start(QThread::Priority priority);"
            },
            {
              "line": 103,
              "text": "    void quit();"
            },
            {
              "line": 104,
              "text": "    void decode();"
            },
            {
              "line": 105,
              "text": "};"
            },
            {
              "line": 106,
              "text": "} // namespace JS8"
            },
            {
              "line": 107,
              "text": ""
            }
          ]
        }
      ]
    },
    {
      "path": "JS8_Mode/Decoder.h",
      "exists": true,
      "bytes": 2022,
      "lines": 90,
      "score": 14,
      "keyword_hits": {
        "decode": 7,
        "Decode": 7
      },
      "phase_scores": {
        "symbol_to_bits": 0,
        "bit_order_interleaver": 0,
        "whitening_mask": 0,
        "ldpc_fec": 0,
        "message91_crc": 0,
        "timing_constants": 0
      },
      "candidate_functions": [],
      "candidate_arrays": [],
      "candidate_defines": [],
      "snippets": [
        {
          "line": 1,
          "match": "#ifndef DECODER_H",
          "context": [
            {
              "line": 1,
              "text": "#ifndef DECODER_H"
            },
            {
              "line": 2,
              "text": "#define DECODER_H"
            },
            {
              "line": 3,
              "text": ""
            },
            {
              "line": 4,
              "text": "/**"
            }
          ]
        },
        {
          "line": 2,
          "match": "#define DECODER_H",
          "context": [
            {
              "line": 1,
              "text": "#ifndef DECODER_H"
            },
            {
              "line": 2,
              "text": "#define DECODER_H"
            },
            {
              "line": 3,
              "text": ""
            },
            {
              "line": 4,
              "text": "/**"
            },
            {
              "line": 5,
              "text": " * (C) 2019 Jordan Sherer <kn4crd@gmail.com> - All Rights Reserved"
            }
          ]
        },
        {
          "line": 37,
          "match": "class Decoder : public QObject {",
          "context": [
            {
              "line": 34,
              "text": "    QScopedPointer<QProcess> m_proc;"
            },
            {
              "line": 35,
              "text": "};"
            },
            {
              "line": 36,
              "text": ""
            },
            {
              "line": 37,
              "text": "class Decoder : public QObject {"
            },
            {
              "line": 38,
              "text": "    Q_OBJECT"
            },
            {
              "line": 39,
              "text": "  public:"
            },
            {
              "line": 40,
              "text": "    Decoder(QObject *parent = nullptr);"
            }
          ]
        },
        {
          "line": 40,
          "match": "Decoder(QObject *parent = nullptr);",
          "context": [
            {
              "line": 37,
              "text": "class Decoder : public QObject {"
            },
            {
              "line": 38,
              "text": "    Q_OBJECT"
            },
            {
              "line": 39,
              "text": "  public:"
            },
            {
              "line": 40,
              "text": "    Decoder(QObject *parent = nullptr);"
            },
            {
              "line": 41,
              "text": "    ~Decoder();"
            },
            {
              "line": 42,
              "text": ""
            },
            {
              "line": 43,
              "text": "    void lock();"
            }
          ]
        },
        {
          "line": 41,
          "match": "~Decoder();",
          "context": [
            {
              "line": 38,
              "text": "    Q_OBJECT"
            },
            {
              "line": 39,
              "text": "  public:"
            },
            {
              "line": 40,
              "text": "    Decoder(QObject *parent = nullptr);"
            },
            {
              "line": 41,
              "text": "    ~Decoder();"
            },
            {
              "line": 42,
              "text": ""
            },
            {
              "line": 43,
              "text": "    void lock();"
            },
            {
              "line": 44,
              "text": "    void unlock();"
            }
          ]
        },
        {
          "line": 88,
          "match": "Q_DECLARE_LOGGING_CATEGORY(decoder_js8)",
          "context": [
            {
              "line": 85,
              "text": "    QThread m_thread;"
            },
            {
              "line": 86,
              "text": "};"
            },
            {
              "line": 87,
              "text": ""
            },
            {
              "line": 88,
              "text": "Q_DECLARE_LOGGING_CATEGORY(decoder_js8)"
            },
            {
              "line": 89,
              "text": ""
            },
            {
              "line": 90,
              "text": "#endif // DECODER_H"
            }
          ]
        },
        {
          "line": 90,
          "match": "#endif // DECODER_H",
          "context": [
            {
              "line": 87,
              "text": ""
            },
            {
              "line": 88,
              "text": "Q_DECLARE_LOGGING_CATEGORY(decoder_js8)"
            },
            {
              "line": 89,
              "text": ""
            },
            {
              "line": 90,
              "text": "#endif // DECODER_H"
            }
          ]
        }
      ]
    }
  ],
  "additional_candidates": [],
  "phase_top_files": {
    "symbol_to_bits": [
      {
        "path": "JS8_JSC/JSC_list.cpp",
        "phase_score": 837,
        "score": 1105
      },
      {
        "path": "JS8_JSC/JSC_map.cpp",
        "phase_score": 837,
        "score": 1104
      },
      {
        "path": "JS8_Main/Varicode.cpp",
        "phase_score": 231,
        "score": 1011
      },
      {
        "path": "JS8_Mode/JS8.cpp",
        "phase_score": 224,
        "score": 387
      },
      {
        "path": "JS8_Mode/whitening_processor.h",
        "phase_score": 73,
        "score": 153
      },
      {
        "path": "JS8_Mode/soft_combiner.h",
        "phase_score": 61,
        "score": 125
      },
      {
        "path": "JS8_Mode/JS8Submode.cpp",
        "phase_score": 41,
        "score": 157
      },
      {
        "path": "JS8_Main/Varicode.h",
        "phase_score": 32,
        "score": 154
      },
      {
        "path": "JS8_Mode/ldpc_feedback.h",
        "phase_score": 31,
        "score": 109
      },
      {
        "path": "JS8_Mode/DecodedText.cpp",
        "phase_score": 23,
        "score": 176
      }
    ],
    "bit_order_interleaver": [
      {
        "path": "JS8_JSC/JSC_list.cpp",
        "phase_score": 10,
        "score": 1105
      },
      {
        "path": "JS8_JSC/JSC_map.cpp",
        "phase_score": 10,
        "score": 1104
      },
      {
        "path": "JS8_Mode/JS8.cpp",
        "phase_score": 6,
        "score": 387
      },
      {
        "path": "JS8_Mode/soft_combiner.h",
        "phase_score": 2,
        "score": 125
      }
    ],
    "whitening_mask": [
      {
        "path": "JS8_JSC/JSC_list.cpp",
        "phase_score": 76,
        "score": 1105
      },
      {
        "path": "JS8_JSC/JSC_map.cpp",
        "phase_score": 76,
        "score": 1104
      },
      {
        "path": "JS8_Mode/whitening_processor.h",
        "phase_score": 24,
        "score": 153
      },
      {
        "path": "JS8_Mode/JS8.cpp",
        "phase_score": 21,
        "score": 387
      },
      {
        "path": "JS8_Main/Varicode.cpp",
        "phase_score": 11,
        "score": 1011
      }
    ],
    "ldpc_fec": [
      {
        "path": "JS8_Mode/JS8.cpp",
        "phase_score": 30,
        "score": 387
      },
      {
        "path": "JS8_Mode/ldpc_feedback.h",
        "phase_score": 13,
        "score": 109
      },
      {
        "path": "JS8_JSC/JSC_list.cpp",
        "phase_score": 5,
        "score": 1105
      },
      {
        "path": "JS8_JSC/JSC_map.cpp",
        "phase_score": 5,
        "score": 1104
      }
    ],
    "message91_crc": [
      {
        "path": "JS8_Main/Varicode.cpp",
        "phase_score": 641,
        "score": 1011
      },
      {
        "path": "JS8_JSC/JSC_list.cpp",
        "phase_score": 121,
        "score": 1105
      },
      {
        "path": "JS8_JSC/JSC_map.cpp",
        "phase_score": 120,
        "score": 1104
      },
      {
        "path": "JS8_Mode/DecodedText.cpp",
        "phase_score": 76,
        "score": 176
      },
      {
        "path": "JS8_Main/Varicode.h",
        "phase_score": 66,
        "score": 154
      },
      {
        "path": "JS8_Mode/JS8.cpp",
        "phase_score": 24,
        "score": 387
      },
      {
        "path": "JS8_Mode/DecodedText.h",
        "phase_score": 24,
        "score": 86
      },
      {
        "path": "JS8_Mode/JS8Submode.cpp",
        "phase_score": 7,
        "score": 157
      }
    ],
    "timing_constants": [
      {
        "path": "JS8_Mode/JS8Submode.cpp",
        "phase_score": 26,
        "score": 157
      },
      {
        "path": "JS8_Mode/JS8.cpp",
        "phase_score": 5,
        "score": 387
      },
      {
        "path": "JS8_Include/commons.h",
        "phase_score": 3,
        "score": 66
      },
      {
        "path": "JS8_Mode/JS8Submode.h",
        "phase_score": 3,
        "score": 40
      }
    ]
  },
  "lab_alignment_questions": [
    {
      "lab_observation": "Step51 source-aligned NSPS=6192 still reaches best syndrome 22 and prefers tone-spacing offset -0.03.",
      "source_question": "Find whether JS8Call-Improved applies submode-specific symbol timing/tone correction after JS8_NSPS or before FEC extraction.",
      "look_in": [
        "JS8_Mode/JS8Submode.cpp",
        "JS8_Mode/JS8.cpp",
        "JS8_Mode/Decoder.cpp"
      ]
    },
    {
      "lab_observation": "Best row currently depends on lab FT8-style Gray demap and bit-order hypotheses.",
      "source_question": "Find exact symbol-to-bit and interleaver/deinterleaver path before LDPC to replace the lab hypothesis.",
      "look_in": [
        "JS8_Mode/Decoder.cpp",
        "JS8_Mode/ldpc_feedback.h",
        "JS8_Mode/soft_combiner.h"
      ]
    },
    {
      "lab_observation": "Syndrome-closure/CRC probes do not validate Message91 candidates.",
      "source_question": "Find whitening/scrambling/mask and Varicode/JSC unpack order before adding more repair probes.",
      "look_in": [
        "JS8_Mode/whitening_processor.h",
        "JS8_Main/Varicode.cpp",
        "JS8_JSC/JSC_map.cpp"
      ]
    }
  ],
  "audit_conclusion": {
    "no_gui_runtime_started": true,
    "recommended_next_step": "Use top focused snippets to implement a source-derived bitpath/interleaver/whitening patch before another LDPC/CRC repair run.",
    "why": "Step51 confirmed source NSPS but did not improve below syndrome 22; remaining uncertainty is exact source bitpath rather than wider timing."
  }
}

[webftr-js8-lab] OK
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260527T120240Z_source-bitpath-audit.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260527T120240Z_source-bitpath-audit_manifest.json

Auto-Refresh alle 5 Sekunden mit frischem ?t=.... RX-only: kein TX, kein PTT, kein Tune, kein Send.