Skip to content

Declare macOS 14 as the app's minimum, the floor its bundled engine needs - #573

Merged
charneykaye merged 1 commit into
mainfrom
ccr-f8423906-tjp7ti-macos-min
Nov 10, 2026
Merged

charneykaye merged 1 commit into
mainfrom
ccr-f8423906-tjp7ti-macos-min

Conversation

@charneykaye

Copy link
Copy Markdown
Contributor

Summary

Found by the pre-release audit of the v0.4.0 pipeline (#495). This is not a regression: v0.2.9 shipped the same way.

The engine's floor is macOS 14. The bundled llama-server (llama.cpp b9415) targets macOS 14.0:

The app still declared 13.0. apps/desktop/src-tauri/tauri.conf.json set bundle.macOS.minimumSystemVersion to 13.0, which Tauri writes to the bundle's LSMinimumSystemVersion. On macOS 13, the full and demo apps opened, and the player then watched the engine fail to start; macOS should have refused to open them instead. That is a poor first impression for a demo download.

The fix:

  • tauri.conf.json now declares 14.0. The Steam and demo overlays don't override bundle.macOS, so both editions inherit it.
  • tests/acceptance/test_macos_minimum_version.py (runs in CI's Acceptance tests job) reads the floor from download-runtime.sh. It fails if the base config, or either overlay release.yml stacks on it, declares less.
  • tests/artifact/test_artifact_inspection.py (the suite steam-deploy.yml runs before a Steam upload) checks the LSMinimumSystemVersion the build actually wrote. It ignores helper bundles nested inside the app.
  • QA matrix (docs/ and its docs-site mirror) now says the app declares the floor, and names the test that keeps the two together.

Closes #


Checklist

Tests and CI

  • All existing tests pass locally (python -m pytest tests/acceptance/ — 138 passed; tests/artifact/ skips without CONVSIM_ARTIFACT_DIR, as designed)
  • New behaviour is covered by new or updated tests
  • Smoke check passes: bash scripts/smoke-check.sh

Documentation

  • New source files include # SPDX-License-Identifier: Apache-2.0 header
  • Links in new or modified docs resolve correctly (no links added)

Testing notes

  • Acceptance test: passes with 14.0. With main's 13.0 it fails with "tauri.conf.json declares macOS 13.0, but the bundled llama-server needs macOS 14.0 … Raise bundle.macOS.minimumSystemVersion to 14.0."
  • Artifact check, against synthetic .app bundles with a nested helper .app declaring 10.13:
    • passes at 14.0 and 15.1;
    • fails at 13.0;
    • fails when LSMinimumSystemVersion is missing;
    • skips when there is no .app.
  • Not verified here: a real macOS bundle. The release's macOS job builds one, and the artifact check runs on it in the Steam depot gate.

Generated by Claude Code

…eeds

The bundled llama-server (b9415) targets macOS 14.0: no upstream prebuilt targets macOS 13 or older, download-runtime.sh gates the binaries at a 14.0 floor, and the QA matrix dropped macOS 13 Ventura for that reason (#469, #472). The app still declared minimumSystemVersion 13.0, which Tauri writes to the bundle's LSMinimumSystemVersion, so on macOS 13 the full and demo apps opened and then failed to start their engine, instead of macOS refusing to open them. tauri.conf.json now declares 14.0; the demo and Steam overlays inherit it.

tests/acceptance/test_macos_minimum_version.py reads the floor from download-runtime.sh and fails when the base config, or an overlay release.yml stacks on it, declares less. The artifact inspection suite that gates a Steam upload checks the LSMinimumSystemVersion the build actually wrote, ignoring helper bundles nested inside the app. The QA matrix says the app declares the floor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013J2EUgaGKdJEx9AhbrXLmS
@charneykaye
charneykaye marked this pull request as ready for review November 10, 2026 04:12
@charneykaye
charneykaye merged commit a9f8a35 into main Nov 10, 2026
18 checks passed
@charneykaye
charneykaye deleted the ccr-f8423906-tjp7ti-macos-min branch November 10, 2026 04:13
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