From d6acb209e93271e16827733ebef164a66ecae9c7 Mon Sep 17 00:00:00 2001 From: Jer Miller Date: Sat, 1 Aug 2026 13:45:16 -0600 Subject: [PATCH] fix: reject unsupported Intel Macs consistently --- solstone/observe/transcribe/parakeet_hints.py | 9 ++++----- solstone/think/check.py | 4 ++-- tests/test_check.py | 5 ++++- tests/test_install_models.py | 2 +- tests/test_transcribe_parakeet_coreml.py | 2 +- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/solstone/observe/transcribe/parakeet_hints.py b/solstone/observe/transcribe/parakeet_hints.py index 1f1be7b2e..eda1e1b92 100644 --- a/solstone/observe/transcribe/parakeet_hints.py +++ b/solstone/observe/transcribe/parakeet_hints.py @@ -4,12 +4,11 @@ """Shared Parakeet owner-facing hint copy.""" PACKAGED_COREML_HINT = """solstone packaged installs ship the CoreML transcription helper on -Apple Silicon Macs running macOS 14 or newer. Your install does not -include it — likely because you're on an Intel Mac, on macOS 13 or -older, or pip selected the cross-platform fallback wheel. +supported Apple Silicon Macs running macOS 14 or newer. Your install does +not include it — macOS requires Apple Silicon, or pip selected the +cross-platform fallback wheel. -The supervised Linux parakeet.cpp path and the macOS observer app continue -to work without this CoreML helper. +On supported Linux hosts, transcription uses the supervised parakeet.cpp path. If you want CoreML-accelerated parakeet transcription, install solstone from a source checkout: see https://github.com/solpbc/solstone-journal/blob/main/CONTRIBUTING.md.""" diff --git a/solstone/think/check.py b/solstone/think/check.py index d31d71d87..84b8aed6a 100644 --- a/solstone/think/check.py +++ b/solstone/think/check.py @@ -108,8 +108,8 @@ def _unsupported_platform_check(os_name: str, arch: str) -> FitCheck: ) elif os_name == "Darwin": detail = ( - "the journal runs on Intel Macs with a hosted provider, but the bundled " - "local models need Apple Silicon." + "Intel Macs aren't supported — use an Apple Silicon Mac, or run the " + "journal on supported Linux." ) else: detail = ( diff --git a/tests/test_check.py b/tests/test_check.py index 3fa670b09..2565ef010 100644 --- a/tests/test_check.py +++ b/tests/test_check.py @@ -527,9 +527,12 @@ def test_macos_intel_blocks( assert result.platform.supported is False assert len(result.report.checks) == 1 assert result.report.checks[0].severity == "blocked" + assert "Intel Macs aren't supported" in result.report.checks[0].detail assert "Apple Silicon" in result.report.checks[0].detail assert check.main([]) == 2 - assert "Apple Silicon" in capsys.readouterr().out + output = capsys.readouterr().out + assert "Intel Macs aren't supported" in output + assert "Apple Silicon" in output def test_windows_blocks( diff --git a/tests/test_install_models.py b/tests/test_install_models.py index c024389be..eb7b8eb64 100644 --- a/tests/test_install_models.py +++ b/tests/test_install_models.py @@ -544,7 +544,7 @@ def test_run_mac_helper_soft_fails_on_packaged_install( assert install_models._run_mac_helper(cache_dir) is None stderr = capsys.readouterr().err assert "Apple Silicon Macs running macOS 14" in stderr - assert "Intel Mac" in stderr + assert "macOS requires Apple Silicon" in stderr assert "source checkout" in stderr assert install_models._install_models("darwin", "arm64", "coreml") == 0 diff --git a/tests/test_transcribe_parakeet_coreml.py b/tests/test_transcribe_parakeet_coreml.py index fc4980c12..d625e66ea 100644 --- a/tests/test_transcribe_parakeet_coreml.py +++ b/tests/test_transcribe_parakeet_coreml.py @@ -245,7 +245,7 @@ def test_resolve_helper_path_packaged_missing_default( message = str(exc_info.value) assert "Apple Silicon Macs running macOS 14" in message - assert "Intel Mac" in message + assert "macOS requires Apple Silicon" in message assert "source checkout" in message -- 2.51.2