From 5c0ff62453e70eb7194b51b63f07f099291f05d1 Mon Sep 17 00:00:00 2001 From: Ashley Hindle Date: Tue, 12 Aug 2025 12:53:59 +0100 Subject: [PATCH 1/7] logo: support dark mode --- art/boost.svg | 141 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 85 insertions(+), 56 deletions(-) diff --git a/art/boost.svg b/art/boost.svg index 557c963..d1c22c0 100644 --- a/art/boost.svg +++ b/art/boost.svg @@ -1,58 +1,87 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + Icon + + + + + + + + + + + + + + + + + + + + + Laravel + + + + + + + + + + Boost + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 559c0f165a95a8b347edd230eca4ae9493ed75c9 Mon Sep 17 00:00:00 2001 From: Ashley Hindle Date: Tue, 12 Aug 2025 14:09:44 +0100 Subject: [PATCH 2/7] guidelines: tailwind: slightly improved tailwind guidelines --- .ai/tailwindcss/3/core.blade.php | 2 ++ .ai/tailwindcss/4/core.blade.php | 31 +++++++++++++++++++++++++++++++ .ai/tailwindcss/core.blade.php | 19 ++++++++++++++++++- 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 .ai/tailwindcss/3/core.blade.php create mode 100644 .ai/tailwindcss/4/core.blade.php diff --git a/.ai/tailwindcss/3/core.blade.php b/.ai/tailwindcss/3/core.blade.php new file mode 100644 index 0000000..fd61e7a --- /dev/null +++ b/.ai/tailwindcss/3/core.blade.php @@ -0,0 +1,2 @@ +- Always use Tailwind CSS v3, verify you're using only supported classes. +- Use the `search-docs` tool to find exactly what's supported in this project's Tailwind setup. diff --git a/.ai/tailwindcss/4/core.blade.php b/.ai/tailwindcss/4/core.blade.php new file mode 100644 index 0000000..5187aae --- /dev/null +++ b/.ai/tailwindcss/4/core.blade.php @@ -0,0 +1,31 @@ +- Always use Tailwind CSS v4, do not use the deprecated utilities. +- Use the `search-docs` tool to find exactly what's supported in this project's Tailwind setup. +- In Tailwind v4 you import Tailwind using a regular CSS `@import` statement, not using the `@tailwind` directives used in v3: +@verbatim + +@endverbatim +- `corePlugins` is not supported in v4. + +## Replaced utilities +- Tailwind v4 removed deprecated utilities. Do not use the deprecated option, use the replacement. +- Opacity values are still numeric. + +| Deprecated | Replacement | +|------------+--------------| +| bg-opacity-* | bg-black/* | +| text-opacity-* | text-black/* | +| border-opacity-* | border-black/* | +| divide-opacity-* | divide-black/* | +| ring-opacity-* | ring-black/* | +| placeholder-opacity-* | placeholder-black/* | +| flex-shrink-* | shrink-* | +| flex-grow-* | grow-* | +| overflow-ellipsis | text-ellipsis | +| decoration-slice | box-decoration-slice | +| decoration-clone | box-decoration-clone | + diff --git a/.ai/tailwindcss/core.blade.php b/.ai/tailwindcss/core.blade.php index ee729df..77c41c3 100644 --- a/.ai/tailwindcss/core.blade.php +++ b/.ai/tailwindcss/core.blade.php @@ -1 +1,18 @@ -- If existing pages and components support dark mode, new pages and components must support dark mode in a similar way. +- Use Tailwind CSS classes to style HTML, check and use existing tailwind conventions within the project before writing your own. +- Offer to extract repeated patterns into components that match the project's conventions (i.e. Blade, JSX, Vue, etc..) +- Think through class placement, order, priority, and defaults - remove redundant classes, add classes to parent or child carefully to limit repetition, group elements logically + +## Spacing +- Use gap utilities for spacing, don't use margins +@verbatim + +
+
Superior
+
Michigan
+
Erie
+
+
+@endverbatim + +## Tailwind Dark Mode +- If existing pages and components support dark mode, new pages and components must support dark mode in a similar way, typically using `dark:`. From d915ef1230020f95d3679e5d23e54471f86203d2 Mon Sep 17 00:00:00 2001 From: Ashley Hindle Date: Tue, 12 Aug 2025 14:10:04 +0100 Subject: [PATCH 3/7] guidelines: core: nudge towards component reuse --- .ai/core.blade.php | 1 + 1 file changed, 1 insertion(+) diff --git a/.ai/core.blade.php b/.ai/core.blade.php index dbfb390..321ba6c 100644 --- a/.ai/core.blade.php +++ b/.ai/core.blade.php @@ -16,6 +16,7 @@ ## Conventions - You must follow all existing code conventions used in this project. When creating or editing a file, check sibling files for the correct structure, approach, naming. - Use descriptive names. For example, `isRegisteredForDiscounts` not `discount()`. +- Check for existing components to reuse before writing one anew. ## Verification Scripts - Do not create verification scripts or tinker when tests cover that functionality and prove it works. Unit and feature tests are more important. From f17a303fc2ec5df618c8d5e221400e9b4a4295a1 Mon Sep 17 00:00:00 2001 From: Ashley Hindle Date: Tue, 12 Aug 2025 14:10:21 +0100 Subject: [PATCH 4/7] herd: update to new herd mcp location --- src/Console/InstallCommand.php | 2 +- src/Install/Herd.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Console/InstallCommand.php b/src/Console/InstallCommand.php index f791b7c..5d19609 100644 --- a/src/Console/InstallCommand.php +++ b/src/Console/InstallCommand.php @@ -513,7 +513,7 @@ private function enactMcpServers(): void try { $result = $ide->installMcp( key: 'herd', - command: PHP_BINARY, + command: 'php', args: [$this->herd->mcpPath()], env: ['SITE_PATH' => base_path()] ); diff --git a/src/Install/Herd.php b/src/Install/Herd.php index 3501fa9..9a1db2c 100644 --- a/src/Install/Herd.php +++ b/src/Install/Herd.php @@ -41,7 +41,7 @@ public function mcpPath(): string return $this->getHomePath().'/.config/herd/bin/herd-mcp.phar'; } - return $this->getHomePath().'/Library/Application Support/Herd/bin/herd-mcp.phar'; + return '/Applications/Herd.app/Contents/Resources/herd-mcp.phar'; } public function isWindowsPlatform(): bool From a65998a2d827bf09ed9bdbb75ab2e67e7449f1ac Mon Sep 17 00:00:00 2001 From: Ashley Hindle Date: Tue, 12 Aug 2025 14:13:30 +0100 Subject: [PATCH 5/7] tests: remove unnecessary herd test now path changed --- tests/Unit/Install/HerdTest.php | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/tests/Unit/Install/HerdTest.php b/tests/Unit/Install/HerdTest.php index 8cb4b04..9211d1c 100644 --- a/tests/Unit/Install/HerdTest.php +++ b/tests/Unit/Install/HerdTest.php @@ -67,22 +67,11 @@ function getHerdTestTempDir(): string return $herdTestCleanupData['tempDir']; } -test('mcpPath builds correct path from HOME on non-Windows', function () { - $testHome = getHerdTestTempDir().'/home'; - mkdir($testHome, 0755, true); - $_SERVER['HOME'] = $testHome; - - $herd = new Herd(); - $expected = $testHome.'/Library/Application Support/Herd/bin/herd-mcp.phar'; - - expect($herd->mcpPath())->toBe($expected); -})->skipOnWindows(); - test('mcpPath builds correct Windows path from USERPROFILE when HOME missing', function () { unset($_SERVER['HOME']); $_SERVER['USERPROFILE'] = 'C:\\Users\\TestUser'; - $herd = new Herd(); + $herd = new Herd; $expected = 'C:/Users/TestUser/.config/herd/bin/herd-mcp.phar'; expect($herd->mcpPath())->toBe($expected); @@ -93,7 +82,7 @@ function getHerdTestTempDir(): string mkdir($testHome, 0755, true); $_SERVER['HOME'] = $testHome; - $herd = new Herd(); + $herd = new Herd; expect($herd->isMcpAvailable())->toBeFalse(); }); @@ -103,7 +92,7 @@ function getHerdTestTempDir(): string mkdir($testHome, 0755, true); $_SERVER['HOME'] = $testHome; - $herd = new Herd(); + $herd = new Herd; $mcpPath = $herd->mcpPath(); $mcpDir = dirname($mcpPath); @@ -119,7 +108,7 @@ function getHerdTestTempDir(): string mkdir($testHome, 0755, true); $_SERVER['HOME'] = $testHome; - $herd = new Herd(); + $herd = new Herd; $mcpPath = $herd->mcpPath(); $mcpDir = dirname($mcpPath); @@ -139,7 +128,7 @@ function getHerdTestTempDir(): string mkdir($testHome, 0755, true); $_SERVER['HOME'] = $testHome; - $herd = new Herd(); + $herd = new Herd; expect($herd->getHomePath())->toBe($testHome); })->skipOnWindows(); @@ -148,7 +137,7 @@ function getHerdTestTempDir(): string unset($_SERVER['HOME']); $_SERVER['USERPROFILE'] = 'C:\\Users\\TestUser'; - $herd = new Herd(); + $herd = new Herd; expect($herd->getHomePath())->toBe('C:/Users/TestUser'); })->onlyOnWindows(); @@ -161,7 +150,7 @@ function getHerdTestTempDir(): string $configDir = $testHome.'/.config/herd'; mkdir($configDir, 0755, true); - $herd = new Herd(); + $herd = new Herd; expect($herd->isInstalled())->toBeTrue(); })->onlyOnWindows(); @@ -171,19 +160,19 @@ function getHerdTestTempDir(): string mkdir($testHome, 0755, true); $_SERVER['HOME'] = $testHome; - $herd = new Herd(); + $herd = new Herd; expect($herd->isInstalled())->toBeFalse(); })->onlyOnWindows(); test('isWindowsPlatform returns true on Windows', function () { - $herd = new Herd(); + $herd = new Herd; expect($herd->isWindowsPlatform())->toBeTrue(); })->onlyOnWindows(); test('isWindowsPlatform returns false on non-Windows platforms', function () { - $herd = new Herd(); + $herd = new Herd; expect($herd->isWindowsPlatform())->toBeFalse(); })->skipOnWindows(); From 00b3e5297c767c6f3ef9ebd1b26f3dba866b5305 Mon Sep 17 00:00:00 2001 From: Ashley Hindle Date: Tue, 12 Aug 2025 14:16:13 +0100 Subject: [PATCH 6/7] tests: remove unnecessary herd test now path changed --- tests/Unit/Install/HerdTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/Install/HerdTest.php b/tests/Unit/Install/HerdTest.php index 9211d1c..97692cb 100644 --- a/tests/Unit/Install/HerdTest.php +++ b/tests/Unit/Install/HerdTest.php @@ -121,7 +121,7 @@ function getHerdTestTempDir(): string unlink($mcpPath); expect($herd->isMcpAvailable())->toBeFalse(); -}); +})->onlyOnWindows(); test('getHomePath returns HOME on non-Windows', function () { $testHome = getHerdTestTempDir().'/home'; From 5acf32bf2139f34b8eb5b967ca67d16b9a58583f Mon Sep 17 00:00:00 2001 From: Ashley Hindle Date: Tue, 12 Aug 2025 14:17:38 +0100 Subject: [PATCH 7/7] tests: fix herd test now it doesn't expand home on mac --- tests/Unit/Install/HerdTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/Install/HerdTest.php b/tests/Unit/Install/HerdTest.php index 97692cb..1bbaead 100644 --- a/tests/Unit/Install/HerdTest.php +++ b/tests/Unit/Install/HerdTest.php @@ -101,7 +101,7 @@ function getHerdTestTempDir(): string file_put_contents($mcpPath, 'test phar content'); expect($herd->isMcpAvailable())->toBeTrue(); -}); +})->onlyOnWindows(); test('isMcpAvailable returns false after MCP file is removed', function () { $testHome = getHerdTestTempDir().'/home';