Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,31 @@
# Stream Changelog

## Unreleased
## 4.2.0 - May 28, 2026

### New Features

- Expose Stream abilities via the WordPress MCP Adapter when present, enabling AI tools to query Stream records through the Abilities API (XWPENG-13, [#1859](https://github.com/xwp/stream/pull/1859)).

### Bug Fixes

- Fix unbounded growth of `stream` / `stream_meta` tables: the TTL-based auto-purge now runs via Action Scheduler with batched deletion (default 250,000 rows per batch via the existing `wp_stream_batch_size` filter), resolving database bloat on sites where the previous WP-Cron-driven purge silently failed or timed out on large tables (XWPENG-28).
- Fix unbounded growth of `stream` / `stream_meta` tables: the TTL-based auto-purge now runs via Action Scheduler with batched deletion (default 250,000 rows per batch via the existing `wp_stream_batch_size` filter), resolving database bloat on sites where the previous WP-Cron-driven purge silently failed or timed out on large tables (XWPENG-28, [#1882](https://github.com/xwp/stream/pull/1882)).
- Fix orphan `stream_meta` rows accumulating across repeated purge cycles: a terminal orphan reaper now runs at the end of every auto-purge chain, healing installs that have residual orphans from historical interrupted purges.
- Skip Action Scheduler "is running?" probes on front-end pageloads: the `delete_all_records` and `clean_orphan_meta` settings fields no longer issue Action Scheduler queries on every front-end request, eliminating 3-4 unnecessary queries per pageview on every Stream-active site ([#1884](https://github.com/xwp/stream/issues/1884), [#1885](https://github.com/xwp/stream/pull/1885)).

### Enhancements

- Add **Clean Orphaned Meta** link under **Settings → Advanced** for one-shot cleanup on already-bloated installs. The link is hidden while the auto-purge chain is running and reappears once the chain drains.
- Replace the legacy `wp_stream_auto_purge` WP-Cron event with a recurring Action Scheduler action. Run history and failures are now visible under **Tools → Scheduled Actions**.
- Auto-purge consults the existing `wp_stream_is_large_records_table` filter (default threshold: >1M rows) so small tables get a single inline DELETE while bloated tables go through the batched chain — same knob as the manual reset path.

### Development

- Add HTTPS to the local dev environment via mkcert and an Apache SSL vhost; force HTTPS across local dev and tests.
- Add Playwright E2E job to CI; harden specs against activation races and add jQuery-dependent admin UI smoke spec (in [#1873](https://github.com/xwp/stream/pull/1873), [#1874](https://github.com/xwp/stream/pull/1874)).
- Update Node.js to v24 (in [#1867](https://github.com/xwp/stream/pull/1867), [#1883](https://github.com/xwp/stream/pull/1883)) and jQuery to v4 (in [#1834](https://github.com/xwp/stream/pull/1834)).
- Switch dev dependencies from WPackagist to WP Packages (in [#1858](https://github.com/xwp/stream/pull/1858)).
- Numerous dependency updates: `composer/composer`, `phpunit/phpunit`, `@playwright/test`, `@wordpress/scripts`, `@wordpress/e2e-test-utils-playwright`, `axios`, `tar-fs`, `http-proxy-middleware`, `copy-webpack-plugin`, `npm-run-all2`, `eslint-plugin-react-hooks`, `uuid` → native `crypto.randomUUID()`.

### Notes

- The `wp_stream_auto_purge` action continues to fire for backward compatibility, but its semantics have changed: previously it fired on every WP-Cron tick (~every 12 hours) regardless of whether work happened, so some integrators used it as a generic recurring timer. As of this release it fires only when a purge cycle is actually about to run — i.e. after the network-admin scope check, the `keep_records_indefinitely` check, the TTL-validity check, and the overlap guard all pass. Integrations that relied on the hook as a tick-rate timer should switch to `Admin::AUTO_PURGE_ACTION` (the recurring Action Scheduler action, hook name `stream_auto_purge_action`) which retains the "fires on every tick" semantics.
Expand Down
2 changes: 1 addition & 1 deletion classes/class-plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class Plugin {
*
* @const string
*/
const VERSION = '4.1.2';
const VERSION = '4.2.0';

/**
* WP-CLI command
Expand Down
8 changes: 6 additions & 2 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
Contributors: xwp
Tags: wp stream, stream, activity, logs, track
Requires at least: 4.6
Tested up to: 6.9
Stable tag: 4.1.2
Tested up to: 7.0
Stable tag: 4.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Expand Down Expand Up @@ -134,6 +134,10 @@ Use only `$_SERVER['REMOTE_ADDR']` as the client IP address for event logs witho

== Changelog ==

= 4.2.0 - May 28, 2026 =

See: [https://github.com/xwp/stream/blob/develop/changelog.md#420---may-28-2026](https://github.com/xwp/stream/blob/develop/changelog.md#420---may-28-2026)

= 4.1.2 - February 19, 2026 =

See: [https://github.com/xwp/stream/blob/develop/changelog.md#412---february-19-2026](https://github.com/xwp/stream/blob/develop/changelog.md#412---february-19-2026)
Expand Down
2 changes: 1 addition & 1 deletion stream.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Plugin Name: Stream
* Plugin URI: https://xwp.co/work/stream/
* Description: Stream tracks logged-in user activity so you can monitor every change made on your WordPress site in beautifully organized detail. All activity is organized by context, action and IP address for easy filtering. Developers can extend Stream with custom connectors to log any kind of action.
* Version: 4.1.2
* Version: 4.2.0
* Author: XWP
* Author URI: https://xwp.co
* License: GPLv2+
Expand Down
Loading