-
released this
2026-10-12 08:13:17 +00:00 | 11 commits to main since this releaseFixed
- JSON extraction is now robust across models. A local Qwen build returns an extra
opening brace ({{"summary_ar": ...}) and reasoning models prepend a thinking block;
both made every analysis fail with "Could not parse the JSON from the AI response".
The extractor now strips thinking blocks and markdown fences, tries the whole string
first, then scans for the first balanced{...}span that actually parses —
ignoring braces inside string values. - An empty model response now reports "The AI returned an empty response" instead of a
generic parse error.
Added
- Five regression tests for the extractor: extra opening brace, thinking block, prose
around the JSON, braces inside strings, and the empty-response case.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- JSON extraction is now robust across models. A local Qwen build returns an extra
-
released this
2026-10-12 07:42:46 +00:00 | 12 commits to main since this releaseChanged
- The repository source is now English-only. Every comment, log line, test title, CLI
message, Dockerfile, compose file and.env.examplenote was translated from Arabic to
English. Arabic now lives in exactly one place: the UI translation dictionary
(public/i18n.js) plus thedata-i18nfallback strings inpublic/index.html. - The API returns stable error codes. Responses changed from a bare Arabic message to
{"error": "<snake_case_code>", "message": "<English text>"}. The browser translates the
code through theerr.<code>keys in the i18n dictionary, so the Arabic UI still shows
Arabic errors and any other API consumer gets a machine-readable code. - The AI prompts are now written in English while still requiring Modern Standard Arabic
for the*_arfields and clear English for the*_enfields — same field names and order,
same JSON-only instruction.
Added
test/english-only.test.jsguards the rule: it fails if Arabic appears in any tracked file
other than the UI translation, checks that the Arabic and English dictionaries stay in sync,
verifies the API speaks error codes, and asserts the AI prompts still demand Arabic output.- README section explaining the
SAUTH_*(your.env) versusAUTH_*(inside the container)
naming, and a note that these runtime settings are seeded on the first run only.
Fixed
- README no longer claims the app has its own "app password" — that was removed in 3.0.0.
- Corrected
README/CHANGELOGto reference theSAUTH_*variable names you actually set in
.env, instead of the in-containerAUTH_*names.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- The repository source is now English-only. Every comment, log line, test title, CLI
-
released this
2026-10-12 07:05:09 +00:00 | 13 commits to main since this releaseAdded
AUTH_DEPLOYMENT_NAMEفي docker-compose و.env.example: يسمّي حساب خدمة AD
(svc-sauth-{الاسم})، بحد ٦ أحرف إنجليزية. موثّق في README مع تنبيه أنه
إعداد «وقت تشغيل» يُقرأ في أول تشغيل فقط ثم يُدار من اللوحة (Settings → General).- إعدادات AD الجاهزة مسبقًا في الـ compose:
AUTH_DIRECTORY_OUTAGE_POLICY
وAUTH_DIRECTORY_OUTAGE_GRACEوAUTH_AUTO_SSOوAUTH_AUTO_SSO_DELAY.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-10-12 06:58:25 +00:00 | 14 commits to main since this release⚠️ تغيير جذري في المصادقة
أُزيلت بوابة كلمة المرور الواحدة نهائيًا. الهوية كلها الآن من SimpleAuth عبر OIDC.
Added
- دخول موحّد عبر SimpleAuth (OIDC authorization code + PKCE S256)، مع تجديد صامت للجلسة.
- تحقق محلي من الرموز بتوقيع RS256 عبر
node:cryptoومفاتيح JWKS — بلا أي حزمة npm، وبلا طلب شبكة لكل طلب. - أدوار: دور المدير (
SAUTH_ADMIN_ROLE) يفتح الإعدادات والحذف النهائي والاستعادة؛ غيره للمواضيع والتحديثات. - اسم الكاتب مثبّت على المستخدم المسجّل — لا يمكن انتحال اسم غيره (كان حقلًا حرًا).
- عميل OIDC كامل في
lib/simpleauth.js: اكتشاف، PKCE، تبادل الرمز، تجديد، JWKS مع تحديث عند تدوير المفاتيح، وجلب الملف الشخصي. - جدول جلسات في قاعدة البيانات (كوكي عشوائي HttpOnly، قابل للإبطال، ويُنظَّف تلقائيًا).
- صورة SimpleAuth في
docker/simpleauth.Dockerfileمن الثنائي الرسمي مع تحقق sha256 وقت البناء. - docker-compose يشغّل الخدمتين معًا مع ربط شهادات TLS الخاصة بك من
./certs. - واجهة: شارة المستخدم ودوره، شاشة دخول جديدة، وإخفاء الإعدادات عن غير المدير.
- 14 اختبار تكامل مع mock كامل لـ SimpleAuth (JWKS حقيقي، PKCE، انتحال، أدوار، تجديد، حالات فشل).
Removed
- كلمة مرور التطبيق وكل ما يتعلق بها (
hashPassword/verifyPassword،scripts/reset-password.mjs، حقول الإعدادات).
Changed
updates.authorلم يعد يُقبل من العميل؛ يُشتق من الجلسة.- نقطة
/api/healthتُبلّغauthRequiredبدلpasswordSet، وأُضيفت/api/me. - جاهز لـ Active Directory: عند ربط AD لاحقًا لا يتغير أي كود في التطبيق، وأي حساب معطّل في AD يُمنع عند أول تجديد.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v2.10.1
StableAll checks were successfulbuild-and-release / docker (push) Successful in 3sreleased this
2026-09-28 07:17:15 +00:00 | 15 commits to main since this releaseFixed
- مقياس عناوين التقرير: النماذج تستخدم
####لأقسام التقرير، وكانت تظهر بحجم صغير جدًا (h6). صار التدرّج#→h2…####→h5مع تنسيق واضح لكل المستويات.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- مقياس عناوين التقرير: النماذج تستخدم
-
v2.10.0
StableAll checks were successfulbuild-and-release / docker (push) Successful in 3sreleased this
2026-09-28 07:15:49 +00:00 | 16 commits to main since this releaseAdded
- دعم Markdown كامل لعرض التقرير: عناوين بكل المستويات، نص غامق ومائل، كود مضمّن وكتل كود، قوائم نقطية ومرقّمة مع تداخل، جداول، اقتباسات، فواصل أفقية، وروابط.
- عارض Markdown في ملف مستقل
public/markdown.jsمع 10 اختبارات (تشمل منع حقن HTML من محتوى الـ AI).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-09-28 05:11:16 +00:00 | 17 commits to main since this releaseAdded
- محتوى بلغتين: الـ AI ينتج ملخص كل تحديث، وملخص الموضوع، والتقرير الكامل، والخطوة التالية، وتفاصيل الموضوع — بالعربية والإنجليزية معًا في نفس التحليل.
- الواجهة تعرض المحتوى المطابق للغة الصفحة: عربي مع الواجهة العربية، وإنجليزي مع الإنجليزية — فوريًا عند تبديل اللغة بدون أي طلب إضافي.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-09-28 04:48:26 +00:00 | 18 commits to main since this releaseAdded
- جلب قائمة النماذج المتاحة من واجهة الـ AI (
GET /models) وعرضها في قائمة منسدلة داخل الإعدادات، بدل كتابة اسم النموذج يدويًا. - زر «جلب النماذج» + جلب تلقائي عند فتح الإعدادات، مع إبقاء إمكانية الكتابة اليدوية إن لم تدعم الخدمة قائمة النماذج.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- جلب قائمة النماذج المتاحة من واجهة الـ AI (
-
released this
2026-09-28 04:40:12 +00:00 | 19 commits to main since this releaseAdded
- دعم خدمة AI محلية على الشبكة بدون مفتاح: المفتاح صار اختياريًا تمامًا، ولا تُرسل ترويسة
Authorizationإن لم يوجد مفتاح. - زر «مسح المفتاح المحفوظ» في الإعدادات (ما كان فيه طريقة لمسحه سابقًا).
- توافق أوسع مع الخدمات المحلية: لو رفضت الخدمة
response_format(وهو شائع في بعض خوادم النماذج المحلية) يعيد التطبيق المحاولة تلقائيًا بدونها بدل ما يفشل.
Changed
- إعدادات المفتاح توضّح أنه اختياري، وحالة «بدون مفتاح» تُعرض كحالة طبيعية لا كخطأ.
.env.exampleيشرح أمثلة عناوين الخدمات المحلية (Ollama / LM Studio / llama.cpp).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- دعم خدمة AI محلية على الشبكة بدون مفتاح: المفتاح صار اختياريًا تمامًا، ولا تُرسل ترويسة
-
released this
2026-09-28 04:29:39 +00:00 | 20 commits to main since this releaseAdded
- حفظ التحديث قبل التحليل: التحديث يُحفظ فورًا، ولو فشل تحليل الـ AI يبقى محفوظًا بعلامة «تعذّر التحليل» مع زر إعادة محاولة — لا يضيع كلام أي شخص.
- بحث وفلترة وترتيب في المواضيع (بحث نصي، فلترة بالحالة/متأخر/مواضيعي، وترتيب بالتحديث/الإنشاء/العنوان/النسبة).
- مؤشر «متأخر» للمواضيع النشطة التي لم يصله تحديث منذ 7 أيام.
- المسؤول عن الموضوع مع فلترة «مواضيعي».
- تصدير التقرير: نسخ أو تنزيل ملخص الموضوع وتقريره (Markdown).
- أرشيف منفصل عن سلة المهملات (إخفاء بدون حذف، مع إلغاء الأرشفة).
- نسخ احتياطي: تنزيل نسخة JSON كاملة واستعادتها من الإعدادات.
- تحميل تدريجي للتحديثات: آخر 20 تحديث مع زر «عرض المزيد».
- Ctrl+Enter لإرسال التحديث.
Fixed
- توقيت الحاوية: ضبط
TZ=Asia/Riyadhوتثبيتtzdataفي الصورة، لأن الأوقات كانت تُخزَّن وتُعرض بتوقيت UTC (متأخرة 3 ساعات). - رفع حد حجم الطلب إلى 10MB ليسمح باستيراد النسخ الاحتياطية.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads