| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Plugins that intentionally remove a baseline Etherpad feature (ep_disable_chat, ep_disable_change_author_name, etc.) declare which features they disable in their ep.json `disables` array — see the contract proposal at ether/etherpad#7648. Render that list in the plugin card with an amber note ("Disables: chat") so users see what they're losing before they install. The badge is gated on `disables` being present and non-empty, so plugins without a disables field render unchanged. Note: this UI change is safe to ship now even before the plugins.viewer.json build pipeline is updated to source `disables` from ep.json — when the field is absent the badge no-ops. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ⓘ You've reached your Qodo monthly free-tier limit. Reviews pause until next month — upgrade your plan to continue now, or link your paid account if you already have one. |
Sorry, something went wrong.
Companion to ether/ether.github.com#395 — the admin UI's "available plugins" listing now also renders the plugin's declared `disables` (see doc/PLUGIN_FEATURE_DISABLES.md) so an operator about to click Install sees the same warning as a user browsing etherpad.org/plugins: "Disables: chat". - src/node/types/PackageInfo.ts: optional `disables?: string[]` on the registry payload type. - admin/src/pages/Plugin.ts: same on the admin-side PluginDef. - admin/src/pages/HomePage.tsx: render an amber callout under the description when `disables` is present and non-empty. Plugins without a disables field render unchanged. The plugin-registry build pipeline still has to start surfacing `disables` from ep.json into plugins.json/plugins.viewer.json — until that lands, the new callout no-ops everywhere, which is fine. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| Back | FazBrowse Home | New Git URL |
Why
Plugins that intentionally remove a baseline Etherpad feature (ep_disable_chat, ep_disable_change_author_name, ep_disable_error_messages, …) currently look identical to neutral plugins on the listing page. A user installing one has no way to know it removes functionality until something stops working.
The companion proposal at ether/etherpad-lite#7648 introduces a small contract: plugins that disable a baseline feature declare it in their ep.json:
{ "name": "ep_disable_chat", "disables": ["@feature:chat"], "parts": [...] }That disables field is mechanically enforced by Etherpad's CI — a plugin can't ship green while quietly removing functionality it doesn't declare. This PR is the user-facing half: surface the declaration on etherpad.org/plugins so the contract is visible to humans too.
Changes
Safe to ship now
The UI change is independent of plugins.viewer.json's build pipeline. Until that pipeline is updated to read disables from each plugin's ep.json, the new badge no-ops everywhere. As plugins start declaring disables (queued behind ether/etherpad#7648), the badge lights up automatically.
Test plan
🤖 Generated with Claude Code