neo MCP: the session handle lives only in `_meta` — clients that cannot see it get a new session per call and lose tab ownership
Context: the docs say the handle is in every result's _meta under com.browseros.neo/session. Some MCP clients / bridges do not surface _meta to the model (ours does not), so the model can never echo it back. Part of this is a client-side gap, not neo's — the two asks below would make neo robust to it.
What happens: every call without session starts a fresh neo session. After name_session set a label, a later tabs new landed in a new tab group under a new random label (rapid-orca → tidy-lemur → plucky-lynx → witty-koala in one sitting). Four agent-owned tabs were re-owned to user mid-task with nobody touching them — each right after a 60 s tool timeout or a multi-minute gap.
Ask: (a) accept the name_session label as an alias for the handle, or print the handle in the text result, not only _meta; (b) let a re-created session reclaim tabs it labelled.
Workaround today: keep state in same-origin localStorage, open a fresh tab, re-evaluate, read the stash.
Environment: BrowserOS neo 0.49.5.0 · Chromium 148.0.7988.97 (arm64) · macOS · client = Claude over MCP.
Source: browseros-ai/BrowserOS