relay-companion 0.1.96 → 0.1.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -760,6 +760,10 @@
760
760
  .sv-note { padding:10px 16px 0; font-size:11.5px; color:#1a7f37; line-height:1.4; }
761
761
  .sv-version { padding:20px 16px 12px; font-family:var(--mono); font-size:10.5px; color:var(--muted-3); }
762
762
  .sv-update { display:flex; flex-direction:column; gap:8px; align-items:flex-start; }
763
+ /* The OS default browser is often NOT where the user's session lives, so the
764
+ setup URL is shown here to open wherever they are actually signed in. */
765
+ .sv-url { padding-top:2px; }
766
+ .sv-url-text { font-family:var(--mono); font-size:10px; color:var(--muted-2); user-select:text; overflow-wrap:anywhere; }
763
767
  .sv-update-btn { width:auto; padding:7px 12px; border-radius:8px; font-family:var(--sans); font-size:12px; }
764
768
  /* signed-out call-to-action on the Relays empty state — quiet filled pill (th-count language) */
765
769
  .sv-signin-banner {
@@ -2172,6 +2176,7 @@
2172
2176
  btn.addEventListener("click", () => {
2173
2177
  expandedSentId = null;
2174
2178
  openRelayFromUI(id, "sent", "current");
2179
+ renderSent(); // the menu must close on screen, not just in state
2175
2180
  });
2176
2181
  }
2177
2182
  for (const btn of sentListEl.querySelectorAll("[data-sent-open-fresh]")) {
@@ -2179,6 +2184,7 @@
2179
2184
  btn.addEventListener("click", () => {
2180
2185
  expandedSentId = null;
2181
2186
  openRelayFromUI(id, "sent", "fresh");
2187
+ renderSent(); // the menu must close on screen, not just in state
2182
2188
  });
2183
2189
  }
2184
2190
  }
@@ -3261,7 +3267,8 @@
3261
3267
  maxlength="16" placeholder="Pairing code" value="${esc(svDraft)}" ${svBusy ? "disabled" : ""} />
3262
3268
  <button class="sv-connect" type="button" id="svConnect" ${svBusy ? "disabled" : ""}>${svBusy ? "Connecting…" : "Connect"}</button>
3263
3269
  </div>
3264
- <div class="sv-hint">Your browser opened the Relay setup page — paste the pairing code it shows.</div>`;
3270
+ <div class="sv-hint">Your browser opened the Relay setup page — paste the pairing code it shows.</div>
3271
+ <div class="sv-hint sv-url" data-stop="1">Wrong browser? Open this there instead:<br><span class="sv-url-text" id="svSetupUrl">${esc((settingsInfo && settingsInfo.setupUrl) || "")}</span></div>`;
3265
3272
  }
3266
3273
  function renderSettings() {
3267
3274
  if (activeView !== "settings") return;
package/overlay/main.cjs CHANGED
@@ -455,7 +455,15 @@ function accountInfo() {
455
455
  // not only in the tray menu.
456
456
  updateAvailable: availableUpdate || "",
457
457
  updating: updateInFlight,
458
- setupPath: "/app/setup",
458
+ // Route through the app's OWN sign-in, not Clerk's hosted accounts.<domain>
459
+ // subdomain. Clerk runs here in proxy mode (/__clerk), and the accounts./clerk.
460
+ // hosts present NO certificate — the handshake fails outright, so a signed-out
461
+ // user hitting /app/setup was bounced to a page no browser can load. /sign-in
462
+ // renders through the proxy and carries the user on to setup afterwards.
463
+ setupPath: "/sign-in?redirect_url=%2Fapp%2Fsetup",
464
+ // Shown in the pill so the flow is not trapped in whichever browser the OS
465
+ // considers default (the session usually lives in a different one).
466
+ setupUrl: absoluteUrl("/sign-in?redirect_url=%2Fapp%2Fsetup"),
459
467
  };
460
468
  }
461
469
 
@@ -3161,6 +3169,10 @@ function quitRelayCompletely() {
3161
3169
  let availableUpdate = null; // version string when newer than what we run
3162
3170
  let updateInFlight = false;
3163
3171
  async function checkForUpdate() {
3172
+ // A sandboxed harness must never consult the registry: whether an update
3173
+ // happens to be published mid-run would otherwise change the Settings card's
3174
+ // version line and make an assertion pass or fail on release timing.
3175
+ if (process.env.RELAY_OVERLAY_TEST === "1" || process.env.RELAY_OVERLAY_PERF === "1") return;
3164
3176
  try {
3165
3177
  const mod = await import(pathToFileURL(path.join(__dirname, "..", "src", "auto-update.js")).href);
3166
3178
  const latest = await mod.fetchLatestVersion({});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "relay-companion",
3
- "version": "0.1.96",
3
+ "version": "0.1.97",
4
4
  "description": "Relay companion for ordinary messages, with dormant coordination features available only by explicit opt-in.",
5
5
  "type": "module",
6
6
  "bin": {