diff --git a/src/Admin/ToolsTab.php b/src/Admin/ToolsTab.php index 6ef5113..7ed367c 100644 --- a/src/Admin/ToolsTab.php +++ b/src/Admin/ToolsTab.php @@ -75,7 +75,7 @@ final class ToolsTab implements AdminTab $groups = $this->registry->grouped(); $labels = $this->registry->labels(); - $this->renderIntro(isset($groups['divi'])); + $this->renderIntro(); $this->renderCounter(count($policy->directNames($this->registry->abilities()))); // Lets WordPress' postbox script remember which groups each user closed. @@ -95,7 +95,7 @@ final class ToolsTab implements AdminTab echo ''; } - private function renderIntro(bool $diviAvailable): void + private function renderIntro(): void { echo '
' . esc_html__('Lege fest, welche Tools Claude nutzen kann.', 'wp-lit-mcp') . ' ' @@ -114,35 +114,25 @@ final class ToolsTab implements AdminTab printf('
' . esc_html__( - 'Das Divi-Code-Modul ist immer erlaubt (nur nachrangig) und hat keine eigene Einstellung.', - 'wp-lit-mcp' - ) . '
'; - } } + /** Only when the direct tools get many: then the count is worth a warning, otherwise it is noise. */ private function renderCounter(int $direct): void { - $warn = $direct > self::DIRECT_WARNING_THRESHOLD; + if ($direct <= self::DIRECT_WARNING_THRESHOLD) { + return; + } + $counter = sprintf( /* translators: %d: number of direct tools */ _n('Direkt sichtbar: %d Tool', 'Direkt sichtbar: %d Tools', $direct, 'wp-lit-mcp'), $direct ); - printf( - '%s', - $warn ? 'warning' : 'info', - esc_html($counter) - ); - - if ($warn) { - echo ' – ' - . esc_html__('Viele direkte Tools kosten in claude.ai in jeder Unterhaltung Kontext.', 'wp-lit-mcp') - . ' ' - . esc_html__('Selten gebrauchte Tools besser auf „indirekt“ stellen.', 'wp-lit-mcp'); - } + printf('
%s', esc_html($counter)); + echo ' – ' + . esc_html__('Viele direkte Tools kosten in claude.ai in jeder Unterhaltung Kontext.', 'wp-lit-mcp') + . ' ' + . esc_html__('Selten gebrauchte Tools besser auf „indirekt“ stellen.', 'wp-lit-mcp'); echo '
Direkt sichtbar: 3 Tools', $html);
}
public function testWarnsWhenMoreThan25ToolsAreDirect(): void
@@ -238,8 +237,9 @@ final class ToolsTabTest extends TestCase
self::assertStringContainsString('WordPress (26 Tools)', $warned);
- self::assertStringContainsString('Direkt sichtbar: 25 Tools', $notWarned);
+ self::assertStringNotContainsString('Direkt sichtbar', $notWarned);
self::assertStringNotContainsString('Kontext', $notWarned);
+ self::assertLessThan(strpos($warned, 'class="postbox'), strpos($warned, 'Direkt sichtbar'));
}
public function testUnknownGroupsUseTheirIdAndEverythingIsEscaped(): void
@@ -311,7 +311,7 @@ final class ToolsTabTest extends TestCase
self::assertStringContainsString('id="' . $m[1] . '"', $this->select($html, 'lit/guide'));
}
- public function testIntroUsesPlainLanguageAndMentionsDiviOnlyWhenDiviIsAvailable(): void
+ public function testIntroUsesPlainLanguageWithoutImplementationNotes(): void
{
$withDivi = $this->render([]);
$withoutDivi = $this->render([], new IntegrationRegistry($this->integration('core', [['lit/guide', true, true]])));
@@ -320,7 +320,7 @@ final class ToolsTabTest extends TestCase
self::assertStringContainsString('Claude findet es bei Bedarf über die Tool-Suche.', $withDivi);
self::assertStringNotContainsString('Meta-Tools', $withDivi);
self::assertStringNotContainsString('discover', $withDivi);
- self::assertStringContainsString('Divi-Code-Modul', $withDivi);
+ self::assertStringNotContainsString('Divi-Code-Modul', $withDivi);
self::assertStringNotContainsString('Divi-Code-Modul', $withoutDivi);
}