You can tell Cypress UI's interface (remember that the Cypress UI lives in the DOM like any other page) to rerun the suite - just send some predefined signal from your app when it starts up, and let Cypress use jQuery directly (avoiding a log-event) to find its own reload button and click it.
In my example that "signal" is a certain console log message my React app burps up during its startup:
Cypress.on("window:before:load", (win) => { // registers callback early, long before the app is loaded
win.console._log = win.console.log;
win.console.log = function monkeyPatchedConsoleLog() {
if (arguments[0].match(/^MyApp starting: \(.*\)/)) { // match the app's startup message
cy.$$(".restart", top.document).click(); // click Cypress' own reload button
}
return win.console._log.apply(win.console, arguments); // otherwise log normally
};
});
(include this somewhere within your support/*
files)