Skip to content

Commit da69f1e

Browse files
committed
chore(diag): settle the libc++ 15.4 claim on a Sonoma runner
Throwaway. The shipped v1.10.0 whisper-stt-server carries 9 strong undefined references to libc++ symbols the SDK dates to macOS 15.4, so it is expected to fail to load on Ventura and Sonoma. No pre-15.4 Mac and no pre-15.4 SDK here, so the claim has stood as an inference. macos-14 is a Sonoma runner; running the binary answers it. Delete this file and branch once the answer is recorded.
1 parent 1c66ca3 commit da69f1e

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# THROWAWAY DIAGNOSTIC — delete this file and its branch once the question is answered.
2+
#
3+
# Settles one claim that could not be settled from a dev machine: the shipped v1.10.0
4+
# whisper-stt-server carries 9 STRONG undefined references to libc++ symbols that the
5+
# SDK's own availability header dates to macOS 15.4
6+
# (`availability(macos, strict, introduced = 15.4)` on the bad_function_call key
7+
# function). If that annotation means what it says, the STT helper cannot load on any
8+
# macOS below 15.4 — which is Ventura and Sonoma, not just the Monterey case in #515,
9+
# and macOS 14 is the version the README recommends.
10+
#
11+
# Nobody on the project has a pre-15.4 Mac and no SDK older than 15.4 is installed to
12+
# prove the symbols absent, so the claim has stood as a strong inference. `macos-14` is
13+
# a Sonoma runner and settles it by simply trying to run the binary.
14+
#
15+
# This does NOT need a model or a recording: dyld resolves symbols at exec, so the
16+
# helper's own "--model is required" usage error already proves it loaded.
17+
18+
name: diag-libcpp-floor
19+
20+
on:
21+
push:
22+
branches: [claude/diag-libcpp-15-4]
23+
workflow_dispatch:
24+
25+
permissions:
26+
contents: read
27+
28+
jobs:
29+
shipped-stt-on-sonoma:
30+
runs-on: macos-14
31+
steps:
32+
- name: Record the exact OS under test
33+
run: |
34+
sw_vers
35+
echo "arch: $(uname -m)"
36+
37+
- name: Fetch the shipped v1.10.0 arm64 build
38+
run: |
39+
curl -fsSL -o app.zip \
40+
https://github.com/getopenscreen/openscreen/releases/download/v1.10.0/Openscreen-Mac-arm64-1.10.0.zip
41+
ditto -x -k app.zip extracted
42+
xattr -dr com.apple.quarantine extracted || true
43+
BIN_DIR="$(dirname "$(find extracted -name whisper-stt-server -type f | head -1)")"
44+
echo "BIN_DIR=$BIN_DIR" >> "$GITHUB_ENV"
45+
ls -la "$BIN_DIR" | head -20
46+
47+
- name: What the shipped binary declares and imports
48+
run: |
49+
cd "$BIN_DIR"
50+
echo "--- deployment target ---"
51+
vtool -show-build whisper-stt-server | grep -E 'platform|minos|sdk'
52+
echo "--- strong undefined refs to the 15.4-gated libc++ symbols ---"
53+
nm -m whisper-stt-server | grep undefined | grep -E 'bad_function_callE' || echo " (none)"
54+
echo "count: $(nm -m whisper-stt-server | grep undefined | grep -c 'bad_function_callE')"
55+
56+
# THE TEST. Exit 0 or the usage error => it loaded, the claim is WRONG.
57+
# `dyld: Symbol not found` => it could not load, the claim is RIGHT.
58+
- name: Try to run it
59+
id: run
60+
continue-on-error: true
61+
run: |
62+
cd "$BIN_DIR"
63+
set +e
64+
./whisper-stt-server --help > out.txt 2> err.txt
65+
echo "exit=$?" | tee -a "$GITHUB_OUTPUT"
66+
echo "--- stdout ---"; cat out.txt
67+
echo "--- stderr ---"; cat err.txt
68+
69+
- name: Verdict
70+
run: |
71+
cd "$BIN_DIR"
72+
if grep -qiE 'symbol not found|dyld' err.txt; then
73+
echo "CLAIM CONFIRMED: the shipped STT helper cannot load on $(sw_vers -productVersion)."
74+
grep -iE 'symbol not found|dyld|Referenced from|Expected in' err.txt | head -5
75+
elif grep -qiE 'model|usage' out.txt err.txt; then
76+
echo "CLAIM REFUTED: the shipped STT helper loads and runs on $(sw_vers -productVersion)."
77+
else
78+
echo "INCONCLUSIVE — neither a loader error nor the usage message. Read the logs above."
79+
fi

0 commit comments

Comments
 (0)