Skip to content

恢复 Bundle 更新并让 macOS 通知可验证 - #6

Merged
z2z23n0 merged 5 commits into
mainfrom
fix/restore-bundle-updates-and-native-notifications
Jul 18, 2026
Merged

恢复 Bundle 更新并让 macOS 通知可验证#6
z2z23n0 merged 5 commits into
mainfrom
fix/restore-bundle-updates-and-native-notifications

Conversation

@z2z23n0

@z2z23n0 z2z23n0 commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Mainline Intent

Intent: int_0739333c
Status: proposed
Title: 恢复 Bundle 更新并让 macOS 通知可验证

What changed

恢复 selected bundle lifecycle 与内置 __bundle-driver,使 Git commit 可作为精确 Artifact 版本;新增安装在 ~/Applications 的原生 ToolTend Notifier,安装器和自更新会维护该 App,reconcile 与 watchdog 使用稳定身份发送通知,doctor 检查安装和授权状态。

Why

当前运行二进制缺失未合入主线的 Bundle 生命周期实现,导致 8 个本地 Recipe 返回的 git: 被当成语义版本拒绝;裸 osascript 虽把通知写入系统数据库,但记录 presented=0,且发送错误被忽略。

Decisions

  • 如何消除当前 ToolTend 与旧独立 Bundle 驱动的版本错配: 恢复完整 Bundle 生命周期实现并把驱动内置为 tooltend __bundle-driver (单一安装产物可让 Recipe、服务端版本规则和驱动行为随同一提交升级。)
    • Rejected: 继续依赖遗留的 tooltend-bundle-driver 二进制
  • Artifact resolver 可以返回哪些精确版本: 同时接受严格语义版本和 git:<40位十六进制提交> (Skill 与仓库型 Artifact 需要不可变 Git commit,符号分支仍被拒绝。)
  • macOS 通知使用什么应用身份: 在 ~/Applications 安装使用 UserNotifications 的原生 ToolTend Notifier.app (标准应用路径、稳定 bundle ID 和现代通知 API 能获得独立授权,并把权限拒绝作为非零错误返回。)
    • Rejected: 继续借用 Script Editor 的 osascript 通知身份
    • Rejected: 使用退出后 presented=0 的 AppleScript Applet
  • 同日已终态失败的任务如何恢复: 保留每日幂等和失败可见语义,通过受支持的 bundles configure 重新确认原策略生成新任务键 (避免直接修改 SQLite,也不让 launchd 在同一窗口无上限重复失败和弹窗。)

Subsystems: README.md, bundle, bundledriver, cli, config, doctor, install.sh, model, notify, reconcile, scheduler, scripts, store, watchdog

@z2z23n0
z2z23n0 marked this pull request as ready for review July 18, 2026 11:47
@z2z23n0
z2z23n0 merged commit c22d10c into main Jul 18, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant