You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An admin_config record can say a plugin/template is active while its
source is gone (DB migrated from another environment, folder removed,
incomplete deploy). gp247_extension_check_active() trusted the DB alone,
so front pages embedding the plugin crashed with 500 "No hint path
defined" (real case: Plugins/LoginSocial on the customer login page).
- Add gp247_extension_source_exists(): single predicate for "code is
present" (app/GP247/<type>/<key>/AppConfig.php, same signal as
gp247_extension_get_all_local), memoized per request.
- gp247_extension_check_active(): DB active AND source present for
Plugins/Templates; on drift soft-degrade to false + gp247_report()
(deduped once per request) — never mutates DB on the read path.
- gp247_extension_get_via_code(): skip orphaned plugins + gp247_report(),
preventing fatals at checkout for Payment/Shipping/Total plugins.
- check_installed/get_installed stay DB-only by design (reinstall and
cleanup flows must still see orphaned records).
AI-DLC: US-PLG-active-requires-source, ADR
plugin-manager_active-check-source-presence, modification 20260826T153139.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>