• fix(bridge/ui): live own-cluster filter, HTTP clipboard fallback, persist cluster id
    Release / version (push) Canceled after 0s
    Release / frontend (push) Canceled after 0s
    Release / linux (amd64) (push) Canceled after 0s
    Release / linux (arm64) (push) Canceled after 0s
    Release / windows (push) Canceled after 0s
    Release / macos (push) Canceled after 0s
    Release / release (push) Canceled after 0s
    Build and Push Docker Image / build-and-push (push) Canceled after 0s

    LastSkywalker released this 2026-06-21 10:34:00 +03:00 | 121 commits to main since this release

    Three issues:

    1. Bridge shipped its uplink to a same-cluster node. The picker filtered own
      cluster only by the constructor-time cluster id, which could be stale/empty,
      so a sibling node (lowest LAN RTT) won Pick and the sender POSTed
      /raft/bridge/replicate at it → 404 'bridge receiving is not enabled'. The
      picker now refreshes the local cluster id LIVE from the Raft layer each probe
      (WithLocalClusterFn) and excludes it in both probe and Pick, so an uplink
      never targets our own cluster regardless of build-time state.

    2. Copy buttons did nothing over plain HTTP: navigator.clipboard only exists in
      a secure context (HTTPS/localhost), and self-hosted nodes are opened by IP
      over HTTP. New shared copyToClipboard() falls back to a hidden textarea +
      execCommand('copy'); wired into the Raft/connect command blocks + secret
      inputs, the user invite link, the .env preview, the success screen and the
      log viewer.

    3. Cluster id/name 'jumped' to a fresh random default after recovery: it was
      regenerated on read whenever the env value was missing and never persisted.
      activation now persists RAFT_CLUSTER_ID + RAFT_NODE_ID to the env (only when
      missing/changed), so the name is durable across restarts and wipe-state
      recovery.

    Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
    Claude-Session: https://claude.ai/code/session_01U3LvJu9qZfspPr21TW9ptv

    Downloads