feat: rotate user-agent across 5 stealth profiles#11
Open
askalf wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a 5-entry user-agent pool covering the latest Chrome stable on Windows, macOS, Linux, Android, and iOS. Picked deterministically per session via sha256(sessionId) % poolLength, with a per-process fallback seed (process.pid + start time) when BROWSER_SESSION_ID is unset.
Why: every container previously presented whatever UA Chromium ships by default, so a fleet of bridges all looked identical in a target's logs. Now sessions spread across the pool while a single session stays stable across reconnects.
Verified locally: determinism (same seed -> same UA) and spread (5000 random seeds split ~1000 per bucket).
No new runtime deps, no workflow files touched, no package-lock changes. Source-only edit; CI builds the image.
Closes OPS-5964B32F064F4C5DB33885.