diagnostics_failed/decoders/js8_decoder/decoders/js8_test.wav?t=1779793864988o JS8 text decode is expected in Step 31. Final real LDPC/FEC and Varicode/message unpack are still not implemented.",
"hard_bits_msb_candidate is a lab preview only; real JS8 requires deinterleaving, whitening and LDPC/FEC.",
"Step 31 JS8 Costas guard uses leading-only Costas exclusion by default to preserve 58 data symbols / 174 soft bits on JS8Lab windows; full FT8 middle/trailing exclusion remains diagnostic-only.",
"Step 31 prepares LDPC/FEC input candidates and an LDPC probe harness only; it does not yet run final real JS8 LDPC decode or unpack text.",
"Step 31 does not decode JS8 text yet. It probes bit-order/interleaver/whitening candidates for future real LDPC/FEC integration.",
"lab_mask_xor_preview is only a repeatable diagnostic mask, not a confirmed JS8 whitening implementation.",
"Step 31 LDPC probe harness is wired, but no real JS8/FT8 H matrix is supplied yet; prototype parity rows are diagnostic only.",
"No JS8 message text is decoded in Step 31. Next step must connect/extract the real LDPC matrix/decoder and then the JS8 message unpacker."
],
"next_action": "Next step should connect a confirmed JS8/FT8 LDPC matrix/decoder and then message unpacking after the timing profile is stable."
}
[webftr-js8-lab] OK
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T110107Z_auto-ldpc-probe.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T110107Z_auto-ldpc-probe_manifest.json
[webftr-js8-lab] auto-ldpc-probe exit_code=0
========== REAL-RUN STEP 6/9: CANDIDATE EXPORT ==========
[webftr-js8-lab] command=candidate-export
[webftr-js8-lab] root=/decoders/js8_decoder
[webftr-js8-lab] log=/decoders/js8_decoder/logs/20260526T110348Z_candidate-export.log
[webftr-js8-lab] manifest=/decoders/js8_decoder/logs/20260526T110348Z_candidate-export_manifest.json
[webftr-js8-lab] utc=20260526T110348Z
[webftr-js8-lab] rx-only guard: no TX / no PTT / no Tune / no Send
[webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260526T110348Z_candidate_export_output.json
[webftr-js8-lab] JSON timeout guard: 180s
{
"ok": false,
"error": "json_command_timeout_guard",
"timeout_seconds": 180,
"exit_code": 143,
"command": [
"python3",
"-m",
"webftr_js8_lab.js8_candidate_export",
"--input",
"/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
"--pretty",
"--max-seconds",
"54",
"--max-symbols",
"96",
"--max-starts",
"12",
"--max-base-candidates",
"12",
"--output-dir",
"/decoders/js8_decoder/runtime/fec_candidates",
"--prefer-js8"
],
"stderr_log": "/decoders/js8_decoder/logs/20260526T110348Z_candidate_export_output.stderr.log",
"stderr_tail": "",
"rx_only": true,
"safety": {
"tx": false,
"ptt": false,
"tune": false,
"send": false,
"js8call_runtime_control": false
},
"next_action": "Step 31 timeout guard stopped this expensive probe. The real-run now continues with quick-window fallback when available; otherwise inspect stderr/log bundle."
}
[webftr-js8-lab] FAILED exit_code=143
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T110348Z_candidate-export.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T110348Z_candidate-export_manifest.json
[webftr-js8-lab] candidate-export exit_code=143
[webftr-js8-lab] Step 31 LDPC probes reuse candidate JSON: /decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.json
========== REAL-RUN STEP 7/9: LDPC MATRIX PROBE ==========
[webftr-js8-lab] command=ldpc-matrix-probe
[webftr-js8-lab] root=/decoders/js8_decoder
[webftr-js8-lab] log=/decoders/js8_decoder/logs/20260526T110649Z_ldpc-matrix-probe.log
[webftr-js8-lab] manifest=/decoders/js8_decoder/logs/20260526T110649Z_ldpc-matrix-probe_manifest.json
[webftr-js8-lab] utc=20260526T110649Z
[webftr-js8-lab] rx-only guard: no TX / no PTT / no Tune / no Send
[webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260526T110649Z_ldpc_matrix_probe_output.json
[webftr-js8-lab] JSON timeout guard: 180s
{
"ok": false,
"mode": "JS8",
"tool": "webftr-js8-real-ldpc-matrix-syndrome-probe",
"tool_version": "step31-profile-anchor-candidate-export-guard",
"input_wav": null,
"candidate_json": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.json",
"rx_only": true,
"safety": {
"tx": false,
"ptt": false,
"tune": false,
"send": false,
"js8call_runtime_control": false
},
"implementation_stage": "step19_real_ldpc_generator_matrix_syndrome_probe_no_message_unpack",
"matrix": {
"code": "(174,91) LDPC generator matrix",
"generator_rows": 83,
"generator_cols": 91,
"message_bits": 91,
"parity_bits": 83,
"source_file": "ldpc_174_91_c_generator.f90"
},
"candidate_context": {
"nsps_used": 6192,
"nsps_is_js8_realistic": true,
"selected_profile": {
"profile": "js8_normal_6192",
"nsps": 6192,
"symbol_duration_seconds": 0.516,
"tone_spacing_hz": 1.937984,
"note": "0.516 s symbols, 1.938 Hz spacing candidate used in earlier lab steps",
"ok": true,
"sync": {
"start_seconds": 6.321,
"base_freq_hz": 1022.5,
"candidate_score": 47.09,
"costas_hits": 3,
"avg_margin_db": 4.35,
"candidate_count": 12
},
"frame": {
"symbols_available_after_start": 92,
"data_symbol_count_estimate": 58,
"expected_data_symbols_candidate": 58
},
"fec": {
"soft_bit_count_estimate": 174,
"missing_soft_bits_estimate": 0,
"complete_ldpc_input_candidate_estimate": true
},
"rank_score": 225.4245
},
"selected_variant": {
"name": "raw_msb_symbol_order",
"rank_score": 107.526825,
"complete_174bit_candidate": false,
"hard_bits_sha256_16": "dd03da574e1e26df",
"hard_weight_174": 42,
"llr_stats": {
"count": 138,
"avg_abs": 2.55412,
"min_abs": 0.039505,
"max_abs": 4.319098,
"positive": 96,
"negative": 42,
"zero": 0
}
}
},
"variant_probe_count": 0,
"best_matrix_probe": null,
"all_matrix_probes": [],
"decodes": [],
"outputs": {
"ldpc_matrix_probe_json": "/decoders/js8_decoder/runtime/ldpc_matrix_probe/step19_ldpc_matrix_probe.json"
},
"warnings": [
"Step 31 uses the real public FT8/JS8-style (174,91) generator matrix for a hard-decision syndrome probe.",
"This is not yet a complete soft LDPC belief-propagation decoder and does not unpack JS8 messages.",
"If best_matrix_probe reaches syndrome_weight 0, the next step can feed message91 into CRC/message unpack. Otherwise Step 31 should add real soft LDPC iterations."
],
"next_action": "Upload logs. Next step: soft LDPC belief-propagation/min-sum decoder using this matrix contract, then JS8 message unpacking."
}
[webftr-js8-lab] FAILED exit_code=1
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T110649Z_ldpc-matrix-probe.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T110649Z_ldpc-matrix-probe_manifest.json
[webftr-js8-lab] ldpc-matrix-probe exit_code=1
========== REAL-RUN STEP 8/9: LDPC SOFT DECODE ==========
[webftr-js8-lab] command=ldpc-soft-decode
[webftr-js8-lab] root=/decoders/js8_decoder
[webftr-js8-lab] log=/decoders/js8_decoder/logs/20260526T110651Z_ldpc-soft-decode.log
[webftr-js8-lab] manifest=/decoders/js8_decoder/logs/20260526T110651Z_ldpc-soft-decode_manifest.json
[webftr-js8-lab] utc=20260526T110651Z
[webftr-js8-lab] rx-only guard: no TX / no PTT / no Tune / no Send
[webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260526T110651Z_ldpc_soft_decode_output.json
[webftr-js8-lab] JSON timeout guard: 120s
{
"ok": false,
"mode": "JS8",
"tool": "webftr-js8-soft-ldpc-minsum-probe",
"tool_version": "step31-profile-anchor-candidate-export-guard",
"input_wav": null,
"candidate_json": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.json",
"rx_only": true,
"safety": {
"tx": false,
"ptt": false,
"tune": false,
"send": false,
"js8call_runtime_control": false
},
"implementation_stage": "step31_soft_ldpc_minsum_probe_no_message_unpack",
"matrix": {
"code": "(174,91)",
"message_bits": 91,
"parity_bits": 83,
"codeword_bits": 174,
"check_count": 83
},
"decoder": {
"algorithm": "normalized_min_sum",
"max_iterations": 40,
"alpha": 0.8,
"llr_convention": "positive=bit0_more_likely, negative=bit1_more_likely"
},
"candidate_context": {
"nsps_used": 6192,
"nsps_is_js8_realistic": true,
"selected_profile": {
"profile": "js8_normal_6192",
"nsps": 6192,
"symbol_duration_seconds": 0.516,
"tone_spacing_hz": 1.937984,
"note": "0.516 s symbols, 1.938 Hz spacing candidate used in earlier lab steps",
"ok": true,
"sync": {
"start_seconds": 6.321,
"base_freq_hz": 1022.5,
"candidate_score": 47.09,
"costas_hits": 3,
"avg_margin_db": 4.35,
"candidate_count": 12
},
"frame": {
"symbols_available_after_start": 92,
"data_symbol_count_estimate": 58,
"expected_data_symbols_candidate": 58
},
"fec": {
"soft_bit_count_estimate": 174,
"missing_soft_bits_estimate": 0,
"complete_ldpc_input_candidate_estimate": true
},
"rank_score": 225.4245
},
"selected_variant": {
"name": "raw_msb_symbol_order",
"rank_score": 107.526825,
"complete_174bit_candidate": false,
"hard_bits_sha256_16": "dd03da574e1e26df",
"hard_weight_174": 42,
"llr_stats": {
"count": 138,
"avg_abs": 2.55412,
"min_abs": 0.039505,
"max_abs": 4.319098,
"positive": 96,
"negative": 42,
"zero": 0
}
}
},
"probe_count": 0,
"best_soft_decode": null,
"soft_decode_results": [],
"decodes": [],
"outputs": {
"ldpc_soft_decode_json": "/decoders/js8_decoder/runtime/ldpc_soft_decode/step31_ldpc_soft_decode.json"
},
"warnings": [
"Step 31 runs a real normalized-min-sum soft LDPC probe against the public (174,91) matrix contract.",
"This still does not unpack JS8 text or validate CRC/message payloads.",
"If success is true and syndrome_weight is 0, the next step can unpack the 91-bit message. Otherwise more deinterleaver/order/LLR tuning is required."
],
"next_action": "Upload logs. Next step: if no valid codeword, improve interleaver/order/LLR mapping; if valid, add JS8 message unpack/CRC."
}
[webftr-js8-lab] FAILED exit_code=1
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T110651Z_ldpc-soft-decode.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T110651Z_ldpc-soft-decode_manifest.json
[webftr-js8-lab] ldpc-soft-decode exit_code=1
========== REAL-RUN STEP 9/9: JS8LAB LOG BUNDLE ==========
[webftr-js8-lab] collecting JS8Lab logs from /decoders/js8_decoder/logs
[webftr-js8-lab] upload this JS8Lab bundle: /decoders/js8_decoder/logs/js8_decoder_lab_real_run_20260526T105457Z.zip
[webftr-js8-lab] real-run completed with errors, but JS8Lab log bundle was created.
[webftr-js8-lab] upload bundle: /decoders/js8_decoder/logs/js8_decoder_lab_real_run_20260526T105457Z.zip
[webftr-js8-lab] FAILED exit_code=143
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T105457Z_real-run.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T105457Z_real-run_manifest.json
[webftr-js8-lab] server-deep-run completed with errors, but logs/browser report were written.
[webftr-js8-lab] FAILED exit_code=143
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T105457Z_server-deep-run.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T105457Z_server-deep-run_manifest.json
Auto-Refresh alle 5 Sekunden mit frischem ?t=.... RX-only: kein TX, kein PTT, kein Tune, kein Send.