GenerationSpec::strategyis not fully applied inUserAgentService.UserAgentBuildercompatibility mapping is hardcoded and can drift from templates/filters.
FilterInterfaceis implemented by filters that operate onBrowserTemplate; contract and usage are aligned.UserAgentBuilderprints failed spec details to stdout in exception paths.- Seeded generation uses
mt_srand, which mutates process-global random state.
LruHistorynaming implies UA-level tracking, butAvoidRecentStrategystores browser family keys.RandomSpecand severalGenerationSpecfields are validated but not fully reflected in generation behavior.
- HTTP routing/controller layers.
- Queue/event/listener orchestration.
- Database persistence in generation path.