The navigation sources that open a screen over the one in
front rather than switching a tab: warm_start (the app is already
running and a screen opened it — a feed's reel pushing the reels viewer) and
third_party_url (a link, pushed the same way). Every other source
switches a tab: the bar (tab), the launch (cold_start) and a button edge
that the app treats as a tab switch (button, the SERP's feed button).
One fact for the runtime (tabEntryIsPushed) and the type-level edge
reading (TabEntryReading), so they cannot disagree on what a tab entry is.
The navigation sources that open a screen over the one in front rather than switching a tab:
warm_start(the app is already running and a screen opened it — a feed's reel pushing the reels viewer) andthird_party_url(a link, pushed the same way). Every other source switches a tab: the bar (tab), the launch (cold_start) and a button edge that the app treats as a tab switch (button, the SERP's feed button). One fact for the runtime (tabEntryIsPushed) and the type-level edge reading (TabEntryReading), so they cannot disagree on what a tab entry is.