Skip to content

browser_session is sealed in api.v1 but NOT implemented in the 0.12 core — no runtime profile; capability regressed in prod at the 0.12 cutover #816

Description

@DmitriyG228

Where we are (hosted production on v0.12.14 hc11; owner-reported, root cause pinned)

The 0.10 dashboard starts a browser session by POSTing /bots with body {"mode": "browser_session"} — no platform, no meeting_url (a browser session has neither; 0.10 meeting-api synthesized them). Source: 0.10.6 services/dashboard/src/app/meetings/page.tsx:104-121.

Since the #792/#794 intake hardening (v0.12.13+), POST /bots unconditionally requires platform + (native_meeting_id | meeting_url) — reproduced live on prod: the dashboard's shape gets 422 'platform' and 'native_meeting_id' (or 'meeting_url') are required. Browser sessions cannot be created from the dashboard at all.

The #794 fix was right for meetings (it kills orphan rows); it just never carved out the session mode that legitimately has no meeting address. browser_session rows exist in prod data (e.g. meeting 24311, a customer's 2.6h session from 07-18, created on 0.10) — the capability is real and in use.

Prepared solution + forks

  • Core: intake accepts a browser-session request as a first-class shape (e.g. platform: browser_session or mode: browser_session, no URL required; server mints the session identity as 0.10 did) — typed 422 stays for actual meetings.
  • Client boundary (hosted-compat or the Deprecated dashboard: give it a bounded, off-by-default home in the stack (SoC) while it is still load-bearing #813 dashboard profile): translate the dashboard's legacy {mode: browser_session} body to the core shape — 'core owns its contracts; clients adapt'.
  • Likely both: core gains the honest shape; the compat seam maps the legacy body onto it.

Acceptance

Origin: owner report → prod repro → 0.10 dashboard source trace.

Metadata

Metadata

Assignees

No one assigned

    Labels

    goal: PDG3 programmable contextBusiness goal: stable meeting artifacts, APIs, webhooks, and MCP for downstream systems

    Type

    No type

    Projects

    Status
    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions