diff --git a/admin/src/pages/HomePage.tsx b/admin/src/pages/HomePage.tsx
index f5ce0a5ab..c21f593f3 100644
--- a/admin/src/pages/HomePage.tsx
+++ b/admin/src/pages/HomePage.tsx
@@ -229,7 +229,30 @@ export const HomePage = () => {
filteredInstallablePlugins.map((plugin) => {
return
| {plugin.name} |
- {plugin.description} |
+
+ {plugin.description}
+ {plugin.disables && plugin.disables.length > 0 && (
+
+ Disables:
+ {plugin.disables
+ .map((tag) => tag.replace(/^@feature:/, ''))
+ .join(', ')}
+
+ )}
+ |
{plugin.version} |
{plugin.time} |
diff --git a/admin/src/pages/Plugin.ts b/admin/src/pages/Plugin.ts
index 7e556d8a6..72c768c53 100644
--- a/admin/src/pages/Plugin.ts
+++ b/admin/src/pages/Plugin.ts
@@ -4,6 +4,12 @@ export type PluginDef = {
version: string,
time: string,
official: boolean,
+ /**
+ * `@feature:*` Playwright tags for core specs the plugin intentionally
+ * disables. See doc/PLUGIN_FEATURE_DISABLES.md. May be undefined for
+ * plugins without a disables list, which is the common case.
+ */
+ disables?: string[],
}
diff --git a/src/node/types/PackageInfo.ts b/src/node/types/PackageInfo.ts
index c1be45847..9f83754fa 100644
--- a/src/node/types/PackageInfo.ts
+++ b/src/node/types/PackageInfo.ts
@@ -10,7 +10,15 @@ export type PackageInfo = {
},
homepage: string,
repository: string,
- path: string
+ path: string,
+ /**
+ * `@feature:*` Playwright tags for core specs the plugin intentionally
+ * disables. Sourced from the plugin's ep.json `disables` array; see
+ * doc/PLUGIN_FEATURE_DISABLES.md for the contract. Populated by the
+ * plugin-registry build pipeline; absent for plugins that don't
+ * declare a disables list.
+ */
+ disables?: string[]
}
|