From 09355e9914fab29381cdd44ca474583dc094f8be Mon Sep 17 00:00:00 2001 From: "Claude Opus 4.7" Date: Thu, 21 May 2026 00:48:21 -0500 Subject: [PATCH] web: filter incoming by per-browser peerID, not source label MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Old filter hid all source=web messages — meant multiple browsers couldn't see each other's sends. Now each browser only filters out its OWN peerID, so iphone↔mbp↔desktop all see each other's clipboard. Co-Authored-By: Claude Opus 4.7 --- server/web/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/web/index.html b/server/web/index.html index e724d52..6c06e1a 100644 --- a/server/web/index.html +++ b/server/web/index.html @@ -147,7 +147,7 @@ const r = await fetch("/api/send", { method: "POST", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ type: "clipboard", text, source: "web" }), + body: JSON.stringify({ type: "clipboard", text, source: "web", from: peerID }), }); status(r.ok ? "delivered ✓" : "server returned " + r.status, r.ok ? "ok" : "err"); } catch (e) { status("network error", "err"); } @@ -207,7 +207,7 @@ es.addEventListener("clipboard", (ev) => { try { const m = JSON.parse(ev.data); - if (m.source !== "web") { + if (m.from !== peerID) { // hide our own sends, show everyone else addIncoming(m.text, m.source, m.ts, false); } } catch (e) {}