feat(macos): add native Homebrew install path #14

Merged
enderofwings merged 4 commits from fix/macos-doc-cleanup into main 2026-08-26 19:06:26 +00:00
Owner

Carries #9 (git.enderofwings.com/enderofwings/NexusOS/pulls/9, Athena) forward with one small fix found in review: the macOS quickstart in README.md said "memory :8001, backend :8000" - the memory microservice was deleted 2026-08-25 (well before this PR), so that line was stale on arrival, likely copied from the Linux quickstart's older wording. Dropped the dead reference.

Everything else here reviewed clean: platform detection is correct (os.name alone doesn't exclude macOS since it's 'posix' on both Linux and Darwin, so the explicit sys.platform == "darwin" check is necessary and right), install-macos.sh only uses static brew package names (no injection surface), and the three new platform-guard tests pass.

Built on 9/head (214ce07) plus this one commit, merged forward onto current main (which now also carries #11 and #12). Merge this instead of #9.

Carries #9 (git.enderofwings.com/enderofwings/NexusOS/pulls/9, Athena) forward with one small fix found in review: the macOS quickstart in README.md said "memory :8001, backend :8000" - the memory microservice was deleted 2026-08-25 (well before this PR), so that line was stale on arrival, likely copied from the Linux quickstart's older wording. Dropped the dead reference. Everything else here reviewed clean: platform detection is correct (`os.name` alone doesn't exclude macOS since it's 'posix' on both Linux and Darwin, so the explicit `sys.platform == "darwin"` check is necessary and right), `install-macos.sh` only uses static brew package names (no injection surface), and the three new platform-guard tests pass. Built on 9/head (214ce07) plus this one commit, merged forward onto current main (which now also carries #11 and #12). Merge this instead of #9.
enderofwings added 4 commits 2026-08-26 19:03:53 +00:00
install-macos.sh mirrors install.sh's split: every portable step - git pull,
venv, pip with the right overlay, npm build - stays in bin/sync.py, shared
with Linux and Windows. The script only does what sync.py cannot do for
itself on a bare Mac, which is install the Homebrew packages needed before a
Python exists to run sync.py with.

Two stages had to learn about darwin. ensure_exec_bits() keyed off
`os.name == "nt"`, which is false on macOS, so it ran the Linux path; and
requirements() had no darwin branch. linux_stage() now no-ops there, which is
what makes skipping the Ollama fetch correct rather than an omission:
bin/fetch-ollama.sh only ships a Linux x86-64 binary, and _ollama_bin() in
synapse/ollama_manager.py already prefers the bundled copy and falls back to
whatever `ollama` is on PATH. On macOS that is the brewed one, with Metal
acceleration and no flags needed.

The XFCE desktop branding is Linux-only and was already gated off macOS the
same way, so there is nothing to install for it here.

install-macos.sh joins the shell-parse list in bin/check.sh.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
test(macos): cover installer platform guards
package / wheel (pull_request) Waiting to run
214ce07d1f
The memory microservice was deleted 2026-08-25 when curation moved
in-process (curator.py) - well before this PR was written. Copied over
from the Linux quickstart's older wording.
enderofwings merged commit 3e4fc9beb3 into main 2026-08-26 19:06:26 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: enderofwings/NexusOS#14