a05a279508
You correctly diagnosed the symptom: the AppBar gets taller when the banner is present. Why: the shell is [Banner, Expanded(child), PlayerBar] and the banner uses SafeArea(bottom:false) to clear the status bar. But MediaQuery.padding is screen-relative — the child's Scaffold/AppBar reads MediaQuery.padding.top and applies its own status-bar inset on top of the banner, doubling the gap. Watch shouldShowUpdateBannerProvider in the shell. When it returns non-null (banner visible), wrap the child in MediaQuery.removePadding removeTop: true so the AppBar mounts directly under the banner. When the banner is hidden, child gets its normal top inset.