文件与行号
internal/tool/desktop_control_darwin.go:231-240(typeText,随 da94e2e 挪动过行号,内容未变)
问题描述
转义只处理 \\ 和 "(L235-236),但生成的 Swift 源码用单行双引号字面量 let text = "%s"(L239)。text 含换行/Tab/回车等控制字符时,Swift 源码出现裸控制字符 → swift -e 编译失败 → 整个 type 动作失败。
触发场景
desktop_control {action:"type", text:"line1\nline2"}(多行文本输入是最常见用例)。已在 macOS 实测:
- 裸换行 →
error: unterminated string literal
- 裸 Tab →
error: unprintable ASCII character found in source file
两者均编译失败,无回退路径。同文件 L668 附近第二处相同转义逻辑(keyCombo/keys 路径)同样遗漏。
预期行为 vs 实际行为
- 预期:type 动作可输入多行文本
- 实际:任何含控制字符的输入 100% 失败(确定性编译错误)
修复建议
补 \n→\\n、\r→\\r、\t→\\t;或对全部 rune < 0x20 输出 \u{XX} 转义。
严重程度
Medium(经独立 subagent 复核并在本机 swift 工具链实测复现编译失败)
文件与行号
internal/tool/desktop_control_darwin.go:231-240(typeText,随 da94e2e 挪动过行号,内容未变)问题描述
转义只处理
\\和"(L235-236),但生成的 Swift 源码用单行双引号字面量let text = "%s"(L239)。text 含换行/Tab/回车等控制字符时,Swift 源码出现裸控制字符 →swift -e编译失败 → 整个 type 动作失败。触发场景
desktop_control {action:"type", text:"line1\nline2"}(多行文本输入是最常见用例)。已在 macOS 实测:error: unterminated string literalerror: unprintable ASCII character found in source file两者均编译失败,无回退路径。同文件 L668 附近第二处相同转义逻辑(keyCombo/keys 路径)同样遗漏。
预期行为 vs 实际行为
修复建议
补
\n→\\n、\r→\\r、\t→\\t;或对全部 rune< 0x20输出\u{XX}转义。严重程度
Medium(经独立 subagent 复核并在本机 swift 工具链实测复现编译失败)