Files
neta/docs/self-hosted-redesign/phase-0-regression-and-spike.md

5.7 KiB
Raw Permalink Blame History

title, description, status, last_updated
title description status last_updated
Phase 0 Regression and Phase 1 Spike Criteria Mevcut hatalardan türetilen regression testleri ve Faz 1 runtime spike kabul kriterleri. active 2026-07-16

Phase 0 Regression and Phase 1 Spike Criteria

Regression test backlog

Bu maddeler davranış paritesi değildir; redesign içinde düzeltilmesi zorunlu eski problem testleridir.

ID Problem Test tanımı Beklenen sonuç
REG-001 Portal planning query order_index kullanıyor Portal project detail planning sections ordered query çalıştırılır Query sort_order kullanır; missing column hatası yok
REG-002 Project risk route completed sayıyor done task içeren project için risk analysis çalıştırılır Completed count done taskları sayar
REG-003 Portal UI section.type okuyor category: scope olan section portalda render edilir Label/category doğru görünür, undefined fallback yok
REG-004 Revision quota server'da uygulanmıyor Quota dolu project için portal revision request gönderilir Server action reject eder; DB insert olmaz
REG-005 Revision insert project/client ilişkisini tam doğrulamıyor Client A kendi client_id ile Client B project id'sine request dener Authorization error; DB insert olmaz
REG-006 Browser Supabase client DB erişimi Chat/settings ekranında client bundle import analizi yapılır Browser DB/auth SDK import yok
REG-007 Settings API key client'a dönüyor Settings page data contract incelenir Secret value response payload'da yok, sadece masked/existence flag var
REG-008 Limitsiz listeler payload büyütüyor Projects/tasks/clients/calendar list query contract incelenir Pagination veya visible date range zorunlu
REG-009 Auto progress transaction dışı kalabilir Task status değişimi auto progress project'te yapılır Task update ve project progress aynı transaction sonucu
REG-010 Cross-owner UUID erişimi Başka owner'a ait project/task/client UUID ile query/mutation yapılır 404 veya authorization error; veri dönmez
REG-011 Production build /app/data oluşturmaya çalışıyor Env verilmeden ve kontrollü build env ile standalone build alınır Build host root'una yazmaz; runtime data dir yalnızca runtime'da hazırlanır
REG-012 Pnpm native build scriptleri ignore ediliyor Fresh pnpm install sonrası SQLite smoke çalıştırılır better-sqlite3 native binding mevcut; smoke yükleme hatası vermez
REG-013 Better Auth layout + Supabase feature session ayrışması Better Auth ile login sonrası core feature read/mutation çalıştırılır Tek session principal kullanılır; Supabase session gerekmiyor
REG-014 Eksik link hedefleri Login forgot-password ve portal settings linkleri izlenir Her görünür link gerçek route veya bilinçli disabled state'e gider

Kritik davranış baseline matrisi

Faz 0'da mevcut kod davranışı phase-0-baseline.md içinde kaydedilmiştir. Hibrit auth nedeniyle eski ekranın canlı çalışması yeni sistem için güvenilir parity kanıtı değildir. Aşağıdaki akışların yeni vertical slice kabulünde ekran kaydı veya tekrarlanabilir browser smoke çıktısı alınacaktır:

Akış Kayıt adı önerisi Kapsam
İlk admin setup setup-first-admin /register, signup, dashboard redirect
Login/logout auth-login-logout Login, protected route, sign out
Client portal hesabı client-user-create Freelancer client user creation route
Client CRUD clients-crud Create, edit, archive, pipeline stage
Project CRUD/planning projects-crud-planning Create, cover image, planning section, progress settings
Task kanban tasks-kanban Create, drag/status update, complete, delete
Calendar calendar-crud Create/edit/delete, date range
Finance finance-crud-filter Create income/expense, update payment status
Business docs business-docs Proposal/invoice/contract/subscription current behavior
Journal journal-crud Create/edit/delete daily log
Analytics analytics-range Date filter and chart result
AI chat chat-session-message Session create/delete, message send
AI analysis ai-analysis Finance analysis and project risk
Settings settings-profile-secret Avatar, profile, password, API key
Portal portal-project-revision Project, public tasks, revision request

Faz 1 spike kabul kriterleri

Faz 1'e başlandığında ilk teknik spike feature taşımaz. Sadece runtime kararlarını kanıtlar.

Başarı kriterleri:

  • Next.js standalone production build alınır.
  • Tek container boot eder.
  • DATA_DIR altında SQLite DB ve uploads dizini oluşur.
  • Drizzle migration sıfır DB'ye uygulanır.
  • Migration ikinci kez çalıştırıldığında schema bozulmaz.
  • better-sqlite3 native module production image içinde çalışır.
  • /api/health/live process ayakta olduğu sürece 200 döner.
  • /api/health/ready DB yazılabilir değilse unhealthy döner.
  • Container restart sonrası sample row korunur.
  • Non-root runtime ile /app/data yazılabilir.
  • Backup proof-of-concept sample DB ve uploads manifest'i üretir.
  • lint, typecheck ve production build geçer.

Başarısızlık kriterleri:

  • Native SQLite module image içinde yüklenemiyor.
  • Restart veri kaybettiriyor.
  • Migration request sırasında çalışıyor veya idempotent değil.
  • Readiness DB bozuk/yazılamaz durumda healthy dönüyor.
  • Tek persistent volume dışında zorunlu servis ihtiyacı çıkıyor.

Rollback:

  • Faz 1 spike production'a deploy edilmez.
  • Eski Supabase app untouched kalır.
  • Spike branch silinebilir veya ADR yeniden açılır.