Skip to content

Extension/backend version mismatch: throw and block, not a warning #1519

Description

@suleimansh

From Discord (brillout, 8/3): now that the extension updates without manual steps —

Maybe quick win: show a warning if extension version mismatches what the backend expects. Actually, I'd say throw error and block.

Agreed there that it should be error + block — a warning would just get ignored, and a silently stale extension produces exactly the confusing half-working behavior the dogfood loop keeps tripping on.

Seam that already exists

The extension already reports its own version to the bridge: bridge-endpoints.ts carries a version: string field, sanitized on ingest (raw.version, capped at 32 chars, 'unknown' fallback). What's missing is the backend's half:

  • the daemon declares the extension version (or minimum version) it expects
  • on hello/heartbeat with a mismatched (or 'unknown') version, the bridge rejects the connection with an error naming both versions and how to update — no degraded mode
  • the dashboard surfaces the blocked state (the relay/bridge indicator should say "extension vX, backend expects vY" instead of looking merely disconnected)

Why block rather than warn

A version-skewed extension doesn't fail loudly — it half-works (missed messages, silently ignored new fields), which reads as a TF bug and burns a debugging session. Refusing to pair makes the fix (update the extension) the only path forward, which is cheap now that the update is automated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions