Skip to content

Releases: mimic-browser/runtime

Mimic v0.2.7 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 10 Oct 04:36
0480233

Mimic v0.2.7 — Public Beta

This release reduces bootstrap and installed-font memory retention while preserving native callable behavior, lazy operation identity, and Page isolation.

  • Avoid redundant JavaScript wrappers around native platform operations.
  • Preserve snapshot function state without retaining compiled installation bytecode; invalidate snapshots created with the previous policy.
  • Decode immutable installed-font coverage once per resource on demand, keeping shaping faces and author fonts owned by each Page.
  • Prevent CDP Pages from auto-attaching to their own targets and reject unsafe Console eager evaluations.

The memory checkpoint documents active workload memory, CPU, latency and fixed-concurrency throughput recovered from saved captures, with frozen Chrome 152 references and workload-specific limits. Generated lazy operations retain the established publication order required by semantic installers; Navigator, SVG, camera/WebRTC and ordinary/restored realm checks cover these boundaries.

The current public projection also records a separate Optimize on/off acquisition workload. Snapshot bytecode clearing reduced static batch throughput by approximately 7% in a separate paired diagnostic; Wikipedia workflow checks showed no material slowdown. Compatibility remains workload-dependent.

Known capacity limitation: the final React-100 memory wave failed with a native access violation. Two later alternating control/candidate pairs completed all their React-100 waves, so the failure was not reproduced or attributed. React-100 remains uncertified; failed observations are excluded from successful memory comparisons. Static and CPU completed 100-Page series, and React completed 50 Pages.

Mimic v0.2.4 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 08 Oct 12:32
b73cd5e

Mimic v0.2.4

Changes since v0.2.3:

  • Keep internal snapshot preparation contexts and pages out of browser automation discovery. Creating and closing application contexts now produces a stable public context list while the runtime prepares its cache.
  • Wait for internal snapshot preparation and page cleanup during shutdown, preventing overlapping preparation from retaining resources or using a closed realm.
  • Complete accepted page, context and browser close commands even when the automation client immediately disconnects, while still cancelling ordinary session work on disconnect.
  • Add PNG screenshots through the standard CDP Page.captureScreenshot command. They reflect the current DOM after script interactions, but visual accuracy is not guaranteed; the separate renderer does not represent Mimic's script-visible layout. See approximate screenshots for the supported scope.
  • Improve approximate painting of SVG, CSS grid sidebars, styled controls and literal ::before/::after text. The screenshot renderer now uses a maintained, static-only go-webengine fork without its browser, JavaScript or module-bundling packages.
  • Preserve resource timing order when separate fetch starts resolve to the same exposed startTime.

Mimic remains a public beta for Windows and Linux amd64. Browser automation support follows the documented CDP scope. Full source changes: v0.2.3...v0.2.4.

Mimic v0.2.3 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 08 Oct 09:13
cfcabd4

Mimic v0.2.3

Changes since v0.2.2:

  • Configure a framework-created browser context with a managed environment profile, proxy, resource policy and media devices before its first user page. Configuration is atomic and rejects contexts that still own pages, uploads or active capture.
  • Keep managed profiles immutable while accepting equivalent font and media initialization from automation clients. Independent contexts retain independent window bounds and resize behavior.
  • Preserve CDP command arrival order during page initialization without blocking independent pages, Promise resolution or request interception. Closing nested targets now releases the child sessions before their parent.
  • Complete navigation loading notifications on success, failure and explicit cancellation. Refresh the frontend DOM after document replacement and expose selector ancestor paths, frame security fields and numeric network connection IDs expected by native automation clients.
  • Add read-only CDP computed-style inspection using the page's canonical style state, including inherited custom properties. CSS editing and full DevTools CSS agent behavior remain unsupported.
  • Shut down the Unix runtime when its parent process exits.

Mimic remains a renderer-free public beta for Windows and Linux amd64. Browser automation support follows the documented CDP scope; these changes do not imply complete Chrome or framework compatibility. Full source changes: v0.2.2...v0.2.3.

Mimic v0.2.2 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 07 Oct 08:54
9462c0f

Mimic v0.2.2

Changes since v0.2.1:

  • Build release executables from the release tag so the startup banner and Mimic.getVersion report v0.2.2. Release packaging now rejects development versions, mismatched revisions, and dirty binaries, including reused CI artifacts and extracted packages.
  • Preserve canonical DOM tree state when page scripts override public accessors, including iframe insertion, connectivity, viewport observations, mutation records, event paths, and removal. Resolve quirks-mode percentage heights through auto-height block containers. These fixes let the captured HUMAN widget complete its press-and-hold execution path without runtime errors; acceptance of a fresh server challenge remains unverified.
  • Preserve CSS length comparison functions (min, max, clamp) in inline styles and stylesheet CSSOM, including mixed units, nested calculations and pending custom-property substitution. This fixes responsive dimensions and typography disappearing from the live developer preview, including a hero image whose container collapsed to zero height. Focused regression tests retain normal headful Chrome 152 observations and verify preview serialization.
  • Queue beacon requests and load applied CSS background images through the document resource lifecycle.
  • Avoid unused body streams for beacon uploads. Preserve binary snapshots, borrowed Navigator operations and keepalive quotas across engines. Transport regression tests check each accepted upload independently of page setup time.
  • Admit CSS background discovery from canonical style inputs before entering JavaScript. Unstyled pages no longer run unrelated style callbacks during task checkpoints, fixing regressions when page code replaces JavaScript intrinsics. CSSOM changes and linked sheets continue to trigger resource discovery.
  • Support XPath evaluator construction and compiled attribute predicates.
  • Add the contributor Compatibility Doctor and field-evidence workflow. Keep Go metadata inspection offline and report inspection failures without making them fatal.

Mimic remains a renderer-free public beta for Windows and Linux amd64. The developer preview is drawn by the viewer's browser; this release does not add a pixel renderer or full responsive image candidate selection to Mimic. Full source changes: v0.2.1...v0.2.2.

Mimic v0.2.1 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 07 Oct 06:19
1563c24

Mimic v0.2.1

Changes since v0.2.0:

Camera, microphone and WebRTC

  • Capture real cameras, including OBS Virtual Camera, and native microphone inputs. enumerateDevices and getUserMedia support device selection, permission redaction, required constraints, shared-source clones and combined audio/video streams.
  • Send and receive H264 video and Opus audio over real ICE/DTLS/SRTP connections. Mixed audio/video tracks share a canonical remote stream; text and binary data channels use SCTP. Camera frames feed video, canvas and bitmap observations, and microphone/received audio feed Web Audio analyser readbacks.
  • Allocate capture and transport on demand, start encoders after connection, and bound frame/audio queues. Navigation and Page teardown release devices, transport and codecs. Capture uses native platform adapters without an FFmpeg process; the selected OpenH264 binary and audio dependencies are bundled, with no runtime download.
  • Project camera and microphone permissions from the existing BrowserContext/origin store through JavaScript and CDP. Automation grants access explicitly; ungranted requests reject immediately without an interactive permission wait. Revocation ends the corresponding local capture tracks.
  • Configure complete web-visible camera identities independently of native sources through Mimic.setMediaProfile or Mimic.createContext.media. Seeded auto and physical integrated/USB webcam presets provide coherent labels, device/group IDs, capabilities and output modes; OBS remains a private capture source. Optional microphone pairing shares the camera group.
  • Apply actual CPU crop/scale, per-track FPS reduction and optional bounded frame noise. Clones keep independent output modes; readbacks and WebRTC consume the same admitted frame. Invalid recipes and impossible constraints reject atomically, native names stay out of web backend errors, and profile replacement is blocked during capture.
  • Pace WebRTC video from the selected track FPS and actual output timestamps. Video statistics report measured encoded/decoded dimensions, frames and recent FPS, merged into each existing RTP report without duplicate streams.
  • Correct QuickJS error construction so it does not invoke subclass accessors before initialization, and return numeric Window/Worker timer handles across engines.

Developer preview

  • Add light, dark and system themes, fit/zoom controls, and a passive viewport that preserves target dimensions and keeps viewer input isolated from the automated Page.
  • Show bounded live activity for commands, lifecycle, network, console and exceptions, with filters, search, pause/resume and reconnect support. Slow viewers do not stall Page execution; queue overflow is reported explicitly.

Verification and limits

Retained frozen Chrome 152 diagnostics verify OBS video and USB microphone audio in both directions, with decoded observations and real packet counts. Focused tests cover capture, permissions, constraints, clones, disabled tracks, mixed audio/video transport and teardown in Goja, V8 and QuickJS. Release packaging verifies extracted Windows/Linux archives, all three engines, public clients and checksums.

Video transmission currently supports H264 up to 1280×720 with pacing derived from the selected track FPS. Microphones deliver 48 kHz mono/stereo PCM and Opus audio. Echo cancellation, noise suppression, automatic gain control, voice isolation, speaker output, simulcast and sender parameter changes remain unsupported. Camera presets are coherent physical-class recipes, not certified model/driver copies; focus/exposure/PTZ controls and artificial timing jitter are unavailable. Required unavailable processing constraints reject rather than simulate success. macOS hardware capture has not been tested locally, and no macOS release archive is provided. See the capture contract and limitations and media profile contract.

Mimic remains a renderer-free public beta for Windows and Linux amd64. Full source changes: v0.2.0...v0.2.1.

Mimic v0.2.0 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 06 Oct 06:19
3c124ac

Mimic v0.2.0

Changes since v0.1.9:

Workload optimization

  • Run mimic optimize --name shop -- <command> to learn which network acquisitions an ordinary CDP workload can avoid. The external command and its own assertions define success; no Mimic-specific SDK or assertion API is required.
  • Optimize owns an isolated endpoint supplied through MIMIC_CDP_URL, records the browser network environment to disk, validates local replay and searches resource combinations without live-network fallback during trials.
  • Save named or exported workload profiles and apply them with mimic --profile shop. Multi-state training checks the same plan against every supplied workload state.
  • Generated resource decisions share the existing ResourcePolicy enforcement. Search can avoid individual requests, acquire headers without unused bodies, and suppress validated external classic-script execution.
  • Live profile admission is scoped to recorded document routes and request inputs, rather than byte-identical HTML. Unknown requests use normal Mimic; changed script sources execute normally. Profiles remain empirical: keep assertions in live workloads and retrain when relevant states change. Profiles are tied to their validating executable.
  • Captures preserve intentionally policy-limited response bodies. Replay requiring missing bytes is unsupported, never a fabricated successful response or a live fetch.

Runtime and diagnostics

  • Preserve parser insertion tails across nested document.write suspension and allow demanded modules after denied speculative preloads.
  • Add resource acquisition and script execution measurements, bounded search, process cleanup, replay diagnostics and color-aware terminal reporting.

Evidence and limitations

The unchanged guest GitLab content/menu workload passed three independent live runs with a trained profile, acquiring 10.79% fewer encoded HTTP body bytes than a strong manual policy. Request count, CPU and latency did not improve. This is one workload, not a general performance guarantee. See the full method and results.

Mimic remains a public beta for Windows and Linux amd64. Optimize does not prove future site correctness, provide universal browser replay or roll back skipped effects. Capture artifacts may contain credentials and personal data. See Optimize and safety limits.

Mimic v0.1.9 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 29 Sep 16:23
a5882f9

Mimic v0.1.9

Changes since v0.1.8:

Browser compatibility

  • Improved frame lifecycle ordering and shared observations across connected realms. Restored contexts now retain the correct Page and document state through navigation.
  • Implemented Element.insertAdjacentElement and corrected state snapshot attributes and PNG resource classification.
  • Preserved the Chrome 152 Web API surface and source-site diagnostics during lazy binding and snapshot restoration.

Runtime and performance

  • Fixed an address reuse race in V8 snapshot cleanup that could remove a live callback table while independent Pages started concurrently.
  • Reduced memory retained by V8 isolates, bootstrap snapshots, DOM mutation journals, and font data. Connected Page worlds now share a runtime owner without sharing mutable Page state.
  • Removed measured host-call and geometry overhead, including unnecessary argument boxing and repeated DOM/style reads.
  • Restored ready bootstrap snapshots for the first wave of Pages. A focused paired 50-Page check measured lower first-wave RSS, CPU, and elapsed time; the performance report records the method and limitations.
  • Published a dated Mimic vs. Chrome checkpoint. Its completed static 50-Page series measured 748.11 MiB active RSS and 108.67 sessions/s for Mimic, versus 4102.04 MiB and 18.09 sessions/s for Chrome. The checkpoint used a separately identified development binary; these figures are not measurements of the v0.1.9 download. Later density series stopped at the benchmark's memory guard and are not successful comparisons.

Verification and provenance

  • The Windows and Linux executables come from the same successful CI source revision. Release packaging separately verifies both extracted archives, three JavaScript engines, public examples, and archive checksums.
  • The release manifest records the binary source revision, packaging revision, CI run, checks, and hashes. The executable banner identifies its source revision; the archive and release tag carry v0.1.9.

Mimic remains a renderer-free public beta for Windows and Linux amd64. See the compatibility boundaries. Full source changes: v0.1.8...v0.1.9.

Mimic v0.1.8 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 26 Sep 06:49
4eb0a88

Mimic v0.1.8

Changes since v0.1.7:

Browser compatibility

  • Added Page-local geolocation provider overrides through Emulation.setGeolocationOverride / clearGeolocationOverride and the deprecated Page aliases. Implemented position and coordinate objects, optional altitude/heading/speed, toJSON, cache and zero-timeout behavior, live watches, cancellation, navigation persistence and Page isolation. Added geolocation permission grants/settings/reset through CDP and enforced secure origins and Permissions Policy. No operating-system GPS provider is connected. See the geolocation guide.
  • Implemented legacy MouseEvent/UIEvent creation and initialization, including aliases, parameter conversion, cancellation reset and dispatch protection.
  • Corrected frozen Chrome 152 platform member ordering, textarea-only textLength, and chrome.csi() document/lifecycle timing.
  • Fixed internal lazy Web API loading under strict CSP and Trusted Types without granting author scripts additional eval privileges. WebGL, WebGPU and audio observations can initialize under those policies.
  • Improved Canvas full-turn arcs, shadows and image blend operations, and preserved CSS fallback for :has() and style batches. Improved computed-style enumeration, shadow layout admission and related browser observations.
  • Combined all Accept-CH response field lines. Fulfilled responses now update canonical cookies and Client Hints and expose actual fulfillment latency without fabricated transport timings.
  • Validated restored frame bridge bindings before installation so malformed bootstrap snapshots fail cleanly and retry ordinary initialization.

Profiles, isolation and performance

  • Added coherent portable BrowserContext profiles, shared validation for generated/imported profiles, and broader GPU/font recipes. Added context-isolation coverage and examples for 100 isolated cookie/profile tasks. See environment profiles.
  • Bounded bootstrap memory and reduced retained state; packed DOM node storage without changing storage semantics.
  • Removed a measured cross-realm DOM parent getter round trip by invoking the captured getter in its owner realm. Recorded Flickr latency measurements and remaining limitations.

Compatibility checkpoints

  • Flickr Turnstile produced nonempty tokens in a diagnostic run and two clean live runs after the lazy-loading/CSP fix. The milestone tag is flickr-turnstile-pass-20260926. See the preserved comparison report.
  • Google returned search HTML with nine result headings after the legacy event fix. Ten later, distinct searches succeeded sequentially in one Mimic Page/context while changing geolocation overrides; all ten JS coordinate checks matched. The milestone tags are google-serp-pass-20260926 and google-serp-geolocation-10-pass-20260926. These are observed checkpoints, not guarantees of future server acceptance or evidence that Google uses the coordinates for ranking.
  • Preserved Chrome captures and used offline replay to localize execution differences. Documented controlled Chrome launch conditions and excluded instrumentation and extension-surface confounders. Private cookies, tokens, challenge bodies and credentials are not distributed.

Developer workflow

  • Require focused local tests, with broad regression coverage in GitHub CI. Preserve successful Chrome 152 captures and reuse them rather than repeatedly launching the same live case.
  • Keep the reviewed CDP semantic-support registry synchronized with generated runtime/documentation projections and focused test evidence. Corrected the fulfillment timing fixture to use the loader's elapsed-time clock.

Build provenance

The Windows and Linux executables are reused unchanged from the successful CI run 36223794041, source revision 6012b628ae6f3d643a0a28840ceb7f3b829d277e. The release tag adds release notes only; the manifest records binary source, packaging revision, checks and checksums separately. The binary's development-version banner identifies its actual source revision.

Mimic remains a renderer-free public beta for Windows and Linux amd64. See the compatibility boundaries. Full source changes: v0.1.7...v0.1.8.

Mimic v0.1.7 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 24 Sep 08:45
b25d385

Mimic v0.1.7

Changes since v0.1.6:

  • Added an opt-in BrowserContext resource policy for controlling cache reads and network acquisition by resource kind, URL, and request context. The default behavior is unchanged. See the resource policy guide.
  • Corrected CSS box geometry and hit testing, including stacking and isolated-world style ownership.
  • Reduced bootstrap snapshot work and fixed disposal of idle bootstrap V8 isolates.
  • Improved Blazor Server Interactive compatibility: server-rendered DOM removal, binary values across typed array views, synthetic events across JavaScript worlds, and pointer input during server-driven layout changes. The Blazor probe passes all 13 comparison steps against Chrome 152.

The Windows and Linux archives are built from the v0.1.7 source revision. Their executables passed CDP runtime checks for V8, QuickJS, and goja, plus the bundled Playwright, Puppeteer, and concurrency examples.

Mimic remains a renderer-free public beta for Windows and Linux amd64. It models browser-observable state for supported workflows; it does not provide complete Chrome, rendering, media, or Web API compatibility. See the compatibility notes for current boundaries.

Mimic v0.1.6 — Public Beta

Choose a tag to compare

@moreveal moreveal released this 21 Sep 23:59
1b6896b

Mimic v0.1.6

Changes since v0.1.5:

  • Added a browser WebSocket transport and import-map resolution for JavaScript
    modules.
  • Expanded CDP support for downloads, timezone, locale, and core window
    overrides. Concurrent Playwright pages now handle runtime lifecycle more
    reliably.
  • Improved Chrome-compatible network request headers, floated inline layout,
    media controlsList, and Canvas observations, including conic gradients,
    patterns, focus rings, and zero-size readback errors.
  • Added a runnable Crawlee CDP connection example and documented its verified
    scope. The example connects upstream Crawlee to Mimic; it does not imply
    complete Crawlee or Chrome compatibility.

Mimic remains a renderer-free public beta for Windows and Linux amd64. It models
browser-observable state for supported workflows; it does not provide complete
Chrome, rendering, media, or Web API compatibility. See the
compatibility notes
for current boundaries.