From bedad47fd1bb23757651de46c1a4b281e005cf98 Mon Sep 17 00:00:00 2001 From: gramps Date: Mon, 13 Jul 2026 11:12:22 -0700 Subject: [PATCH] expand B7 with implementation plan for Apple Silicon --- Current-WiP.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Current-WiP.md b/Current-WiP.md index 09f4a65..ae2d66d 100755 --- a/Current-WiP.md +++ b/Current-WiP.md @@ -18,7 +18,12 @@ All 15 tasks are done. Final commit: `f0689ac feat: Roadmap N — AMQP cluster n - HTTPS / reverse proxy (Caddy) - Conversation search/filter and export tooling - B6 — Waterfall direction toggle — add a setting to flip message order between top-down (newest at top, waterfall) and bottom-up (newest at bottom, standard chat). Needs `localStorage` persistence and a UI toggle (maybe in settings modal or topbar). -- B7 — Apple Silicon worker support — document/validate running the node agent + llama-server on macOS with M-series GPUs (Metal backend). May need changes to hardware probing, GPU stats, and node registration. +- **B7 — Apple Silicon worker support** — no Apple hardware needed for implementation; llama.cpp Metal backend exposes the same OpenAI-compat API. Changes: + - `gpu.py` — add `get_gpu_stats_macos()` path using `system_profiler SPDisplaysDataType` for VRAM, `sysctl hw.memsize` for unified memory + - `hardware.py` — `platform.system() == "Darwin"` branch skips `rocm-smi`, calls macOS VRAM probe instead + - `node_agent/agent.py` — detect macOS, register with `platform: darwin, backend: metal` + - `routers/models.py` — `get_gpu_stats()` dispatch to Metal stats on macOS + - Tests — add test fixture mocking a darwin worker registration + ping/pong; coordinator treats it identically to CUDA/ROCm workers - Keyboard shortcuts, retry button, source-link polish ## Maintenance Rules