Alarm push notifications on your phone, one-click extension updates, and a leaner idle node
v0.1.60
•Platform
Features
Alarms: opt-in push notifications on your phone. Turn on Alarm notifications on this phone in the mobile app, mark the alarms you care about with the new Push notifications setting (in the Add Alarm dialog, or the Push toggle on an existing alarm row), and an alarm that becomes active arrives as a notification even with the app closed. Acknowledging, clearing, shelving or disabling the alarm withdraws the notification, and tapping it opens Active Alarms at that alarm. A Send test notification button confirms the setup. Delivery uses standard Web Push straight to your phone's browser vendor, with no third-party relay, and needs the Push Notifications extension from the catalog.
Extensions: the Extensions app now shows which installed extensions have a newer version, with an Update button per extension and Update all for the whole Installed section. An update that needs a newer ControlBird version than the one running is shown but disabled, with the version it needs.
Shell (Community Edition): the claude, codex and opencode command-line assistants are no longer built into the Community Edition image. Install the ones you want from the catalog (Claude Code, Codex, OpenCode) and they appear in the Shell app as before. The image is about 640 MB smaller.
Performance
Idle CPU: background work is much cheaper when nothing is changing. Alarm sweeps reuse their lookups instead of repeating them, program execution bookkeeping is batched and skips values that did not change, the periodic service status check runs as a single batch, service connections cache name lookups, and bursts of small writes share one disk sync instead of one each.
Bug Fixes
Calendar: the Calendar app now refreshes on its own when an event is created, deleted or changed by something other than you, such as an extension resyncing its events or another session editing them, instead of staying stale until the next occurrence fired or the app was reopened. If you have unsaved edits to the event that changed, the app keeps your draft and shows a notice with a Discard action rather than overwriting it.