用途:诊断 macOS 备忘录(Notes)或提醒事项(Reminders)自动化失败,并在恢复或重试前核验投递回执。核心是区分三类事实:提供方实时可达性、持久投递状态、以及实际条目回读。应用进程存在、界面响应或账号查询成功,都不足以证明某条笔记或提醒已投递。
主要能力:提供只读探测脚本,发送有界 AppleScript 查询并输出安全状态码。用法:在本技能目录下运行 python3 scripts/probe_providers.py --apps notes reminders --output <new-private-receipt.json>。该脚本可能启动应用或弹出 macOS 自动化授权提示,但不会创建笔记/提醒,也不更改权限。
使用方式:先确认真实调用方可执行文件、launchd 归属、目标账号/文件夹/列表及已有投递台账;若结果不同,需在等价的已安装调用方上下文中复测。仅加载环境变量无法复现其自动化身份。对未完成的效果,读取其原始目标中已有的标记/提供方 ID,并比对存储的载荷身份;保留成功、失败上限、不确定和隔离历史。标记缺失不等于投递回执,不同账号或文件夹可能造成假性缺失。未经授权,不要向个人数据写入测试条目。
恢复策略:根据实测失败类型选择恢复。permission_denied(-1743)应检查实际调用方的自动化授权;进程超时或 Apple 事件超时(-1712)不是权限被拒的证据,未应答的隐私提示也可能表现为进程超时。提醒事项除自动化外还有独立的“隐私与安全性 > 提醒事项”数据授权,需检查实际责任调用方(终端、Python、SSH 或运行器)。名称/版本查询成功不能证明列表/数据访问成功。用户更改授权后应重新检查新请求,旧的待处理调用可能仍被阻止。不要未经具体授权扩大数据访问。
限制:在本机 SIP 下,受保护的系统 Apple Events kickstart 即使 sudo 认证后也会以 error150 被拒绝;不要建议关闭 SIP、重置 TCC 或杀死受保护守护进程来绕过。普通 Mac 重启可作为持续传输故障的候选措施,但需协调共享 ASR 任务和其他活动工作,且并非已验证的修复。仅在调用方权限、确切目标、载荷身份、缺失/存在、幂等策略和现有任务授权都支持时,才重试特定效果;不得仅为让就绪状态变绿而重置重试上限或不确定/隔离行。GUI 检查时,原生 computer-use 辅助功能可能可用,而 AppleScript System Events 枚举可能挂起;Peekaboo 本地二进制、Bridge 主机和 CUA 权限相互独立,需先检查其实际执行路径。恢复后应使用相同有界探测验证可达性,只有目标条目与持久回执一致时才关闭投递。不要将一次成功探测推广为永久 macOS 可靠性。