v0.30.0

exa-labs/exa-mcp-serverv0.30.0Mar 24, 2026by github-actions[bot]

AI Summary

This release introduces new database connectors for MongoDB and PostgreSQL, along with enhancements for array serialization and Airbyte dependency management. It includes breaking changes regarding MongoDB array shape preservation and dependency inclusion for Python filesystem connectors.

Key Highlights

  • New `pw.io.mongodb.read` connector supports full snapshots and real-time change streams.
  • New `pw.io.postgres.read` connector uses the Write-Ahead Log (WAL) for direct table reading.
  • Breaking change: MongoDB I/O now preserves multi-dimensional array shapes via nested BSON.
  • Airbyte connectors now accept `dependency_overrides` to pin specific transitive dependency versions.
  • Added async callback support (`pw.io.OnChangeCallbackAsync`) and `event_loop` parameter for `pw.run`.

Breaking Changes

  • `pw.io.mongodb.write` and `pw.io.mongodb.read` now serialize `np.ndarray` as nested BSON arrays to preserve shape.
  • Dependencies for `pw.io.pyfilesystem.read` are no longer included in the default package and require `pip install pathway[pyfilesystem]`.

New Features

  • `pw.io.mongodb.read` connector for reading data with snapshot and streaming support.
  • `pw.io.postgres.read` connector using WAL for direct table access.
  • Enhanced `pw.io.postgres` I/O supporting `np.ndarray`, homogeneous tuples, and list serialization.
  • `pw.io.airbyte.read` accepts `dependency_overrides` to manage transitive dependencies.
  • `pw.io.OnChangeCallbackAsync` asynchronous callback for Python write I/O.
  • `event_loop` parameter added to `pw.run` and `pw.run_all` for async state reuse.

Full Release Notes

### Added
- `pw.io.mongodb.read` connector, which reads data from a MongoDB collection. The connector first delivers a full snapshot of the collection and then, if the streaming mode is used, subscribes to the change stream to receive incremental updates in real time.
- `pw.io.postgres.read` connector, which reads data from a PostgreSQL table directly by parsing the Write-Ahead Log (WAL).
- `pw.io.postgres.write` and `pw.io.postgres.read` now support serialization/deserialization of `np.ndarray` (`int`/`float` elements), homogeneous `tuple` and `list` (via Postgres `ARRAY`; multidimensional rectangular arrays supported).
- `pw.io.airbyte.read` now accepts a `dependency_overrides` parameter, allowing users to pin specific versions of transitive dependencies (e.g. `airbyte-cdk`) installed into the connector's virtual environment. This unblocks connectors broken by upstream dependency changes without waiting for upstream fixes.

### Changed
- **BREAKING**: `pw.io.mongodb.write` and `pw.io.mongodb.read` now serialize and deserialize `np.ndarray` columns as nested BSON arrays that preserve the array's shape. Previously, all ndarrays were flattened to a single BSON array regardless of dimensionality, making it impossible to reconstruct the original shape on read-back. For 1-D arrays the representation is identical to before (`[1, 2, 3]`); only multi-dimensional arrays are affected.
- **BREAKING**: The dependencies for `pw.io.pyfilesystem.read` are no longer included in the default package installation. To install them, please use `pip install pathway[pyfilesystem]`.
- Asynchronous callback for `pw.io.python.write` is now available as `pw.io.OnChangeCallbackAsync`.
- `pw.run` and `pw.run_all` now have the `event_loop` parameter to support reusing async state across multiple graph runs.

### Fixed
- `pathway web-dashboard` now waits for the metrics database to be created instead of terminating instantly.