Hermes
586a496aa6
docs: Ph4 deployment-test-plan + smoke-tests + rollback strategy
Deploy Feature Branch to Test / PHP Syntax Check (push) Successful in 28s
Lint / PHP Syntax Check (push) Successful in 35s
Deploy Feature Branch to Test / CSS Lint (stylelint) (push) Failing after 1m16s
Deploy Feature Branch to Test / HTML Lint (htmlhint) (push) Successful in 1m12s
Deploy Feature Branch to Test / Deploy to Test Environment (push) Has been skipped
Lint / CSS Lint (stylelint) (push) Failing after 1m22s
Lint / PHP Syntax Check (pull_request) Successful in 36s
PHPUnit / PHP Unit Tests (push) Failing after 43s
Lint / HTML Lint (htmlhint) (push) Successful in 1m11s
PHPUnit / PHP Unit Tests (pull_request) Failing after 55s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m26s
Lint / CSS Lint (stylelint) (pull_request) Failing after 1m31s
2026-06-04 11:18:25 +00:00
Hermes
c5a608d77a
chore: remove dead lowercase app/controllers/ (PSR-4 autoload uses App\\Controllers\\)
Deploy Feature Branch to Test / PHP Syntax Check (push) Successful in 58s
Lint / PHP Syntax Check (push) Successful in 1m0s
Deploy Feature Branch to Test / HTML Lint (htmlhint) (push) Successful in 1m41s
Deploy Feature Branch to Test / CSS Lint (stylelint) (push) Failing after 1m45s
Deploy Feature Branch to Test / Deploy to Test Environment (push) Has been skipped
Lint / HTML Lint (htmlhint) (push) Successful in 1m20s
Lint / PHP Syntax Check (pull_request) Successful in 35s
Lint / CSS Lint (stylelint) (push) Failing after 1m25s
PHPUnit / PHP Unit Tests (push) Failing after 42s
PHPUnit / PHP Unit Tests (pull_request) Failing after 54s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m29s
Lint / CSS Lint (stylelint) (pull_request) Failing after 1m33s
2026-06-04 11:15:24 +00:00
Hermes
a1984b9413
test(i18n): integration render tests for 4 locales + Playwright E2E flow ( closes #77 )
2026-06-04 11:14:25 +00:00
Hermes
13a25aded2
feat(i18n): accessibility - per-field form errors, landmark aria-labels, tests ( closes #76 )
2026-06-04 11:04:06 +00:00
Hermes
0186de90ec
feat(i18n): responsive locale-switcher with SVG flags ( closes #75 )
2026-06-04 09:44:40 +00:00
Hermes
4b1c779846
feat(i18n): translation files DE/EN/UK/RU + layout integration ( closes #74 )
2026-06-04 09:31:34 +00:00
Hermes
ce21242308
feat(i18n): LocaleController switcher with open-redirect protection ( closes #73 )
...
- App\Controllers\LocaleController: GET /locale?set=xx&return=/path
- Sets 1-year cookie (HttpOnly=false for SSR, SameSite=Lax, Secure on HTTPS)
- 302 redirect to explicit return URL > Referer > /
- Pure buildResponse() helper for unit tests (no headers/exit)
- current() helper: resolves locale from $_GET/$_COOKIE/Accept-Language
- safeRedirect: rejects absolute URLs, protocol-relative (//evil.com),
backslash tricks (\\evil.com), javascript:/data: schemes
- 28 PHPUnit tests (LocaleControllerTest), all green
- Total project tests now: 92
2026-06-04 08:57:33 +00:00
Hermes
63c8c759d2
feat(i18n): core Locale resolver + I18n t()-helper with tests ( closes #72 )
...
- App\Core\Locale: query-param > cookie > Accept-Language > 'de' fallback
- BCP-47 region stripping (en-US -> en, uk-UA -> uk)
- q-value sorting with stable order
- og:locale mapping (de_DE, en_GB, uk_UA, ru_RU)
- hreflang alternates helper
- App\Core\I18n: t() with {placeholder} interpolation, lookup chain
current-locale -> de -> key, in-memory cache
- ADR-002: documents the architecture decision
- 46 PHPUnit tests (LocaleTest, I18nTest), all green
2026-06-04 08:53:58 +00:00
Hermes
f9295a2d07
docs(adr): add ADR-001 for PHPUnit integration ( #65 , #67 )
...
Lint / PHP Syntax Check (push) Successful in 56s
PHPUnit / PHP Unit Tests (push) Successful in 1m7s
Lint / HTML Lint (htmlhint) (push) Successful in 1m36s
Lint / CSS Lint (stylelint) (push) Successful in 1m40s
Nachtraegliche Architektur-Dokumentation der Test-Integration
(CI-Pipeline + Pre-Commit-Hook mit Shared-Script-Pattern).
- Begruendet 2-Layer-Strategie (lokal + CI)
- Dokumentiert Performance-Optimierungen (Conditional PHPUnit, Composer-Lazy-Install)
- Listet verworfene Alternativen mit Rationale
- Beschreibt Stale-Index-Edge-Case-Mitigation
2026-06-04 07:47:09 +00:00
b5073fd892
Merge pull request 'Hooks: PHPUnit in Pre-Commit ( #67 )' ( #70 ) from feature/issue-67-phpunit-precommit into main
Lint / PHP Syntax Check (push) Successful in 47s
PHPUnit / PHP Unit Tests (push) Successful in 56s
Lint / HTML Lint (htmlhint) (push) Successful in 1m28s
Lint / CSS Lint (stylelint) (push) Successful in 1m30s
2026-06-04 02:41:15 +02:00
fce5c3be78
Merge pull request 'CI: PHPUnit Pipeline ( #65 )' ( #69 ) from feature/issue-65-phpunit-pipeline into main
Lint / PHP Syntax Check (push) Has been cancelled
Lint / CSS Lint (stylelint) (push) Has been cancelled
Lint / HTML Lint (htmlhint) (push) Has been cancelled
PHPUnit / PHP Unit Tests (push) Has been cancelled
2026-06-04 02:40:48 +02:00
Hermes
3f1f0f5788
fix(hooks): use array-based file iteration for safety check
...
Deploy Feature Branch to Test / PHP Syntax Check (push) Successful in 58s
Lint / PHP Syntax Check (push) Successful in 1m0s
Deploy Feature Branch to Test / HTML Lint (htmlhint) (push) Successful in 1m39s
Deploy Feature Branch to Test / CSS Lint (stylelint) (push) Successful in 1m42s
Deploy Feature Branch to Test / Deploy to Test Environment (push) Successful in 23s
Lint / HTML Lint (htmlhint) (push) Successful in 1m16s
Lint / CSS Lint (stylelint) (push) Successful in 1m21s
Lint / PHP Syntax Check (pull_request) Successful in 31s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m13s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m4s
mapfile + array prevents word-splitting issues with filenames
containing spaces or other shell-special characters. Affects both
the affected-files listing and the stale-index safety check.
Without this fix, a filename like 'My Module.php' would be split
into 'My' and 'Module.php', causing the disk-existence check to
look for wrong paths.
2026-06-04 00:15:21 +00:00
Hermes
b0f769d186
feat(hooks): run PHPUnit in pre-commit hook ( #67 )
...
Deploy Feature Branch to Test / PHP Syntax Check (push) Successful in 34s
Lint / PHP Syntax Check (push) Successful in 57s
Deploy Feature Branch to Test / CSS Lint (stylelint) (push) Successful in 1m41s
Deploy Feature Branch to Test / HTML Lint (htmlhint) (push) Successful in 1m39s
Lint / CSS Lint (stylelint) (push) Successful in 1m39s
Lint / HTML Lint (htmlhint) (push) Successful in 1m8s
Deploy Feature Branch to Test / Deploy to Test Environment (push) Successful in 30s
Erweitert den Husky pre-commit-Hook um einen PHPUnit-Schritt.
Ausserdem wird scripts/safe-commit.sh aktualisiert, damit das
Safety-Net dieselbe Logik wie der Hook verwendet (kein doppelter Code).
Vorher: Hook rief nur 'npx lint-staged' auf.
Nachher: Hook ruft scripts/pre-commit-checks.sh auf, das
- lint-staged ausfuehrt (unveraendert)
- PHPUnit nur dann ausfuehrt, wenn PHP-relevante Dateien
gestaged sind (Performance-Optimierung: Issue #67 Anforderung)
- Bei Test-Fehler den Commit mit Exit-Code 1 abbricht
Closes #67
2026-06-03 23:42:31 +00:00
Hermes
85cf4f3b03
chore(hooks): add shared pre-commit-checks script
...
Extrahiert die Pre-Commit-Checks (lint-staged + PHPUnit) in ein
gemeinsames Script, das sowohl vom Husky-Hook (.husky/pre-commit)
als auch von scripts/safe-commit.sh aufgerufen wird.
Logik:
- lint-staged laeuft immer (HTML/CSS/JS/JSON/MD/PHP-Syntax)
- PHPUnit laeuft nur, wenn PHP-relevante Dateien gestaged sind
(*.php, phpunit.xml, composer.json, composer.lock)
- Safety-Check: alle gestaged PHP-Dateien muessen auf Disk existieren
- Bei Test-Fehler wird der Commit mit Exit-Code != 0 abgebrochen
- Composer-Deps werden nur bei Bedarf installiert (Cache-Hit)
2026-06-03 23:42:22 +00:00
Hermes
71adf37762
ci: add PHPUnit pipeline ( #65 )
...
Deploy Feature Branch to Test / PHP Syntax Check (push) Successful in 1m32s
Lint / PHP Syntax Check (push) Successful in 1m32s
Deploy Feature Branch to Test / HTML Lint (htmlhint) (push) Successful in 2m12s
Deploy Feature Branch to Test / CSS Lint (stylelint) (push) Successful in 2m17s
Lint / HTML Lint (htmlhint) (push) Successful in 1m16s
Lint / CSS Lint (stylelint) (push) Successful in 1m19s
PHPUnit / PHP Unit Tests (push) Successful in 42s
Deploy Feature Branch to Test / Deploy to Test Environment (push) Successful in 29s
Lint / PHP Syntax Check (pull_request) Successful in 59s
PHPUnit / PHP Unit Tests (pull_request) Successful in 1m7s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m37s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m41s
Neue Gitea-CI-Pipeline analog zur bestehenden lint.yml:
- Trigger auf push und pull_request
- Installiert PHP + Composer + Extensions (xml, mbstring)
- Fuehrt 'composer install' und 'vendor/bin/phpunit' aus
- 18 Tests / 31 Assertions gruen
2026-06-03 23:36:04 +00:00
45368bb607
fix: replace jQuery with vanilla JS scrollIntoView
Lint / PHP Syntax Check (push) Has been cancelled
Lint / CSS Lint (stylelint) (push) Has been cancelled
Lint / HTML Lint (htmlhint) (push) Has been cancelled
2026-06-02 23:50:56 +02:00
b774bd0363
fix: scroll-class check on load, hero null guard, JS syntax fix
Lint / PHP Syntax Check (push) Has been cancelled
Lint / CSS Lint (stylelint) (push) Has been cancelled
Lint / HTML Lint (htmlhint) (push) Has been cancelled
2026-06-02 23:50:55 +02:00
ad4284733c
fix: solid navbar background on scroll ( closes #68 )
Lint / PHP Syntax Check (push) Has been cancelled
Lint / CSS Lint (stylelint) (push) Has been cancelled
Lint / HTML Lint (htmlhint) (push) Has been cancelled
2026-06-02 23:50:54 +02:00
1a72210608
Merge pull request 'feat: PHPUnit Test-Infrastruktur und Router-Tests' ( #64 ) from feature/phpunit-tests into main
Lint / PHP Syntax Check (push) Successful in 33s
Lint / CSS Lint (stylelint) (push) Successful in 1m12s
Lint / HTML Lint (htmlhint) (push) Successful in 1m9s
2026-05-22 21:33:32 +02:00
greggy
3a30abc05e
fix: replace custom autoloader with composer PSR-4 autoloader
...
Deploy Feature Branch to Test / deploy (push) Successful in 29s
Lint / PHP Syntax Check (push) Successful in 37s
Lint / CSS Lint (stylelint) (push) Successful in 1m17s
Lint / HTML Lint (htmlhint) (push) Successful in 1m15s
Lint / PHP Syntax Check (pull_request) Successful in 32s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m12s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m8s
The custom autoloader used lowercase directory names which broke
after renaming app/core/ → app/Core/ and app/controllers/ → app/Controllers/
for PSR-4 compliance.
2026-05-22 19:19:28 +00:00
greggy
57b97b5069
feat: add PHPUnit test infrastructure and Router tests
...
Deploy Feature Branch to Test / deploy (push) Successful in 28s
Lint / PHP Syntax Check (push) Successful in 36s
Lint / CSS Lint (stylelint) (push) Successful in 1m18s
Lint / HTML Lint (htmlhint) (push) Successful in 1m11s
Lint / PHP Syntax Check (pull_request) Successful in 37s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m20s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m13s
- Add composer.json with PHPUnit 11 and PSR-4 autoloading
- Add phpunit.xml configuration
- Rename app/core/ → app/Core/ and app/controllers/ → app/Controllers/ (PSR-4)
- Add 18 unit tests for App\Core\Router (31 assertions)
- addRoute(): default action, custom action, overwrite
- dispatch(): URL normalization, direct match, legacy redirects
- dispatch(): 404 handling, controller/action not found exceptions
- TestableRouter subclass to intercept side-effects
- Update .gitignore (vendor/, .phpunit.cache/)
2026-05-22 19:02:02 +00:00
b6f745e144
Merge pull request 'Fix #54 : Pre-Commit Hook als Gate für jeden Commit' ( #55 ) from feature/issue-54-precommit-lint-gate into main
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m13s
Lint / HTML Lint (htmlhint) (push) Successful in 1m10s
2026-05-22 16:41:40 +02:00
e7f2875287
Merge pull request 'fix( #62 ): Correct PLZ 98533 → 98553 in Lage-Section' ( #63 ) from feature/issue-62-fix-plz into main
Lint / PHP Syntax Check (push) Successful in 32s
Lint / HTML Lint (htmlhint) (push) Has been cancelled
Lint / CSS Lint (stylelint) (push) Has been cancelled
2026-05-22 16:31:32 +02:00
0c6f8cac5a
merge: resolve conflict in deploy-test.yml with main
Deploy Feature Branch to Test / PHP Syntax Check (push) Successful in 35s
Deploy Feature Branch to Test / CSS Lint (stylelint) (push) Successful in 1m13s
Deploy Feature Branch to Test / HTML Lint (htmlhint) (push) Successful in 1m12s
Lint / PHP Syntax Check (push) Successful in 33s
Lint / CSS Lint (stylelint) (push) Successful in 1m13s
Lint / HTML Lint (htmlhint) (push) Successful in 1m7s
Lint / PHP Syntax Check (pull_request) Successful in 31s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m12s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m9s
Deploy Feature Branch to Test / Deploy to Test Environment (push) Successful in 25s
2026-05-22 14:28:47 +00:00
2b5b0afd91
Merge pull request 'fix( #58 ): Remove broken getElementById form stub' ( #61 ) from feature/issue-58-fix-formsuccess into main
Lint / PHP Syntax Check (push) Successful in 31s
Lint / CSS Lint (stylelint) (push) Successful in 1m12s
Lint / HTML Lint (htmlhint) (push) Has been cancelled
2026-05-22 16:24:52 +02:00
e896831b36
fix( #62 ): correct PLZ from 98533 to 98553 in lage section
...
Deploy Feature Branch to Test / deploy (push) Successful in 25s
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m17s
Lint / HTML Lint (htmlhint) (push) Successful in 1m7s
Lint / PHP Syntax Check (pull_request) Successful in 32s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m14s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m7s
The PLZ was incorrect in the Lage-Section view (98533 instead of 98553).
HomeController and meta description already used the correct 98553.
Closes #62
2026-05-22 14:23:07 +00:00
3db7dc8971
fix( #58 ): remove broken getElementById('contactForm') stub
...
Deploy Feature Branch to Test / deploy (push) Successful in 26s
Lint / PHP Syntax Check (push) Successful in 35s
Lint / CSS Lint (stylelint) (push) Successful in 1m15s
Lint / HTML Lint (htmlhint) (push) Successful in 1m11s
Lint / PHP Syntax Check (pull_request) Successful in 39s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m13s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m12s
The JS had a dangling document.getElementById('contactForm') call that
did nothing - no event handler attached, no return value used.
Form handling is entirely server-side (PHP POST → redirect to #form-result).
No JS form intervention needed.
Closes #58
2026-05-22 14:14:23 +00:00
e30bc5704b
Merge PR #59 : remove old haus-schleusingen.html references ( fixes #56 )
Lint / PHP Syntax Check (push) Successful in 36s
Lint / CSS Lint (stylelint) (push) Successful in 1m25s
Lint / HTML Lint (htmlhint) (push) Successful in 1m12s
2026-05-22 14:05:29 +00:00
25a48e9958
Merge PR #60 : fix contact form mailto + formSuccess ID ( fixes #57 , #58 )
Lint / PHP Syntax Check (push) Successful in 34s
Lint / HTML Lint (htmlhint) (push) Has been cancelled
Lint / CSS Lint (stylelint) (push) Has been cancelled
2026-05-22 14:04:07 +00:00
a170afa7c0
fix: remove mailto handler and fix formSuccess element ID (refs #57 , #58 )
Lint / PHP Syntax Check (pull_request) Manual approval
Lint / CSS Lint (stylelint) (pull_request) Manual approval
Lint / HTML Lint (htmlhint) (pull_request) Manual approval
Deploy Feature Branch to Test / deploy (push) Manual approval
Lint / PHP Syntax Check (push) Manual approval
Lint / CSS Lint (stylelint) (push) Manual approval
Lint / HTML Lint (htmlhint) (push) Successful in 1m12s
2026-05-22 13:57:21 +00:00
148b4849fd
fix: remove all references to old haus-schleusingen.html (refs #56 )
Deploy Feature Branch to Test / deploy (push) Successful in 25s
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m15s
Lint / HTML Lint (htmlhint) (push) Successful in 1m11s
Lint / PHP Syntax Check (pull_request) Successful in 34s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m15s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m11s
2026-05-22 13:38:33 +00:00
Claw (AI)
4d2393f436
docs: add pre-commit hook activation instructions to README ( closes #54 )
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m10s
Lint / HTML Lint (htmlhint) (push) Successful in 1m7s
2026-05-22 13:16:54 +00:00
Claw
fb646eba85
feat: enforce lint checks as gate for commits and CI ( #54 )
...
Deploy Feature Branch to Test / PHP Syntax Check (push) Successful in 34s
Deploy Feature Branch to Test / CSS Lint (stylelint) (push) Successful in 1m12s
Deploy Feature Branch to Test / HTML Lint (htmlhint) (push) Successful in 1m10s
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m14s
Lint / HTML Lint (htmlhint) (push) Successful in 1m9s
Lint / PHP Syntax Check (pull_request) Successful in 32s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m11s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m9s
Deploy Feature Branch to Test / Deploy to Test Environment (push) Successful in 24s
- Add PHP syntax check to lint-staged via scripts/lint-php.sh
- Add lint:php script to package.json
- Update lint script to include PHP checks
- Create scripts/safe-commit.sh for AI agent use
- Update deploy-test.yml: lint jobs as gate before deploy
- Add branch protection for main requiring status checks
- Update AGENTS.md with pre-commit hook rules for agents
Also addresses #53 : CI requires lint checks before merge
Co-authored-by: Claw <claw@openclaw.local >
2026-05-22 07:25:57 +00:00
6b605bb961
Merge pull request 'Fix #48 : Dateien an korrekte Orte im Projekt verschieben' ( #52 ) from feature/issue-48-cleanup-files into main
...
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m13s
Lint / HTML Lint (htmlhint) (push) Successful in 1m9s
Reviewed-on: #52
2026-05-22 08:56:43 +02:00
Claw
9c2c8324b0
refactor: clean up file locations ( #48 )
...
Deploy Feature Branch to Test / deploy (push) Successful in 25s
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m12s
Lint / HTML Lint (htmlhint) (push) Successful in 1m8s
Lint / PHP Syntax Check (pull_request) Successful in 31s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m14s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m9s
- Remove duplicate bilder/ directory from root (already in public/bilder/)
- Move screenshots (docker-preview, page-preview, screenshot-landingpage) to docs/
- Remove duplicate robots.txt from root (already in public/)
- Update README.md image references to docs/ path
- Update deploy workflow exclusions
2026-05-22 06:53:50 +00:00
344b0d8271
Merge pull request 'Fix #41 : CSP und Security Headers implementieren' ( #49 ) from feature/issue-41-csp-header into main
...
Lint / PHP Syntax Check (push) Successful in 33s
Lint / CSS Lint (stylelint) (push) Successful in 1m13s
Lint / HTML Lint (htmlhint) (push) Successful in 1m9s
Reviewed-on: #49
2026-05-22 08:34:34 +02:00
9b92136048
Merge pull request 'Fix #42 : CSRF-Schutz für Kontaktformular' ( #50 ) from feature/issue-42-csrf-protection into main
...
Lint / PHP Syntax Check (push) Successful in 32s
Lint / HTML Lint (htmlhint) (push) Has been cancelled
Lint / CSS Lint (stylelint) (push) Has been cancelled
Reviewed-on: #50
2026-05-22 08:33:41 +02:00
bd1407f8ab
Merge pull request 'Fix #43 : Offene Redirects via REQUEST_URI fixen' ( #51 ) from feature/issue-43-open-redirect-fix into main
...
Lint / PHP Syntax Check (push) Successful in 33s
Lint / HTML Lint (htmlhint) (push) Has been cancelled
Lint / CSS Lint (stylelint) (push) Has been cancelled
Reviewed-on: #51
2026-05-22 08:32:23 +02:00
d44fb337e2
fix(security): replace REQUEST_URI with fixed path in redirects ( #43 )
...
Deploy Feature Branch to Test / deploy (push) Successful in 24s
Lint / PHP Syntax Check (push) Successful in 33s
Lint / CSS Lint (stylelint) (push) Successful in 1m14s
Lint / HTML Lint (htmlhint) (push) Successful in 1m8s
Lint / PHP Syntax Check (pull_request) Successful in 32s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m12s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m8s
- Replace all 3 occurrences of $_SERVER['REQUEST_URI'] with '/'
- Prevents potential open redirect via client-controlled REQUEST_URI
- Safe since contact form only exists on homepage
Fix #43
2026-05-21 23:06:19 +00:00
a919a392cc
fix(security): add CSRF protection to contact form ( #42 )
...
Deploy Feature Branch to Test / deploy (push) Successful in 25s
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m13s
Lint / HTML Lint (htmlhint) (push) Successful in 1m9s
Lint / PHP Syntax Check (pull_request) Successful in 32s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m16s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m7s
- Generate CSRF token (32 bytes) on GET requests
- Add hidden csrf_token field to contact form
- Validate token with hash_equals() (timing-safe) on POST
- Reject invalid/missing tokens with user-friendly error
Fix #42
2026-05-21 23:05:51 +00:00
2d9f1838b6
fix(security): add CSP and security headers via .htaccess ( #41 )
...
Deploy Feature Branch to Test / deploy (push) Successful in 25s
Lint / PHP Syntax Check (push) Successful in 39s
Lint / CSS Lint (stylelint) (push) Successful in 1m25s
Lint / HTML Lint (htmlhint) (push) Successful in 1m10s
Lint / PHP Syntax Check (pull_request) Successful in 34s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m12s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m8s
- Content-Security-Policy: strict CSP for static landingpage
- X-Content-Type-Options: nosniff
- X-Frame-Options: SAMEORIGIN
- Referrer-Policy: strict-origin-when-cross-origin
Fix #41
2026-05-21 23:04:52 +00:00
36b5639801
Merge pull request 'Refactoring: Umstellung auf Mini-MVC-Architektur (Issue #46 )' ( #47 ) from feature/issue-46-mvc-refactoring into main
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m14s
Lint / HTML Lint (htmlhint) (push) Successful in 1m10s
2026-05-21 14:05:07 +02:00
ffbf23a524
merge: resolve conflicts with main – remove old files (MVC has all changes)
Deploy Feature Branch to Test / deploy (push) Successful in 26s
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m12s
Lint / HTML Lint (htmlhint) (push) Successful in 1m10s
Lint / PHP Syntax Check (pull_request) Successful in 32s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m13s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m11s
2026-05-21 11:42:39 +00:00
1aedcaf314
refactor: Umstellung auf Mini-MVC-Architektur (Issue #46 )
...
Deploy Feature Branch to Test / deploy (push) Successful in 24s
- Front Controller Pattern mit public/index.php als Einstiegspunkt
- Eigenes Routing (App\Core\Router) ohne externes Framework
- Controller: HomeController, ImpressumController, DatenschutzController
- Views mit gemeinsamem Layout (app/views/layouts/main.php)
- PSR-4 Autoloading
- Statische Assets nach public/ verschoben
- Alte Dateien (index.php, impressum.html, datenschutz.html) geloescht
- 301-Redirects fuer alte URLs
- PHP 8.5 kompatibel
- Apache DocumentRoot auf public/ gesetzt
2026-05-19 14:38:38 +00:00
7e3b89bf63
Merge pull request 'Fix #44 : CI Pipeline mit PHP/CSS/HTML Linting' ( #45 ) from feature/issue-44-ci-lint-pipeline into main
...
Lint / PHP Syntax Check (push) Successful in 34s
Lint / CSS Lint (stylelint) (push) Successful in 1m13s
Lint / HTML Lint (htmlhint) (push) Successful in 1m15s
Reviewed-on: #45
2026-05-19 16:05:46 +02:00
Claw
afbf4ef80e
fix(ci): run lint on all branches, not just main
Deploy Feature Branch to Test / deploy (push) Successful in 25s
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m13s
Lint / HTML Lint (htmlhint) (push) Successful in 1m17s
Lint / PHP Syntax Check (pull_request) Successful in 34s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m13s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m9s
2026-05-19 14:04:59 +00:00
Claw
a0615d10e2
fix(css): kebab-case keyframe name and empty line before rule
...
Deploy Feature Branch to Test / deploy (push) Successful in 32s
Lint / PHP Syntax Check (pull_request) Successful in 37s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m26s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m23s
fix(php): duplicate id 'form-result' → 'form-errors' for error container
2026-05-19 13:58:11 +00:00
Claw
a0d89a93a6
feat(ci): add lint pipeline for PHP, CSS and HTML ( #44 )
Deploy Feature Branch to Test / deploy (push) Successful in 30s
Lint / PHP Syntax Check (pull_request) Successful in 34s
Lint / CSS Lint (stylelint) (pull_request) Failing after 1m24s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m18s
2026-05-19 13:53:46 +00:00
6612a0207a
Merge pull request 'Fix #17 : Bildoptimierung – WebP, Lazy Loading, Caching' ( #22 ) from feature/issue-17-bildoptimierung-webp into main
2026-05-19 15:29:04 +02:00
Claw
9c0a9a856a
merge: resolve conflicts with main (WebP + vanilla JS + a11y)
Deploy Feature Branch to Test / deploy (push) Successful in 32s
2026-05-19 13:28:52 +00:00