Appearance
应用启动引导
系统概览
MikuMikuAR 前端应用的启动引导入口。bootstrap() 在 Wails 就绪后执行完整的初始化流水线:加载配置、初始化场景/渲染、注册快捷键、恢复环境状态与 UI 状态、检查更新、启动渲染循环。浏览器模式下额外注册 Service Worker(registerServiceWorker)提供离线缓存能力。
核心职责
init.ts— 应用启动编排、场景初始化、状态恢复、平台适配。sw-register.ts— Service Worker 注册(浏览器模式)。
对外 API(节选)
bootstrap()— 启动入口,串联所有初始化步骤。registerServiceWorker(enabled)— 注册 Service Worker。
内部协作
init()— 核心异步初始化:获取配置、初始化 i18n、注册图标、创建场景与引擎、恢复环境/UI 状态、注册快捷键、启动渲染循环。restoreEnvState()— 从持久化配置恢复环境状态。restoreUIState()— 从持久化配置恢复 UI 状态(菜单位置、状态栏等)。_updateStaticHtmlTexts()— 更新静态 HTML 文本的国际化。_applySystemA11y()— 应用系统无障碍设置。
测试守护
main.boot-anchor.test.ts— 加载锚点回归测试(防 v1.9.1 P0 复发)。真实 importcore/main.ts,把bootstrap/registerServiceWorker及场景、菜单等重依赖 mock 成 no-op,只保留锚点链(menus/library-setup→nav-actions→library-core)的模块顶层副作用,断言桥接注册确实发生:ui-action-bridge可取到navAction/toggleOverlayMode/handleAndroidBack/navLabel,scene-action-bridge可取到initLibrary/refreshLibrary。- 守护点:
main.ts的import '../menus/library-setup'被删改、或注册从模块顶层挪进函数体,导致 ADR-238 桥接在sideEffects: false下被摇树而静默失注册,CI 即拦截。
与其他子系统关系
- 依赖
wails-bindings获取 Go 后端配置与事件。 - 依赖
i18n/locale初始化国际化。 - 依赖
platform检测平台特性。 - 依赖
shortcut-registry加载快捷键绑定。 - 依赖
render-loop启动渲染。 - 依赖
scene/env/env-bridge(环境调度器)同步环境状态。