Co nowego w Listorii

Aktualna wersja v1.2.2

Historia zmian i nowych funkcji

v1.2.2Reply-To dla emaili
2026-05-08
  • NowościReply-To pattern w lib/email — env RESEND_REPLY_TO przekierowuje odpowiedzi userów na realny adres (np. kontakt@listoria.app) zamiast bounce'ować na noreply@
  • UlepszeniaAuto-injection w sendOrLog — wszystkie funkcje send* automatycznie dziedziczą replyTo bez konfiguracji per-function
v1.2.1Resend + Umami integracje
2026-05-08
  • NowościResend integracja: lib/email module + WorkspaceInviteEmail template (React Email)
  • NowościEmail zaproszenia do workspace wysyłany automatycznie po inviteMember()
  • NowościUmami analytics component (privacy-first, cookieless) — ładowany warunkowo gdy NEXT_PUBLIC_UMAMI_WEBSITE_ID ustawione
  • UlepszeniaGraceful degradation: bez RESEND_API_KEY emaile logowane do konsoli (dev mode bez setupu)
  • UlepszeniaFailure isolation: email send nie blokuje invite (token jest w bazie, UI kopiuje link)
  • DokumentacjaSetup docs (Resend DNS verification, Umami Cloud setup) w root CLAUDE.md
  • DokumentacjaPRD: 102 checkboxów zaznaczonych jako [x] (snapshot na v1.2)
v1.2Workspaces — multi-tenant fundament
2026-05-08
  • NowościMigracja 010: workspace_invites + active_workspace_id + workspace_id na favorites/folders + data migration (Personal workspace per user)
  • NowościModuł lib/workspace: types, queries (8), actions (8) — switch, create, rename, invite, cancel, accept, change role, remove
  • NowościWorkspaceSwitcher w AppNav — dropdown z role icons (Crown/Shield/User), klik → switch + refresh
  • NowościStrona /settings/workspace: rename, members management, invite form, pending invites, create new
  • NowościStrona /invite/[token] — public z login-redirect, accept przez RPC (email validation)
  • Nowościis_workspace_member + is_workspace_admin (security definer) — używane w nowych RLS policies
  • NowościRPC accept_workspace_invite — security definer, idempotent, walidacja email auth.users vs invite
  • UlepszeniaMigracja RLS: projects/favorites/folders z user_id-based na workspace member-based
  • UlepszeniaLimit Free 50 ulubionych liczony per-workspace (nie per-user)
  • UlepszeniaPełny namespace i18n workspace.* (PL + EN) — switcher, roles, settings, accept errors
  • Dokumentacja8 funkcji w docs/functions.md (sekcja Workspace) + supabase-docs/010
  • DokumentacjaTeam plan w Stripe (per-seat), activity log, internal comments — odłożone do v1.2.x/v1.3
v1.1Help Center — 7 artykułów w aplikacji
2026-05-08
  • NowościCentrum pomocy w /help — 7 artykułów w 4 kategoriach (Pierwsze kroki, Funkcje, Płatności, Pytania)
  • NowościArticles registry w lib/help/articles.ts (source of truth: slug, category, icon)
  • NowościLayout helpers: ArticleLayout (breadcrumb + h1), ArticleSection, ArticleTip
  • NowościDynamic route /help/[slug] z switch po slug + generateStaticParams (14 SSG stron)
  • NowościFAQ artykuł z Base UI Accordion (7 Q/A)
  • NowościContact card z mailto: hello@listoria.app
  • UlepszeniaPełny namespace i18n help.* (PL + EN) — categories, articles content, FAQ
  • UlepszeniaBrak MDX dependency — Server Components z t() są wystarczające dla 7 artykułów
  • Dokumentacja7 funkcji w docs/functions.md (sekcja Help) + zaktualizowany lib/help/CLAUDE.md
  • DokumentacjaWyszukiwarka artykułów + screenshoty odłożone do v1.2+
v1.0MVP Launch — Landing + final polish
2026-05-08
  • NowościLanding page: LandingNav (sticky), Hero z brand voice headline 'Kosztorys, który robi się sam.', ProblemSection, Features (5 USP w bento), PricingSection z toggle monthly/yearly, FAQSection (7 pytań), LandingFooter (multi-column)
  • NowościSEO: sitemap.ts (8 URLs × hreflang), robots.ts (allow public, disallow gated), generateMetadata per locale (OG + Twitter + hreflang)
  • NowościPełny namespace i18n landing.* (PL + EN) — meta, nav, hero, problem, features, pricing (toggle/free/pro), faq, footer
  • UlepszeniaServer Components first — minimum JS na landingu (tylko PricingCards jako client island)
  • UlepszeniaPricing zsynchronizowane z billing module (Free + Pro 49/39 PLN), Team odłożony do Faza 2
  • UlepszeniametadataBase + keywords + formatDetection w root layout (no email/tel auto-link)
  • UlepszeniaConditional CTA — zalogowany user widzi 'Otwórz aplikację' zamiast 'Załóż konto'
  • DokumentacjaScope v1.0 zamknięty — wszystkie pozycje [x] z listoria-v1-scope.md
  • Dokumentacja10 nowych funkcji w docs/functions.md (sekcja Landing) + zaktualizowany lib/landing/CLAUDE.md
  • DokumentacjaTestimonials, Help Center, Chrome Extension, Team workspace, AI — odłożone do v1.1+/Faza 2/3
v0.10Eksporty — PDF + Excel + Moodboard PDF
2026-05-08
  • NowościPDF lista zakupowa (A4 portrait) — branding (Pro: logo + studio info; Free: 'Powered by Listoria') + tabela 5-kol per sekcja + sumy + numeracja
  • NowościExcel lista (xlsx) — 2 arkusze (Lista + Podsumowanie), grupowanie per sekcja, SUM formulas, format walutowy — Pro only
  • NowościPDF moodboard (A3 landscape) — image fill z PNG canvas Excalidraw, branded header — Pro only
  • NowościExportButtons w SettingsTab — fetch + blob URL download flow
  • NowościMoodboard PDF button w canvas (obok PNG export) — disabled + tooltip dla Free
  • NowościRoute handlers (Node.js runtime, force-dynamic): list-pdf (GET), list-excel (GET 403 dla Free), moodboard-pdf (POST z PNG data URL)
  • UlepszeniaDefense in depth: frontend disabled + serwer 403 dla Pro-only eksportów
  • UlepszeniaPOST dla moodboard-pdf (nie GET) bo PNG data URL ~1-5MB
  • UlepszeniaPełny namespace i18n exports.* (PL + EN) — labels, hints, Pro badges, toast messages
  • UlepszeniaSlug filename z transliteracją PL diacritics (mieszkanie-kowalski-lista-2026-05-08.pdf)
  • DokumentacjaDependency: @react-pdf/renderer ^4.5.1, exceljs ^4.4.0
  • Dokumentacja10 nowych funkcji w docs/functions.md
v0.9Billing — Stripe + plany Free/Pro
2026-05-08
  • NowościMigracja 009: stripe_subscription_id + status + period_end na profiles
  • NowościStripe Checkout (subscription mode) z 14-day trial — Pro Monthly (49 zł) / Yearly (39 zł/mc)
  • NowościBLIK auto-detect przez Stripe na podstawie PLN currency
  • NowościStripe Customer Portal — cancel, update card, invoices
  • NowościWebhook /api/stripe/webhook z signature verification i idempotent handlerami
  • NowościPlan-based limits: getFavoritesLimit, getProjectsLimit, hasProAccess (cancel-at-period-end uznawany jako Pro)
  • NowościStrona /billing: aktualny plan + porównanie Free/Pro + toggle monthly/yearly
  • NowościLimitBadge plan-aware: Pro = crown, Free = count/limit z color tone
  • UlepszeniaLazy ensureCustomer — Stripe Customer przy pierwszym Checkout, nie przy signup
  • UlepszeniaGraceful fallback gdy brak Stripe env vars (banner + disabled CTA)
  • UlepszeniaPełny namespace i18n billing.* (PL + EN)
  • DokumentacjaTEAM plan + per-project enforcement odłożone do v1.0
  • Dokumentacja11 nowych funkcji w docs/functions.md + setup Stripe w CLAUDE.md
v0.8Notifications — in-app powiadomienia
2026-05-08
  • NowościMigracja 008: rozszerzenie RPC z v0.7 o INSERT do notifications
  • NowościDesigner dostaje powiadomienia gdy klient: zmieni status, doda komentarz, otworzy panel
  • NowościBell icon w AppNav z badge (unread count)
  • NowościDropdown z 10 ostatnimi + button 'Mark all read' + link 'View all'
  • NowościStrona /notifications z filter Tabs (all/unread) + paginacja 50 per page
  • NowościPer powiadomienie: ikona po typie, deep link, time relative ('5 min temu')
  • Nowościtrack_client_view z dedupe 1h (max 1 powiadomienie per godzinę per projekt)
  • NowościKlik powiadomienia → auto-mark-read + nawigacja do deep linku
  • NowościBulk actions: Mark all read, Delete read
  • UlepszeniaICU plural rules dla polskiego (1 minutę / 2 minuty / 5 minut temu)
  • UlepszeniaBody komentarza obcięte do 80 znaków + ellipsis w notification
  • DokumentacjaEmail Resend odłożony do v0.8.1 (setup domain + API key)
  • Dokumentacja9 nowych funkcji w docs/functions.md
v0.7Panel klienta — token-based access
2026-05-07
  • NowościMigracja 007: 3 RPC security-definer (get_client_view, client_set_product_status, client_add_comment)
  • NowościPublic route /[locale]/c/[token] — mobile-first, bez auth, ze studio branding
  • Nowości3 przyciski statusu na karcie produktu: Akceptuję / Do przemyślenia / Odrzucam
  • NowościCollapsible komentarze per produkt z formularzem (designer/client thread)
  • NowościDesigner side: sekcja Panel klienta w SettingsTab z listą linków + dialog tworzenia
  • Nowości6 permissions checkboxów: canComment, canChangeStatus, viewPrices, viewSuppliers, viewLinks, viewMoodboard
  • NowościServer-side filter pól wrażliwych w get_client_view (price/supplier/source_url null gdy permissions=false)
  • NowościAuto-update last_accessed_at + badge “Wygasł” dla linków po expires_at
  • NowościCopy-to-clipboard URL z toast confirmation
  • UlepszeniaEmpty state dla invalid/expired tokena
  • UlepszeniaPełny namespace i18n clientPanel.* (PL + EN) z designer + client UI
  • UlepszeniaKlient może ustawić tylko 4 z 6 statusów (bez ordered/delivered — flow zamówienia)
  • DokumentacjaMoodboard view w panelu klienta odłożony do v0.7.1 (potrzebny read-only Excalidraw)
  • Dokumentacja9 nowych funkcji w docs/functions.md
v0.6Moodboard — Excalidraw canvas
2026-05-06
  • NowościMoodboardTab zastąpił placeholder — Excalidraw canvas (MIT, w pełni free komercyjnie)
  • NowościAuto-save scene state do moodboards.tldraw_document (debounce 1.5s) w onChange callback
  • NowościSidebar ProductPicker z miniaturami produktów — klik fetch'uje URL → dataURL → addFiles + updateScene
  • NowościSaveBadge nad canvasem (idle/saving/saved/error) bez overlay-a żeby nie przechwytywać klików
  • NowościEksport PNG przez exportToBlob({format: image/png, exportPadding: 32}) + manual download
  • UlepszeniaDynamic import canvasa (ssr:false) z loading skeletonem
  • UlepszeniaJSON-safe round-trip przed upsert — JSON.parse(JSON.stringify(scene))
  • PoprawkiFix: swap z tldraw na Excalidraw — tldraw v3+ wymaga komercyjnej licencji w prod
  • PoprawkiFix: position:relative na canvas wrapper — tldraw/excalidraw renderują absolute layers
  • PoprawkiFix: usunięty revalidatePath z upsertMoodboard — refetch resetował canvas
  • DokumentacjaPRD: PDF eksport odłożony do v1.0 (bundle z @react-pdf/renderer)
  • Dokumentacja5 nowych funkcji w docs/functions.md
v0.5Favorites — baza ulubionych z folderami
2026-05-06
  • NowościStrona /favorites z sidebarem folderów + grid ulubionych
  • NowościFoldery (CRUD) + 2 wirtualne entries: Wszystkie / Bez folderu
  • NowościKarta ulubionego: zdjęcie, cena, dostawca, kategoria, tagi (chipsy)
  • NowościAddToProjectDialog — 2-step picker (projekt → sekcja) tworzący snapshot produkt
  • NowościQuick 'Save to Favorites' w ProductCard w widoku projektu
  • NowościFiltry: search (debounce 300ms) + kategoria + tag z URL state
  • NowościLimit Free 50 z LimitBadge (warning na 80%, block na 100%)
  • NowościUpload zdjęć (reuse bucketu product-images z subfolderem favorites/)
  • UlepszeniaPełny namespace i18n favorites.* (PL + EN) — ~70 kluczy
  • UlepszeniaProductCard.tsx: dodany item 'Zapisz w ulubionych' w dropdown menu
  • Dokumentacjadocs/functions.md: 14 nowych funkcji modułu Favorites
v0.4Projects — listy zakupowe + kosztorys
2026-05-06
  • NowościStrona projektu /projects/[id] z 3 zakładkami (Listy / Moodboard / Ustawienia)
  • NowościHierarchia: projekt → sekcje (pomieszczenia) → produkty z auto-sumami per sekcja i per projekt
  • NowościBudgetBar z animowanym NumberFlow + ostrzeżenie przy przekroczeniu budżetu
  • NowościSekcje (pomieszczenia) z chipsami sugestii, inline rename, duplikacja z produktami
  • NowościProdukty: cena, ilość, jednostka, dostawca, kategoria, nr katalogowy, link, notatka, zdjęcie
  • Nowości6 statusów produktu z 1-klikową zmianą przez dropdown (Propozycja/Zaakceptowany/Odrzucony/Do przemyślenia/Zamówiony/Dostarczony)
  • NowościDrag & Drop sekcji + produktów (sortowanie + przenoszenie między sekcjami) z optimistic UI
  • NowościFiltry: search z debounce, status, kategoria, dostawca, toggle grid/list — wszystkie z URL state
  • NowościUpload zdjęć produktów (Supabase Storage bucket product-images)
  • NowościSoft delete produktów + AlertDialog confirm + cascade delete sekcji z ostrzeżeniem
  • NowościMigracja 006: storage bucket product-images z RLS (public read, user-folder write)
  • UlepszeniaPełny namespace i18n projects.* (PL + EN) — ~100 kluczy z ICU plural
  • UlepszeniaMoodboardTab placeholder z planowaną implementacją w v0.6 (tldraw)
  • Dokumentacjadocs/functions.md: 16 nowych funkcji modułu Projects
v0.3Dashboard — lista projektów
2026-05-07
  • NowościStrona /dashboard z gridem projektów (1/2/3 kolumny responsive)
  • NowościModal 'Nowy projekt' (nazwa, klient, email, budżet, waluta)
  • NowościEdycja projektu z osobnym uploadem cover image
  • NowościArchiwizacja + Przywracanie + Oznacz jako ukończony
  • NowościSoft delete (kosz na 30 dni) z AlertDialog confirm
  • NowościFiltrowanie tabami: Wszystkie / Aktywne / Zarchiwizowane / Ukończone (z badge counterami)
  • NowościEmpty state z CTA gdy 0 projektów
  • NowościProjectCard z Motion hover, NumberFlow budżet, status badge
  • NowościMigracja 005: storage bucket project-covers + RLS
  • UlepszeniaAutoAnimate na liście (smooth add/remove/reorder)
  • PoprawkiFix: UserMenu split server/client (Base UI error #31 — DropdownMenuLabel wymaga Group wrappera)
  • Dokumentacjadocs/functions.md: rejestr 11 nowych funkcji v0.3
v0.2Auth + Settings
2026-05-07
  • NowościLogowanie email/hasło + magic link + Google OAuth (Supabase Auth)
  • NowościRejestracja z auto-tworzonym profilem (trigger handle_new_user)
  • NowościForgot/reset password flow (link email → /reset-password)
  • NowościOAuth callback handler (PKCE flow) na /api/auth/callback
  • NowościMiddleware: chain next-intl + Supabase JWT refresh
  • Nowości(app) route group z AuthGuard — protected: dashboard, projects, favorites, settings, billing, help
  • Nowości(auth) route group z reverse-guard — login/signup redirektują zalogowanego na /dashboard
  • NowościSettings page: profil (imię, język, avatar) + pracownia (nazwa, logo, kontakt)
  • NowościAppNav top bar + UserMenu dropdown (avatar, settings, billing, logout)
  • NowościMigracja 004: storage buckets `avatars` + `company-logos` z RLS (public read, user-folder write)
  • UlepszeniaLanding page z dynamicznym przyciskiem login/signup (zalogowany → dashboard)
  • NowościRozbudowa kluczy i18n (auth, settings) PL + EN
  • Dokumentacjadocs/functions.md: rejestr 14 nowych funkcji v0.2
v0.1Inicjalizacja projektu
2026-05-06
  • NowościBootstrap monorepo Turborepo (apps/web + apps/chrome-extension placeholder)
  • NowościNext.js 16 + React 19 + Tailwind 4 + Base UI shadcn (54 komponenty)
  • NowościKonfiguracja Supabase (clients SSR/browser/middleware) + migracja init schema (12 tabel + RLS)
  • Nowościi18n next-intl 4: PL (domyślny) + EN
  • NowościDesign system z palety Listorii — Coral #FF6037, Poppins + JetBrains Mono
  • DokumentacjaDokumentacja: CLAUDE.md, database.md, functions.md, design-system.md, private-memory.md
  • DokumentacjaWewnętrzne skille Claude (/release, /plan, /db-update, /module, /memory, /functions, /design-tokens, /i18n, /test)
  • NowościStrona /changelog (publiczna) i /design-system (ukryta dev only)