feat(pods): Verhaltensprobe als Prüfschritt

Beim Prüfen schreibt und liest PodsProbe auf einem Wegwerf-Entwurf ein Textfeld genau so, wie LIT MCP es tut, vergleicht die Werte und löscht den Entwurf wieder. Bevorzugt von Pods angelegte Typen; ohne Pod mit Textfeld gilt der Schritt als grün mit Hinweis „nicht geprüft“. Ein roter Schritt sperrt Pods über die Berichtssperre. Liegengebliebene Probe-Einträge räumt der Load-Hook des Reiters auf. Pods-Smoke um Probe und Bereinigung erweitert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jan-Niclas Loosen
2026-11-06 14:33:26 +01:00
co-authored by Claude Opus 5.5
parent 42aa4f8dc9
commit 1a294b7881
11 changed files with 812 additions and 10 deletions
+10 -4
View File
@@ -14,18 +14,20 @@ defined('ABSPATH') || exit;
/**
* Pods as a compatibility profile: the calls PodsFieldSource makes, checked against Pods 3.3.9.2. Argument counts
* are those PodsFieldSource passes. A hard problem (missing function or constant, Pods below 2.8) locks the
* affected capabilities; Pods has no per-version release.
* are those PodsFieldSource passes; the check adds a behaviour probe (PodsProbe). A hard problem (missing function
* or constant, Pods below 2.8) locks the affected capabilities; Pods has no per-version release.
*/
final class PodsCompatibility
{
public const LABEL = 'Pods';
public static function profile(): Profile
{
$all = PodsFeature::cases();
return new Profile(
id: 'pods',
label: 'Pods',
label: self::LABEL,
tier: Tier::LockOnFailure,
capabilities: $all,
manifests: [new Manifest(
@@ -44,7 +46,11 @@ final class PodsCompatibility
active: static fn (): bool => defined('PODS_VERSION'),
version: static fn (): ?string => defined('PODS_VERSION') ? (string) PODS_VERSION : null,
minVersion: '2.8',
testedVersions: ['3.3.9.2']
testedVersions: ['3.3.9.2'],
extraSteps: PodsCheckSteps::extra(
static fn (): ?array => (new PodsProbe(new PodsFieldSource(static fn (): bool => true)))->run()
),
stepLabel: PodsCheckSteps::label(...)
);
}
}