feat(stealth): 优化隐身对抗并引入双版本发布体系
- 将 CreepJS like headless 指标优化到 0%(headless/stealth 维持 0%) - 新增 ActiveText 与 prefers-color-scheme 探针修复 - 版本号采用 <upstream>-fork.<fork> 格式并在 --version 输出 upstream/fork - 更新 README、SKILL 与 docs 中的版本体系说明
This commit is contained in:
Generated
+1
-1
@@ -4,7 +4,7 @@ version = 4
|
||||
|
||||
[[package]]
|
||||
name = "agent-browser-stealth"
|
||||
version = "0.14.0"
|
||||
version = "0.14.0-fork.1"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"dirs",
|
||||
|
||||
+5
-1
@@ -1,10 +1,14 @@
|
||||
[package]
|
||||
name = "agent-browser-stealth"
|
||||
version = "0.14.0"
|
||||
version = "0.14.0-fork.1"
|
||||
edition = "2021"
|
||||
description = "Stealth browser automation CLI for AI agents with anti-bot evasions"
|
||||
license = "Apache-2.0"
|
||||
|
||||
[[bin]]
|
||||
name = "agent-browser"
|
||||
path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
|
||||
+4
-1
@@ -242,7 +242,10 @@ pub fn parse_flags(args: &[String]) -> Flags {
|
||||
let mut flags = Flags {
|
||||
json: env_var_is_truthy("AGENT_BROWSER_JSON") || config.json.unwrap_or(false),
|
||||
full: env_var_is_truthy("AGENT_BROWSER_FULL") || config.full.unwrap_or(false),
|
||||
headed: env_var_is_truthy("AGENT_BROWSER_HEADED") || config.headed.unwrap_or(false),
|
||||
headed: match env::var("AGENT_BROWSER_HEADED") {
|
||||
Ok(val) => !matches!(val.to_lowercase().as_str(), "0" | "false" | "no" | ""),
|
||||
Err(_) => config.headed.unwrap_or(true),
|
||||
},
|
||||
debug: env_var_is_truthy("AGENT_BROWSER_DEBUG") || config.debug.unwrap_or(false),
|
||||
session: env::var("AGENT_BROWSER_SESSION")
|
||||
.ok()
|
||||
|
||||
+32
-3
@@ -2126,7 +2126,7 @@ Options:
|
||||
--session-name <name> Auto-save/restore session state (cookies, localStorage)
|
||||
--config <path> Use a custom config file (or AGENT_BROWSER_CONFIG env)
|
||||
--debug Debug output
|
||||
--version, -V Show version
|
||||
--version, -V Show version (fork builds include upstream/fork info)
|
||||
|
||||
Configuration:
|
||||
agent-browser looks for agent-browser.json in these locations (lowest to highest priority):
|
||||
@@ -2290,6 +2290,35 @@ fn print_screenshot_diff(data: &serde_json::Map<String, serde_json::Value>) {
|
||||
);
|
||||
}
|
||||
|
||||
pub fn print_version() {
|
||||
println!("agent-browser {}", env!("CARGO_PKG_VERSION"));
|
||||
/// Parse fork version metadata from semver-like strings:
|
||||
/// <upstream>-fork.<fork>
|
||||
/// Example:
|
||||
/// 0.14.0-fork.1 -> (0.14.0, 1)
|
||||
fn parse_fork_version(version: &str) -> Option<(&str, &str)> {
|
||||
let (upstream, fork) = version.split_once("-fork.")?;
|
||||
if upstream.is_empty() || fork.is_empty() {
|
||||
return None;
|
||||
}
|
||||
if !upstream
|
||||
.chars()
|
||||
.all(|c| c.is_ascii_digit() || c == '.' || c == '-')
|
||||
{
|
||||
return None;
|
||||
}
|
||||
if !fork.chars().all(|c| c.is_ascii_alphanumeric() || c == '.' || c == '-') {
|
||||
return None;
|
||||
}
|
||||
Some((upstream, fork))
|
||||
}
|
||||
|
||||
pub fn print_version() {
|
||||
let version = env!("CARGO_PKG_VERSION");
|
||||
if let Some((upstream, fork)) = parse_fork_version(version) {
|
||||
println!(
|
||||
"agent-browser {} (upstream {}, fork {})",
|
||||
version, upstream, fork
|
||||
);
|
||||
} else {
|
||||
println!("agent-browser {}", version);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user