From b1605f1f6fd00386e33665bc177a7adfae2fdabe Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 14:59:59 +0530 Subject: [PATCH 01/12] docs(readme): refresh plugin name line, tagline, and tags for activity log SEO --- readme.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/readme.txt b/readme.txt index 11b177124..b23fd1b41 100644 --- a/readme.txt +++ b/readme.txt @@ -1,13 +1,13 @@ -=== Stream === +=== Stream – Activity Log & Audit Trail for WordPress === Contributors: xwp -Tags: wp stream, stream, activity, logs, track +Tags: activity log, audit log, event log, user tracking, security Requires at least: 4.6 Tested up to: 7.0 Stable tag: 4.2.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html -With Stream, you’re never left in the dark about changes to your WordPress site. +Free real-time activity log and audit log for WordPress. Track every user action — logins, edits, plugin & settings changes — and get alerts. == Description == From 9e9e2c428c786ff554b8af44a77a31c26f51dcde Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 15:00:56 +0530 Subject: [PATCH 02/12] docs(readme): rewrite Description intro around activity/audit log terminology, mention retention and AI abilities --- readme.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/readme.txt b/readme.txt index b23fd1b41..f825d7f53 100644 --- a/readme.txt +++ b/readme.txt @@ -11,15 +11,17 @@ Free real-time activity log and audit log for WordPress. Track every user action == Description == -With real-time notifications and third-party integrations, Stream can proactively alert you when something goes wrong with your WordPress site. +Stream is a complete activity log and audit trail for your WordPress site: see what changed, who changed it, and when. From plugin activations to post edits, login attempts to new user creation, every user and system action is recorded in an audit log built for debugging, security monitoring, and compliance. -Designed for debugging and compliance purposes, Stream is useful for keeping tabs on your WordPress users: From activating plugins to deleting posts, to login attempts and new user creation, you can see what’s changed, who changed it and when. +Every logged action is displayed in an activity stream and organized for easy filtering by User, Role, Context, Action or IP address. Admins can highlight entries in the activity log—such as suspicious user activity—to investigate what’s happening in real time. Stream also lets you configure email alerts and webhooks for integrations like Slack and IFTTT, so your team knows the moment something goes wrong. -The plugin records WordPress user and system action to the Stream logs. Every logged-in user action is displayed in an activity stream and organized for easy filtering by User, Role, Context, Action or IP address. Admins can highlight entries in the Stream log—such as suspicious user activity—to investigate what’s happening in real time. Stream also allows you to configure email alerts and webhooks for integrations like Slack and IFTTT to notify you and your team when something has gone wrong. +Stream keeps its own logs healthy too: records are automatically purged on the retention schedule you choose, with batched deletion and orphaned-data cleanup that stay reliable even on very large sites. -For advanced users, Stream also supports a network view of all activity records on your Multisite, the ability to set exclude rules to ignore certain kinds of user activity, and a WP‑CLI command for querying records. +Stream is also AI-ready: its abilities are exposed through the WordPress Abilities API and MCP Adapter, so AI assistants and other tools can securely query your site’s activity records. -With Stream’s powerful logging, you’ll have the valuable information you need to responsibly manage your WordPress sites. +For advanced users, Stream supports a network view of all activity records on your Multisite, exclude rules to ignore certain kinds of user activity, and a WP-CLI command for querying records. + +With Stream’s powerful activity logging, you’ll have the information you need to responsibly manage your WordPress sites. = Built-In Tracking Integrations For Popular Plugins: = From 404a98ad0e47e8e506b5ad91d35786d3d6375e48 Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 15:01:29 +0530 Subject: [PATCH 03/12] docs(readme): add Two Factor to built-in integrations list --- readme.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.txt b/readme.txt index f825d7f53..90db5ab8c 100644 --- a/readme.txt +++ b/readme.txt @@ -32,6 +32,7 @@ With Stream’s powerful activity logging, you’ll have the information you nee * Easy Digital Downloads * Gravity Forms * Jetpack + * Two Factor * User Switching * WooCommerce * Yoast SEO From d9e20a0a5d08ad11a45a4c2a4120d7256453e9fc Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 15:01:49 +0530 Subject: [PATCH 04/12] docs(readme): mention Stream is free and open source in Description --- readme.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme.txt b/readme.txt index 90db5ab8c..68ec81e03 100644 --- a/readme.txt +++ b/readme.txt @@ -21,6 +21,8 @@ Stream is also AI-ready: its abilities are exposed through the WordPress Abiliti For advanced users, Stream supports a network view of all activity records on your Multisite, exclude rules to ignore certain kinds of user activity, and a WP-CLI command for querying records. +Stream is free and fully open source — development happens in the open [on GitHub](https://github.com/xwp/stream), maintained by [XWP](https://xwp.co). + With Stream’s powerful activity logging, you’ll have the information you need to responsibly manage your WordPress sites. From 3a09775f01f19ab9718a4a3ccdcf52756aba7ade Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 15:02:09 +0530 Subject: [PATCH 05/12] docs(plugin-header): use activity log / audit trail terminology in plugin Description --- stream.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stream.php b/stream.php index cf85e83e2..345ee96e7 100644 --- a/stream.php +++ b/stream.php @@ -2,7 +2,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. + * Description: Stream is an activity log and audit trail for WordPress — track every change made on your 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.2.2 * Author: XWP * Author URI: https://xwp.co From 4f3354f0dd2d4b94fb7f6f929db8676356f5dd7d Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 15:02:21 +0530 Subject: [PATCH 06/12] docs(readme.md): align GitHub tagline with activity log / audit trail terminology --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index b39bed873..55ffabd05 100755 --- a/readme.md +++ b/readme.md @@ -3,7 +3,7 @@ [![Lint and Test](https://github.com/xwp/stream/actions/workflows/ci.yml/badge.svg)](https://github.com/xwp/stream/actions/workflows/ci.yml) [![Coverage Status](https://coveralls.io/repos/github/xwp/stream/badge.svg?branch=develop)](https://coveralls.io/github/xwp/stream?branch=develop) -**Track WordPress user and system actions for debugging, logging and compliance purposes.** +**A free, open source activity log and audit trail for WordPress — track every user and system action for debugging, security, and compliance.** - [Product Website](https://xwp.co/work/stream/) - [Plugin on WordPress.org](https://wordpress.org/plugins/stream/) From fe4f4fb0e91f580d99404f2c4e6d95208ddccc3a Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 15:07:27 +0530 Subject: [PATCH 07/12] docs(readme): trim changelog to last five releases with links to full changelog --- readme.txt | 48 ++++++------------------------------------------ 1 file changed, 6 insertions(+), 42 deletions(-) diff --git a/readme.txt b/readme.txt index 68ec81e03..f11cb349f 100644 --- a/readme.txt +++ b/readme.txt @@ -141,58 +141,22 @@ Use only `$_SERVER['REMOTE_ADDR']` as the client IP address for event logs witho = 4.2.2 - July 6, 2026 = -See: [https://github.com/xwp/stream/blob/develop/changelog.md#422---july-6-2026](https://github.com/xwp/stream/blob/develop/changelog.md#422---july-6-2026) +[View the release notes.](https://github.com/xwp/stream/blob/master/changelog.md#422---july-6-2026) = 4.2.1 - July 2, 2026 = -See: [https://github.com/xwp/stream/blob/develop/changelog.md#421---july-2-2026](https://github.com/xwp/stream/blob/develop/changelog.md#421---july-2-2026) +[View the release notes.](https://github.com/xwp/stream/blob/master/changelog.md#421---july-2-2026) = 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) +[View the release notes.](https://github.com/xwp/stream/blob/master/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) +[View the release notes.](https://github.com/xwp/stream/blob/master/changelog.md#412---february-19-2026) = 4.1.1 - February 3, 2025 = -See: [https://github.com/xwp/stream/blob/develop/changelog.md##410---february-3-2025](https://github.com/xwp/stream/blob/develop/changelog.md##410---february-3-2025) +[View the release notes.](https://github.com/xwp/stream/blob/master/changelog.md#411---february-3-2025) -= 4.1.0 - January 20, 2025 = - -See: [https://github.com/xwp/stream/blob/develop/changelog.md##410---january-15-2025](https://github.com/xwp/stream/blob/develop/changelog.md##410---january-15-2025) - -= 4.0.2 - August 22, 2024 = - -See: [https://github.com/xwp/stream/blob/develop/changelog.md#402---august-22-2024](https://github.com/xwp/stream/blob/develop/changelog.md#402---august-22-2024) - -= 4.0.1 - July 30, 2024 = - -See: [https://github.com/xwp/stream/blob/develop/changelog.md#401---july-30-2024](https://github.com/xwp/stream/blob/develop/changelog.md#401---july-30-2024) - -= 4.0.0 - January 9, 2024 = - -See: [https://github.com/xwp/stream/blob/develop/changelog.md#400---january-9-2024](https://github.com/xwp/stream/blob/develop/changelog.md#400---january-9-2024) - -= 3.10.0 - October 9, 2023 = - -See: [https://github.com/xwp/stream/blob/develop/changelog.md#3100---october-9-2023](https://github.com/xwp/stream/blob/develop/changelog.md#3100---october-9-2023) - -= 3.9.3 - April 25, 2023 = - -See: [https://github.com/xwp/stream/blob/develop/changelog.md#393---april-25-2023](https://github.com/xwp/stream/blob/develop/changelog.md#393---april-25-2023) - -= 3.9.2 - January 10, 2023 = - -See: [https://github.com/xwp/stream/blob/develop/changelog.md#392---january-10-2023](https://github.com/xwp/stream/blob/develop/changelog.md#392---january-10-2023) - -= 3.9.1 - August 23, 2022 = - -See: [https://github.com/xwp/stream/blob/develop/changelog.md#391---august-23-2022](https://github.com/xwp/stream/blob/develop/changelog.md#391---august-23-2022) - -= 3.9.0 - March 8, 2022 = - -See: [https://github.com/xwp/stream/blob/develop/changelog.md#390---march-8-2022](https://github.com/xwp/stream/blob/develop/changelog.md#390---march-8-2022) - -[See the full changelog here.](https://github.com/xwp/stream/blob/master/changelog.md) +[See the full changelog for all releases.](https://github.com/xwp/stream/blob/master/changelog.md) From d6d28dcbc42fcd3645e0c77724f3162d0b2bd7e2 Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 15:08:32 +0530 Subject: [PATCH 08/12] docs(readme): inline latest release notes in changelog with link to GitHub --- readme.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index f11cb349f..54e16cd78 100644 --- a/readme.txt +++ b/readme.txt @@ -141,7 +141,11 @@ Use only `$_SERVER['REMOTE_ADDR']` as the client IP address for event logs witho = 4.2.2 - July 6, 2026 = -[View the release notes.](https://github.com/xwp/stream/blob/master/changelog.md#422---july-6-2026) +Security: + +* Harden authorization for the live update preference: enforce the Stream view capability and always target the current user in the `stream_enable_live_update` AJAX handler so a user can only change their own live update preference. + +[View the full release notes on GitHub.](https://github.com/xwp/stream/blob/master/changelog.md#422---july-6-2026) = 4.2.1 - July 2, 2026 = From 17c6f7dbbb464f7b3321f96cbf02c082bf9babc1 Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 15:09:22 +0530 Subject: [PATCH 09/12] docs(readme): inline user-facing release notes for 4.2.1 and 4.2.0 --- readme.txt | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/readme.txt b/readme.txt index 54e16cd78..10b989cab 100644 --- a/readme.txt +++ b/readme.txt @@ -149,11 +149,33 @@ Security: = 4.2.1 - July 2, 2026 = -[View the release notes.](https://github.com/xwp/stream/blob/master/changelog.md#421---july-2-2026) +Bug Fixes: + +* Fix authorization checks for Stream activity access and harden related AJAX, export, and query paths. +* Fix inverted `isset()` check silently ignoring user search input in `get_users()`. +* Create missing database tables when resetting the database. +* Avoid generating rewrite rules for the alerts post type. + +[View the full release notes on GitHub.](https://github.com/xwp/stream/blob/master/changelog.md#421---july-2-2026) = 4.2.0 - May 28, 2026 = -[View the release notes.](https://github.com/xwp/stream/blob/master/changelog.md#420---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. + +Bug Fixes: + +* Fix unbounded growth of `stream` / `stream_meta` tables: the TTL-based auto-purge now runs via Action Scheduler with batched deletion, resolving database bloat on large sites. +* Fix orphan `stream_meta` rows accumulating across repeated purge cycles with a terminal orphan reaper at the end of every auto-purge chain. +* Skip Action Scheduler queries on front-end pageloads, eliminating unnecessary queries per pageview. + +Enhancements: + +* Add a Clean Orphaned Meta link under Settings → Advanced for one-shot cleanup on already-bloated installs. +* Replace the legacy `wp_stream_auto_purge` WP-Cron event with a recurring Action Scheduler action, with run history visible under Tools → Scheduled Actions. + +[View the full release notes on GitHub.](https://github.com/xwp/stream/blob/master/changelog.md#420---may-28-2026) = 4.1.2 - February 19, 2026 = From 86990b76e7b90daa0f7444b0916363ecd811e2be Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 19:53:39 +0530 Subject: [PATCH 10/12] docs(readme): remove 'Free' from short description --- readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 10b989cab..1d74ec614 100644 --- a/readme.txt +++ b/readme.txt @@ -7,7 +7,7 @@ Stable tag: 4.2.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html -Free real-time activity log and audit log for WordPress. Track every user action — logins, edits, plugin & settings changes — and get alerts. +Real-time activity log and audit log for WordPress. Track every user action — logins, edits, plugin & settings changes — and get alerts. == Description == From 3c9cd9cfed37951ac560b8e9be18b9ccc2040b1c Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Fri, 10 Jul 2026 19:55:07 +0530 Subject: [PATCH 11/12] docs(readme.md): align tagline with WordPress.org short description --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 55ffabd05..345d9dd41 100755 --- a/readme.md +++ b/readme.md @@ -3,7 +3,7 @@ [![Lint and Test](https://github.com/xwp/stream/actions/workflows/ci.yml/badge.svg)](https://github.com/xwp/stream/actions/workflows/ci.yml) [![Coverage Status](https://coveralls.io/repos/github/xwp/stream/badge.svg?branch=develop)](https://coveralls.io/github/xwp/stream?branch=develop) -**A free, open source activity log and audit trail for WordPress — track every user and system action for debugging, security, and compliance.** +**Activity log and audit trail for WordPress.** Track every user and system action for debugging, security, and compliance. - [Product Website](https://xwp.co/work/stream/) - [Plugin on WordPress.org](https://wordpress.org/plugins/stream/) From b24bcc7eec78698d3448e4e32d5a3e63df3eddc2 Mon Sep 17 00:00:00 2001 From: Utkarsh Patel Date: Mon, 13 Jul 2026 18:13:15 +0530 Subject: [PATCH 12/12] docs: drop 'for WordPress' from display name and update Plugin Name header Apply review suggestions from #1924. --- readme.txt | 2 +- stream.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.txt b/readme.txt index 1d74ec614..f6ddc90fe 100644 --- a/readme.txt +++ b/readme.txt @@ -1,4 +1,4 @@ -=== Stream – Activity Log & Audit Trail for WordPress === +=== Stream – Activity Log & Audit Trail === Contributors: xwp Tags: activity log, audit log, event log, user tracking, security Requires at least: 4.6 diff --git a/stream.php b/stream.php index 345ee96e7..fedbf2e41 100644 --- a/stream.php +++ b/stream.php @@ -1,6 +1,6 @@