Repository navigation
fix(menubar): make the recording icon react to sound again - #37
Merged
Merged
Conversation
The 2026-08-27 rewrite replaced the level-driven glyph swap with a constant variableColor effect plus a square-root opacity curve that moves from about 0.60 to 0.75 between silence and speech, so the icon stopped showing sound. It also discarded the dBFS bucketing from 4775b70 and its tests. Restore waveform.low/mid/full with the dBFS buckets inside the fixed 16pt frame. AudioMonitor now publishes the bucketed symbol, assigned only on a transition, so the label is invalidated on bucket changes rather than on every 250 ms level tick. The error glyph is no longer dimmed.
Move recordingWaveformIcon next to the other free monitor helpers in AudioMonitorSupport.swift, pass onAudioLevel through the test recorder, and add an integration test: levels map to the right glyph, a level inside the same bucket keeps it, and stopping resets it to waveform.low.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The recording icon in the menu bar stopped showing sound on 2026-08-27 (
d280e5f). That change removed thewaveform.low/waveform.mid/waveformswap on audit finding C1 and replaced it with a constant.variableColoreffect plus an opacity curve. The effect animates whether or not anyone speaks, and the opacity moves only from about 0.60 to 0.75 between silence and speech. The dBFS bucketing from4775b70, and its tests, went with it.This restores the glyph swap with the dBFS buckets, kept inside the fixed 16pt frame. It also finishes the other half of C1's suggested fix:
AudioMonitornow publishes the bucketed symbol and assigns it only on a transition, so the label is invalidated on a bucket change rather than every 250 ms.C1's crash claim rests on one unsourced line in a skill reference, with no trace or reproduction, and the swap shipped from March to August. An independent review recommended restoring it over an untested
variableValueglyph. Reasoning and non-goals are indocs/plans/2610-07-menubar-level-meter.md.Not verifiable locally: this machine's toolchain (Swift 6.4, SDK 27) fails
make bundleand the test build for reasons unrelated to this diff. CI on macos-26 runs the full suite. The release build of the app compiles cleanly.Manual check before merging: during a recording, silence shows
low, normal speechmid, and loud speech or system audio the full glyph.Release notes
The menu bar icon reacts to sound again while recording, so you can see that a call's audio is being captured.