Skip to content

ci: silence alert sounds on Blacksmith so system audio stays empty on macOS 15 - #2766

Open
richiemcilroy wants to merge 1 commit into
mainfrom
fix/verify-macos15-alert-sounds
Open

richiemcilroy wants to merge 1 commit into
mainfrom
fix/verify-macos15-alert-sounds

Conversation

@richiemcilroy

Copy link
Copy Markdown
Member

Problem

The scheduled "Verify recording (real capture)" job has failed every night on blacksmith-6vcpu-macos-15 since 2026-10-16. The failures are identical on today's main (run 39390035224) and on the 2026-10-19 baseline 2b2bf84 (run 39390040309):

  • recording/studio-screen/fragmented: "export: N of 15 microphone markers inside the export are not in its audio". The recording's own mic track has every marker; the export loses 1–3.
  • recording/instant/gated: "mic: N markers inside the track located but undecodable", at 1.3–4.4 s, outside the expected bound.

Root cause: environment, not product

The recordings' system_audio.m4a on that runner is not silent. It carries a ~700 Hz, ~40 ms decaying burst about every 0.53 s through the whole take: RMS 0.055, peak 0.52.

  • The stimulus is configured silent there (CAP_VERIFY_STIMULUS_AUDIO=0), and its log has no audio events.
  • The mic is the in-process synthetic source, and the burst doesn't correlate with it.
  • coreaudiod shows BlackHole in use for both audio-in and audio-out during the cases.
  • On this macOS 15 image, alert and interface sounds play through the default output, which is BlackHole, so ScreenCaptureKit records them as system audio.

Instant mixes mic and system audio into one track, and exports mix both tracks. The bursts land on top of the mic markers, making some undecodable.

Hosted runners and Blacksmith macOS 26 capture only silence there, which is why only this runner fails. Mixing system audio into Instant and exports is intended product behaviour; nothing in the recording or export path lost data. The recording's separate mic track decodes every marker.

Fix

The Blacksmith audio setup step now sets the alert volume to 0 and turns off interface sounds and beep feedback. The system-audio track is then as empty as on every other runner, and no check is loosened.

Evidence

  • ci/diag-macos15-audio run 39425526674, with the same change: blacksmith-6vcpu-macos-15 passes 8/8 (both cases, 4 repeats each) and blacksmith-6vcpu-macos-26 passes.
  • Every export now carries all its mic markers: 15–16 of 15–16, offsets ±0.0 ms. Instant's mixed track peak drops from ~0.28 to 0.108, now the mic alone.
  • The same cases failed 7/8 on that runner at both main and the baseline.

@vercel

vercel Bot commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
cap-status Ready Ready Preview Oct 20, 2026 1:09pm UTC

@capy-ai capy-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capy found no issues.

Open in Capy

@richiemcilroy

Copy link
Copy Markdown
Member Author

@greptileai review

This branch was successfully deployed

2 active deployments
Preview – cap-web — 1527c82f Deployed Oct 20, 2026 by vercel[bot]
Preview – cap-status — 1527c82f Deployed Oct 20, 2026 by vercel[bot]
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