From 3ef6e7b29785bdec4acef6a83d2f8640febe5185 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Mon, 6 Jul 2026 18:26:16 -0700 Subject: [PATCH] wip: fleet build-guard + performance suffocation alarm (held for review) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not final — @jeffrey asked for a FULLSCREEN red blink; current build renders an edge ring instead. Committed to preserve work; needs design review + fullscreen revisit before merge. Co-Authored-By: Claude Opus 4.8 (1M context) --- slab/menuband/install.sh | 15 + .../Resources/ywft-processing-bold.ttf | Bin 0 -> 38304 bytes .../Resources/ywft-processing-regular.ttf | Bin 0 -> 36012 bytes .../Sources/SlabMenubar/AppDelegate.swift | 27 ++ .../Sources/SlabMenubar/MenuBuilder.swift | 7 + .../Sources/SlabMenubar/Paths.swift | 11 + .../SlabMenubar/PerformanceAlarm.swift | 331 ++++++++++++++++++ .../Sources/SlabMenubar/StateSnapshot.swift | 23 +- slab/menubar-swift/install.sh | 15 + toolchain/macos/fleet/README.md | 48 +++ toolchain/macos/fleet/fleet-guard.sh | 204 +++++++++++ 11 files changed, 680 insertions(+), 1 deletion(-) create mode 100644 slab/menubar-swift/Resources/ywft-processing-bold.ttf create mode 100644 slab/menubar-swift/Resources/ywft-processing-regular.ttf create mode 100644 slab/menubar-swift/Sources/SlabMenubar/PerformanceAlarm.swift create mode 100755 toolchain/macos/fleet/fleet-guard.sh diff --git a/slab/menuband/install.sh b/slab/menuband/install.sh index 57e891b46f..aa3cbbd50b 100755 --- a/slab/menuband/install.sh +++ b/slab/menuband/install.sh @@ -42,6 +42,21 @@ command -v swift >/dev/null 2>&1 || { exit 1 } +# Preflight memory guard (8 GB fleet discipline). Both fleet Macs are 8 GB/6 +# cores; a `swift build -c release` on a box already under memory pressure once +# thrashed neo so hard sshd couldn't handshake. Refuse to be that straw before +# we compile. FLEET_FORCE=1 (honored inside the guard) is the escape hatch; a +# missing guard script degrades to a warning, never a hard fail. +FLEET_GUARD="$(cd "${SCRIPT_DIR}/../.." && pwd)/toolchain/macos/fleet/fleet-guard.sh" +if [[ -x "${FLEET_GUARD}" ]]; then + bash "${FLEET_GUARD}" guard-build self || { + warn "aborting install — build refused by fleet-guard (FLEET_FORCE=1 to override)." + exit 1 + } +else + warn "fleet-guard.sh missing (${FLEET_GUARD}) — skipping preflight memory guard." +fi + # Choose signing identity. If SIGN_IDENTITY is set in env, use it. Otherwise # look for a Developer ID Application or Mac App Distribution cert in the # keychain. Falls back to a self-signed local identity. diff --git a/slab/menubar-swift/Resources/ywft-processing-bold.ttf b/slab/menubar-swift/Resources/ywft-processing-bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0e617fe152a0cdef1fed675ebdfecb1c60ce8eb9 GIT binary patch literal 38304 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