Cannot declare class CreateGroup — OPcache trzyma starą wersję klasy z poprzedniego deploya. Plik w paczce jest czysty, classmap też. Problem TYLKO na serwerze MyDevil.
Workaround: kontakt z support@mydevil.net z prośbą o restart PHP-FPM dla my.cartlist.app.
Nie blokuje aplikacji — wszystkie inne Resources działają, smoke test 22/22, production readiness 92%.
Sprint 1+2 finalna paczka · stabilna
Aplikacja: PWA · Środowisko: production · Wdrożenie: 2026-06-10 12:59
v6.22.3 — Hotfix migration
v6.22.3
🐛 Naprawione
Migracja unify_feature_flags padała z błędem "Column 'rollout_percentage' cannot be null".
Kolumna rollout_percentage w tabeli feature_flags ma constraint NOT NULL z default 100, a migracja próbowała wstawić null.
Fix: ustawienie wartości 100 dla wszystkich nowych feature flags.
⚙️ Idempotency
Migracja unify_feature_flags ma check if (!$existing) więc:
6 feature flags już zostało wstawionych w poprzednim (padłym) deploy: geofencing, price_comparison, barcode_scanner, ocr, gamification, settlements
4 pozostałe wstawią się teraz: realtime, ai_suggestions, smart_suggestions, email_notifications
Migracja sama się dokończy bez konfliktów
Hotfix · migration only · zero zmian w kodzie
Aplikacja: PWA · Środowisko: production · Wdrożenie: 2026-06-10 11:40
v6.21.17 — Stripe production detection
v6.21.17
🐛 Naprawione
Production readiness pokazywało Stripe jako "test mode" mimo że klucze są skonfigurowane produkcyjnie. Skrypt deploy szukał kluczy tylko w .env, podczas gdy Filament StripeSetup wizard zapisuje je w bazie (encrypted, bezpieczniej).
Skrypt deploy teraz sprawdza obydwa źródła: .env + zaszyfrowane Settings w bazie.
⚙️ Pod maską
Auto-detection mode (live/test) działa zarówno dla sk_live_ jak i rk_live_ (restricted keys)
Pre-flight check nie ostrzega o "puste STRIPE_SECRET" jeśli klucze są w DB
Skrypt deploy poprawnie raportuje stan Stripe — readiness score wyższy
Aplikacja: PWA · Środowisko: production · Wdrożenie: 2026-06-09 21:03
v6.21.16 — Sentry CDN load fix
v6.21.16
🐛 Naprawione
Sentry frontend SDK nie ładował się — CDN aktualizuje bundle bez zmiany URL, więc weryfikacja SRI integrity nie działała. Usunięte SRI sprawdzanie (Sentry CDN to zaufany dostawca).
Plus rozszerzony classmap verify (sprawdza krytyczny trait SubscriptionPlan)
⚙️ Pod maską
Frontend Sentry teraz ładuje aktualną wersję bundle automatycznie
Auto-detect missing klas w composer classmap zawiera teraz Filament traits
Naprawia ostrzeżenia w konsoli przeglądarki
Aplikacja: PWA · Środowisko: production · Wdrożenie: 2026-06-09 20:53
v6.21.13 — Cleanup
v6.21.13
⚙️ Pod maską
Refaktor komentarzy w kodzie — usunięte zbędne markery wersji
Spójniejszy styl dokumentacji w nowych plikach
Wewnętrzna porządki · bez wpływu na funkcje
Aplikacja: CMS · Środowisko: production · Wdrożenie: 2026-06-09 19:39
v6.21.11 — Drobne poprawki UX
v6.21.11
🐛 Naprawione
Paginacja na stronie Changelog — strzałki były ogromne (defaultowe SVG bez wymiarów). Teraz elegancki paginator dopasowany do dark design landing
Plus poprawiona paginacja w sekcji forum (kategorie + wyszukiwarka)
Active page highlighted neon green ze świecącym box-shadow
Drobna poprawka kosmetyczna · zero wpływu na funkcje
Aplikacja: CMS · Środowisko: production · Wdrożenie: 2026-06-09 13:10
v6.21.10 — Business plan "Wkrótce" + Auto-changelog
v6.21.10
🚀 Co nowego
Plan Business teraz dostępny przez kontakt — pełna informacja o funkcjach + indywidualna wycena dla firm
Auto-changelog — każde wdrożenie automatycznie tworzy wpis tutaj (admin tylko publikuje)
Nowy publiczny endpoint API do tworzenia changelog z opisem
🎨 Zmiany w landing
Sekcja "Dla zespołów i firm" ma teraz badge "Wkrótce 🚀"
Cena Business dimmed z opisem "od X zł" + "ostateczna cena ustalana indywidualnie"
CTA zmieniony na "📧 Skontaktuj się z nami" (mailto: business@cartlist.app)
Lista features rozszerzona o SLA + dedykowany account manager
Self-service onboarding planowany na Q4 2026
🐛 Naprawione
Stabilność landing page po migracji Laravel 12 (JSON-LD escape)
Drobne poprawki w SEO + Schema.org markup
⚙️ Pod maską
Nowy endpoint POST /api/internal/release-stub (auto-changelog drafts)
Markdown parser dla automatycznie generowanego content (HTML z <h2>, <ul>, <strong>)
Idempotent seeder dla historycznego changelog (v6.20 + v6.21)
Wdrożenie nie wymaga żadnej akcji od użytkowników. Strona główna zostanie automatycznie odświeżona.
Aplikacja: CMS · Środowisko: production · Wdrożenie: 2026-06-09 12:51
Bezpieczeństwo i fundamenty — Laravel 12
v6.21
🔒 Kluczowa poprawka bezpieczeństwa
Załatana podatność w mechanizmie walidacji emaili (CVE-2026-48019, severity HIGH). Wszystkie nasze aplikacje są teraz w 100% odporne na ten konkretny typ ataków.
🚀 Nowsza wersja frameworka
Migracja na Laravel 12 oraz odświeżenie ponad 60 wewnętrznych pakietów. Aplikacja działa szybciej, jest bardziej stabilna i przygotowana na kolejne lata rozwoju.
🐛 Naprawione
Wersja aplikacji w Ustawieniach pokazuje teraz aktualną wersję (nie cache'owaną)
Bezpośredni link /register otwiera od razu zakładkę "Rejestracja" (zamiast logowania)
Strona główna cartlist.app — drobne poprawki w SEO i renderowaniu
Logowanie odciskiem palca + jeden regulamin
v6.20-final
🔐 Loguj się błyskawicznie
Wprowadziliśmy logowanie odciskiem palca, Face ID lub PIN-em. Twoje dane biometryczne nigdy nie opuszczają urządzenia — przechowywane są lokalnie, jak w aplikacji bankowej.
Możesz też ustawić własny 4-cyfrowy PIN dla szybkiego dostępu, gdy biometria nie jest dostępna.
💾 BackupManager
W panelu admina dodaliśmy automatyczne kopie zapasowe Twoich danych z możliwością jednoklikowego przywrócenia. Twoje listy nigdy nie znikną.
📜 Regulamin zawsze aktualny
Połączyliśmy regulamin między aplikacją a stroną — zmiana w jednym miejscu trafia do wszystkich użytkowników w 5 minut. Plus dodaliśmy nowy checkbox zgodności na rejestracji (art. 38 pkt 13 ustawy o prawach konsumenta).
⚙️ Pod maską
308 automatycznych testów po każdej zmianie kodu
22-punktowy smoke test po każdym wdrożeniu
Production readiness score — sprawdza 10 kategorii gotowości
RODO compliance + hardening bezpieczeństwa
v6.20
🛡 Bezpieczeństwo i RODO
Eksport danych RODO — pobierz wszystkie swoje dane pod /api/me/export (art. 20 RODO)
Customer Portal Stripe — zarządzaj subskrypcją bezpośrednio z aplikacji
Aktualizacja Regulaminu, Polityki Prywatności i Cookies — zgodność z polskim prawem konsumenckim
Idempotency dla Stripe webhooks — żadnych duplikatów płatności
Wszystkie błędy formularzy w pełni po polsku
⚡ Stabilność
Naprawione duplikaty w odznakach (race condition w gamification)