Copy-Paste Script for Console
Instructions:- Open Console tab (F12)
- Type
allow pastingand press Enter (if prompted) - Copy the ENTIRE script below (from
(function()to})();) - Paste into console
- Press Enter
- You should see: ââ Script ready!â
- Then test your save flow
- Finally run:
showNetworkSummary()
Script to Copy:
Copy
Ask AI
(function() {
'use strict';
console.log('đ Network Activity Capture Script Loaded');
const capturedRequests = [];
const capturedResponses = [];
const originalFetch = window.fetch;
window.fetch = function(...args) {
const url = args[0];
const options = args[1] || {};
const method = options.method || 'GET';
const timestamp = new Date().toISOString();
const requestInfo = {
timestamp,
url: typeof url === 'string' ? url : url.toString(),
method,
headers: options.headers || {},
body: options.body || null
};
capturedRequests.push(requestInfo);
if (url.includes('/save') || url.includes('/readiness') || url.includes('/preflight')) {
console.log(`đĄ [${timestamp}] ${method} ${url}`);
}
return originalFetch.apply(this, args).then(response => {
const responseInfo = {
timestamp: new Date().toISOString(),
url: requestInfo.url,
method: requestInfo.method,
status: response.status,
statusText: response.statusText,
ok: response.ok
};
capturedResponses.push(responseInfo);
if (url.includes('/save') || url.includes('/readiness') || url.includes('/preflight')) {
console.log(`â
[${responseInfo.timestamp}] ${method} ${url} â ${response.status} ${response.statusText}`);
if (url.includes('/readiness') && response.ok) {
response.clone().json().then(data => {
const businessIds = Object.keys(data.readiness || {});
const readyCount = Object.values(data.readiness || {}).filter(b => b && b.is_ready).length;
console.log(` đ Readiness: ${readyCount}/${businessIds.length} ready`);
responseInfo.readinessData = {
total: businessIds.length,
ready: readyCount,
notReady: businessIds.length - readyCount,
businesses: data.readiness || {}
};
}).catch(() => {});
}
}
return response;
});
};
window.showNetworkSummary = function() {
console.log('\nđ Network Activity Summary');
console.log('============================');
const saveRequests = capturedRequests.filter(r => r.url.includes('/save'));
const readinessRequests = capturedRequests.filter(r => r.url.includes('/readiness'));
console.log(`\nđž Save Requests: ${saveRequests.length}`);
saveRequests.forEach((req, i) => {
console.log(` ${i + 1}. ${req.method} ${req.url}`);
const response = capturedResponses.find(r => r.url === req.url && r.timestamp > req.timestamp);
if (response) {
console.log(` Response: ${response.status} ${response.statusText}`);
}
});
console.log(`\nđ Readiness Requests: ${readinessRequests.length}`);
readinessRequests.forEach((req, i) => {
console.log(` ${i + 1}. ${req.method} ${req.url}`);
const response = capturedResponses.find(r => r.url === req.url && r.timestamp > req.timestamp);
if (response) {
console.log(` Response: ${response.status} ${response.statusText}`);
if (response.readinessData) {
console.log(` Readiness: ${response.readinessData.ready}/${response.readinessData.total} ready`);
}
}
});
if (readinessRequests.length > 1) {
console.log(`\nâ
Retry Logic Detected: ${readinessRequests.length} readiness requests`);
const timeDiffs = [];
for (let i = 1; i < readinessRequests.length; i++) {
const diff = new Date(readinessRequests[i].timestamp) - new Date(readinessRequests[i-1].timestamp);
timeDiffs.push(diff);
}
const avgDelay = timeDiffs.reduce((a, b) => a + b, 0) / timeDiffs.length;
console.log(` Average delay: ${Math.round(avgDelay)}ms`);
} else if (readinessRequests.length === 1) {
console.log(`\nâšī¸ Single Readiness Request: Config immediately queryable (no retries needed)`);
}
return {
saveRequests: saveRequests.length,
readinessRequests: readinessRequests.length,
allRequests: capturedRequests,
allResponses: capturedResponses
};
};
console.log('\nâ
Script ready! Run: showNetworkSummary()');
})();
After Pasting:
- You should see:
â Script ready! - Test your save flow (Configure â Save)
- Run:
showNetworkSummary()
Important: Copy the ENTIRE script above (everything between the ``` markers) and paste it into the console.