* ci: adopt reusable CI + 300-line compliance for v4.7.0 - Replace per-repo CI jobs with thin reusable caller (peptide-e2e ci.yml@main; tests:stubs, has_js:true) - Add permissions: contents: write (required for phpcbf auto-commit) - deploy.yml: drop file-existence + PHP-syntax redundancy; keep PSA_VERSION check - class-psa-admin.php: remove 37 dead backward-compat proxy lines (327→290) - class-psa-ai-generator.php: remove 17 dead backward-compat proxy lines (309→292) - class-psa-search.php: remove 13 dead backward-compat proxy lines (307→294) All three files now comply with the estate 300-line rule. Zero external callers of removed methods confirmed. - package.json / package-lock.json: minimal npm manifest for lint-js npm ci step - ARCHITECTURE.md: update ci.yml description - PSA_VERSION: sync constant (was 4.5.0) with header (was 4.6.0) → both 4.7.0 Agent-Session: claude-sonnet-4-6-adopt-ci-20260616 * style: auto-fix PHPCS violations via phpcbf * fix(tests): restore tested proxy methods in PSA_AI_Generator AIGeneratorTest accesses build_validation_prompt() and build_generation_prompt() via ReflectionClass - confirmed by running CI. Restored both as compact single-docblock proxies to PSA_AI_Content. Condensed section headers to keep file under 300 lines (now 299). Agent-Session: claude-sonnet-4-6-adopt-ci-20260616 --------- Co-authored-by: peptiderepo <bot@peptiderepo.com> Co-authored-by: peptiderepo <peptiderepo@users.noreply.github.com>
45 lines
1.6 KiB
PHP
Executable File
45 lines
1.6 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Fired when the plugin is uninstalled.
|
|
*
|
|
* As of PSA v4.5.0 the `peptide` custom post type and `peptide_category`
|
|
* taxonomy are owned by Peptide Repo Core (PR Core) — PSA is a consumer, not
|
|
* the owner. Uninstalling PSA must therefore NOT delete peptide posts,
|
|
* peptide_category terms, or any `psa_*` post meta: that data predates PR
|
|
* Core and is consumed by other plugins via PR Core's data layer + PSA's
|
|
* REST endpoints. Removing it on uninstall would be destructive across
|
|
* plugin boundaries.
|
|
*
|
|
* This uninstaller only removes PSA's own option rows, transients, and the
|
|
* `wp_psa_api_logs` table (PSA's internal cost-tracking table — no other
|
|
* plugin reads from it).
|
|
*
|
|
* @package PeptideSearchAI
|
|
*/
|
|
|
|
// Abort if not called by WordPress.
|
|
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
|
exit;
|
|
}
|
|
|
|
global $wpdb;
|
|
|
|
// 1. Delete plugin options.
|
|
delete_option( 'psa_settings' );
|
|
delete_option( 'psa_search_cache_gen' );
|
|
delete_option( 'psa_db_version' );
|
|
|
|
// 2. Delete all plugin transients (validation cache, rate limits, PubChem cache).
|
|
$wpdb->query(
|
|
$wpdb->prepare(
|
|
"DELETE FROM {$wpdb->options} WHERE option_name LIKE %s OR option_name LIKE %s",
|
|
$wpdb->esc_like( '_transient_psa_' ) . '%',
|
|
$wpdb->esc_like( '_transient_timeout_psa_' ) . '%'
|
|
)
|
|
);
|
|
|
|
// 3. Drop PSA's API logs table. Owned entirely by PSA; no cross-plugin reads.
|
|
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}psa_api_logs" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery,WordPress.DB.PreparedSQL.InterpolatedNotPrepared
|
|
|
|
// 4. NOT deleted (owned by Peptide Repo Core as of PSA v4.5.0)
|