fix(coordinator): status badge shows labels (missing socialUi prefix) + 15min announce

STATUS_META labels were 'coordinator.*' but keys live under 'socialUi.coordinator.*', so badges rendered raw keys (e.g. coordinator.statusStale). Prefixed all six. Also dropped relay announce_interval_secs from 86400 (24h) to 900 (15m) so the coordinator health probe reads Connected instead of stale.
This commit is contained in:
SkateSpots 2026-10-12 17:36:27 +07:00
parent 3d9234d65c
commit c95dd54a7a
2 changed files with 11 additions and 8 deletions

View file

@ -2126,7 +2126,8 @@ The community relay moved off the hosted relay.tools instance
- **Cordn coordinator (2026-10-12):** the relay also runs Newlay's **embedded Cordn - **Cordn coordinator (2026-10-12):** the relay also runs Newlay's **embedded Cordn
coordinator** for crew MLS chat (`[cordn] enabled`, `mode = "embedded"`, coordinator** for crew MLS chat (`[cordn] enabled`, `mode = "embedded"`,
`data_dir = /var/lib/newlay/data/cordn` inside the volume, `relay_url = `data_dir = /var/lib/newlay/data/cordn` inside the volume, `relay_url =
ws://127.0.0.1:7777`). Its identity is `cordn.key` (mounted read-only) — pubkey ws://127.0.0.1:7777`, `announce_interval_secs = 900` (15 min so the health probe
reads **Connected**, not "stale" — the example's 86400s/24h default was too long). Its identity is `cordn.key` (mounted read-only) — pubkey
`02816a05…` — ⚠️ the file must be owned by the container's `newlay` user `02816a05…` — ⚠️ the file must be owned by the container's `newlay` user
(uid 10001, `chown 10001:10001`), else the relay crashes on (uid 10001, `chown 10001:10001`), else the relay crashes on
`/etc/newlay/cordn.key: Permission denied`. BYO coordinator stays client-side. `/etc/newlay/cordn.key: Permission denied`. BYO coordinator stays client-side.
@ -2138,7 +2139,9 @@ The community relay moved off the hosted relay.tools instance
entry points in both branches — **"Cordn (web)"** (the cordn.net add-link → real entry points in both branches — **"Cordn (web)"** (the cordn.net add-link → real
MLS in the browser) and **"Copy for Staircase"** (copies the nprofile to add in MLS in the browser) and **"Copy for Staircase"** (copies the nprofile to add in
the native app) — our coordinator by default, a BYO coordinator's when it has a the native app) — our coordinator by default, a BYO coordinator's when it has a
pubkey. pubkey. Also fixed a status-badge bug: `STATUS_META` labels in
`CoordinatorSettingsCard` were missing the `socialUi.` prefix and rendered raw
keys (e.g. `coordinator.statusStale`).
- **Cutover (2026-10-12):** `SKATE_RELAY` (`src/lib/types.ts`) → the new relay; the - **Cutover (2026-10-12):** `SKATE_RELAY` (`src/lib/types.ts`) → the new relay; the
default pools, the DM/CVM/zap relay arrays, the `cvm-server` + `push-service` default pools, the DM/CVM/zap relay arrays, the `cvm-server` + `push-service`
defaults, and the archive default all point at the new relay. defaults, and the archive default all point at the new relay.

View file

@ -42,12 +42,12 @@ const STATUS_META: Record<
CoordinatorHealthStatus, CoordinatorHealthStatus,
{ label: string; color: string; ring: string; dot: string } { label: string; color: string; ring: string; dot: string }
> = { > = {
idle: { label: 'coordinator.statusIdle', color: 'text-gray-400', ring: 'border-white/10', dot: 'bg-gray-500' }, idle: { label: 'socialUi.coordinator.statusIdle', color: 'text-gray-400', ring: 'border-white/10', dot: 'bg-gray-500' },
checking: { label: 'coordinator.statusChecking', color: 'text-blue-300', ring: 'border-blue-500/30', dot: 'bg-blue-400' }, checking: { label: 'socialUi.coordinator.statusChecking', color: 'text-blue-300', ring: 'border-blue-500/30', dot: 'bg-blue-400' },
online: { label: 'coordinator.statusOnline', color: 'text-green-400', ring: 'border-green-500/30', dot: 'bg-green-400' }, online: { label: 'socialUi.coordinator.statusOnline', color: 'text-green-400', ring: 'border-green-500/30', dot: 'bg-green-400' },
stale: { label: 'coordinator.statusStale', color: 'text-amber-400', ring: 'border-amber-500/30', dot: 'bg-amber-400' }, stale: { label: 'socialUi.coordinator.statusStale', color: 'text-amber-400', ring: 'border-amber-500/30', dot: 'bg-amber-400' },
offline: { label: 'coordinator.statusOffline', color: 'text-red-400', ring: 'border-red-500/30', dot: 'bg-red-500' }, offline: { label: 'socialUi.coordinator.statusOffline', color: 'text-red-400', ring: 'border-red-500/30', dot: 'bg-red-500' },
error: { label: 'coordinator.statusError', color: 'text-red-400', ring: 'border-red-500/30', dot: 'bg-red-500' }, error: { label: 'socialUi.coordinator.statusError', color: 'text-red-400', ring: 'border-red-500/30', dot: 'bg-red-500' },
}; };
async function copyText(text: string, copiedText: string, failedTitle: string, failedDesc: string) { async function copyText(text: string, copiedText: string, failedTitle: string, failedDesc: string) {