Live & Spaces

iFixedX surfaces X Spaces and Broadcasts discovered via Grok (xAI) when XAI_API_KEY is configured. This is separate from the main tweet timeline but uses the same visual language (tiles, facepile, links to X).

Where it appears

Surface

Behavior

Home right rail

Last successful Grok snapshot (up to 6 rows)

All Spaces (?page=spaces)

Full Spaces list — refresh from Grok on visit

All Broadcasts (?page=broadcasts)

Full Broadcasts list

Rail on Home is snapshot-only — copy tells users to open directory pages to refresh.

API

GET /api/xai/live-sessions

Query params (typical):

  • nSpaces, nBroadcasts — list sizes

  • live=1 — prefer xAI live search when supported (UI checkbox in Ranking lab)

Response includes spaces[], broadcasts[], optional warning, model, liveSearch.

Client persistence

Successful fetches save sessionStorage key ix_grok_live_snapshot_v1:

  • fetchedAt, spaces, broadcasts, meta, warning

Home rehydrates the rail from this snapshot on load (no network until directory pages refresh).

Row model

Each row (LiveSessionRow) includes:

  • Title, listener count, live vs ended state

  • Facepile avatars (when provided)

  • linkUrl — opens Space/Broadcast on X

Opening a row can mark it seen in seen_items (live session keys). See Seen items.

Tiles vs timeline

Directory pages use masonry tiles (ix-feed--masonry), not the Home classic tweet row. This is intentional for dense directory grids.

Configuration

  • Server: XAI_API_KEY, optional XAI_LIVE_SEARCH / per-request live=1

  • Without xAI: empty states + configure message