Skip to content

feat(desktop): add macos menu bar skeleton#311

Closed
donbeave wants to merge 8 commits into
mainfrom
jackin/desktop-macos-skeleton
Closed

feat(desktop): add macos menu bar skeleton#311
donbeave wants to merge 8 commits into
mainfrom
jackin/desktop-macos-skeleton

Conversation

@donbeave

Copy link
Copy Markdown
Member

Summary

This stacks the sixth Desktop Agent Hub slice on top of PR 310: desktop/macos/ now contains a native SwiftUI/AppKit menu bar skeleton with MenuBarExtra, daemon health rendering, a manual refresh action, and a Unix-socket client that calls the versioned daemon/hello handshake. The slice also aligns daemon wire names with the public capability names while preserving the existing jackin-notify alias.

What's deferred (follow-up PRs and risks)

  • Previous PR in chain: PR 310 (feat(daemon): add account status endpoint) must be reviewed after PR 283, PR 306, PR 307, and PR 308 and before this PR.
  • Current slice: native macOS package skeleton, menu bar daemon health, daemon/hello socket client, refresh/quit menu actions, and daemon wire-name aliases.
  • Next planned PR: menu bar active workspaces and running-agent counts.
  • Later planned PRs, in order: menu bar PR/project inbox, desktop window shell, Desktop PR/project filters, Desktop Workspaces and Running Agents views, then attention/ready-for-review notification routing.
  • Review order: PR 283 first, PR 306 second, PR 307 third, PR 308 fourth, PR 310 fifth, this PR sixth, then each downstream Desktop Agent Hub PR in sequence.
  • Remaining risks: this environment does not have Swift installed, so the Swift package needs macOS compiler verification; the skeleton is not packaged/notarized as a .app yet; daemon version negotiation beyond daemon/hello display remains future work; Amp account status remains source-presence only.

Verify locally

Checkout

Paste this first to bypass the tirith paste scanner for the rest of the session:

export TIRITH=0

Then paste the checkout block:

mkdir -p "$HOME/Projects/jackin-project/test"
cd "$HOME/Projects/jackin-project/test"

if [ ! -d jackin/.git ]; then
  git clone https://github.com/jackin-project/jackin.git
fi

cd jackin
mise trust
git fetch -f origin jackin/desktop-macos-skeleton:refs/remotes/origin/jackin/desktop-macos-skeleton
git checkout -B jackin/desktop-macos-skeleton refs/remotes/origin/jackin/desktop-macos-skeleton

Static checks

cargo fmt --check
cargo clippy --lib -- -D warnings

Tests

cargo test --lib daemon::tests

The Rust checks cover the daemon protocol aliases and prior daemon endpoint behavior. Swift compiler validation was not run in this agent environment because swift is not installed.

User smoke: macOS app skeleton

cd desktop/macos
swift run JackinDesktop

Expected behavior on macOS with Swift installed: the menu bar item appears, Refresh calls daemon/hello, connected state shows jackin version/protocol/capability count, and disconnected state shows the socket error.

Documentation

cd docs
bun install --frozen-lockfile
bun run dev

Astro serves at http://localhost:4321/. Pages to walk:

http://localhost:4321/reference/roadmap/jackin-desktop-agent-hub/
UPDATED roadmap page. Check the existing local foundation and Phase 1 notes for the native menu bar health skeleton.

Migration notes

None. The macOS package is additive and the daemon still accepts the old notify wire name used by jackin-notify while also accepting the public notification/send method name.

donbeave and others added 8 commits May 10, 2026 05:08
Add the Jackin Desktop Agent Hub roadmap as the product and architecture source of truth for a daemon-backed native macOS status bar and desktop companion. The proposal covers PR-first project visibility, Ghostty-only workspace launching, running-agent counts, Claude/Codex/Amp account status, daemon-primary Desktop data flow, small sequential stacked PR delivery, and explicit repo PR/commit standards for the implementation program.

Add a separate Goal prompts docs page with the copy-pasteable Codex goal prompt, and align the daemon, live auth sync, agent attention prompts, and host bridge roadmap docs so they point toward the same daemon-owned status, approval, and event model.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
@donbeave

Copy link
Copy Markdown
Member Author

Closing this narrower slice because the daemon/Desktop Agent Hub work is now consolidated for broad review in #317.

@donbeave

Copy link
Copy Markdown
Member Author

Superseded by #317, which carries the combined daemon/Desktop Agent Hub feature and links this PR in its consolidated trail.

@donbeave donbeave closed this May 16, 2026
@donbeave donbeave deleted the jackin/desktop-macos-skeleton branch May 20, 2026 01:48
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