参考

排错与隐私

先确定问题属于配置同步、本机事件还是远程送达,再检查对应层;不要用后一层失败推断前一层没有工作。

iPhone ↔ Watch

同步按钮不可用或显示失败

  • 确认 iPhone 与 Watch 已配对,并安装当前版本的 bluebell。
  • 让两端 App 处于可达状态;“已配对”不表示 WCSession.isReachable 当前为 true。
  • 点击首页圆形双箭头刷新当前连接状态;它不会发送配置。
  • 再次点击“同步”,等待 Watch 完成持久化并返回匹配 source/revision 回执。
  • 超时或失败后不要连续狂点;先确认 Watch App 活跃,再重试。

Reminder 修改和会影响 Reminder 的 Flow 保存是自动发布例外;普通训练参数仍通过首页手动同步。

Apple Watch

震动中断、时间冻结或 Double Tap 无响应

  • 按 Crown、切换 App、系统资源限制或 runtime 到期都可能让活动冻结为暂停。
  • 继续时不会补播已经发生或错过的震动;需要从冻结的精确剩余时间继续。
  • 震动的感受和可辨识度必须在真实 Watch 上判断,模拟器没有物理等价物。
  • Double Tap 需要支持机型、watchOS 11+、唤醒解锁状态和当前页面的主操作。

查看 Double Tap 完整排错 →

本机链路

bluebellctl 没有出现在最近提醒

  1. 先看帮助。
    Terminal
    '/Applications/bluebellMac.app/Contents/Helpers/bluebellctl' --help
  2. 确认 bluebell Mac 正在运行。

    CLI 不自动打开客户端。

  3. 重新从客户端复制 CLI 路径。

    App 移动或改名后旧 hook 路径会失效。

  4. 运行 --local 测试。

    退出 2 表示参数、JSON 或 IPC 问题;退出 4 表示客户端拒绝。

高级诊断:本机 socket 位于 ~/Library/Application Support/Bluebell/EventHub.sock。目录权限应为 0700,socket 与 state 为 0600;单条输入上限 64 KiB。

CloudKit 与系统通知

Mac 有历史,但 Watch 没有通知

  1. 确认事件不是通过 --local 发送。
  2. 确认 Mac 的“推送到 Watch 和 iPhone”总开关已开启;关闭期间的事件不会在重开后补发。
  3. 分别查看“本机接入”“iCloud”“发送队列”。iCloud 可用不代表记录已写入。
  4. 若有重试卡,按结构化提示检查 CloudKit 环境、Schema、索引、Entitlements 与当前构建。
  5. 确认 iPhone/Watch 使用同一 iCloud 账号和同一 Development/Production 环境,并完成系统通知授权。

最小必要数据

Agent 事件上传哪些字段

会上传只保存在 Mac
schemaVersion、eventID、来源、completed 类型、项目显示名、短摘要/通知正文、发生时间、随机生成的 originDeviceID完整工作区路径、session/turn、dedupeKey、原始 payload、工具回调内容
用户自己填写的项目名或摘要可能包含敏感内容prompt、源码、完整 transcript 不属于自动上传字段

iPad 配置同步还会上传训练参数、Flow 定义和名称、提醒与本机通知偏好的完整快照,存于独立的私人云记录。bluebell 不承诺自动脱敏。适配脚本应只传递设备上需要展示的信息,并避免把 assistant message、完整路径或原始工具 JSON 放入摘要。