Profil bulunamadığında otomatik açılan trial süresi Postgres trigger'ıyla
(handle_new_user, 3 gün) tutarsızdı. İkisi de artık aynı app_settings
tablosundan okuyor (bkz. laawos/sql/19_configurable_trial_and_status_gate.sql).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
requireAuth treated every chat caseId as a real cases row and rejected
"general" (the no-file chat sentinel) with 403. general chat now skips
the ownership check and is answered without touching chat_messages,
since that table's case_id is a NOT NULL FK to cases.