docs(arch): document menu-bar state animations + overlay precedence#293
Merged
Conversation
Expands the architecture doc with a self-contained walkthrough of every visual state the menu-bar icon can be in, so the rendering layer is discoverable without grepping for `MenuBarIcon.image(...)`. Covers: - Animated primary states (idle, recording, transcribing, diarizing, protocol) — each tied to the `BadgeKind.compute(...)` input it maps to and the `PipelineJob.state` / `WatchLoop.state` that drives it. - Permission problem badge — red exclamation overlay anchored on the primary state, composited by `drawExclamationBadge`. - Record-only mode badge — persistent red dot for `AppSettings.recordOnly == true`. - Per-channel asymmetric-silence indicator (new in PR #286) — red top / bottom half tint driven by `AppState.{mic,app}SilentActive`, configurable in Settings → Audio → Per-Channel Indicator. Includes the polling-chain summary (10 Hz tick reads `WatchLoop.activeRecorder.{mic,app}LevelDBFS` through the `ChannelHealthMonitor` state machine) and the hysteresis behaviour that prevents natural speech-pause dead-zone dips from resetting the debounce timer. - Explicit precedence ordering when multiple overlays apply simultaneously (permission > channel-silent > record-only > primary animation). No code change.
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.
Summary
docs/architecture-macos.mdwith a self-contained walkthrough of every visual state the menu-bar icon can be in — animated primary states (idle / recording / transcribing / diarizing / protocol), permission problem badge, record-only mode badge, and the per-channel asymmetric-silence indicator added in feat(app): per-channel signal indicator #286.BadgeKind.compute(...)input it maps from and theMenuBarIcon.image(...)overlay path that renders it, so the rendering layer is discoverable without grepping.WatchLoop.activeRecorder.{mic,app}LevelDBFS→ChannelHealthMonitorstate machine) and the hysteresis behaviour that keeps the debounce timer running through natural speech-pause dead-zone dips.No code change.
Test plan
docs/architecture-macos.mdrenders cleanly (table, image tags, headings).