JS8Lab step96-manifest-status-evidence-polish

Status

FERTIG / BEREIT

State: diagnostics_ok
Detail: Diagnose fertig
Diagnose läuft: nein Server läuft: ja
Letzte Manifest-Auswertung: ok
Version: step96-manifest-status-evidence-polish
Root: /decoders/js8_decoder
WAV: /decoders/js8_test.wav

Links

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

Per-WAV Evidence

WAVs getestet: 2Control-WAVs: 2Data: 0Compressed: 0
Action: await_new_real_js8_freetext_wav
Verdict: step90_full_hunt_completed_no_data_frames_waiting_for_new_wav
/api/evidence zeigt dieselben kompakten Beweise als JSON.
WAVsFensterInfo87Msg174ControlDataCompr.Frame-TypenVerdict
js8_test.wav192.01731446200FrameHeartbeat:3, FrameDirected:3control_frames_only
A_1_4.wav15.01482200FrameHeartbeat:1, FrameDirected:1control_frames_only

Bundles

Noch kein Bundle.

Latest log tail

            "grid": null,
            "command": null
          },
          {
            "type": "FrameDirected",
            "text": "9I2TZR/P 0Z0PMP INFO 28",
            "callsign": "9I2TZR/P",
            "grid": null,
            "command": null
          }
        ],
        "verdict": "control_frames_only"
      },
      {
        "index": 1,
        "input_wav": "/decoders/js8_decoder/runtime/input_wavs/A_1_4.wav",
        "basename": "A_1_4.wav",
        "duration_seconds": 15.0,
        "sample_rate_hz": 12000,
        "wav_was_read": true,
        "tested_window_count": 1,
        "runtime_info87_rows_count": 48,
        "source_exact_zero_distance_candidate_count": 16,
        "message174_decode_count": 2,
        "frame_type_counts": {
          "FrameHeartbeat": 1,
          "FrameDirected": 1
        },
        "unique_control_frame_count": 2,
        "data_frame_candidate_count": 0,
        "compressed_data_frame_candidate_count": 0,
        "unique_frame_rows_preview": [
          {
            "type": "FrameHeartbeat",
            "text": "HB 004REY/0V4 OJ16",
            "callsign": "004REY/0V4",
            "grid": null,
            "command": null
          },
          {
            "type": "FrameDirected",
            "text": "9I2TZR/P 0Z0PMP INFO 28",
            "callsign": "9I2TZR/P",
            "grid": null,
            "command": null
          }
        ],
        "verdict": "control_frames_only"
      }
    ],
    "operator_verdict": "tested_wavs_contain_control_frames_only_or_no_frames"
  },
  "previous_step89_summary": {
    "path": "/decoders/js8_decoder/logs/js8_real_wav_corpus_auto_handoff_latest.json",
    "stat": {
      "path": "/decoders/js8_decoder/logs/js8_real_wav_corpus_auto_handoff_latest.json",
      "exists": true,
      "is_file": true,
      "size": 4026,
      "mtime_utc": "2026-05-28T06:14:28Z"
    },
    "available": true,
    "tool_version": "step89-real-wav-corpus-auto-handoff",
    "created_utc": "2026-05-28T06:14:28Z",
    "verdict": "step89_waiting_for_additional_real_js8_freetext_wav",
    "action": "wait_for_extra_wav",
    "full_hunt_ran": false,
    "data_frame_candidate_count": 0,
    "compressed_data_frame_candidate_count": 0
  },
  "previous_step90_summary": {
    "path": "/decoders/js8_decoder/logs/js8_real_wav_intake_validator_auto_handoff_latest.json",
    "stat": {
      "path": "/decoders/js8_decoder/logs/js8_real_wav_intake_validator_auto_handoff_latest.json",
      "exists": true,
      "is_file": true,
      "size": 13518,
      "mtime_utc": "2026-05-28T10:01:32Z"
    },
    "available": true,
    "tool_version": "step96-manifest-status-evidence-polish",
    "created_utc": "2026-05-28T10:01:32Z",
    "verdict": "step90_valid_extra_wav_detected_auto_handoff_to_step87",
    "action": "run_full_corpus_hunt_now",
    "full_hunt_ran": false,
    "valid_extra_wav_count": 1,
    "invalid_wav_count": 0,
    "data_frame_candidate_count": 0,
    "compressed_data_frame_candidate_count": 0
  },
  "operator_files": {
    "input_wavs_dir": "/decoders/js8_decoder/runtime/input_wavs",
    "fixtures_wavs_dir": "/decoders/js8_decoder/runtime/fixtures/wavs",
    "readme": "/decoders/js8_decoder/runtime/input_wavs/README_STEP88_WAV_CORPUS_INTAKE.md",
    "helper": "/decoders/js8_decoder/runtime/input_wavs/add_wav_to_corpus_step88.sh",
    "readme_stat": {
      "path": "/decoders/js8_decoder/runtime/input_wavs/README_STEP88_WAV_CORPUS_INTAKE.md",
      "exists": true,
      "is_file": true,
      "size": 427,
      "mtime_utc": "2026-05-28T10:11:19Z"
    },
    "helper_stat": {
      "path": "/decoders/js8_decoder/runtime/input_wavs/add_wav_to_corpus_step88.sh",
      "exists": true,
      "is_file": true,
      "size": 446,
      "mtime_utc": "2026-05-28T10:11:19Z"
    }
  },
  "step90_operator_files": {
    "input_wavs_dir": "/decoders/js8_decoder/runtime/input_wavs",
    "readme": "/decoders/js8_decoder/runtime/input_wavs/README_STEP90_WAV_INTAKE_VALIDATOR.md",
    "helper": "/decoders/js8_decoder/runtime/input_wavs/validate_wav_corpus_step90.sh",
    "readme_stat": {
      "path": "/decoders/js8_decoder/runtime/input_wavs/README_STEP90_WAV_INTAKE_VALIDATOR.md",
      "exists": true,
      "is_file": true,
      "size": 415,
      "mtime_utc": "2026-05-28T10:11:19Z"
    },
    "helper_stat": {
      "path": "/decoders/js8_decoder/runtime/input_wavs/validate_wav_corpus_step90.sh",
      "exists": true,
      "is_file": true,
      "size": 194,
      "mtime_utc": "2026-05-28T10:11:19Z"
    }
  },
  "after_hunt": true,
  "force_hunt": false,
  "full_hunt_ran": true,
  "data_frame_candidate_count": 0,
  "compressed_data_frame_candidate_count": 0,
  "action": "await_new_real_js8_freetext_wav",
  "verdict": "step90_full_hunt_completed_no_data_frames_waiting_for_new_wav",
  "warnings": [
    "Step93 still does not release JS8 free text directly; it surfaces per-WAV evidence so duplicate/control-only WAVs are obvious.",
    "The primary /decoders/js8_test.wav is a control-frame reference and is not counted as an extra WAV.",
    "Byte-identical corpus WAV paths are de-duplicated before validation/hunt, so a mirrored bundled sample is tested once.",
    "Step93 promotes a compact per_wav_evidence_surface into status/report so A_1_4.wav evidence is visible without opening huge logs.",
    "Only valid unique extra WAVs trigger the full corpus hunt automatically."
  ],
  "next_action": "Add a real JS8 WAV with free-text/Data/Compressed transmission to runtime/input_wavs or set JS8LAB_WAV_CORPUS_DIRS. Step90 validates the WAV first and then auto-runs the full corpus hunt only when a valid extra WAV is present. If Data/Compressed candidates appear, route them to the guarded release gate."
}

[webftr-js8-lab] OK
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260528T100131Z_real-wav-intake-validator-auto-handoff.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260528T100131Z_real-wav-intake-validator-auto-handoff_manifest.json

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