fix: repair public beta macOS installation blockers - #5569
gabsprogrammer wants to merge 37 commits into
Conversation
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
|
macOS runtime verification update: the configured native-inference probe fix (250e8ac) is deployed locally and reads real llama.cpp metrics. All CI checks completed without failures. An authenticated Portal backend stream returned the exact expected response and DONE without errors, but required 378.1 seconds on the 16 GB test machine, so performance remains unresolved. A real cancellation test initially reproduced false aborted/complete state with an older installed dashboard router. After deploying the existing upstream 4fa6ad1 result-retention fix (not a new change in this PR), 21 focused tests passed and the live cancellation returned aborted=true with durable cancelled state. Pixel VM lifecycle/integration and native macOS architecture remain unfinished; this PR stays draft. |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
…e service adapters
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Sensitive Files DetectedTrigger: Security-sensitive files detected: ods/installers/ Files flagged: Extra human review is recommended for this PR. Claude Code Review | Sensitive File Detection | ~$1.50 |
Problem
The public-beta native macOS installer encounters three installation blockers: the pinned MinIO images fail to pull from Docker Hub, n8n cannot traverse its image-owned home directory when run as the macOS host UID, and Hermes can take longer than the 90-second persisted-config initialization deadline.
Changes
Begin native Pixel portability with kernel-authenticated Unix peer identities: Linux SO_PEERCRED and macOS getpeereid. The access service retains owner checks and root-protected helper installation. This does not enable native Pixel yet.
Apply the same peer checks to extension management, artifact promotion and workspace preview. Install and verify the adjacent helper, include it in the v10 managed contract, and validate its bytes before uninstall; retain previous contract compatibility.
Manage native macOS inference through a generated LaunchAgent shared by installation, CLI start/stop/restart, and bootstrap model upgrade/rollback. Preserve exact model arguments and working directory, refresh the PID from launchd, and retry bounded transient bootstrap failures. Stop removes the launch definition; uninstall already handles the same label. Runtime logs live under ~/Library/Logs/ODS/llama-server.log.
Use the same pinned MinIO releases from Quay and update the dependency lock.
Set HOME explicitly for n8n. Add N8N_RUN_USER, defaulting to the existing ODS_UID:ODS_GID behavior, and initialize native macOS installations to the image's node user. Preserve explicit existing overrides.
Allow up to ten minutes for Hermes to create its persisted configuration on first boot, retaining verification and failure handling.
Declare the new setting in the environment schema and cover local/cloud macOS generation.
Install host-agent dependencies in a private virtual environment instead of using pip --user against an externally managed Homebrew Python. Verify imports before writing its LaunchAgent and use the configured agent port for health checks.
Validation
Native Pixel Edge suite passed on macOS with Python 3.13 and the pinned aiohttp 3.11.12: 144 tests and 39 subtests. Added this suite to macOS CI. This validates the HTTP/Unix-socket layer, not a complete native Pixel deployment.
Workspace service suites: 41 tests and 14 subtests passed on macOS and Linux. Linux installer suite: 255 passed. Managed uninstall suite: 75 passed, including helper drift rejection. The prior commit's complete Linux CI passed before this extension.
Unix peer identity tests passed with real local stream connections on macOS and Linux Docker; disconnected, closed and non-local sockets fail closed. Existing access-bridge tests: 21 passed, 2 root-only cases skipped locally; access installation credential tests: 8 passed.
Native model-store restart regression now runs in macOS CI and passed locally under system Bash 3.2. A compiled no-GPU fixture exercises real executable preflight; literal external-store paths, context/MTP arguments, changed hashes, disconnected stores, rejected runtime arguments and ownership checks are covered. No physical SSD disconnect or full Mac reboot was performed.
LaunchAgent serialization/lifecycle regression passed, including quoted paths, transient bootstrap failure and repeated stop. Native launcher working-directory contracts passed.
Real CLI restart unloaded the prior service, recovered a transient launchd bootstrap failure, started a healthy native model, and completed the Docker restart. A reboot has not been tested.
macOS installer transition tests passed.
macOS generated environment/schema tests passed for local and cloud tiers.
n8n cookie policy tests passed.
Dependency pin validation and git diff --check passed.
Docker Compose resolution verified custom Linux UID:GID and the macOS node override.
Quay images were pulled successfully; n8n became healthy with its image user.
Host-agent Python creation/reuse/failure regression test passed; the private runtime successfully imported its real dependencies on macOS.
Hermes persisted routing and authentication passed during the native reinstall.
The native macOS reinstall completed successfully. Its final readiness check exposed a persisted Whisper port mismatch: the container used 9100 while model download/readiness used 9000. The installer now reads the persisted port for those operations. The STT model was downloaded successfully and verified through the configured endpoint. All running ODS containers were healthy, and Qwen 3.5 9B returned a real chat completion on the ODS-owned port.
This PR does not implement native macOS Pixel/Portal support, which currently depends on Linux host services. Successful model inference alone does not establish Portal functionality.