There are two distinct session ID concepts that need to coexist:
- Chat session IDs (existing): one per agent mode (support/insights), stored in each agent's Pinia store, used for MQTT chat topic routing and broker credentials. These stay as-is.
- Tab session ID (new): one per browser tab, stored in the context store, used for third-party MCP agent targeting and browser session presence.
The context store (frontend/src/stores/context.js) should own the tab session ID. It initializes once per tab (persisted to sessionStorage) and is already the central place for tab-scoped state (team, application, instance, device, route).
The tab session ID is not used until the user explicitly opts in to third-party MCP exposure via the MCP header button (#8159). It is not consumed by the first-party chat flow.
This is foundational for browser session presence and third-party targeting work.
There are two distinct session ID concepts that need to coexist:
The context store (
frontend/src/stores/context.js) should own the tab session ID. It initializes once per tab (persisted tosessionStorage) and is already the central place for tab-scoped state (team, application, instance, device, route).The tab session ID is not used until the user explicitly opts in to third-party MCP exposure via the MCP header button (#8159). It is not consumed by the first-party chat flow.
This is foundational for browser session presence and third-party targeting work.