zebra-spaces: forward logLine to signal as 'client-log' for backdoor telemetry

Pairs with signal commit 3aebd67. Every logLine call after the local
render also fires a WS message to the signal server, which writes a
CLIENT_LOG line into /var/log/zebra-spaces-signal.log. Lets us debug
WebRTC cascades across multiple peers from a single grep instead of
asking each user to copy-paste their tab's log column.
This commit is contained in:
Russell Ballestrini 2026-06-03 11:02:42 -04:00
parent d5e9e4eb02
commit ce6242fff7
No known key found for this signature in database

View file

@ -783,6 +783,16 @@ function logLine(kind, msg){
const d=document.createElement('div'); d.className='log-line '+(kind||'');
d.innerHTML='<span class="ts">'+new Date().toLocaleTimeString()+'</span> '+msg.replace(/[&<>]/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;'}[c]));
logEl.appendChild(d); logEl.scrollTop=logEl.scrollHeight;
/* Forward to signal so an operator can grep /var/log/zebra-spaces-
* signal.log for CLIENT_LOG across every connected peer without
* copy-pasting from individual browser tabs. Best-effort: silently
* drops if the WS isn't open. Only RTC/system events flow through
* logLine — no user-typed content. */
try {
if (typeof ws !== 'undefined' && ws && ws.readyState === 1){
ws.send(JSON.stringify({ type: 'client-log', kind: kind || '', msg: String(msg).slice(0, 2000) }));
}
} catch(_){}
}
/* pubHex straight from a server message — prefers the explicit hex field,
@ -3870,8 +3880,8 @@ logLine('', 'ready — pick a handle, type a rendezvous code, enter the space');
<footer style="margin:2.2rem auto 0;font-size:0.65rem;color:#999;line-height:1.7;word-break:break-all;font-family:monospace">
<span id="pi-seal" style="color:#777;cursor:default;user-select:none" title="">page integrity</span> &nbsp;·&nbsp; built <span class="stamp-date">2026-06-03</span><br>
md5 <span class="stamp-md5">c84ac1d4ba2674e2927e3b741b593dfb</span><br>
sha256 <span class="stamp-sha">95f894002cb10ec9fdf575fbc04d6f5c55a99027fb2cb5d93c72ac3b54cb614f</span><br>
md5 <span class="stamp-md5">ab5aa8608600fdb0053316b3480fb052</span><br>
sha256 <span class="stamp-sha">59e42360b6165481c9d4151d40206a03fe2086edf6637945af051704bed7bc75</span><br>
<span style="color:#bbb">hashes are of this page with these two fields zeroed — to verify, blank them and re-hash</span><br>
<span style="color:#bbb">one self-contained file — <strong>save a copy</strong> and verify against these hashes; point at your own servers with ?signal= and ?turncred=, or <a href="host-your-own.html" style="color:#999">host your own community</a></span>
</footer>