Plan: Tests laufen im Worktree, nicht im geteilten Haupt-Checkout

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 <noreply@anthropic.com>
feat/versandtakt
nexxo 2026-08-04 14:51:16 +02:00
parent 53f1293f09
commit 3a71cdc7cf
1 changed files with 20 additions and 5 deletions

View File

@ -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=<Name>`.
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.