1(function(root) { 2 'use strict'; 3 let started = false, application; 4 function start(app) { 5 application = app; 6 if (started) return; started = true; 7 let last = '', at = 0, busy = false; 8 async function tick() { 9 const uid = app.state.user?.uid, route = app.state.route || 'home', key = uid + ':' + route; 10 if (busy || !uid || document.hidden || (key === last && Date.now()-at < 60000)) return; 11 busy = true; at = Date.now(); last = key; 12 try { await app.apiFetch('/api/dev-activity', {method:'POST', body:JSON.stringify({route})}); } 13 catch { /* Telemetry never blocks normal use. Retry on the next heartbeat. */ } 14 finally { busy = false; } 15 } 16 setInterval(tick, 15000); document.addEventListener('visibilitychange', tick); 17 setTimeout(tick, 0); 18 } 19 root.RosganDevActivity={start, request:(...args)=>application.apiFetch(...args), back:()=>application.go('profile')}; 20})(window);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.