v0.2.5
v0.2.5 adds a new platform (static musl binaries for AginxOS devices) and a rendering-accuracy batch: baseline alignment, atomic inline-blocks, and a robots.txt policy flip.
Highlights
- New platform:
aarch64-unknown-linux-musl— a fully static, feature-minimal binary (bare file +.sha256, agpkg convention) built with cargo zigbuild. AginxOS devices (Pixel 5 class, busybox, no glibc) pull it on first boot.stealth/screenshotstay opt-in and are not in this asset. - Inline baseline alignment (blitz#750 semantics) — mixed font sizes and text+inline-block runs now sit on a shared baseline instead of sharing a top edge. Inline-blocks align to the baseline of their last in-flow line box; empty or replaced boxes fall back to the bottom edge. Implemented as a post-layout per-line shift (taffy leaves can't report baselines), so uniform-font runs keep bit-identical geometry.
display: inline-blockas atomic shrink-to-fit boxes — inline lists and chip stacks wrap inside their containing block instead of rendering as full-width blocks or one ~1000px line that inflates table min-content floors (obscura#750 family).- robots.txt checking is now opt-in — flips v0.2.4's default-on policy: set
AGINXBROWSER_HONOR_ROBOTS=1to enable. The robots fetch also follows the same direct/proxy decision as the page fetch, so a proxied robots request can no longer cache a DenyAll against a directly reachable page.
Engine / JS
- deno_core 0.350 → 0.411 (v8 137 → 150.4) —
#[op2(async(deferred))], 4-argumentModuleLoader::load, manual HandleScope assembly; v8 150.2+ is also what makes the official musl prebuilt archive possible. - Blob URLs throw Chrome-shaped
TypeErrors, mint v4 UUIDs, and revoke from both stores. Runtime.callFunctionOnawaited-rejection shape pinned against Chrome (obscura#746 contrast).
Fixes
- Script bodies no longer count as visible text, and empty Tier-1 conversions are deferred — cuts challenge-page flicker on byte-WAF sites.
- CDP: mouse-click checkbox activation clears
indeterminate. - Stealth bootstrap blob layer finishes the diting rename.
Operations
- Per-domain rate limit + session page budget ship as env-tunable guardrails (
AGINXBROWSER_DOMAIN_RATE_PER_MIN,AGINXBROWSER_SESSION_PAGE_LIMIT) — a browser, not a crawler.
Install / upgrade: curl -fsSL https://browser.aginx.net/install.sh | bash (pin with VERSION=v0.2.5). Hosted MCP endpoint: https://browser.aginx.net/mcp.