Skip to content

Connect Discover: migrate Browser Hub to the canonical directory #127

Description

@robinbraemer

Human need

Browser Hub should show the same trustworthy catalog as the mod and website. A player must not see conflicting availability, metadata, or ranking depending on which Connect surface they opened.

Outcome

Migrate Browser Hub discovery to the canonical public directory API and remove page-specific endpoint enumeration/listing rules.

Primary implementation areas: minekube/hub, with Moxy integration limited to join routing and authoritative status production.

Requirements

  • Consume the public listing/search contract or an equivalent generated client of the same contract.
  • Preserve in-game browsing, command, and join flows while making status freshness and compatibility explicit.
  • Do not fall back to enumerating active connectors when the directory is unavailable.
  • Keep the existing endpoint join/session boundary and Connect runtime isolation intact.
  • Make directory outage, no results, stale status, endpoint offline, moderation removal, endpoint rejection, and transport failure distinguishable.

Acceptance criteria

  • The same query/filter fixture returns equivalent ordered listings in Hub, website, and mod.
  • Hub cannot display an unpublished/private endpoint through stale cache, legacy flags, direct slug guessing, or connector enumeration.
  • API outage produces an actionable degraded state and never silently exposes a broader endpoint set.
  • Selecting a listing routes through the existing supported Connect join path and preserves endpoint admission decisions.
  • Status and freshness agree with the dashboard and other discovery surfaces.
  • Legacy PREVENT_BROWSER_ENDPOINT_LISTING behavior has a fail-closed migration/removal plan.
  • Integration tests cover pagination, stale/offline state, unpublish, moderation, API version skew, rate limiting, and successful real join.
  • Production smoke evidence proves one dedicated listing is discoverable/joinable, then absent after unpublish.

Non-goals

  • Giving Hub a private superset of public listings.
  • Reimplementing search/ranking in the Hub process.
  • Changing Connect Java packet/session isolation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: connect-discoverOpen discovery, directory API, search, and listing surfaces for public Connect endpointsenhancementNew feature or requestexperience: socialFriend, party, presence, and shared-play experience

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions