If you’re an LLM/agent working in this repo, start here.
Microverse is a SwiftUI menu bar system monitor for macOS (Battery/CPU/Memory) with:
- Smart Notch UI (DynamicNotchKit)
- Notch Glow Alerts (battery event animations around the notch pill)
- Sparkle-based auto-updates driven by GitHub Releases + a signed appcast on GitHub Pages
- Notch + glow behavior:
docs/NOTCH_FEATURES.md - Wi‑Fi + Audio + AirPods battery:
docs/WIFI_AUDIO_FEATURES.md - Weather locations + current location + alerts:
docs/WEATHER_LOCATIONS_AND_ALERTS.md - Sparkle + appcast pipeline:
docs/SPARKLE_AUTO_UPDATE_SYSTEM.md - Website (GitHub Pages from
main:/docs):docs/README.md,docs/DEPLOYMENT.md - Review/release playbook (v0.7.0 example):
plans/v0-7-0-weather-review-release-roadmap/PLAN.md - Contributing standards:
CONTRIBUTING.md
Use the Makefile:
make install-debug(best for local iteration)make install(release-like behavior)make app/make debug-appto create/tmp/Microverse.app
Notes:
- Running the raw SwiftPM executable won’t behave like a bundled app (icons/framework rpaths). Prefer the Makefile bundle targets.
The glow is rendered inside DynamicNotchKit’s SwiftUI tree via a vendored patch in Packages/DynamicNotchKit.
Rationale:
- DynamicNotchKit applies SwiftUI transforms (e.g.
.offset) to its pill; those transforms do not change layout, so external “measure + overlay window” approaches drift.
If you touch notch/glow behavior:
- Prefer staying in-tree (decoration overlay).
- Treat external overlay windows as a fallback only (e.g. notch UI disabled).
- Merge to
main - Ensure
Build and Release Microverseworkflow succeeds - Verify:
- GitHub Release assets exist
https://microverse.ashwch.com/appcast.xmlpoints to the latest zip and hassparkle:edSignaturehttps://microverse.ashwch.com/Microverse-vX.Y.Z.htmlexists
- Trigger rules:
Sources/Microverse/BatteryViewModel.swift(checkAndTriggerAlerts()) - Wi‑Fi store:
Sources/Microverse/Network/WiFiStore.swift - Network throughput store:
Sources/Microverse/Network/NetworkStore.swift - Audio routing store:
Sources/Microverse/Audio/AudioDevicesStore.swift - AirPods BLE battery store:
Sources/Microverse/Audio/AirPodsBatteryStore.swift - Weather alert scheduling:
Sources/Microverse/Weather/WeatherAlertEngine.swift - Weather current location:
Sources/Microverse/Weather/WeatherCurrentLocationController.swift - Glow renderer:
Sources/Microverse/NotchGlowManager.swift(NotchGlowView) - In-notch routing:
Sources/Microverse/NotchGlowInNotch.swift - DynamicNotchKit patch points:
Packages/DynamicNotchKit/Sources/DynamicNotchKit/DynamicNotch/DynamicNotch.swiftPackages/DynamicNotchKit/Sources/DynamicNotchKit/Views/NotchView.swift