+128
−83
Loading
The popover kept being dismissed by the app's own synced navigation (responder churn re-resolves the bar under it), and the idle placeholders were unwanted. New architecture assembling only hardware-validated combinations, one NSTouchBar instance per level, swapped whole via NSApp.touchBar on state transitions: - idle: the subscriptions strip alone, full width (low-priority stretch — validated solo); - playing: transport + title + position + strip capped at 320 pt (validated together); - episodes: back button + the podcast's latest episodes (strip-alone shape again). Each bar's structure is fixed for its whole life: no identifier mutation, no hidden views, no popover left to dismiss. Content updates are change-guarded to avoid re-rendering the displayed bar, and the two podcast-strip instances (idle/playing) share data, artwork cache and in-place image updates. Co-Authored-By: Claude (RCA)