fix(compose): save reply drafts on system back and harden shell back-guard master
Address Section-4 second-opinion findings (3 reviewers): - ReplyScreen saves the draft on any pop (PopScope), not just the Cancel button — system/predictive back no longer silently discards typed text; submit's pop is guarded so a cleared draft can't resurrect - ReplyScreen follows the comments-provider cache contract (acquire in initState, release in dispose) so LRU eviction can't dispose a provider its Consumers still listen to; auth listener removal no longer does an ancestor lookup in dispose - shell back-guard re-checks Create-tab + dirty before switching tabs, so a pop blocked by any future descendant PopScope can't yank to Feed; IndexedStack/create-tab coupling pinned by an assert - profile block seed runs only when the profile loaded without error - Play-video overlay semantics reflect the loading-disabled state - tests: back-press matrix for the shell (4), reply-draft round-trip (5), compose dirty-callback + URL-capitalization assertions Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>