# Changelog

جميع التغييرات المهمة في المشروع تُوثَّق في هذا الملف.

---

## [v0.1 Foundation] — 2026-07-24

### الوصف
أول إصدار رسمي للمشروع. يغطي **البنية التقنية الأساسية فقط** — لا محتوى، لا صفحات فعلية، لا واجهات مستخدم مكتملة. الهدف: قاعدة نظيفة وقابلة للتوسع (Clean Architecture) جاهزة لبدء بناء المحتوى والميزات في Phase 2 بعد اعتماد منفصل.

### ✅ ما تم إنجازه

**البنية والإعداد**
- مشروع Next.js 16.2.11 (App Router) + React 19.2.8 + TypeScript 5.9.3 (strict mode).
- هيكل مجلدات مطابق حرفيًا للمواصفة المطلوبة: `app/ components/ features/ lib/ services/ hooks/ types/ prisma/ public/ styles/ config/ locales/ middleware/` (+ `i18n/` كإضافة تقنية ضرورية لـ next-intl، و`docs/` لهذه المرحلة).

**قاعدة البيانات والمصادقة**
- PostgreSQL + Prisma ORM 6.19.3 (نماذج مصادقة أساسية فقط: `User`, `Account`, `Session`, `VerificationToken` — بلا نماذج محتوى).
- Auth.js (next-auth) 4.24.15 مستقر، مع `@next-auth/prisma-adapter` المتوافق فعليًا (لا Providers مُفعَّلة بعد — عمدًا).
- نظام صلاحيات (RBAC) مركزي: 7 أدوار، مصفوفة صلاحيات كاملة، دوال تحقق قابلة لإعادة الاستخدام.

**تعدد اللغات وواجهة المستخدم**
- i18n كامل عبر next-intl (عربي/إنجليزي)، مع تبديل RTL/LTR تلقائي.
- نظام Themes (فاتح/داكن/حسب النظام) عبر next-themes + Tailwind CSS v4 (CSS-first config).
- نظام خطوط (عربي/لاتيني) مضمَّن ذاتيًا عبر next/font.
- نظام أيقونات موحّد فوق lucide-react.

**البنية التحتية**
- تخزين كائنات متوافق مع S3 (`lib/storage.ts`) — جاهز، بلا بيانات اعتماد حقيقية بعد.
- طبقة بحث محايدة تجاه المزوّد (`lib/search.ts`) — جاهزة لـ OpenSearch/Elasticsearch لاحقًا.
- طبقة تخزين مؤقت اختيارية عبر Redis (`lib/redis.ts`).
- إعدادات بيئة متحقَّق منها بالكامل عبر zod (`config/env.ts`) مع فصل خادم/عميل.

**الأمان والجودة**
- `npm audit`: **0 ثغرات** (بعد معالجة 7 ثغرات transitive عبر `overrides` مستهدفة، دون أي downgrade كسير).
- `npm run lint`: **صفر أخطاء**.
- `tsc --noEmit`: صفر أخطاء في كل الكود المطوَّر (3 أخطاء متبقية في بيئة هذه الجلسة فقط، مصدرها الوحيد تعذّر تشغيل `prisma generate` بسبب قيود شبكة الجلسة — تُحل تلقائيًا في أي بيئة عادية عبر `postinstall` المُضاف).
- `npm run build`: تم التحقق من نجاح خطوتي Compile وBundling بالكامل (Turbopack)؛ خطوة Type-check النهائية ضمن `build` مرتبطة بنفس قيد Prisma أعلاه.

### ❌ ما لم يُنجز (بقرار صريح ضمن نطاق هذه المرحلة)
- أي صفحة محتوى فعلية (القرآن، الحديث، المقالات، الدورات...).
- أي نموذج بيانات للمحتوى (Content Models).
- لوحة تحكم إدارية.
- أي REST API فعلي بمنطق أعمال حقيقي (البنية موثَّقة فقط عبر README).
- أي Provider مصادقة فعلي (Google, Email...).
- اختبارات آلية (Unit/Integration/E2E) — لا إطار اختبار مثبَّت بعد.
- خط أنابيب CI/CD.
- Logger هيكلي / مراقبة (Monitoring).

### ⚠️ المشاكل المعروفة
1. **Prisma Client غير مولَّد في بيئة هذه الجلسة** بسبب حجب شبكي لـ `binaries.prisma.sh` — لا يؤثر على أي بيئة تطوير أو إنتاج حقيقية؛ يُحل تلقائيًا عبر `npm install` بفضل `postinstall` script المُضاف.
2. **جلب خطوط Google Fonts فشل في بيئة هذه الجلسة** لنفس سبب حجب الشبكة — تم التحقق (باستبدال مؤقت) أن باقي خط أنابيب البناء يعمل بنجاح تام دون هذا القيد.
3. راجع `docs/TECHNICAL_DEBT.md` للقائمة الكاملة المصنَّفة حسب الأولوية.

### 📋 المتطلبات قبل بدء Phase 2
1. اعتماد رسمي لهذا الإصدار (v0.1 Foundation) من الجهة المالكة للمشروع.
2. تشغيل `npm install && npx tsc --noEmit && npm run build` في بيئة حقيقية للتأكد النهائي من الصفر أخطاء (نتيجة متوقَّعة بثقة عالية).
3. مراجعة `docs/PHASE_2_ROADMAP.md` والموافقة الصريحة عليها قبل أي تنفيذ فعلي لنماذج المحتوى أو الـ APIs.
4. معالجة بندي 🟠 High الأسرع تأثيرًا من `docs/TECHNICAL_DEBT.md` (Testing framework أساسي + CI pipeline بسيط) — يُفضَّل قبل أول ميزة حقيقية لا بعدها.

---

*الإصدارات القادمة ستُوثَّق أعلاه بنفس البنية (وصف، ما تم، ما لم يتم، مشاكل معروفة، متطلبات المرحلة التالية).*
