Skip to content

feat: chipbar v0.1 (CPU/GPU/RAM menu-bar monitor) - #1

Merged
ihororlovskyi merged 20 commits into
mainfrom
v0.1
May 16, 2026
Merged

feat: chipbar v0.1 (CPU/GPU/RAM menu-bar monitor)#1
ihororlovskyi merged 20 commits into
mainfrom
v0.1

Conversation

@ihororlovskyi

Copy link
Copy Markdown
Owner

Summary

  • Initial v0.1 of ChipBar: tiny Apple Silicon menu-bar monitor (CPU / GPU / RAM).
  • Includes XcodeGen project, MetricsSampler actor, IOReport-based GPU reader (fault-tolerant), Preferences (1s/2s), CI + release workflows, build-release + cask updater scripts.
  • Fully validated end-to-end against ihororlovskyi/homebrew-tap via the v0.1.0-rc3 pre-release.

Test plan

  • xcodebuild test passes locally (17/17)
  • CI workflow green on macos-15 runner
  • Release workflow on v0.1.0-rc3 tag built + signed + zipped + created GitHub release + auto-bumped cask
  • brew install --cask chipbar installs Chipbar.app with correct CFBundleShortVersionString = 0.1.0-rc3
  • Downloaded zip sha256 matches cask sha256

Captures architecture, metrics sources, UI, persistence, testing,
Homebrew cask distribution, and CI for the initial release.
18 task breakdown with TDD steps, file paths, complete code blocks,
expected verification output, and commit checkpoints. Covers app
code (Preferences, three metric readers, MetricsSampler actor,
StatusBarView, StatusBarController), AppDelegate wiring, build
scripts, GitHub Actions for CI/release, and Homebrew tap bootstrap.
…T_VERSION

Previously CFBundleShortVersionString/CFBundleVersion were hardcoded,
so xcodebuild MARKETING_VERSION/CURRENT_PROJECT_VERSION overrides from
release.yml had no effect — every release would have shown 0.1.0 in About.
Now build-release.sh <ver> stamps the .app bundle with <ver>.
GPUReader's IOReport subscription failed on the macos-15 CI runner with
a hard fatalError. Make IOReportBridge return nil on any dlopen/dlsym/
CopyChannels/CreateSubscription failure and have main.swift fall back
to MockGPUReader(samples: { 0.0 }) so the app stays alive when the
private IOReport API is unavailable (headless/sandboxed environments).
@ihororlovskyi
ihororlovskyi merged commit 18bf5cf into main May 16, 2026
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