How the application loads from first script tag to a running app.
The boot process has three phases: load the boot loader, load all resources via the content-addressable memory system, then create and run the app. Each phase completes fully before the next begins, so by the time application code runs, every class and resource is available.
The browser loads the boot loader script. Core boot files are loaded in parallel and evaluated sequentially. These include: Object extensions, Promise extensions, IndexedDB support, HashCache, and ResourceManager.
ResourceManager.shared().setupAndRun() drives this phase:
_index.json containing resource metadata and content hashes.HashCache for cached resources — unchanged content is never re-downloaded._cam.json.zip (compressed content bundle) on cache miss.browser-only/ files in Node.js) via StrvctFile.canUseInCurrentEnv().After this phase, all classes are defined and available globally. See Headless Execution for details on how the boot sequence adapts to Node.js.
SvApp.loadAndRunShared() creates the app singleton and opens the persistent store:
SvApp.loadAndRunShared()
├── setStore(defaultStore())
├── loadFromStore()
│ ├── store.promiseOpen()
│ └── store.rootOrIfAbsentFromClosure()
└── run()
└── setup()
├── pauseSchedulers()
├── setupModel()
├── setupUi()
├── appDidInit()
│ ├── setHasDoneAppInit(true)
│ ├── postNoteNamed("appDidInit")
│ ├── unhideRootView()
│ └── afterAppUiDidInit()
│ ├── handleSearchParams()
│ └── didInitPromise.resolve()
└── resumeSchedulers()Schedulers are paused during setup so that model and UI initialization don't trigger premature sync cycles. They resume once everything is wired up.