Skip to content

realtime: the bell cannot prefer a live channel because discovery advertises realtime as enabled:true with no HTTP/WS surface mounted and no route to connect to #14646

Description

@hotlong

Measured (objectui#7249 dispatch, 2026-09-03, showcase @ main)

GET /api/v1/discovery on a stock showcase boot reports the realtime service as enabled: true but status: "degraded", handlerReady: false, message "In-process event bus only — no HTTP/WS realtime surface is mounted", and the routes map carries no realtime entry. RealtimeServicePlugin is listed among the 48 loaded plugins at boot.

So a console client has nothing to subscribe to, and the inbox bell / approvals badge stay on polling (10 s foreground, 60 s hidden). objectui#7249 asked the bell to "prefer the realtime channel when the server advertises it"; that half is unreachable from objectui until this repo advertises a channel, and was handed here (multi-repo rule 3, contract-first: the missing piece is a server transport, not a client).

What this card asks for

  1. Decide whether the open framework mounts an HTTP/WS (or SSE) realtime surface at all, or whether that stays a cloud/enterprise service — either way, say it in one place.
  2. If it mounts: advertise the route in /discovery (ADR-0076 D12 — mount everything advertised, advertise only what is mounted) and expose a subscribe primitive in @objectstack/client, so the bell can subscribe and fall back to polling.
  3. AI-error note worth pinning whichever way this goes: enabled: true is NOT the predicate a client may read as "a channel exists" — a client keying on it would subscribe to nothing and silently lose the bell. The honest predicate is handlerReady: true AND a route to connect to; discovery should make that shape unmistakable.

Source: os-dev report on objectui#7249 (open question 2, recommendation A).

Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions