Metered Plans Changelog
Version 1.5.3 - Released on 2026-05-19
- Fix: OAuth-pool provider plugins (ai-provider-for-anthropic-max and its ChatGPT Codex / Google AI Pro siblings) were not being registered with the AI Client SDK on subsites, causing the AI Agent admin page to render its "Set Up an AI Provider" gate even when the main site had a valid pool. Root cause: those providers self-register at
initpriority 5 and read their pool option viaget_option(), butConnector_Enforcementonly hooked itspre_option_*override atinitpriority 20. The subsite's empty local option row was returned,PoolManager::count()returned 0, and the provider was skipped. The statically-knownEXTRA_PROVIDER_OPTIONSkeys are now hooked duringplugins_loadedso the override is live before any provider's init:5 read. Dynamic Connectors-API-discovered keys still hook atinitpriority 20 as before (they depend on_wp_connectors_init()having run at init:10). Filter hooking is deduped per option key so the two phases never produce double-fires.
Version 1.5.2 - Released on 2026-05-12
- Fix: Prevent latent infinite recursion in the main-site write-through path. The
pre_update_option_{$key}filter callbackwrite_through_to_main_site()calledswitch_to_blog(MAIN)andupdate_option(), which would re-fire the same filter and re-enter the method without a recursion guard — the symmetric counterpart of the 1.5.1 read-path bug. Adds the same two-part guard: short-circuit when already on the main site, and a per-option in-flight$resolving_writeflag with try/finally.
Version 1.5.1 - Released on 2026-05-12
- Fix: Prevent infinite recursion in main-site option override. The
pre_option_{$key}filter callbackoverride_with_main_site_option()calledswitch_to_blog(MAIN)andget_option(), which re-fired the same filter and re-entered the method without a recursion guard. On networks with many sites and many BerlinDB tables, this caused 89,000+switch_to_blogevents per subsite admin request, exhausting PHP memory and returning HTTP 500. The callback now short-circuits when already on the main site and uses an in-flight resolving guard for defence-in-depth.
Version 1.1.0 - Released on 2026-05-05
- New: AI token billing for multisite subsites — track and bill AI token usage across customer sites with configurable per-token rates
- New: Connector enforcement rebuilt with dynamic limit discovery and write-through, ensuring real-time accuracy across all connectors
- Fix: Database table upgrades now correctly aligned with BerlinDB schema definitions, preventing upgrade failures on new installs
- Fix: Database upgrade callbacks converted to the correct format, resolving silent upgrade failures
- Fix: Fractional values now accepted in the AI Usage Overage Markup input field
- Fix: Resolved fatal errors and double-initialization issues on plugin load
- Improved: Added check-env npm script so developer environments self-configure on first run
1.0.3
- Updated to Plugin Update Checker v5
- Added modern WordPress plugin headers
- Improved compatibility with latest WordPress versions
- Enhanced usage tracking performance
1.0.2
- Bug fixes and performance improvements
- Enhanced usage reporting
1.0.0
- Initial release
- Core metered billing functionality
- Usage tracking and overage calculation
- Automatic invoice generation