{
  "meta": {
    "benchmark": "LongPuzzleBench",
    "leaderboard_generated_at": "2026-08-28T01:57:08.173194+00:00",
    "public_runs": 18,
    "executed_trajectories": 782,
    "successful_trajectories": 545,
    "failed_trajectories": 237,
    "game_counts": {
      "bolt_unscrew": 130,
      "color_connect": 81,
      "maze_paint": 219,
      "nut_and_bolt": 128,
      "rush_hour_2": 172,
      "truck_escape": 52
    },
    "analysis_scope": "Canonical executed episodes from 18 complete public progressive runs; skipped levels are not trajectories.",
    "leaderboard_source": "leaderboard/results.json",
    "leaderboard_sha256": "245982e2eb842d8ed4a9207db5cf4bb5420a69f1b29c591dcf0a3f829ce42c3d"
  },
  "models": [
    {
      "rank": 1,
      "model": "gpt-5.6-sol",
      "effort": "medium",
      "run": "gpt-5.6-sol-medium",
      "benchmark_score": 54.796
    },
    {
      "rank": 2,
      "model": "gpt-5.6-sol",
      "effort": "low",
      "run": "gpt-5.6-sol-low",
      "benchmark_score": 54.142
    },
    {
      "rank": 3,
      "model": "gpt-5.6-sol",
      "effort": "high",
      "run": "gpt-5.6-sol-high",
      "benchmark_score": 49.968
    },
    {
      "rank": 4,
      "model": "gpt-5.6-terra",
      "effort": "high",
      "run": "gpt-5.6-terra-high",
      "benchmark_score": 47.591
    },
    {
      "rank": 5,
      "model": "gpt-5.6-terra",
      "effort": "medium",
      "run": "gpt-5.6-terra-medium",
      "benchmark_score": 37.772
    },
    {
      "rank": 6,
      "model": "gpt-5.6-terra",
      "effort": "low",
      "run": "gpt-5.6-terra-low",
      "benchmark_score": 36.806
    },
    {
      "rank": 7,
      "model": "kimi-k3",
      "effort": "high",
      "run": "kimi-k3-high",
      "benchmark_score": 32.694
    },
    {
      "rank": 8,
      "model": "gpt-5.6-luna",
      "effort": "high",
      "run": "gpt-5.6-luna-high",
      "benchmark_score": 30.337
    },
    {
      "rank": 9,
      "model": "gpt-5.6-luna",
      "effort": "medium",
      "run": "gpt-5.6-luna-medium",
      "benchmark_score": 24.158
    },
    {
      "rank": 10,
      "model": "gpt-5.6-luna",
      "effort": "low",
      "run": "gpt-5.6-luna-low",
      "benchmark_score": 17.867
    },
    {
      "rank": 11,
      "model": "qwen/qwen3.8-27b",
      "effort": null,
      "run": "qwen3.8-27b",
      "benchmark_score": 16.915
    },
    {
      "rank": 12,
      "model": "moonshotai/kimi-k2.5",
      "effort": "max",
      "run": "kimi-k2.5-max",
      "benchmark_score": 15.979
    },
    {
      "rank": 13,
      "model": "qwen/qwen3.5-122b-a10b",
      "effort": null,
      "run": "qwen3.5-122b-a10b",
      "benchmark_score": 11.285
    },
    {
      "rank": 14,
      "model": "qwen/qwen3.6-35b-a3b",
      "effort": null,
      "run": "qwen3.6-35b-a3b",
      "benchmark_score": 6.58
    },
    {
      "rank": 15,
      "model": "qwen/qwen3.5-397b-a17b",
      "effort": null,
      "run": "qwen3.5-397b-a17b",
      "benchmark_score": 6.471
    },
    {
      "rank": 16,
      "model": "z-ai/glm-4.6v",
      "effort": "max",
      "run": "glm-4.6v-max",
      "benchmark_score": 6.386
    },
    {
      "rank": 17,
      "model": "qwen/qwen3-vl-235b-a22b-thinking",
      "effort": null,
      "run": "qwen3-vl-235b-a22b-thinking",
      "benchmark_score": 5.314
    },
    {
      "rank": 18,
      "model": "qwen/qwen3-vl-30b-a3b-thinking",
      "effort": null,
      "run": "qwen3-vl-30b-a3b-thinking",
      "benchmark_score": 5.134
    }
  ],
  "findings": {
    "future_actionability": {
      "public_runs_on_task": 18,
      "no_available_hole_deadlocks": 13,
      "terminal_transfer_increased_progress": 12,
      "top_ten_common_terminal": 10,
      "matched_state_sha256": "242b9969d2b7c216c928e9a5ce88de4d15dad8281911798610e7e2ce12b79813",
      "matched_screenshot_sha256": "3103d7bacdbd8735d8f7c15e6e5b2e7c3ea397b8c58b9f453daab7db1631eaa5",
      "sol_immediate": {
        "source_action": 9,
        "terminal_action": 10,
        "progress_before": 0.2083,
        "progress_after": 0.2917,
        "legal_actions_after": 0
      },
      "qwen_delayed": {
        "source_action": 11,
        "transfer_action": 12,
        "terminal_action": 20,
        "final_progress": 0.5
      }
    },
    "postcondition_repair": {
      "hard_1_runs": 18,
      "hard_1_failures": 17,
      "runs_with_consecutive_repeated_illegal_pair": 15,
      "successful_runs_with_repeated_illegal_pair": 0,
      "weak_chain": {
        "truncated_transfer_action": 4,
        "warning_action": 9,
        "move_counts": [
          2,
          2,
          2,
          2
        ]
      },
      "strong_chain": {
        "truncated_transfer_action": 72,
        "warning_action": 74,
        "cancel_action": 75,
        "reverse_completion_action": 77,
        "move_counts": [
          31,
          31,
          31,
          32
        ]
      },
      "long_dependency_capability": {
        "episode_id": "nut_and_bolt.hard.level_02.seed_0.run_001",
        "valid_transfers_without_empty_buffer": 26,
        "first_buffer_reopened_action": 58
      }
    },
    "corridor_reservation": {
      "matched_active_path_state": "blue:|coral:|cyan:|green:|maroon:|orange:0,0;0,1;0,2;0,3|purple:|yellow:#coral:0,6;0,5;0,4;1,4",
      "first_divergence": {
        "success_action": 6,
        "failure_action": 9,
        "reserved_cell": {
          "row": 3,
          "column": 5
        }
      },
      "failed_completed_coral_state_actions": [
        10,
        17,
        23
      ],
      "failed_completed_coral_state_hash": "blue:|coral:0,6;0,5;0,4;1,4;2,4;2,3;2,2;2,1|cyan:|green:|maroon:|orange:0,0;0,1;0,2;0,3|purple:|yellow:#-",
      "successful_path_cancellations": 0,
      "revisits": {
        "failures": 33,
        "failed_episodes_with_revisit": 32,
        "failed_revisit_events": 274,
        "failed_actions": 750,
        "successes": 48,
        "successful_episodes_with_revisit": 23,
        "successful_revisit_events": 102,
        "successful_actions": 1379
      }
    },
    "stale_localization": {
      "matched_one_cell_state_hash": "9,1:1fefffffffff",
      "matched_after_right_state_hash": "9,6:1fefffffffff",
      "remaining_cell": {
        "row": 9,
        "column": 4,
        "indexing": "one-based"
      },
      "actual_ball_after_right": {
        "row": 10,
        "column": 7,
        "indexing": "one-based"
      },
      "successful_route_actions": [
        33,
        34,
        35
      ],
      "failed_route_actions": [
        35,
        37,
        40
      ],
      "failure_recovery_warnings": 3,
      "failure_final_coverage": 0.9772727272727273,
      "blocked_swipe_context": {
        "failed_episodes": 41,
        "failures_with_blocked_swipe": 28,
        "successful_episodes": 178,
        "successes_with_blocked_swipe": 30
      }
    },
    "part_whole_segmentation": {
      "hand_verified_episodes": 5,
      "model_configurations": 4,
      "split_repaired": 3,
      "recovered_and_solved": 2,
      "recovered_but_failed": 1,
      "failed": 3,
      "cases": [
        {
          "run": "gpt-5.6-luna-low",
          "episode_id": "rush_hour_2.easy.level_01.seed_0.run_001",
          "first_split_action": 4,
          "repair_action": null,
          "recovered": false,
          "episode_success": false,
          "feedback_status": "no_visible_effect"
        },
        {
          "run": "gpt-5.6-terra-high",
          "episode_id": "rush_hour_2.easy.level_06.seed_0.run_001",
          "first_split_action": 1,
          "repair_action": 2,
          "recovered": true,
          "episode_success": true,
          "feedback_status": "no_visible_effect"
        },
        {
          "run": "gpt-5.6-terra-low",
          "episode_id": "rush_hour_2.medium.level_03.seed_0.run_001",
          "first_split_action": 1,
          "repair_action": 6,
          "recovered": true,
          "episode_success": true,
          "feedback_status": "no_visible_effect"
        },
        {
          "run": "gpt-5.6-terra-high",
          "episode_id": "rush_hour_2.medium.level_05.seed_0.run_001",
          "first_split_action": 1,
          "repair_action": 13,
          "recovered": true,
          "episode_success": false,
          "feedback_status": "no_visible_effect"
        },
        {
          "run": "kimi-k3-high",
          "episode_id": "rush_hour_2.hard.level_01.seed_0.run_001",
          "first_split_action": 2,
          "repair_action": null,
          "recovered": false,
          "episode_success": false,
          "feedback_status": "no_visible_effect"
        }
      ],
      "matched_successful_task": {
        "episode_id": "rush_hour_2.medium.level_03.seed_0.run_001",
        "grouped_run": "gpt-5.6-sol-low",
        "grouped_steps": 3,
        "split_run": "gpt-5.6-terra-low",
        "split_steps": 6,
        "split_no_effect_actions": [
          1,
          3
        ]
      }
    }
  },
  "stories": {
    "bolt_immediate": {
      "label": "Salient source",
      "tone": "failure",
      "run": "gpt-5.6-sol-medium",
      "episode_id": "bolt_unscrew.hard.level_01.seed_0.run_001",
      "success": false,
      "termination": "no_available_hole_deadlock",
      "steps": 10,
      "frames": [
        {
          "step": 8,
          "kind": "post",
          "description": "One uncovered destination remains.",
          "fact": "same state · 20.8% progress",
          "progress": 0.2083,
          "asset": "assets/trajectories/bolt_immediate-008-post.webp",
          "source": "gpt-5.6-sol-medium/bolt_unscrew/hard/trajectories/run_001/bolt_unscrew.hard.level_01.seed_0/post_screenshots/bolt_unscrew.hard.level_01.seed_0-0-8.png",
          "source_sha256": "3103d7bacdbd8735d8f7c15e6e5b2e7c3ea397b8c58b9f453daab7db1631eaa5",
          "overlays": [
            {
              "x": 61,
              "y": 22,
              "width": 9,
              "height": 8,
              "label": "only open hole",
              "tone": "warning"
            }
          ],
          "recorded_output": "Thought: 顶端横木中央螺丝已选中；将它转移到左上区域无遮挡的黑色空锚点。",
          "executed_action": {
            "action_type": "click",
            "x": 390,
            "y": 503
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 9,
          "kind": "post",
          "description": "The exposed mid-right screw is selected.",
          "fact": "source: mid-right support",
          "progress": 0.2083,
          "asset": "assets/trajectories/bolt_immediate-009-post.webp",
          "source": "gpt-5.6-sol-medium/bolt_unscrew/hard/trajectories/run_001/bolt_unscrew.hard.level_01.seed_0/post_screenshots/bolt_unscrew.hard.level_01.seed_0-0-9.png",
          "source_sha256": "fd39e3f515ec891bfd233e0ba0d2a4e77cb0bf5221b60bba06c8cdec6757180d",
          "overlays": [
            {
              "x": 78,
              "y": 36,
              "width": 10,
              "height": 10,
              "label": "selected source",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: 转移成功且顶端横木已倾斜；选中倾斜横木右端仍在木条上的螺丝。",
          "executed_action": {
            "action_type": "click",
            "x": 894,
            "y": 789
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 10,
          "kind": "pre",
          "description": "The target is legal and visibly open.",
          "fact": "the fatal click looks correct",
          "progress": 0.2083,
          "asset": "assets/trajectories/bolt_immediate-010-pre.webp",
          "source": "gpt-5.6-sol-medium/bolt_unscrew/hard/trajectories/run_001/bolt_unscrew.hard.level_01.seed_0/screenshots/bolt_unscrew.hard.level_01.seed_0-0-10.png",
          "source_sha256": "fd39e3f515ec891bfd233e0ba0d2a4e77cb0bf5221b60bba06c8cdec6757180d",
          "overlays": [
            {
              "x": 61,
              "y": 22,
              "width": 9,
              "height": 8,
              "label": "legal target",
              "tone": "warning"
            }
          ],
          "recorded_output": "Thought: 倾斜横木右端螺丝已选中；将它转移到右上区域无遮挡的黑色空锚点。",
          "executed_action": {
            "action_type": "click",
            "x": 706,
            "y": 503
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 10,
          "kind": "post",
          "description": "Progress rises; physics covers every empty source.",
          "fact": "29.2% progress · 0 legal moves",
          "progress": 0.2917,
          "asset": "assets/trajectories/bolt_immediate-010-post.webp",
          "source": "gpt-5.6-sol-medium/bolt_unscrew/hard/trajectories/run_001/bolt_unscrew.hard.level_01.seed_0/post_screenshots/bolt_unscrew.hard.level_01.seed_0-0-10.png",
          "source_sha256": "65aab322f81ffc356969ae78e4b991f438cc688bff4e3d0bdc1c6abbbb4e4ab9",
          "overlays": [
            {
              "x": 10,
              "y": 37,
              "width": 80,
              "height": 18,
              "label": "empty anchors covered",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: 倾斜横木右端螺丝已选中；将它转移到右上区域无遮挡的黑色空锚点。",
          "executed_action": {
            "action_type": "click",
            "x": 706,
            "y": 503
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        }
      ]
    },
    "bolt_deeper": {
      "label": "Deeper source",
      "tone": "success",
      "run": "qwen3.8-27b",
      "episode_id": "bolt_unscrew.hard.level_01.seed_0.run_001",
      "success": false,
      "termination": "no_available_hole_deadlock",
      "steps": 20,
      "frames": [
        {
          "step": 10,
          "kind": "post",
          "description": "Byte-identical board; the same destination is open.",
          "fact": "same state · 20.8% progress",
          "progress": 0.2083,
          "asset": "assets/trajectories/bolt_deeper-010-post.webp",
          "source": "qwen3.8-27b/bolt_unscrew/hard/trajectories/run_001/bolt_unscrew.hard.level_01.seed_0/post_screenshots/bolt_unscrew.hard.level_01.seed_0-0-10.png",
          "source_sha256": "3103d7bacdbd8735d8f7c15e6e5b2e7c3ea397b8c58b9f453daab7db1631eaa5",
          "overlays": [
            {
              "x": 61,
              "y": 22,
              "width": 9,
              "height": 8,
              "label": "same open hole",
              "tone": "warning"
            }
          ],
          "recorded_output": "第二排中间螺丝已选中（黄色环）。现在将其转移到剩余未被占据的黑色空锚点。剩下空孔：左上中(约360,261)和右上中(约655,261)。选择左上中黑孔。",
          "executed_action": {
            "action_type": "click",
            "x": 388,
            "y": 501
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 11,
          "kind": "post",
          "description": "This run selects a deeper support screw.",
          "fact": "source: lower-center support",
          "progress": 0.2083,
          "asset": "assets/trajectories/bolt_deeper-011-post.webp",
          "source": "qwen3.8-27b/bolt_unscrew/hard/trajectories/run_001/bolt_unscrew.hard.level_01.seed_0/post_screenshots/bolt_unscrew.hard.level_01.seed_0-0-11.png",
          "source_sha256": "e60af1b2bd91705959beca57f33d3ef47bda255eca0ecc4b07d143c9cb05a75f",
          "overlays": [
            {
              "x": 45,
              "y": 53,
              "width": 10,
              "height": 10,
              "label": "deeper source",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 转移成功，木条继续松动。选中环消失，需重新选螺丝。点击仍在木条上的螺丝，选择第三排中间的螺丝（约495,585）。",
          "executed_action": {
            "action_type": "click",
            "x": 534,
            "y": 1123
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 12,
          "kind": "post",
          "description": "The same destination now preserves a usable source.",
          "fact": "27.1% progress · mobility survives",
          "progress": 0.2708,
          "asset": "assets/trajectories/bolt_deeper-012-post.webp",
          "source": "qwen3.8-27b/bolt_unscrew/hard/trajectories/run_001/bolt_unscrew.hard.level_01.seed_0/post_screenshots/bolt_unscrew.hard.level_01.seed_0-0-12.png",
          "source_sha256": "f14aeb3baa675b6a5adf7c92ff6e63fd35c57c41ad055cc7e726326fa4697635",
          "overlays": [
            {
              "x": 45,
              "y": 53,
              "width": 10,
              "height": 10,
              "label": "newly usable source",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 第三排中间螺丝已选中（黄色环）。将其转移到剩余未被占据的黑色空锚点(约655,261)。",
          "executed_action": {
            "action_type": "click",
            "x": 707,
            "y": 501
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 20,
          "kind": "post",
          "description": "Three more transfers follow before a later deadlock.",
          "fact": "50.0% progress · later deadlock",
          "progress": 0.5,
          "asset": "assets/trajectories/bolt_deeper-020-post.webp",
          "source": "qwen3.8-27b/bolt_unscrew/hard/trajectories/run_001/bolt_unscrew.hard.level_01.seed_0/post_screenshots/bolt_unscrew.hard.level_01.seed_0-0-20.png",
          "source_sha256": "4977479bc7e0f038f561eebc6a35379ba3fb17d2a5ea110ec524fa0c3ec480f8",
          "overlays": [],
          "recorded_output": "Thought: 底部左侧螺丝已选中（黄色环）。我看到背景中有一个未被占据的黑色空锚点，位于约(172,585)的位置。将选中的螺丝转移到该空锚点。",
          "executed_action": {
            "action_type": "click",
            "x": 185,
            "y": 1123
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        }
      ]
    },
    "nut_dependency": {
      "label": "A capability agents already have",
      "tone": "success",
      "run": "gpt-5.6-sol-medium",
      "episode_id": "nut_and_bolt.hard.level_02.seed_0.run_001",
      "success": true,
      "termination": "success",
      "steps": 92,
      "frames": [
        {
          "step": 4,
          "kind": "post",
          "description": "Both empty bolts are occupied.",
          "fact": "0 empty buffers",
          "progress": 0.0536,
          "asset": "assets/trajectories/nut_dependency-004-post.webp",
          "source": "gpt-5.6-sol-medium/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_02.seed_0/post_screenshots/nut_and_bolt.hard.level_02.seed_0-0-4.png",
          "source_sha256": "73128ae8e4880bea18d1dbd69c76d5256da2be9879257ea1ff247b0f7d315f04",
          "overlays": [],
          "recorded_output": "Thought: The two yellow nuts are selected; I will place them on the remaining empty bolt.",
          "executed_action": {
            "action_type": "click",
            "x": 738,
            "y": 1200
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 56,
          "kind": "post",
          "description": "Twenty-six valid transfers later, the chain is intact.",
          "fact": "0 empty buffers · no invalid transfer",
          "progress": 0.1964,
          "asset": "assets/trajectories/nut_dependency-056-post.webp",
          "source": "gpt-5.6-sol-medium/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_02.seed_0/post_screenshots/nut_and_bolt.hard.level_02.seed_0-0-56.png",
          "source_sha256": "4f5f76b2749f1dbd2fc0bd3672f8c962812e11c4c372168cfddb856423a5f7a2",
          "overlays": [],
          "recorded_output": "Thought: The selected green nut can join the four green nuts on the fourth bolt.",
          "executed_action": {
            "action_type": "click",
            "x": 738,
            "y": 620
          },
          "public_feedback": {
            "status": "returned_to_recent_screen",
            "message": null
          }
        },
        {
          "step": 58,
          "kind": "post",
          "description": "A bolt finally empties and restores workspace.",
          "fact": "workspace reopened",
          "progress": 0.2143,
          "asset": "assets/trajectories/nut_dependency-058-post.webp",
          "source": "gpt-5.6-sol-medium/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_02.seed_0/post_screenshots/nut_and_bolt.hard.level_02.seed_0-0-58.png",
          "source_sha256": "198af6fb7ac40e176f1f43d6a06e9a2faf6bd8e715cc094b9ab8f18b7d46319e",
          "overlays": [
            {
              "x": 7,
              "y": 54,
              "width": 16,
              "height": 20,
              "label": "reopened",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: The selected yellow nut can fill the final slot on the yellow stack.",
          "executed_action": {
            "action_type": "click",
            "x": 738,
            "y": 1100
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        }
      ]
    },
    "nut_repeat": {
      "label": "Repeats the postcondition error",
      "tone": "failure",
      "run": "qwen3.8-27b",
      "episode_id": "nut_and_bolt.hard.level_01.seed_0.run_001",
      "success": false,
      "termination": "no_progress",
      "steps": 10,
      "frames": [
        {
          "step": 4,
          "kind": "post",
          "description": "Only one of two yellow nuts fits; one remains.",
          "fact": "truncated transfer: 1 of 2 moved",
          "progress": 0.0227,
          "asset": "assets/trajectories/nut_repeat-004-post.webp",
          "source": "qwen3.8-27b/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-4.png",
          "source_sha256": "e7263b4e2d4ed685d8422508df78c02059cdb5c3b6bfea76fdecdcc4ff5a100d",
          "overlays": [
            {
              "x": 12,
              "y": 18,
              "width": 12,
              "height": 13,
              "label": "target full",
              "tone": "danger"
            },
            {
              "x": 34,
              "y": 18,
              "width": 12,
              "height": 13,
              "label": "1 remains",
              "tone": "warning"
            }
          ],
          "recorded_output": "Thought: I've selected the two Yellow nuts at the top of column 2. Column 1 has Yellow on top, so I can move these two Yellows there to combine them.",
          "executed_action": {
            "action_type": "click",
            "x": 180,
            "y": 474
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 5,
          "kind": "post",
          "description": "The remaining yellow is selected.",
          "fact": "source selected",
          "progress": 0.0227,
          "asset": "assets/trajectories/nut_repeat-005-post.webp",
          "source": "qwen3.8-27b/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-5.png",
          "source_sha256": "05f973d29f89f18232d80af21bea7a45dc0334f2bbcf37a046f9d67b531f5047",
          "overlays": [
            {
              "x": 34,
              "y": 18,
              "width": 12,
              "height": 13,
              "label": "selected source",
              "tone": "warning"
            }
          ],
          "recorded_output": "Thought: Column 2's top is now a single Yellow. Column 1 has Yellow on top, so I can move this Yellow there to keep grouping. Let me select column 2's top Yellow.",
          "executed_action": {
            "action_type": "click",
            "x": 425,
            "y": 474
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 6,
          "kind": "post",
          "description": "The full target rejects it; selection persists.",
          "fact": "no state change",
          "progress": 0.0227,
          "asset": "assets/trajectories/nut_repeat-006-post.webp",
          "source": "qwen3.8-27b/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-6.png",
          "source_sha256": "f3278144f3dd523c0698df6c7689e6d9bb94c0b188bc21f2856b3ccf69ae0970",
          "overlays": [
            {
              "x": 12,
              "y": 18,
              "width": 12,
              "height": 13,
              "label": "still full",
              "tone": "danger"
            },
            {
              "x": 34,
              "y": 18,
              "width": 12,
              "height": 13,
              "label": "still selected",
              "tone": "warning"
            }
          ],
          "recorded_output": "Thought: I've selected the Yellow nut at the top of column 2. Column 1 has Yellows on top, so I'll move it there to group the Yellows together.",
          "executed_action": {
            "action_type": "click",
            "x": 180,
            "y": 474
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 9,
          "kind": "post",
          "description": "A cycle warning arrives after the pair repeats.",
          "fact": "recovery warning",
          "progress": 0.0227,
          "asset": "assets/trajectories/nut_repeat-009-post.webp",
          "source": "qwen3.8-27b/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-9.png",
          "source_sha256": "a69ffdcb8a6d6dd4466877a3fe712afccf8cd0c7df63ecb15c3e352596f5d000",
          "overlays": [
            {
              "x": 12,
              "y": 18,
              "width": 34,
              "height": 13,
              "label": "same source → target",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: Column 2's single Yellow is selected. I'll move it onto column 1 which has Yellows on top by clicking column 1's top yellow.",
          "executed_action": {
            "action_type": "click",
            "x": 180,
            "y": 435
          },
          "public_feedback": {
            "status": "repeating_visual_cycle",
            "message": "Recent interactions returned the interface to a previously observed visual state. Reassess the fresh screenshot and choose another visible target unless repetition is intentionally required."
          }
        },
        {
          "step": 10,
          "kind": "post",
          "description": "The run clicks the full target again.",
          "fact": "move count unchanged since action 4",
          "progress": 0.0227,
          "asset": "assets/trajectories/nut_repeat-010-post.webp",
          "source": "qwen3.8-27b/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-10.png",
          "source_sha256": "b351e3098f4f47d0358491881d62a42f744daac70b5f2d343232f718d496fbd9",
          "overlays": [
            {
              "x": 12,
              "y": 18,
              "width": 12,
              "height": 13,
              "label": "repeated target",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: Column 2's Yellow remains selected and not yet moved. I'll click directly on column 1's top Yellow nut to move it there, grouping the Yellows.",
          "executed_action": {
            "action_type": "click",
            "x": 180,
            "y": 460
          },
          "public_feedback": {
            "status": "returned_to_recent_screen",
            "message": null
          }
        }
      ]
    },
    "nut_repair": {
      "label": "Rebuilds the transfer",
      "tone": "success",
      "run": "gpt-5.6-sol-medium",
      "episode_id": "nut_and_bolt.hard.level_01.seed_0.run_001",
      "success": true,
      "termination": "success",
      "steps": 81,
      "frames": [
        {
          "step": 72,
          "kind": "post",
          "description": "The same error: only one of two purple nuts fits.",
          "fact": "truncated transfer: 1 of 2 moved",
          "progress": 0.8182,
          "asset": "assets/trajectories/nut_repair-072-post.webp",
          "source": "gpt-5.6-sol-medium/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-72.png",
          "source_sha256": "7d1e0ab26e5d5000fe3127f02a915091ef652d80214de4be8bbf0ef5fc3638ec",
          "overlays": [
            {
              "x": 33,
              "y": 20,
              "width": 12,
              "height": 13,
              "label": "1 remains",
              "tone": "warning"
            },
            {
              "x": 27,
              "y": 61,
              "width": 12,
              "height": 14,
              "label": "target full",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: 将选中的两个紫色螺帽叠到下排第2根的两个紫色上，完成紫色。",
          "executed_action": {
            "action_type": "click",
            "x": 338,
            "y": 1360
          },
          "public_feedback": {
            "status": "returned_to_recent_screen",
            "message": null
          }
        },
        {
          "step": 73,
          "kind": "post",
          "description": "The remaining purple is selected.",
          "fact": "source selected",
          "progress": 0.8182,
          "asset": "assets/trajectories/nut_repair-073-post.webp",
          "source": "gpt-5.6-sol-medium/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-73.png",
          "source_sha256": "07c63223fb944bc346eb06c26a2f02e09be5549c7ad042cbf5a8f6bf1ebf3de2",
          "overlays": [
            {
              "x": 33,
              "y": 20,
              "width": 12,
              "height": 13,
              "label": "selected source",
              "tone": "warning"
            }
          ],
          "recorded_output": "Thought: 将上排第2根剩余的紫色移到下排第2根三个紫色上，完成紫色并腾空螺栓。",
          "executed_action": {
            "action_type": "click",
            "x": 418,
            "y": 590
          },
          "public_feedback": {
            "status": "returned_to_recent_screen",
            "message": null
          }
        },
        {
          "step": 74,
          "kind": "post",
          "description": "The full target rejects it and emits a warning.",
          "fact": "same postcondition failure",
          "progress": 0.8182,
          "asset": "assets/trajectories/nut_repair-074-post.webp",
          "source": "gpt-5.6-sol-medium/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-74.png",
          "source_sha256": "3a9809cf03d891f3e8c893246c82c38f1959a0a06fad5d097be56d55aea564b4",
          "overlays": [
            {
              "x": 27,
              "y": 61,
              "width": 12,
              "height": 14,
              "label": "full",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: 将选中的最后一个紫色移到下排第2根的三个紫色上，完成紫色。",
          "executed_action": {
            "action_type": "click",
            "x": 338,
            "y": 1320
          },
          "public_feedback": {
            "status": "repeating_visual_cycle",
            "message": "Recent interactions returned the interface to a previously observed visual state. Reassess the fresh screenshot and choose another visible target unless repetition is intentionally required."
          }
        },
        {
          "step": 75,
          "kind": "post",
          "description": "The source is cancelled and the flow reverses.",
          "fact": "representation updated",
          "progress": 0.8182,
          "asset": "assets/trajectories/nut_repair-075-post.webp",
          "source": "gpt-5.6-sol-medium/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-75.png",
          "source_sha256": "7d1e0ab26e5d5000fe3127f02a915091ef652d80214de4be8bbf0ef5fc3638ec",
          "overlays": [
            {
              "x": 33,
              "y": 20,
              "width": 12,
              "height": 13,
              "label": "new destination",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 下排第2根顶部连续三个紫色应移到上排第2根的一个紫色上；先取消当前选择。",
          "executed_action": {
            "action_type": "click",
            "x": 418,
            "y": 570
          },
          "public_feedback": {
            "status": "returned_to_recent_screen",
            "message": null
          }
        },
        {
          "step": 77,
          "kind": "post",
          "description": "Three purples move onto the lone purple.",
          "fact": "postcondition repaired · progress advances",
          "progress": 0.9091,
          "asset": "assets/trajectories/nut_repair-077-post.webp",
          "source": "gpt-5.6-sol-medium/nut_and_bolt/hard/trajectories/run_001/nut_and_bolt.hard.level_01.seed_0/post_screenshots/nut_and_bolt.hard.level_01.seed_0-0-77.png",
          "source_sha256": "4807dc6b61b1c8652e382026427960e32735c3f2e4957519831bba41b4f5ce95",
          "overlays": [
            {
              "x": 33,
              "y": 20,
              "width": 12,
              "height": 17,
              "label": "complete stack",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 将选中的三个紫色移到上排第2根的一个紫色上，完成紫色并露出红色。",
          "executed_action": {
            "action_type": "click",
            "x": 418,
            "y": 590
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        }
      ]
    },
    "color_reserve": {
      "label": "Leaves the corridor open",
      "tone": "success",
      "run": "gpt-5.6-sol-high",
      "episode_id": "color_connect.hard.level_01.seed_0.run_001",
      "success": true,
      "termination": "success",
      "steps": 33,
      "frames": [
        {
          "step": 5,
          "kind": "post",
          "description": "Coral reaches row 2, column 5.",
          "fact": "matched active-path state",
          "progress": 0.125,
          "asset": "assets/trajectories/color_reserve-005-post.webp",
          "source": "gpt-5.6-sol-high/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-5.png",
          "source_sha256": "a80b270d2bac5e0f05f9e328b8ade16e162d6f05debe6c7cfaa90e294e5c5492",
          "overlays": [
            {
              "x": 60,
              "y": 25,
              "width": 8,
              "height": 8,
              "label": "coral tip",
              "tone": "warning"
            },
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "future purple cell",
              "tone": "note"
            }
          ],
          "recorded_output": "Thought: 浅红色从第1行第5列向下到第2行第5列。",
          "executed_action": {
            "action_type": "click",
            "x": 689,
            "y": 547
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 6,
          "kind": "post",
          "description": "It turns left before descending.",
          "fact": "row 3, column 5 stays empty",
          "progress": 0.125,
          "asset": "assets/trajectories/color_reserve-006-post.webp",
          "source": "gpt-5.6-sol-high/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-6.png",
          "source_sha256": "159bb2a6365684a4c772fe4639771ff82d194ee7a1eaff4c167709607154f19a",
          "overlays": [
            {
              "x": 46,
              "y": 25,
              "width": 8,
              "height": 8,
              "label": "turn",
              "tone": "good"
            },
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "left open",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 浅红色继续从第2行第5列左移一格到第4列，避免第3列的深红端点。",
          "executed_action": {
            "action_type": "click",
            "x": 540,
            "y": 547
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 7,
          "kind": "post",
          "description": "Coral descends through the neighboring column.",
          "fact": "corridor remains open",
          "progress": 0.125,
          "asset": "assets/trajectories/color_reserve-007-post.webp",
          "source": "gpt-5.6-sol-high/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-7.png",
          "source_sha256": "bf401c0609fd7cae45716b79b194dd29e1fad1e7f7f1003bf69ec333426e1143",
          "overlays": [
            {
              "x": 46,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "coral",
              "tone": "good"
            },
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "still empty",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 浅红色从第2行第4列下移到第3行第4列。",
          "executed_action": {
            "action_type": "click",
            "x": 540,
            "y": 695
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 8,
          "kind": "post",
          "description": "Coral completes without occupying the shared cell.",
          "fact": "2 of 8 pairs",
          "progress": 0.25,
          "asset": "assets/trajectories/color_reserve-008-post.webp",
          "source": "gpt-5.6-sol-high/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-8.png",
          "source_sha256": "ebbc92a108f8f1ef0cf7e9c5f82f2349907db6879c7094b9edb7292f98aefc68",
          "overlays": [
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "available",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 浅红色当前位于第3行第4列，可沿该行直接左移到第2列同色端点完成。",
          "executed_action": {
            "action_type": "click",
            "x": 244,
            "y": 695
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 14,
          "kind": "post",
          "description": "Purple later uses the untouched cell.",
          "fact": "earlier route preserved capacity",
          "progress": 0.375,
          "asset": "assets/trajectories/color_reserve-014-post.webp",
          "source": "gpt-5.6-sol-high/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-14.png",
          "source_sha256": "848f80e2735405d5db5d6b2cfb2ce3b8d822217fc434f5ae901ca21540a60e44",
          "overlays": [
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "purple route",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 紫色应避开黄色所需的第4行第6列，先左移到第3行第5列。",
          "executed_action": {
            "action_type": "click",
            "x": 689,
            "y": 695
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 33,
          "kind": "post",
          "description": "All eight paths connect without cancellation.",
          "fact": "success · 0 path cancellations",
          "progress": 1.0,
          "asset": "assets/trajectories/color_reserve-033-post.webp",
          "source": "gpt-5.6-sol-high/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-33.png",
          "source_sha256": "5ffae9cc80132da9a8e0dbf9c05d53f20b43efe55bb315533074efb1e212e91b",
          "overlays": [],
          "recorded_output": "Thought: 青色已到第8行第7列，底行第6、5列均为空，可直接左移到第4列同色端点完成全部连接。",
          "executed_action": {
            "action_type": "click",
            "x": 540,
            "y": 1435
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        }
      ]
    },
    "color_recreate": {
      "label": "Consumes and recreates it",
      "tone": "failure",
      "run": "gpt-5.6-sol-medium",
      "episode_id": "color_connect.hard.level_01.seed_0.run_001",
      "success": false,
      "termination": "no_progress",
      "steps": 56,
      "frames": [
        {
          "step": 8,
          "kind": "post",
          "description": "Coral reaches the same matched state.",
          "fact": "matched active-path state",
          "progress": 0.125,
          "asset": "assets/trajectories/color_recreate-008-post.webp",
          "source": "gpt-5.6-sol-medium/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-8.png",
          "source_sha256": "a80b270d2bac5e0f05f9e328b8ade16e162d6f05debe6c7cfaa90e294e5c5492",
          "overlays": [
            {
              "x": 60,
              "y": 25,
              "width": 8,
              "height": 8,
              "label": "coral tip",
              "tone": "warning"
            },
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "future purple cell",
              "tone": "note"
            }
          ],
          "recorded_output": "Thought: Turn the red path downward through column 5 to the third row.",
          "executed_action": {
            "action_type": "click",
            "x": 689,
            "y": 546
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 9,
          "kind": "post",
          "description": "Coral descends into the shared cell.",
          "fact": "legal now · corridor consumed",
          "progress": 0.125,
          "asset": "assets/trajectories/color_recreate-009-post.webp",
          "source": "gpt-5.6-sol-medium/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-9.png",
          "source_sha256": "a70333133c6a0690c1405eab3c833ad05a98ceab4a61c8e90fd39b6a5a83555f",
          "overlays": [
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "occupied",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: Extend the red path down one more cell to the third row, then turn left toward the matching endpoint.",
          "executed_action": {
            "action_type": "click",
            "x": 689,
            "y": 694
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 10,
          "kind": "post",
          "description": "The path completes, but purple is boxed out.",
          "fact": "2 of 8 pairs",
          "progress": 0.25,
          "asset": "assets/trajectories/color_recreate-010-post.webp",
          "source": "gpt-5.6-sol-medium/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-10.png",
          "source_sha256": "e485f86d53b1efb0104afed35429f7d8e12e36fde46c0b4a0bc050b9147cad43",
          "overlays": [
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "purple blocked",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: Complete the red path across the third row to the matching coral endpoint.",
          "executed_action": {
            "action_type": "click",
            "x": 243,
            "y": 694
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 11,
          "kind": "post",
          "description": "The agent names the conflict and deletes coral.",
          "fact": "path cancellation 1",
          "progress": 0.125,
          "asset": "assets/trajectories/color_recreate-011-post.webp",
          "source": "gpt-5.6-sol-medium/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-11.png",
          "source_sha256": "457dc7a5f27adc9f37369d200260a1c5829b402e34a245cc8d8c24771945193f",
          "overlays": [
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "freed again",
              "tone": "warning"
            }
          ],
          "recorded_output": "Thought: Red must be redrawn to leave the cell at row 3, column 5 available for the purple route. Cancel it from the top-right endpoint.",
          "executed_action": {
            "action_type": "click",
            "x": 985,
            "y": 397
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 17,
          "kind": "post",
          "description": "It rebuilds the byte-identical coral path.",
          "fact": "same occupancy · second visit",
          "progress": 0.25,
          "asset": "assets/trajectories/color_recreate-017-post.webp",
          "source": "gpt-5.6-sol-medium/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-17.png",
          "source_sha256": "e485f86d53b1efb0104afed35429f7d8e12e36fde46c0b4a0bc050b9147cad43",
          "overlays": [
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "same blocker",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: Complete the red path across the third row to its matching endpoint.",
          "executed_action": {
            "action_type": "click",
            "x": 243,
            "y": 694
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 23,
          "kind": "post",
          "description": "It creates that board a third time.",
          "fact": "same occupancy · third visit",
          "progress": 0.25,
          "asset": "assets/trajectories/color_recreate-023-post.webp",
          "source": "gpt-5.6-sol-medium/color_connect/hard/trajectories/run_001/color_connect.hard.level_01.seed_0/post_screenshots/color_connect.hard.level_01.seed_0-0-23.png",
          "source_sha256": "e485f86d53b1efb0104afed35429f7d8e12e36fde46c0b4a0bc050b9147cad43",
          "overlays": [
            {
              "x": 60,
              "y": 33,
              "width": 8,
              "height": 8,
              "label": "same blocker again",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: Complete the red path across row 3 to the matching coral endpoint.",
          "executed_action": {
            "action_type": "click",
            "x": 243,
            "y": 694
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        }
      ]
    },
    "maze_recover": {
      "label": "Re-localizes",
      "tone": "success",
      "run": "gpt-5.6-terra-high",
      "episode_id": "maze_paint.hard.level_01.seed_0.run_001",
      "success": true,
      "termination": "success",
      "steps": 35,
      "frames": [
        {
          "step": 31,
          "kind": "post",
          "description": "One cell remains; the ball rests on row 10, column 2.",
          "fact": "matched state · 44 of 45 cells",
          "progress": 0.9773,
          "asset": "assets/trajectories/maze_recover-031-post.webp",
          "source": "gpt-5.6-terra-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-31.png",
          "source_sha256": "0a0d8009189c8d6e5ca87ed128207cf407f1fb080055ed99ed8ecb32395ac3aa",
          "overlays": [
            {
              "x": 43,
              "y": 69,
              "width": 9,
              "height": 9,
              "label": "last cell",
              "tone": "danger"
            },
            {
              "x": 7,
              "y": 75,
              "width": 9,
              "height": 9,
              "label": "ball",
              "tone": "note"
            }
          ],
          "recorded_output": "Thought: 向下会覆盖左侧底部第一个未涂蓝格并滑到底边。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "down"
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 32,
          "kind": "post",
          "description": "The ball moves right along row 10.",
          "fact": "actual position: row 10, column 7",
          "progress": 0.9773,
          "asset": "assets/trajectories/maze_recover-032-post.webp",
          "source": "gpt-5.6-terra-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-32.png",
          "source_sha256": "f49d9ea528f203d37a73d67c5bad8d814bdec0952b3fba4f4cd19afc1f53dc01",
          "overlays": [
            {
              "x": 43,
              "y": 69,
              "width": 9,
              "height": 9,
              "label": "target one row up",
              "tone": "danger"
            },
            {
              "x": 85,
              "y": 75,
              "width": 9,
              "height": 9,
              "label": "ball",
              "tone": "note"
            }
          ],
          "recorded_output": "Thought: 仅剩中下方一个未涂蓝格；先沿底边向右滑到右侧竖直通道。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "right"
          },
          "public_feedback": {
            "status": "returned_to_recent_screen",
            "message": null
          }
        },
        {
          "step": 33,
          "kind": "post",
          "description": "It moves up to a stopping corridor.",
          "fact": "route changes rows",
          "progress": 0.9773,
          "asset": "assets/trajectories/maze_recover-033-post.webp",
          "source": "gpt-5.6-terra-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-33.png",
          "source_sha256": "b5905101d4133dca5ea61936c27fcb9e5c73d62289b9562e6497ef4757bd1a98",
          "overlays": [
            {
              "x": 85,
              "y": 61,
              "width": 9,
              "height": 9,
              "label": "ball",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 先从右下角向上停在中下横道右端。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "up"
          },
          "public_feedback": {
            "status": "returned_to_recent_screen",
            "message": null
          }
        },
        {
          "step": 34,
          "kind": "post",
          "description": "It slides left until aligned above the cell.",
          "fact": "column aligned",
          "progress": 0.9773,
          "asset": "assets/trajectories/maze_recover-034-post.webp",
          "source": "gpt-5.6-terra-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-34.png",
          "source_sha256": "d04858c48f2019e496b1bf1d326bece55192204f62aa35ad6f0d994a498e488f",
          "overlays": [
            {
              "x": 43,
              "y": 61,
              "width": 9,
              "height": 9,
              "label": "ball",
              "tone": "good"
            },
            {
              "x": 43,
              "y": 69,
              "width": 9,
              "height": 9,
              "label": "target",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: 向左滑到中下横道的左端，正好对准最后的蓝色方格。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "left"
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 35,
          "kind": "post",
          "description": "A downward slide crosses the final cell.",
          "fact": "success",
          "progress": 1.0,
          "asset": "assets/trajectories/maze_recover-035-post.webp",
          "source": "gpt-5.6-terra-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-35.png",
          "source_sha256": "b11c3adbf1735fab85fec3e5a5e16d4acea0c01ec40ada61bf21fa437e879632",
          "overlays": [
            {
              "x": 43,
              "y": 69,
              "width": 9,
              "height": 9,
              "label": "painted",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 向下经过最后一个蓝色未涂方格，完成全图覆盖。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "down"
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        }
      ]
    },
    "maze_stale": {
      "label": "Keeps the wrong row",
      "tone": "failure",
      "run": "kimi-k3-high",
      "episode_id": "maze_paint.hard.level_01.seed_0.run_001",
      "success": false,
      "termination": "no_progress",
      "steps": 41,
      "frames": [
        {
          "step": 33,
          "kind": "post",
          "description": "The exact same one-cell-short state.",
          "fact": "matched state · 44 of 45 cells",
          "progress": 0.9773,
          "asset": "assets/trajectories/maze_stale-033-post.webp",
          "source": "kimi-k3-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-33.png",
          "source_sha256": "0a0d8009189c8d6e5ca87ed128207cf407f1fb080055ed99ed8ecb32395ac3aa",
          "overlays": [
            {
              "x": 43,
              "y": 69,
              "width": 9,
              "height": 9,
              "label": "last cell",
              "tone": "danger"
            },
            {
              "x": 7,
              "y": 75,
              "width": 9,
              "height": 9,
              "label": "ball",
              "tone": "note"
            }
          ],
          "recorded_output": "Thought: 小球在 r6c2，左滑已多次无效，说明不能直接补 r6c1。改向下推进底部：从 r6c2 向下滑到 r9c2，涂 r9c2，再处理 r9c4。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "down"
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 34,
          "kind": "post",
          "description": "The note places the ball one row too high.",
          "fact": "actual row 10 · claimed row 9",
          "progress": 0.9773,
          "asset": "assets/trajectories/maze_stale-034-post.webp",
          "source": "kimi-k3-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-34.png",
          "source_sha256": "f49d9ea528f203d37a73d67c5bad8d814bdec0952b3fba4f4cd19afc1f53dc01",
          "overlays": [
            {
              "x": 43,
              "y": 69,
              "width": 9,
              "height": 9,
              "label": "claimed path",
              "tone": "danger"
            },
            {
              "x": 85,
              "y": 75,
              "width": 9,
              "height": 9,
              "label": "actual ball",
              "tone": "warning"
            }
          ],
          "recorded_output": "Thought: 小球在 r9c2，r9c4 仍深蓝。直接向右滑到 r9c4，涂 r9c3 与 r9c4，随后再处理最后的 r6c1。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "right"
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 35,
          "kind": "post",
          "description": "It reverses along the bottom row.",
          "fact": "painted mask unchanged",
          "progress": 0.9773,
          "asset": "assets/trajectories/maze_stale-035-post.webp",
          "source": "kimi-k3-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-35.png",
          "source_sha256": "10100799e0120b695f272a3877622ddddc0def72707922b69adaf051ca4b4b9b",
          "overlays": [
            {
              "x": 7,
              "y": 75,
              "width": 87,
              "height": 7,
              "label": "motion on row 10",
              "tone": "warning"
            },
            {
              "x": 43,
              "y": 69,
              "width": 9,
              "height": 9,
              "label": "target on row 9",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: 小球在 r9c7，向上滑会沿 c7 到 r8c7（已过），左滑可到底排左端。为处理剩余 r6c1 与 r9c4，先向左滑到 r9c1，再利用左下竖段回到上方。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "left"
          },
          "public_feedback": {
            "status": "returned_to_recent_screen",
            "message": null
          }
        },
        {
          "step": 37,
          "kind": "post",
          "description": "A cycle warning arrives; the row belief survives.",
          "fact": "same target belief · no coverage gain",
          "progress": 0.9773,
          "asset": "assets/trajectories/maze_stale-037-post.webp",
          "source": "kimi-k3-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-37.png",
          "source_sha256": "f49d9ea528f203d37a73d67c5bad8d814bdec0952b3fba4f4cd19afc1f53dc01",
          "overlays": [
            {
              "x": 7,
              "y": 75,
              "width": 87,
              "height": 7,
              "label": "same corridor",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: 小球仍在 r9c1，向上滑未能生效；改为向右滑到 r9c4，正好补涂底行剩余的 r9c4，再继续处理最后的 r6c1。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "right"
          },
          "public_feedback": {
            "status": "repeating_visual_cycle",
            "message": "Recent interactions returned the interface to a previously observed visual state. Reassess the fresh screenshot and choose another visible target unless repetition is intentionally required."
          }
        },
        {
          "step": 40,
          "kind": "post",
          "description": "The ball is still touring row 10.",
          "fact": "97.8% · one cell still dark",
          "progress": 0.9773,
          "asset": "assets/trajectories/maze_stale-040-post.webp",
          "source": "kimi-k3-high/maze_paint/hard/trajectories/run_001/maze_paint.hard.level_01.seed_0/post_screenshots/maze_paint.hard.level_01.seed_0-0-40.png",
          "source_sha256": "10100799e0120b695f272a3877622ddddc0def72707922b69adaf051ca4b4b9b",
          "overlays": [
            {
              "x": 43,
              "y": 69,
              "width": 9,
              "height": 9,
              "label": "still unpainted",
              "tone": "danger"
            },
            {
              "x": 7,
              "y": 75,
              "width": 9,
              "height": 9,
              "label": "ball",
              "tone": "warning"
            }
          ],
          "recorded_output": "Thought: 小球在 r9c7。剩余未涂是 r6c1 与 r9c4；先向左滑到 r9c4，直接补涂底行 r9c4，再回到左端处理 r6c1。",
          "executed_action": {
            "action_type": "swipe",
            "direction": "left"
          },
          "public_feedback": {
            "status": "repeating_visual_cycle",
            "message": "Recent interactions returned the interface to a previously observed visual state. Reassess the fresh screenshot and choose another visible target unless repetition is intentionally required."
          }
        }
      ]
    },
    "rush_grouped": {
      "label": "One articulated target",
      "tone": "success",
      "run": "gpt-5.6-sol-low",
      "episode_id": "rush_hour_2.medium.level_03.seed_0.run_001",
      "success": true,
      "termination": "success",
      "steps": 3,
      "frames": [
        {
          "step": 1,
          "kind": "pre",
          "description": "The board contains one articulated horizontal target.",
          "fact": "game state: one vehicle · one motion axis",
          "progress": 0.0,
          "asset": "assets/trajectories/rush_grouped-001-pre.webp",
          "source": "gpt-5.6-sol-low/rush_hour_2/medium/trajectories/run_001/rush_hour_2.medium.level_03.seed_0/screenshots/rush_hour_2.medium.level_03.seed_0-0-1.png",
          "source_sha256": "dcae3a03ee2792fe4d24903e7632a4d5306e75b97c1204f499947e69b23b5413",
          "overlays": [
            {
              "x": 9,
              "y": 33,
              "width": 25,
              "height": 10,
              "label": "one target vehicle",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 紫色竖车挡住红车所在横道，其下方同列一直到棋盘底部都有足够空间；先将它沿长轴向下拖到底，清空出口通道。",
          "executed_action": {
            "action_type": "drag",
            "end_x": 540,
            "end_y": 1250,
            "start_x": 540,
            "start_y": 730
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 1,
          "kind": "post",
          "description": "The first real blocker moves down.",
          "fact": "target unchanged",
          "progress": 0.07,
          "asset": "assets/trajectories/rush_grouped-001-post.webp",
          "source": "gpt-5.6-sol-low/rush_hour_2/medium/trajectories/run_001/rush_hour_2.medium.level_03.seed_0/post_screenshots/rush_hour_2.medium.level_03.seed_0-0-1.png",
          "source_sha256": "2aa936dbfc4f0e9f44bdce00cc900bb5ad22eb4e8f050199c5a469aef9ce5356",
          "overlays": [
            {
              "x": 9,
              "y": 33,
              "width": 25,
              "height": 10,
              "label": "target",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 紫色竖车挡住红车所在横道，其下方同列一直到棋盘底部都有足够空间；先将它沿长轴向下拖到底，清空出口通道。",
          "executed_action": {
            "action_type": "drag",
            "end_x": 540,
            "end_y": 1250,
            "start_x": 540,
            "start_y": 730
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 2,
          "kind": "post",
          "description": "The second real blocker moves up.",
          "fact": "exit row clear",
          "progress": 0.4067,
          "asset": "assets/trajectories/rush_grouped-002-post.webp",
          "source": "gpt-5.6-sol-low/rush_hour_2/medium/trajectories/run_001/rush_hour_2.medium.level_03.seed_0/post_screenshots/rush_hour_2.medium.level_03.seed_0-0-2.png",
          "source_sha256": "35df587624663260095564acd93dd09634c76cd8707b487ba10202b1c4ac0181",
          "overlays": [
            {
              "x": 9,
              "y": 33,
              "width": 25,
              "height": 10,
              "label": "horizontal route",
              "tone": "good"
            }
          ],
          "recorded_output": "Thought: 紫车已成功下移；现在出口前只剩右侧蓝色竖车阻挡红车横道，将它沿长轴上移到棋盘顶部即可清空整条路线。",
          "executed_action": {
            "action_type": "drag",
            "end_x": 925,
            "end_y": 505,
            "start_x": 925,
            "start_y": 665
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        },
        {
          "step": 3,
          "kind": "post",
          "description": "The target exits along its long axis.",
          "fact": "success in 3 actions",
          "progress": 1.0,
          "asset": "assets/trajectories/rush_grouped-003-post.webp",
          "source": "gpt-5.6-sol-low/rush_hour_2/medium/trajectories/run_001/rush_hour_2.medium.level_03.seed_0/post_screenshots/rush_hour_2.medium.level_03.seed_0-0-3.png",
          "source_sha256": "9189282c65c3302914de7f4e6de0ad5c9f1ef0d6d9d4c84bc3ebc09d8e2c4b06",
          "overlays": [],
          "recorded_output": "Thought: 红车到右侧出口的整条横向通道已经畅通，直接将红车沿长轴向右拖出棋盘。",
          "executed_action": {
            "action_type": "drag",
            "end_x": 1040,
            "end_y": 730,
            "start_x": 220,
            "start_y": 730
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        }
      ]
    },
    "rush_split": {
      "label": "Imagined vertical fragment",
      "tone": "failure",
      "run": "gpt-5.6-terra-low",
      "episode_id": "rush_hour_2.medium.level_03.seed_0.run_001",
      "success": true,
      "termination": "success",
      "steps": 6,
      "frames": [
        {
          "step": 1,
          "kind": "pre",
          "description": "The same sprite is split into a body and a ‘small red vertical car.’",
          "fact": "one sprite described as two vehicles",
          "progress": 0.0,
          "asset": "assets/trajectories/rush_split-001-pre.webp",
          "source": "gpt-5.6-terra-low/rush_hour_2/medium/trajectories/run_001/rush_hour_2.medium.level_03.seed_0/screenshots/rush_hour_2.medium.level_03.seed_0-0-1.png",
          "source_sha256": "dcae3a03ee2792fe4d24903e7632a4d5306e75b97c1204f499947e69b23b5413",
          "overlays": [
            {
              "x": 9,
              "y": 33,
              "width": 16,
              "height": 10,
              "label": "main car",
              "tone": "note"
            },
            {
              "x": 23,
              "y": 33,
              "width": 11,
              "height": 10,
              "label": "imagined car",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: Move the small red vertical vehicle above the target upward to clear the target row.",
          "executed_action": {
            "action_type": "drag",
            "end_x": 292,
            "end_y": 602,
            "start_x": 292,
            "start_y": 731
          },
          "public_feedback": {
            "status": "no_visible_effect",
            "message": null
          }
        },
        {
          "step": 1,
          "kind": "post",
          "description": "The imagined fragment is dragged upward.",
          "fact": "no visible effect",
          "progress": 0.0,
          "asset": "assets/trajectories/rush_split-001-post.webp",
          "source": "gpt-5.6-terra-low/rush_hour_2/medium/trajectories/run_001/rush_hour_2.medium.level_03.seed_0/post_screenshots/rush_hour_2.medium.level_03.seed_0-0-1.png",
          "source_sha256": "dcae3a03ee2792fe4d24903e7632a4d5306e75b97c1204f499947e69b23b5413",
          "overlays": [
            {
              "x": 23,
              "y": 33,
              "width": 11,
              "height": 10,
              "label": "not independent",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: Move the small red vertical vehicle above the target upward to clear the target row.",
          "executed_action": {
            "action_type": "drag",
            "end_x": 292,
            "end_y": 602,
            "start_x": 292,
            "start_y": 731
          },
          "public_feedback": {
            "status": "no_visible_effect",
            "message": null
          }
        },
        {
          "step": 3,
          "kind": "post",
          "description": "After moving a real blocker, it tries the fragment again.",
          "fact": "second no-effect fragment move",
          "progress": 0.0,
          "asset": "assets/trajectories/rush_split-003-post.webp",
          "source": "gpt-5.6-terra-low/rush_hour_2/medium/trajectories/run_001/rush_hour_2.medium.level_03.seed_0/post_screenshots/rush_hour_2.medium.level_03.seed_0-0-3.png",
          "source_sha256": "e48521a89278fa6438763af1942b7d4d5266c75b37bc6342cfb644dbf954fbe9",
          "overlays": [
            {
              "x": 23,
              "y": 33,
              "width": 11,
              "height": 10,
              "label": "same false object",
              "tone": "danger"
            }
          ],
          "recorded_output": "Thought: The small red vertical car now has open vertical space above, so move it upward out of the target car’s path.",
          "executed_action": {
            "action_type": "drag",
            "end_x": 292,
            "end_y": 600,
            "start_x": 292,
            "start_y": 730
          },
          "public_feedback": {
            "status": "no_visible_effect",
            "message": null
          }
        },
        {
          "step": 6,
          "kind": "post",
          "description": "This run later abandons the fragment model.",
          "fact": "recovered after reclassification",
          "progress": 1.0,
          "asset": "assets/trajectories/rush_split-006-post.webp",
          "source": "gpt-5.6-terra-low/rush_hour_2/medium/trajectories/run_001/rush_hour_2.medium.level_03.seed_0/post_screenshots/rush_hour_2.medium.level_03.seed_0-0-6.png",
          "source_sha256": "cc2e89123d91df8a6d26db75ab11887226819115a394330a4eb7dafb7ddd67c1",
          "overlays": [],
          "recorded_output": "Thought: The row to the exit is now clear; drag the red target vehicle straight right through the exit.",
          "executed_action": {
            "action_type": "drag",
            "end_x": 1050,
            "end_y": 730,
            "start_x": 177,
            "start_y": 730
          },
          "public_feedback": {
            "status": "screen_changed",
            "message": null
          }
        }
      ]
    }
  }
}
