fix: preserve local host scheduler and fatal errors

This commit is contained in:
2026-09-05 18:36:52 +08:00
parent 745b0a1aeb
commit fff4848654
2 changed files with 52 additions and 4 deletions
@@ -138,10 +138,24 @@ export function createLocalLoginHost(options: LocalLoginHostOptions): LocalLogin
if (model.kind === 'denial') serverFailure = { data: model.outcome.data };
if (model.kind === 'kicked') serverFailure = { data: model.data };
try { options.view.showOverlay(model); }
catch (error) { transportFault(error); throw error; }
catch (error) {
if (model.kind === 'fatal') fail(collected([model.error, error]));
else transportFault(error);
throw error;
}
if (model.kind === 'fatal') fail(model.error);
},
}, options.scheduler, fail);
}, {
request: callback => {
try {
const cancel = options.scheduler.request(callback);
return () => {
try { cancel(); }
catch (error) { fail(error); throw error; }
};
} catch (error) { fail(error); throw error; }
},
}, fail);
runtime = new PlatformRuntime({ gameEntry: entry,
resolveRuntimeConfig: async () => context.config,
createWireClient: () => createLocalLoginWire({ context, record: options.record, onFault: wireFault,