[webftr-js8-lab] command=source-confirmed-message174-decode [webftr-js8-lab] root=/decoders/js8_decoder [webftr-js8-lab] log=/decoders/js8_decoder/logs/20260527T162222Z_source-confirmed-message174-decode.log [webftr-js8-lab] manifest=/decoders/js8_decoder/logs/20260527T162222Z_source-confirmed-message174-decode_manifest.json [webftr-js8-lab] utc=20260527T162222Z [webftr-js8-lab] rx-only guard: no TX / no PTT / no Tune / no Send [webftr-js8-lab] Step64 source-confirmed message174 text unpack + WebFTR-style decodes[] output [webftr-js8-lab] input Step63 JSON argument: /decoders/js8_test.wav [webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260527T162222Z_source_confirmed_message174_decode_output.json [webftr-js8-lab] JSON timeout guard: 180s { "ok": true, "tool": "webftr-js8-source-confirmed-message174-decode", "tool_version": "step64-source-confirmed-message174-decodes-output", "rx_only_guard": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false }, "no_gui_runtime_started": true, "log_dir": "/decoders/js8_decoder/logs", "source_contract": { "source": "JS8Call-Improved JS8_Mode/JS8.cpp extractmessage174/checkCRC12", "alphabet": "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+", "crc_width": 12, "crc_poly_hex": "0xc06", "crc_xor_decimal": 42, "message_bits": "first 72 data bits as 12 x 6-bit words", "crc_gate": "Only zero-distance CRC12 candidates are emitted as decodes[]." }, "step63_source_reports": [ { "path": "/decoders/js8_test.wav", "exists": true, "error": "json_load_failed: Expecting value: line 1 column 1 (char 0)" }, { "path": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json", "exists": true, "zero_distance_candidates_extracted": 33, "tool_version": "step63-source-exact-interleaver-whitening-index-extract" } ], "runtime_fallback_reports": [], "candidate_source": "step63_source_exact_map_probe", "zero_distance_candidate_count": 2, "decode_count": 2, "top_candidates": [ { "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json", "json_path": "$.best_candidate.candidate_bits", "source_kind": "generic_bit_list", "row_index": 237, "map_name": "raw", "map_source": null, "distance": 0, "crc_match": true, "received_crc12": 2920, "computed_crc12": 2920, "message_words_6bit": [ 0, 0, 1, 33, 52, 24, 10, 2, 44, 13, 35, 0 ], "message_text_12chars": "001XqOA2iDZ0", "info87_bitstring": "000000000000000001100001110100011000001010000010101100001101100011000000000101101101000" }, { "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json", "json_path": "$.top_llr_row_exports[6].hard_bits", "source_kind": "generic_bit_list", "row_index": 82, "map_name": "raw", "map_source": null, "distance": 0, "crc_match": true, "received_crc12": 980, "computed_crc12": 980, "message_words_6bit": [ 26, 0, 31, 54, 20, 32, 52, 41, 19, 9, 6, 59 ], "message_text_12chars": "Q0VsKWqfJ96x", "info87_bitstring": "011010000000011111110110010100100000110100101001010011001001000110111011101001111010100" } ], "decodes": [ { "id": "js8-msg174-2b7db8e6", "mode": "JS8", "decoder": "webftr-js8lab-step64-message174-source-confirmed", "text": "001XqOA2iDZ0", "raw": "001XqOA2iDZ0", "message_text_12chars": "001XqOA2iDZ0", "valid_message174_crc12": true, "crc12_distance": 0, "received_crc12": 2920, "computed_crc12": 2920, "message_words_6bit": [ 0, 0, 1, 33, 52, 24, 10, 2, 44, 13, 35, 0 ], "alphabet": "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+", "parsed": { "raw": "001XqOA2iDZ0", "normalized": "001XQOA2IDZ0", "message_type": "MESSAGE", "directed_to": null, "callsigns": [], "primary_callsign": null, "locators": [], "primary_locator": null, "body": "001XQOA2IDZ0" }, "source": { "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json", "json_path": "$.best_candidate.candidate_bits", "source_kind": "generic_bit_list", "row_index": 237, "map_name": "raw", "map_source": null }, "confidence": "crc12_zero_distance_source_extractmessage174", "rx_only": true, "sort_index": 0 }, { "id": "js8-msg174-369b0507", "mode": "JS8", "decoder": "webftr-js8lab-step64-message174-source-confirmed", "text": "Q0VsKWqfJ96x", "raw": "Q0VsKWqfJ96x", "message_text_12chars": "Q0VsKWqfJ96x", "valid_message174_crc12": true, "crc12_distance": 0, "received_crc12": 980, "computed_crc12": 980, "message_words_6bit": [ 26, 0, 31, 54, 20, 32, 52, 41, 19, 9, 6, 59 ], "alphabet": "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+", "parsed": { "raw": "Q0VsKWqfJ96x", "normalized": "Q0VSKWQFJ96X", "message_type": "MESSAGE", "directed_to": null, "callsigns": [], "primary_callsign": null, "locators": [], "primary_locator": null, "body": "Q0VSKWQFJ96X" }, "source": { "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json", "json_path": "$.top_llr_row_exports[6].hard_bits", "source_kind": "generic_bit_list", "row_index": 82, "map_name": "raw", "map_source": null }, "confidence": "crc12_zero_distance_source_extractmessage174", "rx_only": true, "sort_index": 1 } ], "warnings": [ "Step64 emits source-confirmed message174 CRC12-zero-distance text candidates; it is not yet a full live JS8 decoder chain from audio to final chat UI.", "It starts no JS8Call GUI/Qt process and performs no TX/PTT/Tune/Send actions.", "Random-looking 12-character payloads can still be valid message174 candidates until higher JS8 text/Varicode framing is connected." ], "next_action": "Use Step64 decodes[] as the contract for the next step: connect source-confirmed message174 output into a richer JS8 text/Varicode/framing interpretation and then feed WebFTR RX display fields." } [webftr-js8-lab] OK [webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260527T162222Z_source-confirmed-message174-decode.log [webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260527T162222Z_source-confirmed-message174-decode_manifest.json