[js8.sh job] utc=2026-05-27T19:05:33Z [js8.sh job] build=step73-varicode-compressed-bitslice-jsc-bridge-probe [js8.sh job] root=/decoders/js8_decoder [js8.sh job] command=./run_js8_decoder_lab.sh varicode-compressed-bitslice-jsc-bridge-probe [js8.sh job] rx-only: no TX / no PTT / no Tune / no Send [webftr-js8-lab] command=varicode-compressed-bitslice-jsc-bridge-probe [webftr-js8-lab] root=/decoders/js8_decoder [webftr-js8-lab] log=/decoders/js8_decoder/logs/20260527T190533Z_varicode-compressed-bitslice-jsc-bridge-probe.log [webftr-js8-lab] manifest=/decoders/js8_decoder/logs/20260527T190533Z_varicode-compressed-bitslice-jsc-bridge-probe_manifest.json [webftr-js8-lab] utc=20260527T190533Z [webftr-js8-lab] rx-only guard: no TX / no PTT / no Tune / no Send [webftr-js8-lab] Step73 Varicode compressed bit-slice bridge into guarded JSC::decompress port [webftr-js8-lab] input JSON or source-dir argument: auto-detect latest logs/source [webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260527T190533Z_varicode_compressed_bitslice_jsc_bridge_output.json [webftr-js8-lab] JSON timeout guard: 180s { "ok": true, "tool": "webftr-js8-varicode-compressed-bitslice-jsc-bridge-probe", "tool_version": "step73-varicode-compressed-bitslice-jsc-bridge-probe", "schema": "webftr-js8-varicode-compressed-bitslice-jsc-bridge-probe-v1", "rx_only_guard": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false, "webftr_productive_integration": false }, "no_gui_runtime_started": true, "root": "/decoders/js8_decoder", "log_dir": "/decoders/js8_decoder/logs", "source_resolution": { "source_dir": "/decoders/js8_decoder/runtime/src/JS8Call-improved", "source_found": true, "checked": [ { "path": "/decoders/js8_decoder/runtime/src/JS8Call-improved", "exists": true, "is_dir": true } ] }, "jsc_map_summary": { "ok": true, "source_file": "JS8_JSC/JSC_map.cpp", "entry_count": 200000, "declared_size": 262144, "declared_size_matches": false, "map_fingerprint_sha256": "edbc4c529a809c0e900f2ad443aefe6cca271f1f6df52f6e651b4997b3d4d949", "sample_entries": [ "E", "T", "A", "O", "I", "N", "S", "H", "R", "D", "L", "C", "U", "M", "W", "F", "G", "Y", "P", "B" ], "attempts": [ { "path": "JS8_JSC/JSC_map.cpp", "bytes": 7082880, "sha256": "ab2bd62ef594f4629a2c93b6de43f5469b1fd6fe67ebf4d24f915bd11ccef813", "declared_size": 262144, "parsed_entry_count": 200000, "sample": [ "E", "T", "A", "O", "I", "N", "S", "H", "R", "D", "L", "C" ] } ] }, "input_reports": [ { "path": "/decoders/js8_decoder/logs/20260527T183918Z_data_frame_text_unpack_probe_output.json", "exists": true, "selected_latest": true, "input_kind": "step70_data_frame_probe" }, { "path": "/decoders/js8_decoder/logs/20260527T180708Z_source_varicode_frame_unpack_probe_output.json", "exists": true, "selected_latest": true, "input_kind": "step66_frame_unpack" }, { "path": "/decoders/js8_decoder/logs/20260527T180708Z_source_confirmed_control_frame_rx_release_output.json", "exists": true, "selected_latest": true, "input_kind": "step67_control_release" }, { "path": "/decoders/js8_decoder/logs/20260527T180708Z_source_confirmed_message174_decode_output.json", "exists": true, "selected_latest": true, "input_kind": "step64_message174" } ], "source_bridge_contract": { "message174_to_bits72": "unpack72bits(message174_text) -> 64-bit value + 8-bit remainder", "compressed_frame_requirement": "bits72[0]=1 and bits72[1]=1", "jsc_payload_bitvec": "bits72[2:last_zero] where last_zero is the final zero delimiter", "decompress_target": "Step72 jsc_decompress_bits/JSC::decompress port", "chat_release": "disabled in Step73; diagnostics and fixture validation only" }, "current_fixture_has_compressed_data_frames": false, "compressed_candidate_count": 0, "compressed_candidate_rows": [], "synthetic_compressed_selftest_fixtures": [ { "fixture_kind": "synthetic_single_frame_FrameDataCompressed_JSC_word", "fixture_word": "CQ", "map_index": 121, "separate": false, "payload_bitvec": "0111111000100", "message174_text_12chars": "tuZ+++++++++", "frame_probe_type": "FrameDataCompressed", "decoded_text": "CQ", "expected_text": "CQ", "passes": true, "bridge": { "message_text_12chars": "tuZ+++++++++", "ok": true, "is_data": true, "compressed": true, "release_allowed": false, "release_guard": "step73_diagnostics_only_no_chat_release", "bits72_preview": "110111111000100011111111111111111111111111111111111111111111111111111111", "top2_bits": "11", "last_zero_index": 15, "payload_bit_count": 13, "payload_bitvec": "0111111000100", "payload_preview_bits": "0111111000100", "source_bridge_contract": "unpack72bits -> bits72; require bit0=data and bit1=compressed; pass bits[2:last_zero] to JSC::decompress", "bridge_status": "compressed_payload_bitvec_ready" } }, { "fixture_kind": "synthetic_single_frame_FrameDataCompressed_JSC_word", "fixture_word": "CQ", "map_index": 121, "separate": true, "payload_bitvec": "0111111000101", "message174_text_12chars": "tuh+++++++++", "frame_probe_type": "FrameDataCompressed", "decoded_text": "CQ ", "expected_text": "CQ ", "passes": true, "bridge": { "message_text_12chars": "tuh+++++++++", "ok": true, "is_data": true, "compressed": true, "release_allowed": false, "release_guard": "step73_diagnostics_only_no_chat_release", "bits72_preview": "110111111000101011111111111111111111111111111111111111111111111111111111", "top2_bits": "11", "last_zero_index": 15, "payload_bit_count": 13, "payload_bitvec": "0111111000101", "payload_preview_bits": "0111111000101", "source_bridge_contract": "unpack72bits -> bits72; require bit0=data and bit1=compressed; pass bits[2:last_zero] to JSC::decompress", "bridge_status": "compressed_payload_bitvec_ready" } }, { "fixture_kind": "synthetic_single_frame_FrameDataCompressed_JSC_word", "fixture_word": "TEST", "map_index": 240, "separate": false, "payload_bitvec": "1001110100100", "message174_text_12chars": "vqZ+++++++++", "frame_probe_type": "FrameDataCompressed", "decoded_text": "TEST", "expected_text": "TEST", "passes": true, "bridge": { "message_text_12chars": "vqZ+++++++++", "ok": true, "is_data": true, "compressed": true, "release_allowed": false, "release_guard": "step73_diagnostics_only_no_chat_release", "bits72_preview": "111001110100100011111111111111111111111111111111111111111111111111111111", "top2_bits": "11", "last_zero_index": 15, "payload_bit_count": 13, "payload_bitvec": "1001110100100", "payload_preview_bits": "1001110100100", "source_bridge_contract": "unpack72bits -> bits72; require bit0=data and bit1=compressed; pass bits[2:last_zero] to JSC::decompress", "bridge_status": "compressed_payload_bitvec_ready" } }, { "fixture_kind": "synthetic_single_frame_FrameDataCompressed_JSC_word", "fixture_word": "TEST", "map_index": 240, "separate": true, "payload_bitvec": "1001110100101", "message174_text_12chars": "vqh+++++++++", "frame_probe_type": "FrameDataCompressed", "decoded_text": "TEST ", "expected_text": "TEST ", "passes": true, "bridge": { "message_text_12chars": "vqh+++++++++", "ok": true, "is_data": true, "compressed": true, "release_allowed": false, "release_guard": "step73_diagnostics_only_no_chat_release", "bits72_preview": "111001110100101011111111111111111111111111111111111111111111111111111111", "top2_bits": "11", "last_zero_index": 15, "payload_bit_count": 13, "payload_bitvec": "1001110100101", "payload_preview_bits": "1001110100101", "source_bridge_contract": "unpack72bits -> bits72; require bit0=data and bit1=compressed; pass bits[2:last_zero] to JSC::decompress", "bridge_status": "compressed_payload_bitvec_ready" } }, { "fixture_kind": "synthetic_single_frame_FrameDataCompressed_JSC_word", "fixture_word": "HELLO", "map_index": 6571, "separate": false, "payload_bitvec": "011110001011100001010", "message174_text_12chars": "tYuK++++++++", "frame_probe_type": "FrameDataCompressed", "decoded_text": "HELLO", "expected_text": "HELLO", "passes": true, "bridge": { "message_text_12chars": "tYuK++++++++", "ok": true, "is_data": true, "compressed": true, "release_allowed": false, "release_guard": "step73_diagnostics_only_no_chat_release", "bits72_preview": "110111100010111000010100111111111111111111111111111111111111111111111111", "top2_bits": "11", "last_zero_index": 23, "payload_bit_count": 21, "payload_bitvec": "011110001011100001010", "payload_preview_bits": "011110001011100001010", "source_bridge_contract": "unpack72bits -> bits72; require bit0=data and bit1=compressed; pass bits[2:last_zero] to JSC::decompress", "bridge_status": "compressed_payload_bitvec_ready" } }, { "fixture_kind": "synthetic_single_frame_FrameDataCompressed_JSC_word", "fixture_word": "HELLO", "map_index": 6571, "separate": true, "payload_bitvec": "011110001011100001011", "message174_text_12chars": "tYuM++++++++", "frame_probe_type": "FrameDataCompressed", "decoded_text": "HELLO ", "expected_text": "HELLO ", "passes": true, "bridge": { "message_text_12chars": "tYuM++++++++", "ok": true, "is_data": true, "compressed": true, "release_allowed": false, "release_guard": "step73_diagnostics_only_no_chat_release", "bits72_preview": "110111100010111000010110111111111111111111111111111111111111111111111111", "top2_bits": "11", "last_zero_index": 23, "payload_bit_count": 21, "payload_bitvec": "011110001011100001011", "payload_preview_bits": "011110001011100001011", "source_bridge_contract": "unpack72bits -> bits72; require bit0=data and bit1=compressed; pass bits[2:last_zero] to JSC::decompress", "bridge_status": "compressed_payload_bitvec_ready" } }, { "fixture_kind": "synthetic_single_frame_FrameDataCompressed_JSC_word", "fixture_word": "DE", "map_index": 125, "separate": false, "payload_bitvec": "0111111001100", "message174_text_12chars": "tvZ+++++++++", "frame_probe_type": "FrameDataCompressed", "decoded_text": "DE", "expected_text": "DE", "passes": true, "bridge": { "message_text_12chars": "tvZ+++++++++", "ok": true, "is_data": true, "compressed": true, "release_allowed": false, "release_guard": "step73_diagnostics_only_no_chat_release", "bits72_preview": "110111111001100011111111111111111111111111111111111111111111111111111111", "top2_bits": "11", "last_zero_index": 15, "payload_bit_count": 13, "payload_bitvec": "0111111001100", "payload_preview_bits": "0111111001100", "source_bridge_contract": "unpack72bits -> bits72; require bit0=data and bit1=compressed; pass bits[2:last_zero] to JSC::decompress", "bridge_status": "compressed_payload_bitvec_ready" } }, { "fixture_kind": "synthetic_single_frame_FrameDataCompressed_JSC_word", "fixture_word": "DE", "map_index": 125, "separate": true, "payload_bitvec": "0111111001101", "message174_text_12chars": "tvh+++++++++", "frame_probe_type": "FrameDataCompressed", "decoded_text": "DE ", "expected_text": "DE ", "passes": true, "bridge": { "message_text_12chars": "tvh+++++++++", "ok": true, "is_data": true, "compressed": true, "release_allowed": false, "release_guard": "step73_diagnostics_only_no_chat_release", "bits72_preview": "110111111001101011111111111111111111111111111111111111111111111111111111", "top2_bits": "11", "last_zero_index": 15, "payload_bit_count": 13, "payload_bitvec": "0111111001101", "payload_preview_bits": "0111111001101", "source_bridge_contract": "unpack72bits -> bits72; require bit0=data and bit1=compressed; pass bits[2:last_zero] to JSC::decompress", "bridge_status": "compressed_payload_bitvec_ready" } } ], "selftest_fixture_count": 8, "selftest_fixture_pass_count": 8, "selftest_all_passed": true, "webftr_rx_rows": [], "webftr_display_count": 0, "webftr_adapter_hint": { "safe_to_poll_read_only": true, "productive_integration": false, "do_not_merge_as_chat_text_yet": true, "step68_contract_remains_current_ui_source": true, "candidate_latest_file": "/logs/js8_varicode_compressed_bitslice_jsc_bridge_latest.json" }, "warnings": [ "Step73 validates the Varicode compressed bit-slice bridge to the JSC decompressor, but keeps chat display blocked.", "Synthetic single-frame compressed fixtures are not a substitute for real RF/JS8Call comparison fixtures.", "Multi-frame assembly and final display-release plausibility are still future steps." ], "verdict": "compressed_bitslice_jsc_bridge_selftest_ready_no_current_compressed_frames", "next_action": "Capture or inject a real FrameDataCompressed row; then validate JSC text against JS8Call before any WebFTR chat release.", "stable_latest_written": "/decoders/js8_decoder/logs/js8_varicode_compressed_bitslice_jsc_bridge_latest.json" } [webftr-js8-lab] OK [webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260527T190533Z_varicode-compressed-bitslice-jsc-bridge-probe.log [webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260527T190533Z_varicode-compressed-bitslice-jsc-bridge-probe_manifest.json [js8.sh job] finished utc=2026-05-27T19:05:38Z exit_code=0