Skip to content

[code-review] desktop_control findAndClick 点击第 N 个匹配却报告 matches[0] 的 label — 反馈与实际操作对象不一致 #179

Description

@topcheer

文件与行号

internal/tool/desktop_control_darwin.go:539-551(findAndClick 匹配循环,matches[0].Label 在 L548)

问题描述

循环变量 m 是实际被点击的第一个有有效 Frame 的匹配项,但返回文案用 matches[0].Label(第一个匹配项的 label——可能正是因无 Frame 被跳过的那个)+ m.Frame 的坐标。

触发场景

find_and_click "OK" 返回两个元素:第一个 frame 为 null(被跳过),第二个正常(被点击)→ 返回文案报告第一个的 label 和第二个的坐标,自相矛盾。依赖此反馈做后续决策的 LLM 可能重复操作或误判。

预期行为 vs 实际行为

  • 预期:报告实际点击元素的 label 与坐标
  • 实际:label 取 matches[0],坐标取被点击的 m,可能不一致

修复建议

返回文案中 matches[0].Label 改为 m.Label

严重程度

Low(经独立 subagent 复核确认为循环变量误用;不影响控制流,只影响反馈准确性)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions