Cross-Tab Session State Sentinels
These are the short-lived session_state keys that coordinate cross-tab navigation
and one-shot UI banners. Each is written by one site and consumed (usually popped)
by a single consumer on the next rerun.
_last_xtab_pinned
| Field |
Value |
| Written by |
page_modules/major_explorer.py:309 — _pin_school_callback() |
| Consumed by |
page_modules/major_explorer.py:1317 — schools table banner block |
| Lifecycle |
One-shot pop — consumed with .pop() on the first rerun after a pin click |
| Signals |
A school was just pinned from the Major Explorer schools table; value is the school name string to display in the instruction banner |
_last_xtab_cip
| Field |
Value |
| Written by |
page_modules/major_explorer.py:323 — set_major_explorer_cip() |
| Consumed by |
page_modules/find_your_fit.py:257 — _render_results() banner block |
| Lifecycle |
One-shot pop — consumed with .pop() on the first rerun after an Explore button click |
| Signals |
A CIP4 was just sent from Find Your Fit results to Major Explorer; value is the dot-format CIP4 string (e.g. "11.07") to display in the FYF confirmation banner |
_last_xtab_cip_filter
| Field |
Value |
| Written by |
page_modules/school_finder.py:26 — set_school_finder_cip() |
| Consumed by |
app.py:2527 — School Finder tab banner block in main() |
| Lifecycle |
One-shot pop — consumed with .pop() on the first rerun after a “See schools” button click |
| Signals |
School Finder was just pre-filtered to a CIP4 by a cross-tab handoff; value is the dot-format CIP4 string to display in the School Finder banner |
_url_tab_banner
| Field |
Value |
| Written by |
app.py:367 — _parse_url_into_session_state() |
| Consumed by |
app.py:2515 — main() before tab blocks |
| Lifecycle |
One-shot pop — consumed with .pop() on the first render after a deep-link URL load |
| Signals |
The page was loaded with a ?tab= query parameter pointing to a non-default tab; value is the validated tab name string to display in the “switch to this tab” banner |
_active_tab
| Field |
Value |
| Written by |
page_modules/major_explorer.py:324 — set_major_explorer_cip(); page_modules/school_finder.py:27 — set_school_finder_cip(); page_modules/find_your_fit.py:169 — FYF submit handler |
| Consumed by |
app.py:358 — _parse_url_into_session_state() (URL writer reads it); app.py:365 — persisted or cleaned depending on validity |
| Lifecycle |
Persistent — survives reruns; cleaned at app.py:363 only when the decoded value is invalid or default |
| Signals |
The tab the user should be on (or was last sent to via cross-tab handoff); drives the ?tab= URL parameter written by _write_session_state_to_url() |