feat: Divi-Freigabe je Fähigkeit – CompatibilityMatrix aus Problemen mit Art und Fähigkeiten (ManifestCheck::problems), automatische Freigabe unveränderter Fähigkeiten (Filter lit_mcp_divi_auto_release), Mirror-Probleme im Transient (Format 2), ReleaseStatus trägt die Matrix
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
710444e88d
commit
c4efeb3ba4
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace LIT\MCP\Integrations\Divi\Release;
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
/** The release state of one Divi feature (E1): released (with its source), untested or incompatible. */
|
||||
final class FeatureStatus
|
||||
{
|
||||
/**
|
||||
* @param list<string> $problems Labels of the problems behind the state (Problem::$label).
|
||||
* @param string|null $source For a released feature: ReleaseStatus::SOURCE_CODE, SOURCE_DATABASE or
|
||||
* SOURCE_AUTO; null otherwise.
|
||||
*/
|
||||
public function __construct(
|
||||
public readonly DiviFeature $feature,
|
||||
public readonly ReleaseState $state,
|
||||
public readonly array $problems = [],
|
||||
public readonly ?string $source = null
|
||||
) {
|
||||
}
|
||||
|
||||
public function usable(): bool
|
||||
{
|
||||
return $this->state === ReleaseState::Released;
|
||||
}
|
||||
|
||||
/** @return array{id: string, label: string, state: string, problems: list<string>} For refusals (D6). */
|
||||
public function summary(): array
|
||||
{
|
||||
return [
|
||||
'id' => $this->feature->value,
|
||||
'label' => $this->feature->label(),
|
||||
'state' => $this->state->value,
|
||||
'problems' => $this->problems,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array{id: string, label: string, state: string, problems: list<string>, source: ?string}
|
||||
* For lit-site-status and the admin tab.
|
||||
*/
|
||||
public function toArray(): array
|
||||
{
|
||||
return $this->summary() + ['source' => $this->source];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user