All notable changes to ByeFast are documented here.
Core engines
bye-event: Zero-copy EventBus backed bytokio::sync::broadcast. 30-variantEventenum.Payloadtype (Arc<Bytes>) for zero-copy large data transfer.bye-kernel: Page lifecycle governor withVirtualClockfor deterministic JS execution. Pages suspend after 30s idle and resume on demand. Per-page CPU quota enforcement.bye-dom: Flat arena DOM (Vec<Node>) with O(1) node access. Built-in HTML parser (Document::from_html) with no external dependencies.IntentEnginefor semantic element resolution by natural-language intent.bye-net: HTTP/2+TLS network stack with per-origin semaphore concurrency limiting. Response cache with configurable TTL. Request deduplication for concurrent identical fetches. Pure-Rust TLS viarustlswith bundled WebPKI root CAs.bye-loader: Priority DAG resource orchestration. Ghost Mode — when a server provides/.well-known/semantic-map.json, JS execution is skipped entirely. HTML resource discovery via regex scan.bye-js: JavaScript runtime usingboa_engine(pure Rust, no C dependencies). Dedicated OS thread per page to safely own!SendJS context. DeterministicDate.now(),performance.now(),Math.random()overrides. Lazy polyfill registry (fetch,URL,TextEncoder,TextDecoder,structuredClone). Fulldocumentobject bindings:querySelector,querySelectorAll,open,write,close,title.bye-layout: Incremental box-model layout engine with above-fold priority. Constraint solver for percentage widths, padding, margin.bye-render: Neural-semantic differ. Classifies DOM mutations into typed events:TextChanged,AttributeChanged,ElementAppeared,ElementRemoved,NavigationOccurred.bye-storage: Persistent state viasled. Cookie jar withSameSiteenforcement. IndexedDB store. Web Time-Travel — full page state snapshots serialised withzstdcompression.bye-safe: Origin sandbox. Capability system with 12 capability types.HumanitySimulatorgenerating Bézier mouse paths and Gaussian keystroke timing distributions.bye-api:axumHTTP control surface with 32 routes. Per-page flight recorder (event trace log).semantic-action-mapendpoint as primary LLM interface.bye-vision: Visual-semantic element matcher. 64-dimensional feature vectors built from tag, role, text, depth, and interactivity. Cosine similarity search returning confidence scores.bye-compositor: Cross-origin virtual page synthesis. Mount multiple real pages into named slots, query them as a unified page.bye-audit: Cryptographic Merkle-tree action audit log. Per-action SHA-256 hashes and verifiable inclusion proofs.bye-evolve: Self-healing shim generator. Observes polyfill failures and broken selectors, generates repaired versions.
API endpoints (32 total)
- Page lifecycle: spawn, status, destroy, navigate, load-html, resume, clock/advance
- Agent control: semantic-action-map, actions, eval, console
- Capabilities: list, request
- Web Time-Travel: snapshots (save, list, restore)
- Vision: find, find-interactive, reindex
- Compositor: create, query, destroy, mount, unmount, actions
- Audit: session (start, summary, end), record, prove, log
- Evolve: repair, selector, health
- Observability: trace, health, stats
Documentation
README.md: complete project overview, API reference, quick-start guideSPEC.md: full technical specification — EventBus internals, page state machine, DOM arena design, HTML parser algorithm, JS thread model, Merkle proof format, cold-start budget, memory budget per page, known limitations
bye-net: Removed.http2_prior_knowledge()which forced raw H2 on HTTPS connections, breaking all TLS fetches. Now uses ALPN negotiation.bye-net: Addedrustls-tls-webpki-rootsfeature for bundled CA certificates, fixing TLS verification on Windows.bye-dom: Fixedcreate_elementcall with&tag(String) →&*tagto satisfyInto<Arc<str>>bound.bye-api:navigatenow actually fetches and parses HTML into the DOM (previously discarded the response body).bye-js: Addeddocument.open/write/close— were missing, causingTypeError: not a callable functionon any page usingdocument.write.bye-event: Added#[allow(dead_code)]onTimestampedEvent::nowto silence build warning.bye-dom: Fixedarena_insertion_and_querytest that lost its#[test]andfnheader during code insertion.
boa_engineis 10-100× slower than V8 for compute-intensive JS. DOM-manipulation workloads are fine.- No CSS parsing or execution — layout is structural only.
navigatebackground fetch may fail on servers that block non-browser user agents. UsePOST /pages/{id}/load-htmlfor reliable DOM injection.- No iframe isolation — iframes are parsed as regular elements.
- No WebSocket/EventSource — stubs only.