Small follow-ups from the #575 review, all low severity:
RegisterDynamic rejects duplicate plugin names but not duplicate page types; a plugin declaring another plugin's page type can shadow it and, on uninstall, DeletePages removes that page row (restored on next restart). Reject at registration and have DeletePages skip types still claimed by a registered plugin.
plugin_store has per-key/value caps but no per-plugin quota; add a byte/row cap.
reservedSlugs in ensurePages should also include comments, wizard_db, test_db, wp-content.
- Re-instantiation backoff (
reinstantiatedAt) is only stamped on success; stamp on attempt so a failing instantiate() doesn't retry on every call.
Small follow-ups from the #575 review, all low severity:
RegisterDynamicrejects duplicate plugin names but not duplicate page types; a plugin declaring another plugin's page type can shadow it and, on uninstall,DeletePagesremoves that page row (restored on next restart). Reject at registration and haveDeletePagesskip types still claimed by a registered plugin.plugin_storehas per-key/value caps but no per-plugin quota; add a byte/row cap.reservedSlugsinensurePagesshould also includecomments,wizard_db,test_db,wp-content.reinstantiatedAt) is only stamped on success; stamp on attempt so a failinginstantiate()doesn't retry on every call.