This page is the architecture entry point for the current codebase.
The active generation pipeline is synchronous and centered on src/Service/UserAgentService.php.
- Validate
GenerationSpecwithSpecValidator; assert supported withSpecCapabilities. - Build candidate browser templates (Chrome, Firefox, Safari, Edge).
- Apply
BrowserFilter,DeviceFilter,OsFilter,VersionRangeFilter,EngineFilter, andRiskLevelFilterthroughCompositeFilter. - Select one template (default
WeightedStrategy; other strategy classes resolved from spec). - Resolve context via
VersionPicker,LocalePicker,ArchPicker, and optionalModelPicker. - Render with
UserAgentRenderer.
UserAgentServicedoes not persist generated strings toLruHistory.LruHistoryis currently used byAvoidRecentStrategyand stores browser family names in memory.GenerationSpec::strategyis accepted, butUserAgentServicecurrently only handles the default weighted class explicitly; non-default values fall back to random selection from filtered candidates.