# Behavior traces — angular/angular

> Canonical page: https://codevetter.com/unpack/angular/behavior-traces

# Behavior traces — angular/angular

Scanned commit 831cb13e1c6e5ff17da23273109772c2b088302e (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The investigation followed application startup, documentation navigation, and search-history persistence across their source boundaries. Additional traces cover HTTP, server rendering, tutorials, DevTools transport, and service-worker restoration. These are ordered source walkthroughs, not observed runtime executions. Each trace names the functions or operations that establish its behavior.
- Startup, stage 1: adev main calls bootstrapApplication(AppComponent, appConfig); bootstrapApplication calls createProvidersConfig and then internalCreateApplication. — [adev/src/main.ts#L9-13](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/main.ts#L9-L13) [packages/platform-browser/src/browser.ts#L123-171](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/platform-browser/src/browser.ts#L123-L171)
- Startup, stage 2: internalCreateApplication creates or reuses the platform injector, constructs EnvironmentNgModuleRefAdapter, and calls bootstrap; bootstrap resolves injector initializers and waits for ApplicationInitStatus.donePromise. — [packages/core/src/application/create_application.ts#L56-85](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/core/src/application/create_application.ts#L56-L85) [packages/core/src/platform/bootstrap.ts#L84-94](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/core/src/platform/bootstrap.ts#L84-L94) [packages/core/src/platform/bootstrap.ts#L137-147](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/core/src/platform/bootstrap.ts#L137-L147)
- Startup, stage 3: bootstrap calls ApplicationRef.bootstrap(rootComponent); ApplicationRef creates a ComponentFactory and ComponentRef, then _loadComponent attaches the view, calls tick, and invokes bootstrap listeners. — [packages/core/src/platform/bootstrap.ts#L167-178](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/core/src/platform/bootstrap.ts#L167-L178) [packages/core/src/application/application_ref.ts#L496-522](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/core/src/application/application_ref.ts#L496-L522) [packages/core/src/application/application_ref.ts#L749-768](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/core/src/application/application_ref.ts#L749-L768)
- Documentation navigation, stage 1: Router construction installs and subscribes to the setupNavigations transition stream. navigateByUrl calls scheduleNavigation, which passes request state to handleNavigationRequest; that pushes into the stream whose pipeline checks guards, resolves route data, and loads lazy components. — [packages/router/src/router.ts#L179-189](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/router/src/router.ts#L179-L189) [packages/router/src/router.ts#L546-555](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/router/src/router.ts#L546-L555) [packages/router/src/router.ts#L695-716](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/router/src/router.ts#L695-L716) [packages/router/src/navigation_transition.ts#L409-453](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/router/src/navigation_transition.ts#L409-L453) [packages/router/src/navigation_transition.ts#L657-698](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/router/src/navigation_transition.ts#L657-L698) [packages/router/src/navigation_transition.ts#L725-747](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/router/src/navigation_transition.ts#L725-L747)
- Documentation navigation, stage 2: the generated docContent resolver calls ContentLoader.getContent; resolved input reaches DocsComponent and DocViewer.renderContentsAndRunClientSetup, which writes HTML, loads examples, and builds navigation aids. — [adev/shared-docs/utils/navigation.utils.ts#L114-121](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/utils/navigation.utils.ts#L114-L121) [adev/src/app/core/services/content-loader.service.ts#L19-36](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/core/services/content-loader.service.ts#L19-L36) [adev/src/app/features/docs/docs.component.html#L1-10](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/features/docs/docs.component.html#L1-L10) [adev/shared-docs/components/viewers/docs-viewer/docs-viewer.component.ts#L95-138](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/components/viewers/docs-viewer/docs-viewer.component.ts#L95-L138) [adev/src/app/routing/router_providers.ts#L36-67](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/routing/router_providers.ts#L36-L67)
- Search persistence: SearchDialog binds form(searchQuery); debounced resultsResource calls searchWithQuery and parseResult; clicking a result invokes history.addItem → updateHistory → localStorage.setItem, and a later SearchHistory constructor calls loadHistory to restore the Map. — [adev/shared-docs/components/search-dialog/search-dialog.component.ts#L57-72](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/components/search-dialog/search-dialog.component.ts#L57-L72) [adev/shared-docs/services/search.service.ts#L50-60](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/services/search.service.ts#L50-L60) [adev/shared-docs/components/search-dialog/search-dialog.component.html#L14-19](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/components/search-dialog/search-dialog.component.html#L14-L19) [adev/shared-docs/services/search-history.service.ts#L95-120](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/services/search-history.service.ts#L95-L120) [adev/shared-docs/services/search.service.ts#L189-229](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/services/search.service.ts#L189-L229) [adev/shared-docs/services/search-history.service.ts#L48-73](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/services/search-history.service.ts#L48-L73)
- HTTP action: HttpClient.request constructs HttpRequest and runs HttpInterceptorHandler.handle on subscription; its chain reaches xsrfInterceptorFn and FetchBackend.handle → doRequest → parseBody, followed by response or error emission. — [packages/common/http/src/client.ts#L494-537](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/client.ts#L494-L537) [packages/common/http/src/backend.ts#L100-133](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/backend.ts#L100-L133) [packages/common/http/src/xsrf.ts#L94-126](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/xsrf.ts#L94-L126) [packages/common/http/src/fetch.ts#L84-106](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/fetch.ts#L84-L106) [packages/common/http/src/provider.ts#L122-137](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/provider.ts#L122-L137) [packages/common/http/src/fetch.ts#L272-334](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/fetch.ts#L272-L334) [packages/common/http/src/fetch.ts#L337-368](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/fetch.ts#L337-L368)
- SSR action: renderApplication → validateAllowedHosts → createServerPlatform → bootstrap({platformRef}) → applicationRef.whenStable → renderInternal; asyncDestroyPlatform runs in finally. — [packages/platform-server/src/utils.ts#L342-397](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/platform-server/src/utils.ts#L342-L397)
- Tutorial action: NodeRuntimeSandbox.init → boot → startInteractiveTerminal → initProject → mountProjectFiles → installDependencies → loadTypes/startDevServer; server-ready forwards the generated preview URL. — [adev/src/app/editor/node-runtime-sandbox.service.ts#L86-114](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/editor/node-runtime-sandbox.service.ts#L86-L114) [adev/src/app/editor/node-runtime-sandbox.service.ts#L175-201](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/editor/node-runtime-sandbox.service.ts#L175-L201) [adev/src/app/editor/node-runtime-sandbox.service.ts#L378-386](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/editor/node-runtime-sandbox.service.ts#L378-L386) [adev/src/app/editor/node-runtime-sandbox.service.ts#L426-462](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/editor/node-runtime-sandbox.service.ts#L426-L462)
- DevTools connection: chrome.runtime.connect creates the port; detectAngular triggers backend script injection and attemptBackendHandshake, which retries handshakeWithBackend every 500 ms until backendReady; onAny handlers relay messages between the two buses. — [devtools/projects/shell-browser/src/app/content-script.ts#L18-20](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/devtools/projects/shell-browser/src/app/content-script.ts#L18-L20) [devtools/projects/shell-browser/src/app/content-script.ts#L40-53](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/devtools/projects/shell-browser/src/app/content-script.ts#L40-L53) [devtools/projects/shell-browser/src/app/content-script.ts#L64-114](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/devtools/projects/shell-browser/src/app/content-script.ts#L64-L114)
- Offline request: the fetch listener calls Driver.onFetch; accepted requests use handleFetch → ensureInitialized → assignVersion → AppVersion.handleFetch, with safeFetch fallbacks; initialize restores the control-table records through CacheTable.read. — [packages/service-worker/worker/src/driver.ts#L206-210](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/service-worker/worker/src/driver.ts#L206-L210) [packages/service-worker/worker/src/driver.ts#L289-292](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/service-worker/worker/src/driver.ts#L289-L292) [packages/service-worker/worker/src/driver.ts#L579-632](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/service-worker/worker/src/driver.ts#L579-L632) [packages/service-worker/worker/src/db-cache.ts#L77-83](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/service-worker/worker/src/db-cache.ts#L77-L83)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
