{"id":365733,"date":"2026-09-08T17:36:17","date_gmt":"2026-09-08T17:36:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/prblem-sweep\/"},"modified":"2026-09-08T19:13:23","modified_gmt":"2026-09-08T19:13:23","slug":"prblem-sweep","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/prblem-sweep\/","author":23562579,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.0","stable_tag":"1.6.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"PRBLEM Sweep","header_author":"PRBLEM","header_description":"Safe WordPress cleanup intelligence with rule-aware database cleanup, media review, cron inspection, recovery, and plugin leftover analysis.","assets_banners_color":"f7f6ef","last_updated":"2026-09-08 19:13:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/prblem.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"1.5.1":{"tag":"1.5.1","author":"prblem","date":"2026-09-08 17:35:41","revision":3687087},"1.5.2":{"tag":"1.5.2","author":"prblem","date":"2026-09-08 18:21:29","revision":3687134},"1.6.0":{"tag":"1.6.0","author":"prblem","date":"2026-09-08 19:13:23","revision":3687207}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3687185,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3687185,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3687185,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.1","1.5.2","1.6.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3687207,"resolution":"1","location":"assets","locale":"","width":1493,"height":1089},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3687207,"resolution":"2","location":"assets","locale":"","width":1484,"height":1210},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3687185,"resolution":"3","location":"assets","locale":"","width":1430,"height":1216},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3687185,"resolution":"4","location":"assets","locale":"","width":1429,"height":1193},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3687185,"resolution":"5","location":"assets","locale":"","width":1430,"height":1213},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3687185,"resolution":"6","location":"assets","locale":"","width":1426,"height":1110}},"screenshots":[]},"plugin_section":[],"plugin_tags":[3786,4567,153,732,84],"plugin_category":[50,52,59],"plugin_contributors":[279754],"plugin_business_model":[],"class_list":["post-365733","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-cron","plugin_tags-database","plugin_tags-maintenance","plugin_tags-media","plugin_category-media","plugin_category-performance","plugin_category-utilities-and-tools","plugin_contributors-prblem","plugin_committers-prblem"],"banners":{"banner":"https:\/\/ps.w.org\/prblem-sweep\/assets\/banner-772x250.png?rev=3687185","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/prblem-sweep\/assets\/icon-128x128.png?rev=3687185","icon_2x":"https:\/\/ps.w.org\/prblem-sweep\/assets\/icon-256x256.png?rev=3687185","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/prblem-sweep\/assets\/screenshot-1.png?rev=3687207","caption":""},{"src":"https:\/\/ps.w.org\/prblem-sweep\/assets\/screenshot-2.png?rev=3687207","caption":""},{"src":"https:\/\/ps.w.org\/prblem-sweep\/assets\/screenshot-3.png?rev=3687185","caption":""},{"src":"https:\/\/ps.w.org\/prblem-sweep\/assets\/screenshot-4.png?rev=3687185","caption":""},{"src":"https:\/\/ps.w.org\/prblem-sweep\/assets\/screenshot-5.png?rev=3687185","caption":""},{"src":"https:\/\/ps.w.org\/prblem-sweep\/assets\/screenshot-6.png?rev=3687185","caption":""}],"raw_content":"<!--section=description-->\n<p>PRBLEM Sweep is a conservative WordPress maintenance utility built around a simple rule: understand first, classify risk, and never silently treat ambiguous data as disposable.<\/p>\n\n<p>PRBLEM Sweep builds on Recovery Guard, Duplicate Media and Autoload Inspector with five focused maintenance areas:<\/p>\n\n<ul>\n<li>Cleanup Rules \u2014 configurable boundaries for revision retention, stale auto drafts, trashed posts, spam comments and trashed comments. Rules only narrow candidate sets; they never promote REVIEW data to SAFE.<\/li>\n<li>Cron Inspector \u2014 read-only WordPress Cron visibility with cautious naming signals when a hook resembles a plugin observed being removed. Cron is never unscheduled automatically.<\/li>\n<li>Plugin Leftover Intelligence v2 \u2014 pre-delete snapshots now include options, transients, tables, post meta keys, user meta keys, WordPress Cron hooks and active Action Scheduler hooks. All residue remains PROTECTED and inspection-only.<\/li>\n<li>Never Touch Guards \u2014 explicit owner protections for database cleanup categories, media attachment IDs, option names, tables and cron hooks. Database authorization and media actions check guards at action time.<\/li>\n<li>Before \/ After Reports \u2014 database cleanup actions record bounded candidate counts and database-footprint estimates before and after cleanup. Storage-engine allocation may remain stable even after rows are correctly removed.<\/li>\n<\/ul>\n\n<p>Existing safeguards remain:<\/p>\n\n<ul>\n<li>Database cleanup creates bounded recovery points before removal and stops when a required snapshot cannot be stored.<\/li>\n<li>Duplicate media scanning uses SHA-256 and never treats duplicate bytes alone as permission to remove an attachment.<\/li>\n<li>Possible unused and duplicate media are re-checked immediately before being moved to WordPress Trash.<\/li>\n<li>Autoload inspection remains read-only.<\/li>\n<li>Naming similarity is evidence, not proof, so plugin residue deletion stays locked.<\/li>\n<\/ul>\n\n<p>Compact workspaces keep the page short:<\/p>\n\n<ul>\n<li>Overview \u2014 Quick Sweep and a small intelligence queue.<\/li>\n<li>Database \u2014 Candidates \/ Cleanup Rules subviews.<\/li>\n<li>Media \u2014 Possible Unused \/ Duplicate Files subviews.<\/li>\n<li>Leftovers \u2014 compact removal history plus a collapsed seven-area residue inspector.<\/li>\n<li>System \u2014 Storage \/ Autoload \/ Cron \/ Never Touch \/ Recovery \/ Reports subviews.<\/li>\n<\/ul>\n\n<p>Visit https:\/\/prblem.com\/ for PRBLEM products.<\/p>\n\n<!--section=changelog-->\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Refreshed the WordPress admin visual system to match the PRBLEM Sweep public brand: cream surfaces, charcoal panels and lime SafeClean accents.<\/li>\n<li>Added a live status ring and compact Database, Media, Leftovers and Recovery metrics to the main hero.<\/li>\n<li>Reworked Overview cards, primary cleanup CTA, status badges and workspace navigation for clearer hierarchy without changing cleanup policy or backend behavior.<\/li>\n<li>Preserved the tested 1.5.2 SafeClean, Recovery, Cron, media, leftover and Never Touch logic unchanged.<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Tightened Cron Inspector removed-plugin matching to prevent generic words such as check, update, plugin, cron, and task from creating false REVIEW signals.<\/li>\n<li>Exact cron hooks captured before plugin deletion now provide the strongest leftover evidence; fallback naming signals require a full slug or distinctive token boundary match.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Prepared plugin metadata, licensing and readme content for WordPress.org distribution.<\/li>\n<li>Clarified recovery results by separating logical cleanup items from physical database rows restored.<\/li>\n<li>Fixed transient-pair recovery accounting so one cleanup item is reported as one restored item.<\/li>\n<li>Prevented active or reinstalled plugins from being reported as removed-plugin Cron leftovers when an older installation used a different folder name.<\/li>\n<li>Marked historical residue from a currently installed plugin as reinstalled\/active and excluded it from active leftover counts.<\/li>\n<li>Improved duplicate-media scan diagnostics with attachment, readable-file, size-collision, hash-file and byte counters.<\/li>\n<li>Hardened WordPress.org Plugin Check compatibility for prepared queries, identifier placeholders and read-only admin request handling.<\/li>\n<li>Kept Cleanup Rules, Never Touch guards, read-only inspectors, Recovery Guard and media Trash safeguards unchanged.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added rule-aware cleanup boundaries for revisions, auto drafts, trash posts, spam comments and trash comments.<\/li>\n<li>Added read-only WordPress Cron Inspector with removed-plugin naming signals.<\/li>\n<li>Expanded Plugin Removal Watch to residue intelligence v2 across seven evidence areas.<\/li>\n<li>Added Never Touch guards for database categories, media IDs, options, tables and cron hooks.<\/li>\n<li>Database and media action-time checks now honor explicit guards.<\/li>\n<li>Added before\/after cleanup reports with database-footprint snapshots and row-removal counts.<\/li>\n<li>Added compact Database Rules and System Cron \/ Guard \/ Reports subviews.<\/li>\n<li>Kept plugin residue deletion and cron unscheduling locked.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added bounded Recovery Guard for database cleanup actions.<\/li>\n<li>Cleanup is cancelled when a required recovery point cannot be stored safely.<\/li>\n<li>Added seven-day recovery retention, ten-point limit and 5 MiB per-point safety cap.<\/li>\n<li>Added restore conflict protection: existing post\/comment IDs are never overwritten.<\/li>\n<li>Added manual SHA-256 duplicate-image scanning with 300-attachment and 256 MiB hash budgets.<\/li>\n<li>Duplicate media is never auto-deleted; only duplicate attachments that also pass the unused-media re-check can be moved to WordPress Trash.<\/li>\n<li>Added read-only Autoload Inspector with largest-option size signals and cautious possible-owner hints.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Replaced the long single-page dashboard with compact workspace navigation.<\/li>\n<li>Added Overview, Database, Media, Leftovers and System workspaces.<\/li>\n<li>Added Quick Sweep for current SAFE database categories.<\/li>\n<li>Added selectable SAFE database bulk cleanup.<\/li>\n<li>Added orphan post meta, comment meta and term meta cleanup.<\/li>\n<li>Added guarded bulk media Trash actions with fresh candidate checks.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added the central SafeClean Engine.<\/li>\n<li>Added conservative risk policy for supported database cleanup categories.<\/li>\n<li>Added detailed plugin residue inspector and evidence scoring.<\/li>\n<li>Kept plugin residue deletion locked.<\/li>\n<li>Moved third-party WordPress admin notices outside the visual hero.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Rebuilt the Admin UI around the PRBLEM visual identity.<\/li>\n<li>Added Visit PRBLEM.com links.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Safe WordPress cleanup intelligence for database clutter, media, cron signals, plugin leftovers and guarded cleanup.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/365733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=365733"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/prblem"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=365733"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=365733"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=365733"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=365733"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=365733"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=365733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}