Build the macOS menu-bar shell #4

Merged
erik merged 3 commits from erik/task-eb31047f-macos-menu-bar into main 2026-07-17 07:56:47 -05:00 AGit
Owner

Adds a native AppKit menu-bar executable with enable, disable, status, quit, validated fixed-host configuration, testable state transitions, setup documentation, and portable CI coverage. Task: task-eb31047f

Adds a native AppKit menu-bar executable with enable, disable, status, quit, validated fixed-host configuration, testable state transitions, setup documentation, and portable CI coverage. Task: task-eb31047f
feat: add macOS menu bar shell
Some checks failed
CI / Rust build, lint, and test (pull_request) Successful in 4s
CI / Swift build, lint, and test (pull_request) Failing after 8s
bf7953e8a8
Task: #task-eb31047f
fix: build portable Swift target in CI
Some checks failed
CI / Rust build, lint, and test (pull_request) Successful in 4s
CI / Swift build, lint, and test (pull_request) Failing after 8s
1f9dd5c7e0
Task: #task-eb31047f
fix: exclude AppKit target from Linux tests
All checks were successful
CI / Rust build, lint, and test (pull_request) Successful in 4s
CI / Swift build, lint, and test (pull_request) Successful in 13s
CI / Rust build, lint, and test (push) Successful in 4s
CI / Swift build, lint, and test (push) Successful in 13s
dbd75f184e
Task: #task-eb31047f
Author
Owner

Review summary

The PR adds a native AppKit menu-bar executable, a testable state/configuration core, setup documentation, and platform-aware local and CI verification.

Acceptance criteria

  • The app runs as a menu-bar application — met — KvshareMac uses NSStatusBar, sets the application activation policy to accessory, builds successfully on macOS, and remained running during the local smoke test.
  • Enable, Disable, status, and Quit behave as specified — met — the menu exposes sharing, connection, control, receiver, Enable, Disable, and Quit items; state-transition tests verify disabled startup and Enable/Disable behavior.
  • Host configuration loads with clear errors — met — JSON configuration validates host and port, displays localized errors in the menu, and has tests for valid, missing, malformed, empty-host, and invalid-port cases.

Blocking issues

  • None.

Warnings

  • None.

Verification

  • Local AppKit build and process smoke test: passed.
  • Local make check and make pre-pr: passed.
  • Forgejo CI run #10: Rust and portable Swift jobs passed.

Verdict

Approved.

### Review summary The PR adds a native AppKit menu-bar executable, a testable state/configuration core, setup documentation, and platform-aware local and CI verification. ### Acceptance criteria - [x] **The app runs as a menu-bar application** — met — `KvshareMac` uses `NSStatusBar`, sets the application activation policy to accessory, builds successfully on macOS, and remained running during the local smoke test. - [x] **Enable, Disable, status, and Quit behave as specified** — met — the menu exposes sharing, connection, control, receiver, Enable, Disable, and Quit items; state-transition tests verify disabled startup and Enable/Disable behavior. - [x] **Host configuration loads with clear errors** — met — JSON configuration validates host and port, displays localized errors in the menu, and has tests for valid, missing, malformed, empty-host, and invalid-port cases. ### Blocking issues - None. ### Warnings - None. ### Verification - Local AppKit build and process smoke test: passed. - Local `make check` and `make pre-pr`: passed. - Forgejo CI run #10: Rust and portable Swift jobs passed. ### Verdict Approved.
erik merged commit dbd75f184e into main 2026-07-17 07:56:47 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/kvshare!4
No description provided.