عن المشروع

يُقدم Overflow كخدمة تعمل بالفعل على overflow.nitjsefni.eu. يسجل المستخدمون دخولهم عبر GitHub؛ ولا يتطلب استخدام النسخة المستضافة أي عملية نشر. تعليمات الإعداد في المستودع مخصصة لتشغيل بيئة تطوير، وليس لاستخدام الخدمة. يمتلك مستودع GitHub العام المسجل كتالوج فتح وكتالوج فعلي. يؤدي التسجيل إلى إنشاء ملصقات الكتالوج على المستودع وتثبيت webhook. يضع الرعاة ملصق فتح على المشكلة؛ وبعد الالتزام النهائي لطلب السحب (pull request) الخاص بالإغلاق وقبل الدمج، يضعون ملصق الكتالوج الفعلي وينشرون تعليقاً يحدد ذلك الملصق. يتم تسجيل تحويلات الائتمان المسواة بدليل قابل للتدقيق؛ وتكون التغييرات في الكتالوجات ذات إصدارات محددة ولا تعيد تسعير الأعمال التي تمت تسويتها بالفعل. يمكن للأعضاء المسجلين قراءة صفحات Ledger وIssues وSettlements وRegister a repository وCalibration وRules. يدعم دفتر الحسابات أيضاً تسجيل المستودعات برمجياً باستخدام رمز API صادر عن Overflow. لا تزال الحسابات تسجل يدوياً عبر تسجيل الدخول إلى GitHub من المتصفح. يتم إنشاء الرمز في صفحة Register a repository، ويظهر مرة واحدة فقط، ويُخزن بشكل مشفر (hashed)، ويمكن إعادة إنشاؤه، مما يؤدي إلى إبطال الرمز السابق. يقوم POST /api/tokens بصك الرموز باستخدام ملف تعريف ارتباط للجلسة من نفس الأصل؛ ويتطلب ترويسة Origin تطابق APP_URL وإما عدم وجود جسم للطلب أو Content-Type من نوع application/json. يقبل POST /api/repositories رمز حامل (bearer token) وJSON يحتوي على repositoryUrl وopeningName وactualName وopeningLabels وactualLabels؛ ويجب أن يحتوي الكتالوج الفعلي على عشرة إدخالات بالضبط تغطي النقاط من 1 إلى 10. تستخدم الأخطاء غلاف JSON يحتوي على رمز ورسالة. يقوم PATCH /api/repositories بإضافة إصدار جديد للكتالوج؛ ويسري هذا الإصدار من لحظة التغيير، لذا تحتفظ نوافذ الأدلة السابقة بالأرقام المسجلة فيها. تعيد نقاط النهاية الخاصة بالقراءة نفس JSON الذي تعرضه الصفحات: GET /api/dashboard، وGET /api/issues مع فلاتر اختيارية لـ repository وopeningLabel وclaimState، وGET /api/settlements، وGET /api/settlements/id، وGET /api/calibration. وهي تستخدم رموز ovf_ الحاملة أو ملفات تعريف ارتباط المتصفح؛ ولا تخضع عمليات القراءة لفحص الأصل ولا تتطلب جسماً للطلب. تكون الاستجابات محدودة بالحساب المصادق عليه؛ ويتوفر دليل التسوية فقط لطرف في تلك التسوية. تتحول بعض الحقول إلى null عند فشل القراءة، وتقتصر قراءات القوائم على أحدث 200 صف. تتوفر واجهة برمجة التطبيقات (API) أيضاً كأدوات MCP عبر POST /api/mcp لمنصات الوكلاء. تستخدم المصادقة نفس رموز ovf_. النقل عبارة عن HTTP قابل للبث وعديم الحالة: طلب JSON-RPC واحد لكل POST، ولا توجد حالة جلسة بين المكالمات، وتجيب initialize على إصدار البروتوكول 2025-06-18، وتتلقى الإشعارات استجابة HTTP 202 فارغة. تُرفض عمليات الكتابة الموثقة بملفات تعريف الارتباط عبر MCP لأن المكالمات الداخلية الاصطناعية تفتقر إلى ترويسة Origin الخاصة بحماية نفس الأصل.