https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43666 --- Comment #1 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 207006 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=207006&action=edit Bug 43666: Add Koha::Objects::Mixin::SingleTableInheritance::Pluggable Adds Koha::Objects::Mixin::SingleTableInheritance::Pluggable, which inherits from ::SingleTableInheritance (bug 43663) and overrides only _sti_map, merging in classes contributed by plugins via a public additional_sti_classes() method - reusing the same GetPlugins({ method => ... }) discovery pattern Koha::SuggestionEngine/Koha::RecordProcessor already use. No filesystem scanning, no new registry. Composing ::Pluggable is itself the code-level opt-in gate. Two further gates apply: a koha-conf.xml kill-switch, enable_plugin_sti_registration, defaulting off; and the master enable_plugins switch, which _sti_map now honours the same way every other plugin discovery call site does. Plugin contributions are merged defensively - eval-wrapped per plugin, dropped with a warning if a plugin's method dies, returns the wrong shape, or contributes a class that fails to load or doesn't subclass the target's base class. Results are cached per target class via Koha::Cache::Memory::Lite. Core-declared keys are always merged in last, so they structurally win over any plugin contribution. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> -- You are receiving this mail because: You are watching all bug changes.