Ratchet
v26.08.04Updated: 25/08/2026
[team_mw]v26.08.04
-Fix array-offset-on-bool notices in the ACF Date helpers (26.08.04)
get_field_object() and get_sub_field_object() return false when the field
does not exist on the post. Both Date helpers indexed straight into that
result, logging “Trying to access array offset on value of type bool” into
the debug.log of every armed site with WP_DEBUG on — 598 hits in 8 days on
johndimond.com.au alone.
The notice was the visible half. createFromFormat(null, null) returns a
DateTime set to “now” rather than false, so a missing field rendered
TODAY’S DATE instead of nothing. Every logged notice was also a wrong date
on the page.
Guarded both helpers so a missing field, a field with no return_format, or
a non-string value returns null, and guarded every createFromFormat()
result before ->format(). On PHP 8 the unguarded ones were fatals, not
notices: “Call to a member function format() on false” on an unparseable
date string, and a TypeError when the value was an array.
Also dropped the unreachable code after the return in the legacy
RatchetHelpersDate::get_field_range(), which referenced two undefined
variables.
Verified old vs new against a stubbed ACF: all valid-input output is
byte-identical, all diagnostics gone. Both release gates pass.
Co-Authored-By: Claude Opus 5
v26.08.03
-Fix 26.08.02 shipping without the Comments, Cron and Fs endpoints
26.08.02 went out fleet-wide missing three endpoint files. They were written,
they worked, they were listed in RestRouter::shipped_endpoints() — and they were
never `git add`ed. The GitHub Action builds the zip from the pushed tag, so no
released bundle has ever contained them.
The failure was silent from every angle that gets checked. /status and /health
kept reporting `fs`, `comments` and `cron` as implemented and granted, because
those come from the ApiGate catalogue rather than from disk. Meanwhile every
/fs/*, /comments/* and /cron/* route answered 404 rest_no_route on every site.
With /exec neutered to a 501 stub in this build, that left 26.08.02 sites with
no file-read channel at all. /health did flag capabilities.degraded, which is
how it was eventually caught.
Confirmed on sunbrush.co.nz, aflex.com.au, lawfords.com.au and
cwanorthumberland.org.au — the identical three missing on each.
– Add Ratchet/Api/endpoints/Comments.php (scope `comments`)
– Add Ratchet/Api/endpoints/Cron.php (scope `cron`)
– Add Ratchet/Api/endpoints/Fs.php (scope `fs`, read-only)
– Track tests/ — both release gates were themselves untracked, same cause
– registration-smoke: assert every shipped endpoint is TRACKED IN GIT
That last check is the one that would have caught this. Presence on disk was
already asserted and passed; presence in the index is the claim that actually
predicts what the tag, and therefore the zip, will contain.
Co-Authored-By: Claude Opus 5
v26.08.02
-Add data-ops scope and endpoint for typed read/write/query operations
Introduce a safer alternative to php-exec for routine database tasks, enabling typed reads, writes, and queries through WordPress APIs without triggering malware scanners. Add new scope, endpoints, and supporting functionality in ApiGate and DataOps. Update logger functionality to attach keys to API requests and improve permissions handling.
v26.07.02
-Add data-ops scope and endpoint for typed read/write/query operations
Introduce a safer alternative to php-exec for routine database tasks, enabling typed reads, writes, and queries through WordPress APIs without triggering malware scanners. Add new scope, endpoints, and supporting functionality in ApiGate and DataOps. Update logger functionality to attach keys to API requests and improve permissions handling.
v26.07.01
-Add read-only /health endpoint for fleet site analysis
GET /ratchet/v1/health returns a cheap one-call snapshot per armed site:
core/PHP/DB/server versions, active theme, pending update counts, key
environment flags, and plugin counts. Same auth model as /status (any valid
bearer, no scope, count_use=false) so a fleet-wide audit is free to poll.
Reads WordPress’s existing update transients only, no remote wp.org check or
filesystem walk, so it stays sub-second. Bump version to 26.07.01.
Co-Authored-By: Claude Opus 4.8
v26.06.09
-Add setting to hide WP Toolkit from admin and dashboard
v26.06.08
-Add setting to hide WP Toolkit from admin and dashboard
v26.06.07
-Bump to 26.06.07 — release to verify the deploy-pipeline fix
No code change; exercises the new continue-on-error upload + HTTP-reachability
gate so the version-registration webhook fires despite the FTP control-socket
flap.
Co-Authored-By: Claude Opus 4.8
v26.06.06
-Add Gravity Forms + PHP Exec API endpoints; release-pipeline concurrency guard
v26.06.02
-Add Hide Login URL setting (obscure wp-admin / wp-login.php)
Ports Solid Security’s “Hide Backend” into Ratchet, guarded by a
Settings > Login toggle + custom slug. wp-login.php 404s and /wp-admin
redirects home for logged-out visitors; login is served only at the
custom slug, with all WP-generated login URLs rewritten to it.
Self-guards on an empty slug to avoid lockout. Bumps version to 26.06.02.
Co-Authored-By: Claude Opus 4.8
v26.06.01
-Fix wp_tempnam fatal on REST module & media install
wp_tempnam() is defined in wp-admin/includes/file.php, which is not
loaded during REST requests. Modules::install_module() and the media
upload endpoint both called it before that file was available, so every
module install / media upload over the API fatally errored
(Uncaught Error: Call to undefined function wp_tempnam()). Load the file
on demand before the call in both endpoints. Bump version to 26.06.01.
Co-Authored-By: Claude Opus 4.8
v26.05.18
-Merge: ACF field-group fields in export + /acf/values/{id} (v26.05.18)
v26.05.17
-plugin update endpoint — close the release loop
POST /ratchet/v1/plugins/{slug}/update runs Plugin_Upgrader. After this
ships once, every subsequent Ratchet release self-installs: push tag →
GH Action builds → webhook updates makelabs → Claude POSTs /update with
confirm_version → next request runs the new code. No more wp-admin trips
between releases.
Guardrails mirror DELETE /pages:
1. Separate scope `plugins-update`, never auto-granted from `plugins`.
2. `confirm_version` body field required — must match the version the
server currently sees as available (forces a fresh wp_update_plugins
check before comparison, so the value isn’t stale).
3. Self-update (Ratchet upgrading itself) requires ?force=true.
4. ?dry_run=true returns {current_version, available_version} without
acting. Free to call.
5. Audit log captures version delta and any Plugin_Upgrader/skin errors.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.16
-DELETE /pages/{id} with stacked guardrails
Completes the post CRUD cycle — media has DELETE, posts didn’t. New
endpoint trashes by default, with several independent safety rails:
1. Separate scope `pages-delete` — must be armed alongside `pages`,
never auto-granted. Most sessions won’t have it.
2. Trash semantics by default (wp_trash_post). Reversible via wp-admin.
Permanent removal needs explicit ?force=true.
3. `confirm_slug` query param required — must match the post’s current
post_name. Forces caller to fetch first; protects against stale IDs
and “I thought 42 was a test post but it was the homepage” mistakes.
4. `?dry_run=true` returns the snapshot of what would be deleted
without doing it. Free read.
5. Audit log captures a pre-delete snapshot (id, slug, title, word
count, author, thumb, dates) for forensics.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.15
-verify_request: count once per HTTP request, not per callback fire
WP REST calls permission_callback more than once per request (route
discovery, pre-dispatch, dispatch — three to four times in practice).
26.05.14 made GETs free but still over-counted writes: one POST /pages
was hitting the counter +3 instead of +1.
Track the WP_REST_Request object hash; first verify counts and logs,
subsequent verifies for the same request are no-ops. Class statics
persist across requests under PHP-FPM so a small bounded cache (64
entries, trimmed to 32 on overflow) caps memory.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.14
-verify_request: only state-changing methods count toward uses
Reads burn no budget. GET/HEAD/OPTIONS are read-only — listing routes,
status probes, GET /pages and friends now cost nothing against max_uses.
POST/PUT/PATCH/DELETE still count. Fixes 26.05.13 where every successful
verify was incrementing the counter and a few probes could disarm a
freshly-armed session.
$count_use becomes tri-state — null (default) auto-detects from method,
true/false force on/off. Status endpoint keeps explicit false; everything
else picks up the smart default automatically.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.13
-batch create, /status, featured_image_url sideload, dry-run
Pages API gets more migration ergonomics. Batch endpoint lets a 100-post
migration cost one use instead of a hundred. featured_image_url removes
the upload-then-set dance for the common case (and sidesteps the local
Ratchet CLI proxy’s X-header stripping). Dry-run on create mirrors the
existing dry-run on update. Built-in fields post_parent / menu_order /
comment_status / ping_status / sticky now round-trip.
/status is a no-scope, no-count endpoint that reports the armed-session
shape — uses-remaining, scopes, plugin version, arming user — so callers
can decide whether to act before they burn budget. ApiGate::verify_request
gets a $count_use flag that /status passes false to keep polling free.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.12
-Pages API: accept excerpt/date/author on create + update
Lets content migrations preserve original publish dates and authorship
instead of stamping today’s date / arming user across the board. Excerpt
shares the same path so post_excerpt round-trips cleanly too.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.11
-auto-register team auth on first front-end visit, not just admin_init
Pre-26.05.11, sites only registered with the team auth server when
somebody loaded wp-admin. Sites that received Ratchet via auto-update
without anyone touching wp-admin afterwards stayed unregistered, and
the bookmarklet returned “Site is not registered for team auth”
indefinitely.
Fix is split across two contexts to keep the front-end fast and to
make sure the shared secret is never read into front-end memory:
– New `kick_register_if_needed` hooked on `init`. Bails in admin/cron/
CLI, then does a single autoloaded-option lookup. If the site isn’t
registered it schedules a one-shot `mw_team_auto_register_cron`
event and returns. No DB queries, no HTTP, no secret access on the
front-end hot path.
– The actual `maybe_auto_register` (which loads `mw_shared_secret`
and POSTs to team.makeweb.com.au) now runs on `admin_init` AND on
the new cron event — never on a front-end request.
`mw_team_registered` is now written autoload=true so the front-end
check is in-memory. A one-time idempotent `wp_set_options_autoload`
call inside `maybe_auto_register` migrates existing rows on the next
admin/cron run after upgrade.
v26.05.10
-add token metadata to heartbeat response and enforce LiteSpeed cache bypass for team operators
v26.05.09
-Code Scanner: roll out locked “J” design system
Visual + interaction model from the mockup series at
~/Claude/tools/ratchet-bar-mockups/. Highlights:
UI
– Compact white bar (search input + match-mode toggles inside +
Filters + Scan); modal for everything else
– Match-mode toggles (Aa / ab / .*) live in the bar — they affect
every keystroke so a modal trip would be friction. Whole-word
and Regex are mutually exclusive (both compile to a regex)
– Glass modal with: All / Refined toggle + Limit dropdown inline +
collapsible Refined picker (Core / Plugins / Themes tabs, ghost-
pill style) + File types pills (with custom-ext chips and ANY
wildcard exclusivity)
– Two-state checkbox semantic: ticked = scanned. No more
include/exclude dual mode.
– Drawer for “View whole file” preserved
– Quiet summary line under the bar reads current state at a glance
Backend (CodeSearch)
– resolve_paths now takes (mode, includes[]). All = ABSPATH;
Refined = sum of resolved include identifiers (kind:slug)
– New helpers: resolve_include, core_paths, available_cores,
available_plugins, available_themes — feed the picker tabs
– Old scope/plugin/theme params removed; the model is simpler now
REST endpoint (/dev-tools/scan)
– Accepts mode + includes[] alongside the existing match flags +
filetypes + max. Old scope/plugin/theme params removed.
Tokens
– New file: assets/css/admin/ratchet-tokens.css. Single source of
truth for palette + motion across every Ratchet admin panel.
Documented in the style guide in the mockups directory.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.08
-Code Scanner: drop filters toggle, add match modes / theme picker / limit
Filters are now permanently visible. The collapse toggle was useless
once a search ran (the panel auto-expanded anyway), so the spacer is
locked at 132px and the bar always shows both rows.
Search controls promoted to first-class:
– Three VSCode-style match-mode toggles inside the search field —
case sensitive (Aa), whole word (underlined ab), regex (.*).
Whole-word and regex are mutually exclusive (both build patterns).
– Backend honours the flags: CodeSearch::run_scan now takes an
options array; whole-word wraps the literal in b…b, regex uses
the input verbatim, both compile-validate up front so a bad regex
surfaces as a clean WP_Error instead of silent zero-results.
New filter dimensions:
– “Specific theme” segmented option mirrors “Specific plugin”; both
use a shared renderCombobox() helper and a generic typeahead JS
module so swapping/extending pickers stays one-file.
– Result-limit dropdown (50/200/500/1000/2000) replaces the
hard-coded 500.
Icon clean-up: every hand-drawn SVG swapped for WP dashicons
(search, no-alt, backup, plus-alt2, arrow-down-alt2). Sharper at the
sizes shown in the bar and consistent with the rest of WP-admin.
DevTools REST: /dev-tools/scan now accepts case_sensitive,
whole_word, regex, theme alongside the existing fields, and
propagates run_scan WP_Errors back to the client.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.07
-add Ratchet Tools dashboard tab and pin menu position
– Submenu label now reads “Ratchet Tools” (was “Ratchet”), matching
how the user thinks of the toolkit, and is registered with
position 9999 so it always lands at the bottom of the Tools
submenu regardless of which other plugin items are present.
– New default “Dashboard” tab — opens whenever the user clicks the
wrench icon. Shows a card per registered tool with summary text
and a live status badge (e.g. API → “Armed · 96m left” /
“Disarmed” / “Cooldown”). Each card links into its tab.
– Tab strip’s title chip is now a link back to the dashboard so
the wrench is always one click away from the overview.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.06
-fix Code Scanner CSS bugs surfaced by browser audit
Two bugs preventing the redesigned bar from rendering correctly:
1) The bar was anchoring to left:36px on desktop. WordPress sets
`body.auto-fold` unconditionally on most admin pages but the
actual sidebar fold only kicks in inside `@media (max-width:
960px)`. The unscoped `body.auto-fold .rcs-form` rule was
shoving the bar 124px left, hiding it behind the still-160px
sidebar. Same fix applied to the hub tab strip.
2) The filters panel, plugin combobox panel, and several other
show/hide elements use the HTML `hidden` attribute. The UA
stylesheet’s `[hidden] { display: none }` lost specificity to
`.rcs-form__filters { display: grid }` so toggling did nothing.
Added `.rcs-form [hidden] { display: none !important }` (and
the same for the drawer/backdrop) so the hidden attribute now
actually hides.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.05
-redesign Code Scanner search bar with custom controls
Hub menu icon now uses the existing ratchet_icon CSS pattern (as in
SettingsPage.php and Ratchet/WP/Users/Init.php) so the wrench glyph
matches the one already shown beside Profile/et_divi entries — same
ratchet-admin.css styles cover it without new CSS hooks.
Search bar rebuilt with hand-coded controls instead of native
selects/dropdowns:
– Search field: magnifier glyph, clear button (×), recent-searches
popover (last 8 queries via localStorage), keyboard shortcut hint
(“/” or ⌘K to focus, Esc to clear)
– Filters panel: collapsible, hidden by default unless the previous
search was non-default; spacer auto-resizes when toggled so results
never slide under the bar
– Scope: segmented pill control (radiogroup) wired to a hidden
`target_scope` field
– Plugin picker: custom typeahead combobox (button → popover with
filter input + filtered list, ↑/↓/Enter/Esc keyboard nav). Hidden
unless scope=Specific plugin; clears its selection when scope flips
– File types: pill toggles + “+” trigger that swaps in a chip-input
for custom extensions (Enter to add, × to remove). “ANY” is a
single-purple override that clears the per-extension picks and
vice-versa
– Form-wide “/” / ⌘K keyboard shortcut focuses the search field
Cohesive dark palette (admin-bar grey + WP blue accent), 6px radii,
soft focus rings, smooth 150-200ms transitions across all controls.
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.04
-consolidate Tools menu items into a single Ratchet hub
Code Scanner and Ratchet API used to occupy two separate Tools
submenu items. They now live as tabs inside one wrench-iconed entry
(Tools → 🔧 Ratchet) that follows a deliberate pattern: each WP-admin
section can grow a sibling Ratchet hub later (Users hub, Posts hub,
etc.) using the same icon so operators recognise the affordance.
ToolsHub registers the menu, renders a fixed top tab strip
(sidebar-aware for folded/auto-folded admin layouts), and dispatches
to per-tab render_panel() statics. Each panel keeps its own
capability check.
Code Scanner: search bar now stacks BENEATH the hub tab strip
(top:76px) instead of fighting it for the same anchor; hub gives the
panel its standard gutter so the search bar still spans full width.
API panel: dropped its own .wrap and h1 since the hub provides them;
arm/disarm redirects now go through ToolsHub::tab_url(‘api’).
Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.03
-polish wp-admin Code Scanner UX
Five fixes from operator feedback:
– Top bar now position:fixed under the WP admin bar instead of
sticky-after-scroll, with sidebar-aware left offset for folded /
auto-folded admin layouts
– Plugin picker stays hidden until scope = “Specific plugin” (and
clears its selection when scope changes away)
– Filetype dropdown replaced with inline pill toggles + an “Any”
override; CodeSearch::run_scan honours ‘any’/’*’ / empty list as
a wildcard so the bar’s “Any” button does the right thing
– Tightened result line spacing — dropped the trailing newline
emitted between line spans (preserved-whitespace `
` was
rendering it as a visible blank row) and locked min row height
to 1.4em
- "View whole file" now opens an offcanvas drawer that slides in
from the right (with backdrop, ESC-to-close, body scroll lock)
instead of expanding inline beneath the file's match listCo-Authored-By: Claude Opus 4.7 (1M context)
v26.05.02
-unify dev-tools/scan with file-read mode and refactor admin Code Scanner
The REST endpoint and the wp-admin Code Scanner both did their own
filesystem grep. Pulled the shared logic into RatchetToolsCodeSearch
so they can’t drift, then taught dev-tools/scan to also serve a
read-file mode (single endpoint, three input shapes). Path safety
lives in one place.Admin UI: now shows every match per file (not just the first), groups
results by file with a count badge, and adds a “View whole file”
button that loads the full file via admin-ajax (same CodeSearch
helper) so you can move from “found it” to “read the surrounding
code” without bouncing between tools.Co-Authored-By: Claude Opus 4.7 (1M context)
v26.05.01
-add sync reindex support for facets in Postmaster API
v26.04.16
-update Admin UI defaults and remove redundant MakeWeb gate in DevTools endpoint
v26.04.15
-streamline Postmaster API labels and descriptions remove version-specific references and add one-click token handoff to Ratchet CLI
v26.04.14
-add DevTools support to Ratchet API with recursive string scanning
v26.04.13
-add DevTools endpoint to Ratchet API with source-code scan support
v26.04.12
-add read support for module files in Ratchet API
v26.04.11
-add create and duplicate support for cards and grids in Postmaster API
v26.04.10
-add compile and persist CSS support for cards in Postmaster API
v26.04.09
-add enhanced read support and CSS rebuild endpoint for cards in Postmaster API
v26.04.08
-add manual reindex support for facets in Postmaster API
v26.04.07
-add create support for facets in Postmaster API
v26.04.06
-add CRUD support for Theme Builder layouts in API endpoints
v26.04.04
-add write and delete support for cards in Postmaster API
v26.04.03
-add write and cache-flush support to Postmaster API for grids and facets
v26.04.02
-add Postmaster API endpoint for WP Grid Builder with read-only support
v26.04.01
-add Postmaster API bridge for WP Grid Builder with read and future edit support
v1.26.14
-add UptimeMonitor helper for self-registration with central uptime monitor
New helper at Ratchet/Helpers/UptimeMonitor.php runs a wp-cron job that
asks https://uptime.makelabs.com.au/check.php whether this site is
already monitored, and if not, POSTs to /request.php with a shared
bearer secret to add itself to the moderation queue.Adaptive cadence: re-check next day if not yet monitored (catches
approval quickly), next month once monitored (light touch). Self-heals
via __construct rescheduling if the chain ever breaks.Co-Authored-By: Claude Opus 4.7 (1M context)
v1.26.13
-add missing-secret check to team auto-registration flow to handle cases of manual deletion or corrupted state by forcing re-registration
v1.26.12
-refine team auto-registration logic with throttled retries and daily heartbeat handling for better recovery from server-side state changes or URL modifications
v1.26.10
-implement JS-readable login marker cookie for cache-stale detection, add cache-buster reloads on login/logout, and enable robust URL change handling with fingerprinting to prevent cloning conflicts; update auto-registration flow
v1.26.09
-update tested WordPress version to 6.8.2
v1.26.08
-update tested WordPress version to 6.8.2
v1.26.06
-fix DELETE /theme-builder/templates post-type check: Divi uses et_template not et_theme_builder_template; bump to 1.26.06
v1.26.05
-TB templates default-inherit global header/footer from Default Website Template; add DELETE endpoints for templates and orphan layouts; bump to 1.26.05
v1.26.04
-link new TB templates into theme_builder parent _et_template meta + invalidate caches so they render; bump to 1.26.04
v1.26.03
-promote request to admin user for Divi TB calls so internal current_user_can checks pass; restore on exit; bump to 1.26.03
v1.26.02
-hook wp_die_*_handler filters to throw RuntimeException so try/catch surfaces the real message; bump to 1.26.02
v1.26.01
-capture fatal errors from Divi TB calls via shutdown handler + ob buffer; bump to 1.26.01
v1.26.00
-add ACF field-group, Plugins, and Options endpoints; mark scopes implemented; bump to 1.26.00
v1.25.02
-wrap Divi Theme Builder calls in Throwable catch, probe missing functions, lazy-load theme-builder.php, bump to 1.25.01
v1.25.00
-update plugin version to 1.25.00
v1.24.04
-update plugin version to 1.24.04
v1.24.03
-refactor MakeSecureLogin to improve action handling, simplify key propagation, and strengthen IP scoping
v1.24.02
-harden MakeSecureLogin by extending passthrough actions and excluding authenticated users from gating
v1.24.01
-harden MakeSecureLogin by adding rate-limiting, randomized click delays, improved transient handling, and bypass logic for safe wp-login actions
v1.24.0
-add Ratchet API module with scoped REST endpoints and admin UI for managing time-boxed access
v1.21.05
-harden TeamAuth redirect logic by validating return URLs and excluding inappropriate paths
v1.21.03
-remove deprecated conditional.php and migrate functionality to ConditionalFallback class
v1.21.04
-harden multiple functionalities across plugins and themes by adding proper nonce and capability checks
v1.21.02
-refactor MakeWeb helper to improve admin user lookup logic during password rotation
v1.21.01
-refactor MakeWeb helper to improve admin user lookup logic during password rotation
v1.21.00
-remove conditional logic for team_auth and make it always enabled across sites
v1.20.02
-improve TeamAuth auto-registration logic with URL change detection and retry throttling
v1.20.01
-update TeamAuth default admin username placeholder and fallback value to makeweb
v1.20.00
-ensure mw_shared_secret option is generated if missing and improve URL registration handling
v1.19.06
-update plugin metadata for version compatibility
v1.19.05
-remove MakeUpdate handler and integrate PageLocker and TeamAuth features for improved post editing lock management
v1.18.04
-extend MakeWeb helper class to support maintenance monitor case
v1.18.03
-update MakeWeb plugin to rename plugin_check case to plugin_monitor in helper class
v1.18.02
-refactor MakeWeb plugin to enhance plugin inspection logic and improve JS connection management scripts
v1.18.01
-add MakeWeb helper class with REST API integration, malware scanning, and connection management features
v1.18.0
-add MakeWeb helper class with REST API integration, malware scanning, and connection management features
v1.17.48
-include System helper initialization in plugin bootstrap loading process
v1.17.47
-include System helper initialization in plugin bootstrap loading process
v1.17.46
-refactor settings structure for improved modularity and add fallback options for non-Divi environments
v1.17.45
-refine admin bar indicator styling for client view mode and improve frontend restriction script logic
v1.17.44
-add admin bar indicator for client view mode and improve frontend restriction script logic
v1.17.43
-update pre_loader image visibility logic based on pre_loader toggle
v1.17.42
-update LoginMetrics setup to use default monitoring configuration and pre-configured credentials enable monitoring by default
v1.17.41
-add ConditionalFallback class for backward compatibility and refactor security functionality to include LoginMetrics and MakeSecureLogin helpers
v1.17.38
-add nowrap utility style to inlineCSS filters
v1.17.37
-hide DiviMode API notice for non-admin users except user ID 8
v1.17.36
-hide DiviMode API notice for non-admin users except user ID 8
v1.17.35
-hide DiviMode API notice for non-admin users except user ID 8
v1.17.34
-add daily cron job for failed login notifications and adjust LoginSecurity thresholds
v1.17.33
-increase max login attempts in LoginSecurity helper
v1.17.32
-refactor scripts and logs handling add LoginSecurity helper and improve VideoPopup triggers
v1.17.31
-refactor scripts and logs handling add LoginSecurity helper and improve VideoPopup triggers
v1.17.30
-refactor LogMaintenance to adjust logging behavior and streamline log handling
v1.17.29
-add LogMaintenance class to manage iThemes Security log size and integrate daily maintenance scheduling
v1.17.28
-comment out deprecated ConditionalFallback class usage
v1.17.27
-add ConditionalFallback class to replace deprecated conditional logic
v1.17.26
-refactor and replace deprecated conditional logic with ConditionalFallback class and add deprecation notice
v1.17.25
-refactor and fix ai class defs
v1.17.24
-refactor and fix ai changes syntax
v1.17.23
-refactor and fix ai changes
v1.17.22
-refactor and fix function checks for builder compatibility and ensure graceful handling of missing dependencies
v1.17.21
-add support for direct video URLs in VideoPopup and enhance VideoParser logic
v1.17.20
-refactor namespace structure and update file paths to improve plugin organization
v1.17.19
-refactor date helper to add namespace prefixes for acf functions and enhance function existence checks
v1.17.18
-added class alias for Date helper updated version to 1 17 18 and fixed return type for resolvePopupId method
v1.17.17
-Update plugin version to 1.17.17
v1.17.16
-refactor namespaces for better modular structure and relocate files to align with updated architecture
v1.17.15
-refactor shortcodes structure reorganize namespaces and file locations for improved modularity and clarity
v1.17.14
-refactor shortcode registration to use shouldRegisterShortcodes method and ensure function existence checks are centralized
v1.17.13
-Fix shortcode system validation and initialization logic
v1.17.12
-Changed visibility of register_shortcodes methods from protected to public and explicitly defined return type as void across all shortcode classes
v1.17.11
-Refactor shortcode initialization to include validation and registration tracking
v1.17.10
-update plugin version to 1.17.10
v1.17.07
-Refactor VideoPopup shortcode
v1.17.06
-OOP for shortcodes tweak 3
v1.17.05
-OOP for shortcodes tweak 2
v1.17.04
-OOP for shortcodes tweak
v1.17.03
-OOP for shortcodes
v1.17.02
-new plugin toggle helper
v1.17.01
-minor css tweaks
v1.17.00
-debrand activity log
v1.16.04
-lock code scanner to MW
v1.16.03
-class load fix
v1.16.02
-class fix
v1.16.01
-better loading codescanner
v1.16.00
-introducing code scanner!!
v1.15.07
-layout inserter loading tweaks
v1.15.06
-module list load restrictions
v1.15.05
-preload filters retry
v1.15.04
-preload filters
v1.15.01
-fix menu items
v1.15.0
-new module interface
v1.14.47
-remove client view mobile
v1.14.40
-disable ithemes lockout notices
v1.14.39
-register_access_key_route
v1.14.38
-better non DIVI Compatability
v1.14.37
-favicon fix
v1.14.36
-remove rouge favicons
v1.14.35
-fix init errors on divi modules
v1.14.34
-Fix Sonja Password missing class
v1.14.33
-Fix Sonja Password 2
v1.14.31
-monitor v0.1
v1.14.30
-Sonja user to replace Monique
v1.14.28
-new makedev.com.au features
v1.14.27
-remove un needed function that breaks old DIVI
v1.14.26
-make fields update
v1.14.25
-fix warning on login
v1.14.24
-fix warning if no save
v1.14.23
-admin email updater
v1.14.22
-fix missing class duplicateMenu
v1.14.20
-tidy up
v1.14.19
-role redirect log fix
v1.14.18
-Reword logger msg
v1.14.17
-redirect after module upload
v1.14.16
-add switch to turn off comments
v1.14.15
-added ability to show site health
v1.14.14
-fix user reset password settings
v1.14.13
-remove upselling for notification plugin and create space in ratchet to extend
v1.14.12
-mobile client view module
v1.14.11
-mobile client view module
v1.14.10
-remove rest endpoints if not ready to use
v1.14.09
-make WP_REST_Response work
v1.14.08
-added Makedev_Pages
v1.14.07
-Remote accesskey check
v1.14.06
-Remote accesskey
v1.14.05
-Remove WPENGINE branding!
v1.14.04
-Remove WPENGINE branding
v1.14.03
-ip access helper added
v1.14.02
-custom modules autoload try 2
v1.14.00
-custom modules
v1.14.01
-custom modules autoload
v1.13.63
-cleaning up options pages 2
v1.13.62
-cleaning up options pages
v1.13.61
-new role based settings for users
v1.13.60
-fixed whitespace in video popup shortcode
v1.13.59
-change cron method added
v1.13.58
-fix is_plugin_active load order
v1.13.57
-woo init2
v1.13.56
-woo init
v1.13.54
-rename cron helper
v1.13.53
-added cron helper
v1.13.52
-fix users tab icon load
v1.13.51
-fix users tab icon
v1.13.50
-another mailgun fix
v1.13.49
-fix loading reset module not settings
v1.13.48
-reset pass tweak
v1.13.47
-namespace issues
v1.13.46
-user password redirect and module start
v1.13.45
-ratchet for users
v1.13.44
-mailGun v2 update
v1.13.43
-mailGun real test
v1.13.42
-fix client view for other servers take 2
v1.13.41
-fix client view for other servers
v1.13.40
-log update to slack
v1.13.39
-new ratchet for all
v1.13.38
-custom_logs improvements
v1.13.37
-logger notice
v1.13.36
-eqh fix for non specified size
v1.13.35
-auto versions for my sanity
v1.13.33
-temp file fixes and versions
v1.13.32
-temp file fixes
v1.13.31
-new temp files allow run quick actions once
v1.13.30
-theme theme
v1.13.29
-tame the logs
v1.13.28
-check if Divi
v1.13.27
-ps4 auto why
v1.13.26
-oops
v1.13.25
-start refactor for growth
v1.13.22
-new eqh@size breakpoint options
v1.13.20
-Disable WordPress Administration Email verification
v1.13.19
-oops
v1.13.18
-fix php 8.1 namespace error
v1.13.17
-make sure! only loaded when acfe from loaded
v1.13.16
-make sure only loaded when acfe from loaded
v1.13.15
-img title tamer
v1.13.13
-remove instpage for lightspeed alt
v1.13.12
-escape were
v1.13.11
-MW view warning
v1.13.10
-client view to MW
v1.13.09
-client view settings tab
v1.13.08
-client view popup msg
v1.13.07
-client view
v1.13.05
-conditional tabs
v1.13.04
-improved crypt charset
v1.13.03
-fix QR shortcode
v1.13.02
-add qr shortcode
v1.13.01
-fix bug loading encript
v1.13.00
-encrypt/decrypt shortcode
v1.12.28
-new better encrypt method
Add timestamp validator and cryptr