{
  "checks": {
    "no_errors": true,
    "both_inputs_recognized": true,
    "both_replies_generated": true,
    "first_playback_before_eof": true,
    "playback_cancelled": true,
    "second_turn_completed": true,
    "second_tail_completed": true,
    "cancel_before_network_eof": true,
    "local_model_ran": true,
    "capture_completed": true,
    "audio_and_video_tracks": true,
    "recording_track_durations_match": true
  },
  "passed": true,
  "dialogue": {
    "engine": "DH_live mini 2.0",
    "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1",
    "input": "prerecorded questions played on phone; real STT+LLM+Fish response",
    "turns": [
      {
        "number": 1,
        "requestStart": 17784,
        "receivedSamples": 84640,
        "playedChunks": 3,
        "eof": false,
        "cancelled": true,
        "transcript": "I have to tell you something. Something really sad just happened to me today.",
        "reply": "I am so sorry to hear that you are going through such a hard time. Please tell me what happened, because I am right here and ready to listen.",
        "audioEvents": [
          {
            "startMs": 4044,
            "durationMs": 500,
            "setAudioMs": 3,
            "eof": false
          },
          {
            "startMs": 4545,
            "durationMs": 500,
            "setAudioMs": 1,
            "eof": false
          },
          {
            "startMs": 5046.000000000004,
            "durationMs": 500,
            "setAudioMs": 1.000000000003638,
            "eof": false
          }
        ],
        "headersMs": 2791,
        "firstAudioMs": 3860.0000000000036,
        "firstPlaybackMs": 4044,
        "firstPlaybackBeforeEof": true,
        "callsAtPlayback": 317,
        "eofAtCancel": false,
        "cancelMs": 5244.000000000004,
        "chunksAtCancel": 3,
        "finishedMs": 5292,
        "modelCalls": 30,
        "chunksAfterWait": 3
      },
      {
        "number": 2,
        "requestStart": 27662,
        "receivedSamples": 72770,
        "playedChunks": 10,
        "eof": true,
        "cancelled": false,
        "transcript": "Okay, now please cheer me up. Tell me a joke and make me laugh out loud.",
        "reply": "Why did the scarecrow win an award? Because he was outstanding in his field!",
        "audioEvents": [
          {
            "startMs": 2570,
            "durationMs": 500,
            "setAudioMs": 1,
            "eof": false
          },
          {
            "startMs": 3082,
            "durationMs": 500,
            "setAudioMs": 0.999999999996362,
            "eof": false
          },
          {
            "startMs": 3583,
            "durationMs": 500,
            "setAudioMs": 0,
            "eof": true
          },
          {
            "startMs": 4086,
            "durationMs": 500,
            "setAudioMs": 1.999999999996362,
            "eof": true
          },
          {
            "startMs": 4597,
            "durationMs": 500,
            "setAudioMs": 0.999999999996362,
            "eof": true
          },
          {
            "startMs": 5097.999999999996,
            "durationMs": 500,
            "setAudioMs": 0.999999999996362,
            "eof": true
          },
          {
            "startMs": 5600,
            "durationMs": 500,
            "setAudioMs": 1,
            "eof": true
          },
          {
            "startMs": 6108,
            "durationMs": 500,
            "setAudioMs": 0,
            "eof": true
          },
          {
            "startMs": 6610,
            "durationMs": 500,
            "setAudioMs": 1,
            "eof": true
          },
          {
            "startMs": 7112,
            "durationMs": 48.125,
            "setAudioMs": 1,
            "eof": true
          }
        ],
        "headersMs": 1300,
        "firstAudioMs": 2398.0000000000036,
        "firstPlaybackMs": 2570,
        "firstPlaybackBeforeEof": true,
        "callsAtPlayback": 347,
        "eofMs": 3321,
        "serverTimings": {
          "mode": "pooled",
          "container_age_ms": 14335.444308999999,
          "stt_start_ms": 75.22486700000286,
          "stt_end_ms": 1024.725214,
          "llm_start_ms": 1024.9162019999999,
          "llm_first_text_ms": 1666.5608500000033,
          "llm_end_ms": 1693.051778000001,
          "fish_first_audio_ms": 2130.688335000002,
          "audio_end_ms": 3021.558524000003
        },
        "finishedMs": 7197,
        "modelCalls": 116,
        "chunksAfterWait": 10
      }
    ],
    "errors": [],
    "started": 7698,
    "finished": 35861.00000000001
  },
  "recording": {
    "streams": [
      {
        "index": 0,
        "codec_name": "h264",
        "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
        "profile": "Baseline",
        "codec_type": "video",
        "codec_tag_string": "avc1",
        "codec_tag": "0x31637661",
        "width": 832,
        "height": 480,
        "coded_width": 832,
        "coded_height": 480,
        "closed_captions": 0,
        "film_grain": 0,
        "has_b_frames": 0,
        "pix_fmt": "yuv420p",
        "level": 31,
        "field_order": "progressive",
        "refs": 1,
        "is_avc": "true",
        "nal_length_size": "4",
        "id": "0x1",
        "r_frame_rate": "600/1",
        "avg_frame_rate": "306600/13081",
        "time_base": "1/600",
        "start_pts": 26,
        "start_time": "0.043333",
        "duration_ts": 13107,
        "duration": "21.845000",
        "bit_rate": "9708307",
        "bits_per_raw_sample": "8",
        "extradata_size": 24,
        "disposition": {
          "default": 1,
          "dub": 0,
          "original": 0,
          "comment": 0,
          "lyrics": 0,
          "karaoke": 0,
          "forced": 0,
          "hearing_impaired": 0,
          "visual_impaired": 0,
          "clean_effects": 0,
          "attached_pic": 0,
          "timed_thumbnails": 0,
          "non_diegetic": 0,
          "captions": 0,
          "descriptions": 0,
          "metadata": 0,
          "dependent": 0,
          "still_image": 0
        },
        "tags": {
          "creation_time": "2026-10-21T21:15:04.000000Z",
          "language": "und",
          "handler_name": "Core Media Video",
          "vendor_id": "[0][0][0][0]"
        }
      },
      {
        "index": 1,
        "codec_name": "aac",
        "codec_long_name": "AAC (Advanced Audio Coding)",
        "profile": "LC",
        "codec_type": "audio",
        "codec_tag_string": "mp4a",
        "codec_tag": "0x6134706d",
        "sample_fmt": "fltp",
        "sample_rate": "48000",
        "channels": 2,
        "channel_layout": "stereo",
        "bits_per_sample": 0,
        "initial_padding": 0,
        "id": "0x2",
        "r_frame_rate": "0/0",
        "avg_frame_rate": "0/0",
        "time_base": "1/48000",
        "start_pts": 0,
        "start_time": "0.000000",
        "duration_ts": 1052672,
        "duration": "21.930667",
        "bit_rate": "86304",
        "extradata_size": 2,
        "disposition": {
          "default": 1,
          "dub": 0,
          "original": 0,
          "comment": 0,
          "lyrics": 0,
          "karaoke": 0,
          "forced": 0,
          "hearing_impaired": 0,
          "visual_impaired": 0,
          "clean_effects": 0,
          "attached_pic": 0,
          "timed_thumbnails": 0,
          "non_diegetic": 0,
          "captions": 0,
          "descriptions": 0,
          "metadata": 0,
          "dependent": 0,
          "still_image": 0
        },
        "tags": {
          "creation_time": "2026-10-21T21:15:04.000000Z",
          "language": "und",
          "handler_name": "Core Media Audio",
          "vendor_id": "[0][0][0][0]"
        }
      }
    ],
    "format": {
      "filename": "/home/tony/work/modal-research-nanoavatar-20261021/experiments/nanoavatar-20261021/driver/ios-dialogue-recording.mp4",
      "nb_streams": 2,
      "nb_programs": 0,
      "nb_stream_groups": 0,
      "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
      "format_long_name": "QuickTime / MOV",
      "start_time": "0.000000",
      "duration": "21.930667",
      "size": "26765464",
      "bit_rate": "9763666",
      "probe_score": 100,
      "tags": {
        "major_brand": "iso5",
        "minor_version": "1",
        "compatible_brands": "isomiso5hlsf",
        "creation_time": "2026-10-21T21:15:04.000000Z"
      }
    }
  },
  "limitations": [
    "Input is prerecorded question audio, STT begins after input ends",
    "Speech response is actual network streamed LLM/Fish, adapted to 500ms WAV chunks",
    "Cancellation may occur after network EOF; eofAtCancel explicitly reported",
    "Recorded page canvas and WebAudio, not system speaker or microphone",
    "Mouth quality not accepted; oversized mouth issue unresolved"
  ]
}