Releases: RishadAlam/bit-audit
Release list
v1.1.9
= 1.1.9 =
- The release zip no longer contains a stray
buildfolder. Releases since 1.1.7 packaged the build's own staging directory inside the plugin, so every install carried two empty directories that did not belong to it.
v1.1.8
= 1.1.8 =
- CSV export no longer breaks when a report has no catalog. Exporting while a plugin is not installed, or is a built release without its frontend source, produced a sheet of blank cells and a PHP warning for every one; it now exports the reason the report could not be built.
- Exported CSV files no longer carry a PHP 8.4 deprecation notice in their contents, and a field ending in a backslash is written correctly.
- An unreadable directory inside a scanned plugin no longer takes down the audit page — it is skipped instead.
v1.1.7
= 1.1.7 =
- Bit Audit now updates itself from its GitHub releases. A new version appears on the Plugins screen like any other update — one-click update and the auto-update toggle both work — so upgrading no longer means uploading a zip by hand.
v1.1.6
Removes duplicate rows from the Bit Integrations catalog. One platform, one row — a platform that offers both a trigger and an action now appears once, whatever the two catalogs call it.
The same platform under two names
Rows were merged on display name alone, but the trigger catalog and the action catalog are written independently and need not word a platform the same way. AllTriggersName.php carries a descriptive label, SelectAction.jsx carries the module type:
| Trigger name | Action name | Module |
|---|---|---|
| Power Coupons for WooCommerce | PowerCoupons | PowerCoupons |
| ConvertForce Popup Builder | ConvertForce | ConvertForce |
| LearnDash LMS | LearnDash | LearnDash |
| wpForo Forum | WPForo | WPForo |
| Webba Booking Calendar | WebbaBooking | WebbaBooking |
Each of these listed twice — once as a Trigger-only row, once as an Action-only row — with its events split across the two and its tier read from half the picture.
The names disagree, but both entries name the same backend module folder. Rows now collapse on either identity, display name or module slug, so an integration is one row as long as its trigger and action point at the same module — which is what the scaffolding produces.
Slugs only count when the name matched a folder
resolveActionSlug() falls back to a trailing-suffix search when no folder matches the whole name, which is fine for locating a module's operations but far too loose to prove two catalog entries are the same platform: it will reach Mail from Web Hooks and WooCommerce from License Manager For WooCommerce. Resolution now reports whether the match was exact, and only exact matches are treated as identity.
Counts
Five duplicate pairs collapse. Platform integrations 329 → 324; total integrations, trigger and action apps, and every event total are unchanged — the merged rows carry their trigger and action events together and read Both.
Bit Flows is unaffected: it already builds one row per machine root file.
v1.1.5
Corrects Free/Pro tiers that were being reported at the wrong level. Event counts are unchanged from v1.1.4; every difference here is a tier.
Trigger events carry their own Pro flag
A Free trigger module can still gate individual events behind Pro. The route-callback parser returned bare titles and dropped each entry's 'isPro' => true, so every event inherited the module's tier — WooCommerce's 27 events were all reported Free.
WooCommerce is now 14 Free / 13 Pro, and the platform reads Both again:
Restore Product, Restore Order, Coupon Created or Updated, Order Status Set to Pending / Failed / On-hold / Processing / Completed / Refunded / Cancelled, Product Status Changed, Product Added to Cart, Product Removed from Cart.
A trigger's Free/Pro split now comes from its events, the same way an action's split already came from its operations.
Declared per-operation tiers are kept
An action whose every operation came out Pro was rewritten to all-Free. That reconciliation exists to correct tiers inferred from backend heuristics — it was also overriding tiers the catalog states outright. SureContact marks all 42 of its operations Pro and Brilliant Directories all 11, while both SelectAction entries still say is_pro: false. Declared tiers are now left alone; only inferred ones are reconciled.
A catalog that marks every operation Pro also overrides a stale is_pro: false when deriving the platform tier, so the badge and the app counters agree with the operations listed beneath them. SureContact and Brilliant Directories now read Pro.
Operation lists outside a <select>
The parser anchored on the <select> element, so a list passed to a custom dropdown as options={…} was never found and fell through to backend heuristics. MasterStudy LMS lost its four Pro operations and its real labels (Complete Course instead of Course complete for the user). The list is now also located by the checkIsPro(isPro, x.is_pro) call the layouts gate an operation option with, which marks an operation list however it is rendered.
Operation values written as a namespaced constant (MS_LMS_ACTIONS.ENROLL_USER) matched only the leading identifier, so all nine entries shared one slug. The final segment is now used.
Tier changes
| Platform | Before | After |
|---|---|---|
| WooCommerce | Free | Both |
| SureContact | Free | Pro |
| Brilliant Directories | Free | Pro |
Totals: trigger events 112/920 → 99/933 Free/Pro, action events 440/430 → 383/487, action apps 162/48 → 160/50.
v1.1.4
Corrects the event catalogs for 55 Bit Integrations platforms. The audit mined event lists with regexes over raw source, which reported events the Flow builder does not offer and missed the lists it does.
Trigger events
- Comments are stripped before scanning, so commented-out entries are no longer counted. WooCommerce listed 6 deprecated Subscription and Booking events that live in a doc block above the live list.
- Quoted strings are read escape-aware.
__('User\'s role change')was truncated at the apostrophe, rendering Ultimate Member's two events as a singleUser\(also BuddyBoss, Paid Membership Pro, WP Job Manager). - A route callback that only forwards its list to another static method is now followed. Voxel reports its 27 named events instead of 21 raw hook slugs (
Voxel/app Events/post Types/collection/post:submitted); Mail Mint and WP Courseware gain their real names. - Titles are also read from positional task constructors and from plain untranslated string lists (Fluent Booking).
- Interpolated titles are rejected —
"Piotnet Forms - {$form->settings->form_id}"names a per-site form, not a catalog event.
Action events
- The operation dropdown is resolved through the JSX
<select>that renders it, so the list is found under whatever name an integration gave it — WooCommerce'smoduleType, GamiPress'sallActions— including literal<option>children (Asana, the CRM integrations) and single-entry lists (Propovoice CRM, Mail Mint). - Operation lists served by a backend route are parsed (Mail Chimp).
- Double-quoted labels and SCREAMING_CASE operation values are accepted, so BuddyBoss shows
Add a post to the user's activity streaminstead ofAdd Post User Activity Stream. Config::withPrefix()calls that name a transient key, an error code, a compared field prefix, or a filter feeding the builder's response payload are no longer read as operations. GamiPress reported 5 transient cache keys (gamipress_rank_types, …) as Pro actions.
Tiers
The catalogs mark a Pro-only event with a trailing " Pro" on its label, and Pro operations with a _PRO constant. Both are now read as the event's tier instead of being left in the name. Tier corrections: LearnDash Free → Both; WooCommerce, Hubspot, Freshdesk and SendPulse Both → Free.
Corrected event counts
| Platform | Triggers | Actions |
|---|---|---|
| Acumbamail | — | 1 → 2 |
| BuddyBoss | 14 → 15 | — |
| CustomApi | — | 3 → 1 |
| Freshdesk | — | 5 → 4 |
| GamiPress | — | 10 → 6 |
| Hubspot | — | 8 → 4 |
| LearnDash | — | 13 → 16 |
| LifterLMS | — | 9 → 7 |
| LionDesk | — | 1 → 2 |
| Mail Chimp | — | 4 → 3 |
| Mail Mint | — | 2 → 1 |
| MailerPress | 10 → 7 | — |
| Memberpress | — | 1 → 2 |
| Paid Membership Pro | — | 4 → 2 |
| PiotnetAddon | 2 → 1 | — |
| PiotnetAddonForm | 2 → 1 | — |
| SendPulse | — | 2 → 1 |
| Ultimate Member | 1 → 2 | — |
| Voxel | 21 → 27 | — |
| WP Job Manager | 10 → 11 | — |
| WP Travel Engine | 3 → 2 | — |
| WooCommerce | 33 → 27 | — |
| Woodpecker | — | 2 → 3 |
| Zoho Bigin | — | 3 → 2 |
A further 31 platforms keep their counts but now show their real event names. Totals: 1024 → 1021 trigger events, 872 → 860 action events.
v1.1.3
Fixes how Bit Integrations trigger events are read, correcting Bit CRM and eight other modules.
Changes
- Trigger events are now read from the module's own task list even when it is declared inside the controller rather than a
StaticData.php. Bit CRM reports its 66 named events (Lead Created,Tag Attached To Deal, …) instead of 58 raw hook slugs (Bit Crm/lead Created). - Fixed two latent faults in trigger task-list parsing:
- modules that list the hook before its label (Post) paired every event with the following entry's hook and dropped the last one;
- labels containing an apostrophe (
__("User's Membership Deleted")) were truncated at the quote, rendering 10 of WooCommerce Memberships' 15 events asUser.
Corrected event counts | Module | Before | After |
| --- | --- | --- |
| Bit CRM | 58 | 66 |
| Popup Maker | 10 | 6 |
| BookingPress | 8 | 7 |
| FluentSMTP | 3 | 2 |
| Kadence Blocks Form | 2 | 1 |
| Masteriyo LMS | 3 | 4 |
| Paymattic | 4 | 5 |
| WP All Import | 2 | 3 |
| User Registration | 16 | 17 |
Total trigger events 957 → 962. A further 69 modules keep their count and gain their real event names plus populated hooks. Action events are unchanged at 757.
Full Changelog: v1.1.2...v1.1.3
Bit Audit v1.1.2
Fixed
- Bit Integrations trigger labels now use each platform controller’s info() name metadata instead of deriving names from directory slugs.
- Abbreviated folders such as CF7, WC, and WPF now display as Contact Form 7, WooCommerce, and WPForms.
Full Changelog: v1.1.1...v1.1.2
Bit Audit v1.1.1
Fixed
- Bit Integrations action tiers now follow the Flow builder's own
is_proflag. An action is counted as Pro only when every operation it offers is Pro, instead of re-deriving the tier from backend operation heuristics. This fixes six actions that were over-counted as Pro: ActiveCampaign, GetResponse, Keap, Salesmate, Zoho CRM, Zoho Recruit.
Result
- Action split: 159 Free / 27 Pro (was 153 / 33).
- Integration tier distribution: Free 116 / Pro 141 / Both 49.
Full Changelog: v1.1.0...v1.1.1
Bit Audit 1.1.0
Reads each plugin's catalog from a locally installed source checkout (a built/minified release strips the frontend source it needs), and is robust to how the plugins are installed.
Changes
- Local source auditing — reads the catalog from the installed plugin's
frontend/src+ backend on disk. Shows a clear notice when the source isn't present (e.g. a minified release). - Robust plugin detection — resolves each plugin's directory by its Text Domain, so an install under a non-standard folder (e.g.
bit-integrations-mainfrom a GitHub "Download ZIP") is still found. - Installed-only — a fresh site no longer shows a phantom catalog. Requires both Free and Pro, with individual "not installed" errors for each.
- Refresh clears the cache and re-reads the source.
Install
Download bit-audit.zip below → Plugins → Add New → Upload Plugin → Install → Activate.