From 3a71cdc7cf1d40588df5d60c9d3d636d719f05a7 Mon Sep 17 00:00:00 2001 From: nexxo Date: Tue, 4 Aug 2026 14:51:16 +0200 Subject: [PATCH] Plan: Tests laufen im Worktree, nicht im geteilten Haupt-Checkout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Am Haupt-Checkout arbeiten parallel andere Sitzungen. Deren unfertige Aenderungen gerieten in den eigenen Testlauf und haben eine Fehlersuche in die falsche Richtung geschickt. Der Worktree ist jetzt eigenstaendig: vendor hartverlinkt, .env kopiert, storage-Verzeichnisse angelegt. Ein Symlink auf vendor taeugt dafuer nicht — Composer leitet seine Basispfade aus dem aufgeloesten Verzeichnis ab und laedt dann die fremden Tests. Co-Authored-By: Claude Opus 5 --- .../plans/2026-08-04-hostnamen-trennung.md | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/docs/superpowers/plans/2026-08-04-hostnamen-trennung.md b/docs/superpowers/plans/2026-08-04-hostnamen-trennung.md index 291bc5c..f21871c 100644 --- a/docs/superpowers/plans/2026-08-04-hostnamen-trennung.md +++ b/docs/superpowers/plans/2026-08-04-hostnamen-trennung.md @@ -12,16 +12,31 @@ misst (indem er eine zweite Anwendungsinstanz mit gesetzten Hostnamen bootet), das Schließen von `storage/{path}`, der Konfigurationsweg für Neuinstallationen (`install.sh`, `.env.example`) und ein Artisan-Befehl, der den Bestand nachrüstet. -**Tech Stack:** Laravel 12, Pest 4, Bash (deploy/install.sh), Docker Compose. +**Tech Stack:** Laravel 13.22, Pest 4.7, Bash (deploy/install.sh), Docker Compose. ## Global Constraints - **Entwurf:** `docs/superpowers/specs/2026-08-04-hostnamen-trennung-design.md`. Bei Abweichung gilt der Entwurf; bei Konflikt mit `CLAUDE.md` → STOP & fragen. -- **Testbefehl:** `docker exec clupilot-app-1 php artisan test`. Einzelne Datei: - `docker exec clupilot-app-1 php artisan test --filter=`. - Der Worktree hat **kein** `vendor/`; Tests laufen im Container, der - `/home/nexxo/clupilot` unter `/var/www/html` einhängt. +- **Testbefehl** — im Worktree, nicht im Haupt-Checkout: + + ``` + docker exec -w /var/www/html/.claude/worktrees/eager-elion-c581f4 clupilot-app-1 php artisan test + ``` + + Der Worktree wurde dafür eigenständig gemacht: `vendor/` ist aus dem + Haupt-Checkout **hartverlinkt** (`cp -al`, 137 MB ohne zusätzlichen + Plattenplatz), `.env` kopiert, die ignorierten `storage/`- und + `bootstrap/cache`-Verzeichnisse angelegt. Alles davon ist gitignoriert. + + Ein *Symlink* auf `vendor/` funktioniert **nicht**: Composers Autoloader + leitet seine Basispfade aus dem aufgelösten Verzeichnis ab und lädt dann die + Tests des Haupt-Checkouts. + + Und der Haupt-Checkout ist als Testumgebung untauglich: an ihm arbeiten + parallel andere Sitzungen, deren unfertige Änderungen sonst in den eigenen + Lauf geraten. Genau das hat hier einmal eine Fehlersuche in die falsche + Richtung geschickt. - **`routes/web.php`, `app/Http/Middleware/RestrictAdminHost.php`, `config/fortify.php`, `app/Http/Middleware/PublicSiteGate.php` werden NICHT geändert.** Gemessen korrekt.