Skip to content

Latest commit

 

History

History
62 lines (37 loc) · 4.83 KB

File metadata and controls

62 lines (37 loc) · 4.83 KB

Changelog

This file aggregates release notes across the workspace. Per-package detail lives in packages/<name>/CHANGELOG.md (auto-generated by Changesets).

The mochi monorepo uses independent versioning. The "release" of mochi is the set of @mochi.js/* packages published together to npm.


v0.7.0 — 2026-05-09

@mochi.js/core 0.7.0 drops the Rust wreq HTTP layer. Session.fetch now routes through Chromium itself via CDP — Network.loadNetworkResource for simple GETs (CORS-bypassed at the network layer), page.evaluate("fetch") against an about:blank scratch frame for non-GET. JA4/JA3/H2 are real Chrome by definition because Chromium is the client; cookies inherit from the page's origin; CORS applies for non-GET cross-origin calls.

Breaking changes

  • Cookie inheritance. Session.fetch shares the session's cookie jar with the browser. Pre-0.7 the wreq path was cookieless. Set init.credentials = "omit" for the page-evaluate path or clear the relevant cookies before the call to recover the previous behavior.
  • CORS for non-GET. Mechanism B obeys CORS; cross-origin POSTs without Access-Control-Allow-Origin will fail in 0.7 where they may have succeeded in 0.6.
  • Body shapes. Blob / FormData / ReadableStream request bodies throw with a clear diagnostic. string / ArrayBuffer / typed arrays / URLSearchParams continue to work.

Deprecations

  • @mochi.js/net and @mochi.js/net-rs are deprecated and no longer published. The cdylib install friction (the bunx mochi pm trust @mochi.js/net-rs step, the cross-platform prebuild matrix, the cargo build fallback) is gone.
  • ProfileV1.wreqPreset and MatrixV1.wreqPreset are deprecated. The runtime no longer reads either field; the schema retains them for one release for migration. Drops in 0.8.

ALL_BROWSER_PERMISSIONS retuned for Chromium 148

The constant matches Browser.PermissionType on Chromium 148. Removed: accessibilityEvents, captureHandle, flash, videoCapturePanTiltZoom. Added: ar, vr, handTracking, automaticFullscreen, cameraPanTiltZoom, capturedSurfaceControl, keyboardLock, pointerLock, localNetwork, localNetworkAccess, loopbackNetwork, smartCard, webPrinting. Calls to page.grantAllPermissions() against an older Chromium fall through with no behavior change; calls against 148 stop tripping the Unknown permission type: accessibilityEvents runtime error.

Migration: see docs/reference/migration#upgrade-from-v06--v07-sessionfetch-routes-through-chromium.


v0.1.1 — 2026-05-08 (hot-fix, queued)

Severity: install-blocking for v0.1.0.

v0.1.0 was published with unresolved workspace:* references in the published package.json files. changeset publish (which wraps npm publish) does not rewrite workspace:* to concrete semver — that is a pnpm/yarn courtesy npm doesn't replicate. As a result, bun add @mochi.js/core@0.1.0 fails with Workspace dependency not found for every internal dep.

Fix: scripts/rewrite-workspace-deps.ts runs as a publish-time pre-hook, rewriting workspace:*^<sibling-version> from the local workspace map. Verified by bun pack-ing the affected packages locally and inspecting the resulting tarball before pushing.

Affected packages bumped to 0.1.1: @mochi.js/core, @mochi.js/cli, @mochi.js/inject, @mochi.js/net, @mochi.js/behavioral, @mochi.js/harness, @mochi.js/profiles. @mochi.js/consistency and @mochi.js/net-rs are leaf packages with no internal deps and remain at 0.1.0.

If you installed v0.1.0: bun add @mochi.js/core@latest @mochi.js/cli@latest.

v0.1.0 — 2026-05-08

First public npm release. Foundations: pipe-mode CDP transport, relational fingerprint Matrix (40-rule DAG), JIT-friendly inject payload, behavioral synthesis (humanClick / humanType / humanScroll), JA4-coherent session.fetch via Bun:FFI → Rust wreq, proxy auth (HTTP/HTTPS/SOCKS5) via Fetch.authRequired, prebuilt cdylibs for darwin-{arm64,x64} / linux-{x64,arm64} / win32-x64, mochi browsers install for stock Chromium-for-Testing.

Known limit (install-blocking): see v0.1.1 above.


For per-package breakdowns: