MCPcopy Create free account
hub / github.com/GCWing/BitFun / startApplication

Function startApplication

src/web-ui/src/main.tsx:312–406  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

310}
311
312async function startApplication(): Promise<void> {
313 const appStartedAt = nowMs();
314 startupTrace.markPhase('start_application_start');
315 try {
316 await initializeBeforeRender();
317 } catch (error) {
318 log.error('Failed to initialize BitFun (pre-render)', error);
319 }
320
321 startupTrace.markPhase('startup_step_start', { step: 'load_i18n_provider', mode: 'static' });
322 startupTrace.markPhase('startup_step_end', {
323 step: 'load_i18n_provider',
324 durationMs: 0,
325 mode: 'static',
326 });
327 const isAgentCompanionWindow = new URLSearchParams(window.location.search)
328 .get('bitfunWindow') === 'agent-companion';
329
330 const renderStartedAt = nowMs();
331 if (isAgentCompanionWindow) {
332 ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
333 <AppErrorBoundary>
334 <I18nProvider>
335 <AgentCompanionDesktopPet />
336 </I18nProvider>
337 </AppErrorBoundary>
338 );
339 logElapsed(log, 'Startup step completed', renderStartedAt, {
340 data: {
341 step: 'scheduleAgentCompanionRender',
342 sinceStartupMs: elapsedMs(appStartedAt),
343 },
344 });
345 startupTrace.markPhase('agent_companion_render_scheduled', {
346 sinceStartupMs: elapsedMs(appStartedAt),
347 });
348 startupTrace.flushSummary('agent_companion_render_scheduled');
349 return;
350 }
351
352 ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
353 <AppErrorBoundary>
354 <I18nProvider>
355 <WorkspaceProvider>
356 <App />
357 </WorkspaceProvider>
358 </I18nProvider>
359 </AppErrorBoundary>
360 );
361 logElapsed(log, 'Startup step completed', renderStartedAt, {
362 data: {
363 step: 'scheduleInitialRender',
364 sinceStartupMs: elapsedMs(appStartedAt),
365 },
366 });
367 startupTrace.markPhase('react_render_scheduled', {
368 sinceStartupMs: elapsedMs(appStartedAt),
369 });

Callers 1

main.tsxFile · 0.85

Calls 11

nowMsFunction · 0.90
logElapsedFunction · 0.90
elapsedMsFunction · 0.90
initializeBeforeRenderFunction · 0.85
initializeAfterRenderFunction · 0.85
markPhaseMethod · 0.80
flushSummaryMethod · 0.80
renderMethod · 0.65
errorMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected