Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 09 May 03:43
v1.0.0
cf5b03a

🎉 BarKeeper v1.0.0

The first major release of BarKeeper. This version ships three features and squashes a notable bug in the Settings dialog.

✨ New Features

📋 Feed Resource Type

A new read-only resource type that runs a script, parses its JSON output, and displays results as an expandable list directly in your menu bar popup.

  • Click the refresh button to run the script on demand (feed resources are manual-refresh only — they don't participate in the automatic polling loop)
  • A green badge shows how many items are new (isNew: true)
  • Supports an optional title, timestamp (checkedAt), and item subtitles/details (shown as tooltips on hover)
  • Renders up to 20 items; overflow is summarised as "… + N more"
  • Tolerates noisy login-shell output (Homebrew nags, nvm, direnv) — BarKeeper extracts the last top-level {…} block from stdout, so your script doesn't need to suppress shell chatter
  • Includes a full FeedPayload JSON schema and a sample script in docs/sample-feed-script.sh

Built-in highlight: includes a new embedded foundry-check CLI tool (by @LaetitiaMa1410) that reports Microsoft Foundry model availability by region — ready to use as a Feed resource out of the box.

⚠️ Critical Actions

Button resources can now be marked as Critical. When enabled, clicking the button shows a system-level macOS confirmation dialog before the script runs — perfect for destructive or irreversible operations like deleting resources or force-pushing.

  • Toggle the "Critical Action" option per-resource in the Settings editor
  • Uses a native NSAlert that appears centered on screen, independent of the menu bar popover
  • Defaults to false; existing configs are unaffected

🔔 macOS Notification Center Integration

BarKeeper now sends native macOS notification banners when actions complete or fail — so you always know the outcome even if you've switched to another app.

  • Notifications fire on toggle on/off, button actions, and feed refreshes (success ✅ and error ❌)
  • Per-user opt-out: a new "Enable Notification Center alerts" toggle in Settings → Notifications persists your preference to disk
  • Existing configs automatically opt-in on upgrade (no migration needed)
  • Implemented via a clean, injectable NotificationService class — documented in docs/notification-service.md

🐛 Bug Fixes

Settings Dialog Stability (#16)

Fixed two related bugs in the Settings dialog:

  1. Editing a resource while a task was in-flight caused UI flicker and orphaned async tasks — because updateResource() was replacing the entire ResourceState object, resetting isLoading/lastError and losing the reference held by running tasks. Now the resource property is updated in-place, preserving all runtime state.
  2. Switching resources in the sidebar did not refresh the editor panel — SwiftUI reused the same view and .onAppear did not re-fire. Fixed by adding .id(state.id) to force a proper view refresh on selection change.

👥 Contributors

  • @LaetitiaMa1410 — Feed resource type & foundry-check CLI integration (first contribution! 🎉)
  • @abeckDev — Critical Actions, resource state bug fix
  • @Copilot — Notification Center integration

📦 Installation

Download BarKeeper.dmg from this release, open it, and drag BarKeeper.app into your Applications folder. The app is signed and notarized — Gatekeeper will allow it without extra steps.

Full Changelog: v0.1.2...v1.0.0

Checksums (SHA256)

  • DMG: 3b2510a24b29b48ec54528d11372eb9a92e7bebe727a958c0fdc651efcb778a9
  • ZIP: 1993018fab23c95352ed28cc2adf8b44f5008ce4b13b8b293a313c74d613f0d6

New Contributors

Full Changelog: v0.1.2...v1.0.0