{
  "captured_at": "2026-07-22T18:35:00Z",
  "scope": "Sanitized authenticated parity evidence for issue 2663",
  "lovable": {
    "minimal_sentinel": {
      "project_id": "c5bac159-2819-4cdf-8fa7-872df32c6c1a",
      "prompt": "Create a minimal sentinel website with one centered Hello, world! heading, a white background, and no images.",
      "message_api": {
        "status": "completed",
        "thinking_time_ms": 76115,
        "ordered_parts": [
          "lov-think",
          "code--write",
          "lov-think",
          "code--execute_preview_javascript",
          "lov-think"
        ],
        "thought_count": 3
      },
      "completed_chat": {
        "thought_for_markers": 0,
        "work_cards": 1,
        "work_card_title": "Added plain white sentinel page",
        "work_card_subtitle": "Finishing minimal sentinel page"
      },
      "details": {
        "thought_rows": ["Thought for 27s", "Thought for 13s", "Thought for 13s"],
        "all_expandable": true,
        "expanded_content_matches_message_thought_node": true
      }
    },
    "image_build": {
      "project_id": "cd779c09-0f39-420e-805c-4ee134dce3f2",
      "first_build_order": [
        "lov-think",
        "imagegen--generate_image",
        "imagegen--generate_image",
        "imagegen--generate_image",
        "imagegen--generate_image",
        "imagegen--generate_image",
        "lov-think",
        "code--write",
        "code--line_replace",
        "code--write"
      ],
      "completed_chat_thought_for_markers": 0,
      "details_thought_rows": ["Thought for 3s", "Thought for 19s"],
      "details_interleaves_thoughts_images_and_edits": true
    },
    "chat_ownership_cases": [
      {
        "case": "answer only",
        "activity": false,
        "initial_assistant_text": true,
        "chat_thought_markers": 1,
        "observed_label": "Thought for 4s"
      },
      {
        "case": "work turn without initial assistant prose",
        "activity": true,
        "initial_assistant_text": false,
        "chat_thought_markers": 0
      },
      {
        "case": "work turn with initial assistant prose",
        "activity": true,
        "initial_assistant_text": true,
        "chat_thought_markers": 1,
        "observed_label": "Thought for 5s",
        "internal_followup_thoughts_duplicated_in_chat": false
      }
    ],
    "public_client_contract": {
      "thinking_part_shape": {
        "type": "thinking",
        "content": "agentOutputThinking content",
        "durationMs": "timestamp of next output minus thinking start timestamp",
        "startedAtMs": "agent output start timestamp",
        "thinking_event": "trajectory event id"
      },
      "chat_projection_rule": "show one aggregate thought unless the turn has activity and has no initial assistant text",
      "details_projection_rule": "retain individual ordered thinking parts with their own content and duration"
    }
  },
  "peachjam": {
    "captured_project_id": "proj_d25c32a4f15a20d9",
    "captured_turn_id": "turn_d69293c6d712eec4",
    "model": "deepseek/deepseek-v4-pro",
    "provider": "responses-compatible",
    "model_call_count": 23,
    "request_contract": {
      "include": ["reasoning.encrypted_content"],
      "store": false,
      "changed_by_proposal": false
    },
    "response_contract": {
      "reasoning_item_count_per_call": 1,
      "reasoning_summary_entries_per_call": 0,
      "reasoning_content_type": "reasoning_text",
      "calls_with_nonempty_reasoning_text": 23,
      "reasoning_text_length_range": [29, 1579],
      "encrypted_content_present_in_capture": false
    },
    "normalization_gap": "decodeResponsesOutputItems preserves the full reasoning item in Raw but does not copy reasoning.content[].reasoning_text or summary[].summary_text into a display field.",
    "timeline_gap": "Model call completion diagnostics contain duration, provider, model, and call index but no thinking_text, leaving Details rows disabled."
  }
}
