i99dash docs
Reference

Host catalog status

What the v2 car catalog ships today versus what is deferred to v5.1, and how to gate on it instead of assuming a signal exists.

The v2 bridge is catalog-driven: the host declares which signal categories it serves at runtime via client.car.list(). The SDK has no compiled-in signal list, so "is this available?" is a runtime question, not an SDK-version question. This page is the single place that records what is live now versus deferred.

Shipping in v5.0

Today's BYD catalog serves these category values:

climate, dynamics, cabin, propulsion, safety, charging, doors, lights, sensors, statistics.

client.car.list() echoes the bridge protocol version (2.0.0) on every response.

Deferred to v5.1

CategoryStatusUntil then
locationNot in the v5.0 catalogUse navigator.geolocation; see Location + heading
navigationNot in the v5.0 catalogNo host source yet
mediaNot in the v5.0 catalogSketch the shape now; see Now-playing widget

These were removed as per-family controllers in the v5 cutover (see v5 migration) and will reappear as catalog categories on client.car, not as new SDK APIs.

Gate on the catalog, not the SDK version

Probe the category and degrade. Keeping the call in place means a v5.1 host lights the feature up with no redeploy:

import { createClientOrSSR } from 'i99dash';

const client = createClientOrSSR();
if (!client) return; // SSR / no host

const cat = await client.car.list({ category: 'location' });
if (cat.entries.length > 0) {
  const off = await client.car.subscribe({
    names: cat.entries.map((e) => e.name),
    onEvent: render,
  });
} else {
  renderFallback(); // a default — never a blank screen
}

A category that is absent must render a useful fallback, not an empty state. Treat "host doesn't serve it yet" exactly like "host without the family" — see Capability detection.

On this page