What is new on the ToRun platform, newest first.
June 2026 — 53 changes
صار مُنتقي النماذج يضم الآن Google Imagen وGemini للصور، وOpenAI Sora وGoogle Veo للفيديو، إلى جانب النماذج التي كانت متاحة لديك. اختر تمامًا ما تريده، أو دع Auto يختار الأنسب لخطتك.
اربط عدة خطوات ذكاء اصطناعي في Workflow تشغّله متى شئت، ثم انشره على Marketplace أو تصفّح ما شاركه المبدعون الآخرون. أصبح Workflow Editor وRunner وMarketplace متاحة الآن مباشرة من القائمة.
أضِف ToRun إلى شاشتك الرئيسية وشغّله كتطبيق أصلي، بملء الشاشة وبأيقونته الخاصة، ليبقى على بُعد نقرة واحدة حتى وصول تطبيق الهاتف.
شعار جديد وهوية بصرية أكثر أناقة في التطبيق بالكامل، مُحسَّنة للمظهرين الفاتح والداكن.
تحكّم في مدى تعمّق الذكاء الاصطناعي في التفكير، حتى في وضع Auto الآن. ويمكن لمطالبات الصور أن تستند بهدوء إلى ذاكرتك المحفوظة لتأتي النتائج متوافقة مع الأشخاص والتفاصيل التي تهمك. كما تُدمج الذكريات شبه المكرّرة تلقائيًا…
يظهر تقدّم التوليد الآن بجوار النتيجة مباشرةً بدلًا من أسفل النموذج، وتُفتح كل صفحة نظيفة، ويبقى أحدث إبداعاتك في الواجهة والمركز بينما تستقر الأعمال الأقدم في Library الخاصة بك.
صار سجل محفظتك مقسّمًا إلى صفحات ويعرض المبالغ الدقيقة حتى أجزاء السنت، ولم يعد حذف العناصر من Library يسبّب أي خطأ.
أنشئ حساب المعلِن الخاص بك وقدّم حملاتك للمراجعة مباشرةً من حسابك، دون انتظار أي إعداد يدوي.
خلف الكواليس: احتساب أعدل للرصيد المجاني، وفحوصات أقوى على مدفوعات المبدعين وصلاحياتهم، ومراقبة محتوى أكثر أمانًا، وتشغيل أكثر موثوقية لسير عمل Workflow.
تتيح لك الترجمة الفورية الآن الاختيار بين محرّكين وانتقاء الأنسب لمحادثتك — بما في ذلك خيار جديد يتحدّث 77 لغة، من بينها التركية والروسية. يعرض كل خيار سعره مسبقًا، وبنقرة واحدة يمكنك عكس اتجاه الترجمة ليتمكّن الطرف الآخ…
النماذج التي لا تشملها خطتك تظهر الآن مع قفل صغير وطريقة بنقرة واحدة لترقية خطتك أو شحن محفظتك، بدلًا من أن تفشل فقط بعد أن ترسل رسالتك. كما أتحنا نماذج أكثر قدرة للخطة المجانية، فأصبحت النماذج اليومية مثل Haiku وSonnet…
شارك صورة مرّة واحدة وسيحتفظ المساعد بما رآه طوال المحادثة — فيمكنك أن تسأل عنها بعد العديد من الرسائل، حتى بعد تبديل النماذج، دون أن يعيد رفع الصورة أو يحاسبك عليها مرّتين.
تعرض ردود المحادثة الآن الرسوم البيانية كرسوم حقيقية، وتنسّق الجداول بحدود واضحة، وتضبط حجم العناوين لتناسب الرسالة بدلًا من أن تملأ الشاشة — فتصبح الردود أسهل في القراءة بلمحة واحدة.
عندما يحتاج نموذج ما إلى ترقية أو ينخفض رصيدك، يظهر لك الآن شريط ودّي يحمل زرّي ترقية الخطة وشحن المحفظة في المكان نفسه. والردود التي يتعذّر إنشاؤها توضّح السبب بدلًا من ترك فقاعة فارغة، حتى بعد أن تبدّل المحادثات وتعود…
تظهر سجلّات الفوترة والسجل والنشاط الآن بتوقيتك المحلي بدلًا من UTC، فتتطابق الطوابع الزمنية مع الساعة أمامك.
بدء محادثة جديدة يعيد الآن استخدام محادثة فارغة موجودة بدلًا من تراكم المحادثات الخالية، والمحادثات التي لم تتلقَّ أي ردّ لم تعد تزدحم في قائمتك، وتُستبدل العناوين المؤقتة باسم حقيقي بمجرّد أن تكتب شيئًا ذا معنى.
يمكن للشركات الآن إنشاء حساب معلِن وإدارة حملاتها الإعلانية من البداية إلى النهاية — إنشاء الحملات، وإضافة المواد الإعلانية المرافقة لها، وإرسالها لمراجعة سريعة قبل ظهورها.
إحضار مفتاح مزوّدك الخاص يشمل الآن الصوت اللحظي والترجمة المباشرة والتفريغ النصّي المباشر أيضًا: يمرّ استخدام الذكاء الاصطناعي عبر مفتاحك الخاص ولا نتقاضى سوى رسم المنصّة الصغير لكل دقيقة.
أصبحت صفحاتنا العامة الآن مدعومة بمحتوى قابل للتحرير بعدّة لغات، وتُفحص الصور المرفوعة بحثًا عن أي محتوى غير آمن قبل تخزينها، ويعمل تسجيل الحسابات ورسائل التأكيد بالبريد الإلكتروني بموثوقية، كما جعلت مجموعة واسعة من الإص…
تعمل الردود الطويلة الآن على الخادم وتستمر بينما تنتقل بين المحادثات أو تفتح صفحة أخرى أو تغلق علامة التبويب. عُد في أي وقت لتجد الإجابة ما زالت تُكتب، أو جاهزة في انتظارك بالفعل.
المحادثات التي تبدأ داخل مشروع تستعير تلقائيًا تعليماته والمعرفة المرفوعة والذاكرة الخاصة به، وتعرض شارة المشروع مع رابط سريع للعودة، وتذكر اسم المشروع في محادثاتك الأخيرة. كما يمكنك إضافة ملفات PDF وWord والنصوص إلى معر…
أصبحت ذاكرة مساعدك تتتبع سرعة تغير كل معلومة وتُعلِّم تلك التي قد تكون قديمة، لتعتمد على ما لا يزال صحيحًا. ويتيح لك محرر جديد مراجعة الذكريات وإضافتها وحذفها واحدة تلو الأخرى بنفسك.
أضفنا أحدث نماذج الصور والفيديو والتفريغ الصوتي والصوت الفوري، وأطلقنا صفحتي ترجمة وتفريغ صوتي مستقلتين لتصل إلى هذه الأدوات مباشرةً من القائمة.
تحدّث لتُترجَم كلماتك فورًا تقريبًا: اختر لغتين، وبدّل بينهما بنقرة واحدة، ويلتقط المترجم صوتك ويبث الترجمة إليك أثناء حديثك.
أصبحت صفحة الفيديو تُبقي مربعاتها متوافقة عند الحذف من مكتبتك، وتتيح لك تحديد مدة المقطع لكل نموذج، وحذف المقاطع كلٌّ على حدة، وتُعلِّم نتائج المعاينة بوضوح لتعرف دائمًا ما الذي تنظر إليه.
أصبح المساعد داخل التطبيق يعرض الردود بتنسيق أنيق، ويُبقي أحدث رسالة ظاهرة أثناء الكتابة، ويحفظ الإجابة المكتملة بشكل موثوق، ويمنح كل محادثة عنوانًا تلقائيًا.
الردود التي تحتوي على روابط أو معادلات رياضية أو مبالغ مالية لم تعد تظهر فارغة أو ناقصة، حتى بعد تحديث الصفحة، وتتضمن إجابات البحث المعمّق دائمًا ملخصها النهائي.
جولة واسعة من التحسينات خلف الكواليس: قياس أدق للاستخدام وإجماليات الإنفاق، ومبالغ مستردة تلقائية أكثر إنصافًا، ومراسلة فورية أكثر متانة، وحماية أقوى للخصوصية والأمان، ورسائل أوضح عن حالة الخدمة.
أصبحت مقالات المدونة العامة ونقاشات المنتدى — بما في ذلك تفاعلاتها وردودها — مرئيةً الآن للزوار غير المسجَّلين.
تُحتسب التكلفة الآن بهامش ربح واحد وعادل، ويعرض مقياسا إنفاقك الشهري وميزانيتك المتبقية قراءاتٍ دقيقة، وتم تنظيف قائمة النماذج — إحالة النماذج المتوقفة إلى التقاعد وإضافة نماذج رائدة جديدة.
يمكن لقوائم سير العمل والحِزَم عرض صورة غلاف مناسبة، مما يجعل تصفّح السوق أسهل وأكثر متعة.
اطلب من المساعد وسيقوم بتعبئة النماذج والنقر على الأزرار والتنقل داخل التطبيق نيابةً عنك — مدعومًا بمجموعة أدوات أوسع تشمل الآن التواصل والأسئلة الشائعة والمنتدى والذاكرة وإنشاء سير عمل بخطوة واحدة.
تظهر الإجابات الآن كلمةً كلمةً بدلاً من ظهورها دفعةً واحدة، ويمكنك سحب فقاعة المساعد إلى أي مكان يناسبك، مع تلميح مباشر لما يعمل عليه.
أصبح إنشاء مشروع وبدء محادثة جديدة بداخله يعمل بسلاسة الآن، لتُبقي المحادثات والملفات والسياق ذات الصلة معًا.
تُشغَّل مقاطع الفيديو بثبات، وتُحمَّل الوسائط الخاصة عبر وكيل آمن، وتظهر الآن الصور الرمزية للمبدعين والشخصيات للجميع، وتُحوَّل الرسائل الصوتية إلى نص دون أخطاء.
عندما يواجه جزء من الخدمة مشكلة، أصبح الإشعار الآن أسهل فهمًا ولم يَعُد يكشف أسماء المزوّدين الداخلية.
اربط التطبيقات الخارجية بتسجيل دخول واحد أو بمفتاح API، ليتمكن المساعد من العمل مباشرةً مع الأدوات التي تستخدمها بالفعل.
تختار أدوات الصور الآن نموذجًا يناسب ما تقوم به، وتعرض معاينة فورية مدمجة للنتيجة، وعاد التحرير للعمل بعد تغيير نموذج المزوّد.
عند حذف صورة أو مرفق، يعرض الآن سجل محادثاتك ومعرض الوسائط ومحرّر الصور عنصرًا نائبًا لطيفًا بدلاً من التوقف بسبب خطأ.
يوفّر المترجم الآن أداة اختيار قابلة للبحث تضم نحو 100 لغة، تُعرض كل منها باسمها الأصلي واسمها الإنجليزي.
أضفنا مجموعة من مقالات المدونة وموضوعات المنتدى الجديدة — بما في ذلك أسئلة مُجاب عنها — ليكون لديك المزيد لتقرأه وتستكشفه منذ اليوم الأول.
يمكن للدردشة الآن البحث في ملفاتك المرفوعة، وتشغيل Python في بيئة معزولة، وتحرير الصور، ونسخ الصوت والتحدث به، وتشغيل سير عملك — كل ذلك دون مغادرة المحادثة.
دع الدردشة تبحث في الإنترنت الحي، وتُجري بحثاً معمقاً متعدد المصادر، وتجلب الصفحات الكاملة وتقرأها — يأتي كل رد مع المصادر التي استُخدمت.
يحتفظ مساعدك الآن بذاكرة خفيفة عبر المحادثات، ويستطيع عرض ما يتذكره، ويستجيب لطلب النسيان بأي لغة.
قم بإنشاء الصور وتحريرها، وإنتاج أفلام قصيرة، وتأليف أغانٍ بكلمات — مدعوماً بمحركات صور وفيديو وموسيقى جديدة، مع منتقٍ مشترك للوسائط ومكتبتك على بُعد نقرة واحدة.
تحدث إلى ToRun بصوت عالٍ — تُتيح قدرة الصوت الجديدة في الوقت الفعلي المحادثات الصوتية والنسخ المباشر في الدردشة.
تفضّل تشغيلات سير العمل الآن نماذج عالية الجودة، وتتوقف للحصول على موافقتك عند الحاجة، ويمكن إلغاؤها وإعادة توليدها والاستئناف منها — مع حفظ كل مُخرج مباشرة في مكتبتك.
قم بتجميع المحادثات والملفات والسياق ذات الصلة في مشاريع لكي يمتلك مساعدك دائماً الخلفية الصحيحة للمهمة في متناول اليد.
قم بصياغة المحتوى الطويل والكود وتكراره في لوحة قماشية مخصصة جنباً إلى جنب مع دردشتك.
تحافظ الملخصات المتجددة ونوافذ السياق الأذكى والتمرير الأسرع في السجل على المحادثات الطويلة متماسكة وسريعة الاستجابة، مع عناصر تحكم واضحة حين تتجاوز المحادثة نافذة النموذج.
حصة مجانية إنسانية تُعبأ على مدى نافذة متجددة، ومقاييس إنفاق أوضح، واسترداد تلقائي عند فشل إنشاء الصور أو الفيديو، وعناصر تحكم في جهد التفكير تفتح فقط ما يتيحه رصيدك.
تمت إضافة عشرات نماذج 2026 وتقاعد القديمة منها، إضافة إلى مزامنة يومية تلقائية تحافظ على حداثة نماذج المزودين وأسعارهم — تُدار من كتالوج مشرف جديد.
انشر محادثة على رابط عام وانمِّ المجتمع حول ما تُنشئه.
May 2026 — 499 changes
حزمة تشغيل .NET مستقلة (test/ToRun.SmokeTests) تُجري مصادقة ضد المضيف قيد التشغيل (OpenIddict password grant) وتختبر كل قدرة أساسية من البداية للنهاية عبر HTTP API الفعلي: المصادقة/me، ذاكرة CRUD، المحفظة، الفواتير، المك…
وسائط المنصة موجودة في منطقة تخزين Bunny خاصة، لذا فإن الطلب البسيط
يُكمل ميزة إدارة الذاكرة المدفوعة بالدردشة على رأس
كانت أداة memory_forget تُعيد no_match للذكريات الموجودة فعلاً.
بدأ gemini-2.5-flash في إرجاع HTTP 400 عند thinkingBudget=128 (الحد الأدنى المنخفض 52-N
كانت صفحتا المشرف (/admin/model-catalog, /admin/model-onboarding)
كانت الاكتشافات تُطابق فقط باستخدام ProviderModelId/ModelKey الدقيقين، لذا كانت لقطات المزود القديمة
أصبحت بوابة جهد التفكير الآن قائمة على التمويل وليس على الطبقة.
دمج أفضل-الحالتين في مزامنة 52-Q-MODEL-SYNC-JOB المكتملة: عندما يُعيد OpenRouter
كان محدد جهد التفكير مقيداً بصرامة على طبقة الاشتراك مع إعفاء المشرف/المضيف من نهج سابق مرفوض.
مُخرج المرحلة 1: جرد قائمة/مصادر أسعار 26 مزوداً، و
كان معالج الإعداد (المراحل A-D) يُنشئ صفوف الكتالوج فقط؛ ولم يكن ثمة
الواجهة الخلفية (torun.agent): اكتسبت SharedChat حقول IsListed/ListedSlug/ListedAt + حقول بطاقة مُدمجة؛ PublicCommunityAppService + PublicCommunityController (تغذية /community مجهولة + عارض بالـslug)؛ CommunityListingApp…
كانت مرفقات الصوت في الدردشة معطوبة؛ وقد اختلفت الأسباب الجذرية الفعلية عن
الجزء 1 — كانت قائمة معالجة تجاوز السياق في رأس الدردشة عالقة على
أدى حذف الحد اليومي (84178afab) إلى إزالة DailyKey/MonthlyKey من BudgetBucketCacheItem
الجزء 1 — إصلاح طابق اختبارات تكامل MongoDB.
سلاسل محدد جهد التفكير (Effort:Tooltip, Effort:Locked:Tooltip,
تحكم في جهد التفكير قياسي وغير مرتبط بالمزود في منشئ الدردشة،
تمريرة الكود الميت النهائية لإعادة كتابة ميزانية نافذة الجلسة.
يقرأ مقياس الإنفاق الشهري/اليومي من بيانات الاتصال UserDailySummary (ScopeKey=userId,
متابعة التدقيق لإعادة كتابة ميزانية نافذة الجلسة (2a33fd31f).
كان مقياس budget-bucket في الصفحة الرئيسية (/) + me-home يعرض "$0.00 / 0% / $0.00" في كل مرة
كانت حصة الطبقة المجانية عبارة عن "$2 / 30d / 24h" بالتقطير: إعادة الملء = $2/720h و
كانت مقياس BUDGET BUCKET في الصفحة الرئيسية (/) وصفحة me-home (/me) يعرض "$0.00 (2% / $0.01)":
خطأ في الرؤية متعددة الجولات.
أول قفل للانحدار في طبقة الدخان.
إصلاح السبب الجذري للأخطاء 404 المتكررة في توليد العناوين / الدردشة العامة / الرؤية: القدرة
أكد المستخدم أن وصف الصورة يعمل الآن.
حصل نطاق المالك على خطأ 403 حتى لمالك الدردشة الشرعي: حيث أنشأ المدير
السبب الجذري الحقيقي A3 (اكتُشف باختبار المتصفح المباشر): صورة مرفق الدردشة
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
كان حل IQueuedRequestDispatcher يُسبب تجاوز المكدس عند بدء التشغيل (غير قابل للاستثناء —
كلٌّ من مصرف وقت التشغيل (appsettings.json) ومسجلات Bootstrap
السبب الجذري المتكرر: كان ChangelogBackfillDataSeedContributor يختبر الأثر التوحيدي على
تم تشغيل extract-sprint-changelog.py + propagate-changelog-locales.py من main:
QueuedRequestRunner.DoWorkAsync resolved IQueuedRequestDispatcher at the TOP of
The chat overrun check compared raw history tokens against the TIER budget (ctxBudget.MaxInputTokens) only, so when the tier budget exceeded the routed model's context window the trim was skipped: e.g.
Proactive "concern toast" (Honest-UX DNA pattern #3).
Translate the 16 Chat:Context:* (Agent resource) overrun-prompt/footer/toast keys and the 13 MySettings:ContextOverrun:* (ToRun resource) settings keys from en.json into all 28 sibling locales (en-GB verbatim).
Propagate the EN-only humane-error + status-banner keys (ErrorHumanizerService
Phase B surface for the chat-canvas (ChatGPT Canvas / Claude Artifacts
Honest-UX DNA pattern #3.
Completes the wallet-funded context-overrun feature.
Propagates LEARNING-LOOP Phase 2 keys (Admin:UserExperience:ComplaintLoop:{Tab,Title,Subtitle,FixedInWindow} + Admin:UserExperience:TimeToFix:Empty) plus 5 earlier EN-only Permission:UserExperience.* strings from the sam…
Four parallel 52-Q chips landed code referencing symbols their sibling chips
Closes the 29-locale parity gap for the CHAT-CANVAS / ChatSummaries slices,
Phase 2 Scope B of the honest-UX-DNA pattern #5 loop.
Honest UX DNA pattern #2 (Reversibility) — make the auto-refund VISIBLE.
Honest UX DNA pattern #2 (Reversibility) — wire the projection layer
Honest UX DNA pattern #2 (Reversibility) — refund the user when something
Honest UX DNA pattern #2 (Reversibility) — user-facing read API for the
EN-only this commit — the paired slice52-Q-AUTO-REFUND-LOCALE chip fans
Honest UX DNA pattern #2 (Reversibility) — append-only audit row for
Paired locale fan-out for the /me/projects feature (components landed in
EnBillingSource.RealtimeVoice + بذور قدرة voice-realtime + الربط
Backend exception → frontend humane message + retry hint + status banner.
Consolidator landed both 52-Q-CHAT-CONTEXT-BUILDER's ChatSummaries
نسخة مطابقة من مفاتيح واجهة المستخدم لوضع الصوت في الوقت الفعلي المضافة إلى en.json في
Native translations of the 40-key User Sentiment / Privacy Policy v3 Section 11 block (legal text per GDPR Art.
Suite-managed file edits (Permissions+MongoDB+ChatPipeline)
land additional parallel-chip WIP
Consolidates the working-tree state stashed during the
Adds IChatSummarizationService + concrete impl that compresses the dropped
Third of the four P0 chat tools — ChatGPT File Search parity.
Why: backend tier-budget context builder (slice52-Q-CHAT-CONTEXT-BUILDER)
Adds ImageEditTool (mirror of ImageGenerateTool) so the LLM can edit user-
Fans out the 46 Agent WebSearch + Menu:WebSearch + Permission:WebSearch.*
Why: P1 voice tools listed in feedback_chat_context_management.md — text
Closes the user-complaint → shipped-fix loop automatically so we never make
Backend:
The /me/web-search slice landed almost entirely via Serkan's recent
Post-streaming runner that drives Pyodide in a Web Worker and feeds
MyMediaUploadAppService.PurposeChatAttachment validation extended to
Two-endpoint AppService that bridges the server-side code_interpreter
Ship the ADR-043 Pyodide v1 backend slice — the LLM-facing IAgentTool
Why: long chats (100+ turns) bloat browser memory + slow ngx-markdown re-renders
Fourth of 4 P0 chat tools per feedback_chat_context_management.md roadmap and
Phase 1 design spike for code_interpreter chat tool (second P0 tool after
Public-chat launcher now boots a Cloudflare Turnstile widget at view
Locale key for the new Cloudflare Turnstile rejection banner shipped
The [AllowAnonymous] PublicChatAppService now verifies a Cloudflare
Marketing landing's anon chat now streams the assistant reply
Surface the three new WebSearchOptions knobs in appsettings.json so the
Three tools wired to the canonical authoring-tier IWebSearchProviderFactory.
Catalog seed for the dual-tier chat web-search tooling.
Adds the second half of the provider contract needed by the dual-tier chat
User report 2026-05-27 — public chat marketing surface 60s+ bekleyip
User: "ana sayfada neden markdown renderer yok, direk markdown olarak
Bridges the gap between DeepResearchSession CRUD (sat at default state forever)
Propagate Public:Chat:Error:NoModel / CallFailed / EmptyPrompt
User report 2026-05-27: pricing sayfasındaki Partner card'ın
User: "burayı geçen gün yaptık sağlamdı, yine bozuldu.
Slice 452-fu already shipped first-class Brave + Tavily IWebSearchProvider
Replaces the stub web_search tool with a config-selectable provider:
User: "deepseek response geldi ekran 2'de, sayfayı refresh edince
Native-quality translations for "Action completed.
User şikayet: "gpt 4o mini response boş geldi.
User: "her sayfa refresh ettiğimde chatlerin yerleri ve sıraları
Önceki commit (e2a74db8) sadece relativeTime/fullTimestamp helper'ını
Sprint 50-S backend fix made the wire format emit `Z`-suffixed ISO
User direktif: "arkada iş kalmasın".
Önceki "fix" (a56449db) Opus 4.7 / Sonnet 4.6 için preemptive olarak
Pre-fix rendered the warning triangle as an inline <i> followed by
Önceki rev (a56449db) sadece ilk-mount fallback'i çözüyordu —
Third regression of the same bug class in three sessions.
User reported four issues in a single round of chat smoke-testing:
Atladığım şey buydu.
Three iterations of the same bug (Monthly Spend $0 → $0.33 → $0.15) had
Mic-capture via MediaRecorder (chat composer Whisper STT, Sprint 52-O)
OpenAI gpt-4.1 family (Deprecated → Retired, isActive:false, version 3→4):
Close 10 pricing rows for the 5 retired models:
Anthropic (DeprecatedAt 2025-09-29, RetiresAt 2026-05-01):
User reported a wide swath of dropdown rows error on send:
User report: "reason yapar gibi baya bekliyor ama hareket yok, reason
Audit continuation after slice52-Q-FINANCIAL-AUDIT-1.
- PROGRESS.md: Sprint 52-Q-USER-BILLING-DAILY entry with all 4 commits,
User report: "monthly spend 0.33 olamaz, burada bir hata var, muhtemelen
- New IDataSeedContributor: UserBillingDailyBackfillDataSeedContributor
- New IInboxConsumer: GroupId "torun-user-billing-daily-summary"
- Suite entity JSON: modules/torun.subscription/.suite/entities/UserBillingDailySummary.json
User: "TelemetryUserDailySummaries tablomuz var gördüğün gibi içide dolu.
User report (continued from slice 52-O-NIGHT-TODO-IMPL/home-spend-fallback):
User report: "monthly spend her gün sıfırlanıyor — redis recycle ettiğimden,
activity routes done + remaining TODO inventory
User feedback: "kod içerisine daha önce yazdığımız TODO lara hiç
TODO cleanup audit ledger
User directive: "TODO ve benzeri yorumları ara, sonraya bırakılmış iş
morning report for Serkan — overnight locale + changelog ledger
These four ad-hoc scripts drove the overnight locale recovery:
extract-sprint-changelog.py wrote 364 sprint rows to
Followed up the placeholder fill (commit a3834ea4) with native-language
Audit found 1311 missing keys spread across 27 sibling locales (en-GB
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds the 11 EN-master entries the new SourceContext chip strip
Surfaces the new SourceContext metadata as a user-facing filter so
Closes the chat-attachment data-loss bug: previously the composer
ChatTurn interface gains audioTranscripts[] with an expanded flag.
Add CapabilityKeys.AudioInput ("audio-input") so the fallback condition is
The chat composer's prior path inlined image attachments as base64 data
Pre-fix, the composer cost badge only sized the draft text via
`:streamGenerateContent` without `alt=sse` returns a JSON-array transport
GetActivePricingAsync now falls back to model-level pricing rows when the
Adds 9 new Chat:Continue:* keys (Button, Tooltip, Loading, Error, MaxReached,
Angular proxy: +wasTruncated/continuedFromMessageId/hasContinuation on both DTOs;
OpenAI Chat Completions silently consumes reasoning tokens for the
PersistAssistantMessageAsync now sets FinishReason/WasTruncated/ContinuedFromMessageId
Extend ChatMessage.Extended.cs with 4 new virtual properties (FinishReason,
User reported the "Daily free limit reached — Charge wallet" yellow
Propagate the new MediaRecorder + Whisper STT composer keys from en.json to all 28
Why: legacy Web Speech path produced transcript-only with no audio artifact
User reported two chat UX papercuts after the chat-footer fix landed:
User-reported chat composer trio:
Propagated Changelog:Sprint:<slug>:Title and :Body keys for the 38 new sprints
Minor bump for the Phase 1 feature wave summarized in the changelog backfill
Ran extract-sprint-changelog.py against HEAD.
- New IChatPipelineAppService.GenerateTextAsync endpoint (creative-writer
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment introduced in 57c15021 used backticks around '/marketplace' which
**Bug 1 — Card titles render raw `WorkflowTemplate:foo:Title` keys:**
Per-step output variable snapshot so the resume-aware wave loop can
In-memory wait loop in WorkflowExecutorAppService.RunWaveLoopOnRowAsync (line 1797) is
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Inject HumanApproval (kind=12) node into all three birthday catalog
WorkflowTemplate:BirthdayCinema:Title + :Description propagated to all 26
User wanted the third leg of the birthday trio: "isteyen kullanıcı video
Birthday workflows expose a textarea field 'provided_lyrics'; when filled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
THE photo-binding bug.
User observation: "library bakınca sadece image görüyroum ne ses var ne
User report: merge step "Succeeded" but composite_url_duration_seconds
User report: "succeeded yazıyor da bunlar success degil ki hata veriyor
User directive 2026-05-25 — region prefix produced 401 Unauthorized on
Root cause (from Note column added in 0a9e941f):
Root cause: ImageCapabilityRunner with n>1 packs all generated URLs as a
Adds an "Or pick from your library" link/button beneath the workflow-wizard
Replaces the /me/audio direct file input (audio.component.html line 17 —
Replaces the /me/image Edit-tab mask widget (bespoke library-only modal +
Replaces the inline "Drop an image or click to upload" widget for character
Universal two-tab picker that replaces PC-only uploads across /me/* surfaces.
Pre-fix VideoPipelineAppService.GetCapabilitiesAsync (commit 5e39d434)
Pre-fix /me/video catalog query returned only sora-2 + sora-2-pro because no
Native translation per locale (prefix only; the numeric seconds cap
Pre-fix the duration slider on /me/music was hardcoded max=120s.
Pre-fix VideoPipelineAppService.GetCapabilitiesAsync returned a single
User generated music with `requestedDuration=120s` against Riffusion
User got
User got the UFE
User got HTTP 401 from Replicate after triggering musicgen and the
User reported the /me/music model dropdown stayed empty even with
Console showed:
Carry-forward from 05999c1c.
User reported video + music menus missing from My Account sidebar even
Mirrors fc625886 EN seeding into ar/cs/de/de-DE/en-GB/es/fi/fr/hi/hr/
Angular standalone component mirrors /me/voice + /me/image shape:
User-facing music generation pipeline mirroring ImagePipeline pattern:
The AuthoringPermissions.VideoPipeline.MyGenerate comment says the
Second-pass merge failure after b9dm94er4 + 21983ef0 still surfacing
Adds the Sprint 52-Q ModelOnboarding admin UI strings (Menu:ModelOnboarding +
Fans out the 32 EN keys added in commit be0190b2 (admin /cost-markup
39 MR keys (Menu:Admin:MarginReconciliation, Permission:MarginReconciliation, MarginReconciliation:*) added to every sibling locale under src/ToRun.Domain.Shared/Localization/ToRun/.
Sprint 52-Q-MODEL-ONBOARDING Phase D — round-trip bulk-import / bulk-export
Sprint 52-Q-MODEL-ONBOARDING Phase C — host-admin Angular UI at
Guardrail sweep finding from Phase D of the 52-O-MARGIN-AUDIT sprint.
Sprint 52-Q-MODEL-ONBOARDING Phase B.2 — adds the GenericRestClient that
Phase C UI of the 52-O-MARGIN-AUDIT sprint.
Sprint 52-O-REAL-COST-AUDIT phase C — each pipeline AppService that wraps
Sprint 52-Q-MODEL-ONBOARDING Phase B.1 — scaffolds the AiProviderClientStub
Phase C of the 52-O-MARGIN-AUDIT sprint.
Sprint 52-Q-MODEL-ONBOARDING Phase A — adds AdminModelOnboardingAppService
Sprint 52-O-REAL-COST-AUDIT phase B — every IAi*Client now stamps a
Sprint 52-O-REAL-COST-AUDIT phase A — parallel server-side-only ledger so
Phase B of the 52-O-MARGIN-AUDIT sprint.
Phase A of the 52-O-MARGIN-AUDIT sprint.
Error from DbMigrator on every restart:
Carry-forward from b4ab9daf music_v1 seed bump + feedback_pricing_
User feedback after 21983ef0 landed: looked at ElevenLabs analytics
- ToRun resource: 36 keys (Library:Share:* dialog + SharedMedia:* public page)
Pre-fix: workflow ArtifactSave nodes uploaded blobs to Bunny and stuffed
Sprint 51-M-fu2 completion pass.
Birthday-song-video template's `photos` multiphoto field reached Bunny CDN
Drops native v2.0 About/Terms/Privacy/Contact for 10 brand-new locales
EnhancePromptAsync wrote a BillingRecord and settled the budget but never
Root cause (two layers, one bug):
LoadHistoryAsync previously walked the leaf → ancestor chain by issuing one
وفقاً لقاعدة 10 في CLAUDE.md.
ناتج تشغيل `python platform-plan/scripts/_validate-29-locales.py` بعد اكتمال جميع دُفعات المترجمين الـ27 + تمريرة إزالة BOM:
دُفعات من 6 عوامل Sonnet مترجمة متوازية (جميعها مُدرجة في المستودع من الجولات السابقة + المجموعة النهائية المُفرغة):
Serkan caught this — the Generate tab on /me/image has a card-shaped progress bar that walks through Preparing → Requesting → Generating → Fetching with a striped animated `progress-bar bg-info`, phase-specific icon + la…
The bug Serkan surfaced from /me/workflow-runs (Detail click on a Failed run): every workflow step that delegates to an ApplicationService with class-level [Authorize] (ImagePipelineAppService, all the pipelines) termina…
Completes the locale-fanout begun in 0da3c077 (Sprint 52-O-12-locale).
مراجعة قراءة فقط على ChatPipelineAppService + InAppAssistant + عملاء المزودين + ProviderFallbackChain.
7 of 19 stub locales populated; 12 remaining (cs, sk, hu, ro-RO, hr, sl, ko, zh-Hans, zh-Hant, hi, ar, vi).
Sprint 52-O-18 added ModelLifecycleStatus.LegacyAvailable (used to mark Claude 4.5/4.1/Opus 4.6/Sonnet 4.5 etc.
Sprint 52-O-19 (provider runtime hardening) complete — 7 commits land:
Concrete unblock: AiModel rows whose ProviderKey was set to "musicgen" / "ltx-video" / "flux-1.1-pro" / "hunyuan-video" / "sd3.5-large" / "xtts-v2" / "bark" all route credential lookups through "replicate" when no per-mo…
New IProviderCircuitBreaker (Application.Contracts/AiClient/Resilience/) + default ProviderCircuitBreaker impl backed by IDistributedCache<CircuitState,string> keyed by torun:byok:circuit:{providerKey}:{capabilityKey} wi…
# Conflicts:
ProviderKey="elevenlabs".
ProviderKey=\"replicate\".
PayloadGrammarJson column declared on AiModelCapability.Extended.cs — backports the Sprint 52-O-17 chip's column that the worktree branched off main without (worktree base is 16 commits behind local main, so 52-O-17 wasn…
Adds ~60 new pricing rows in the 520180XX-...
ResolvedAiProvider DTO carries the read-only snapshot that generic adapters consume at request time — protocol drives which adapter class handles the request, BaseUrl is forwarded into the outbound HttpRequestMessage so…
SeedSlice52O18Async() runs at the end of SeedAsync regardless of count gate (idempotent EnsureCapabilityRowAsync calls, deterministic XOR-based GUIDs so reruns are no-ops).
Existing 108 rows: status / deprecatedAt / retiresAt patched per the deprecation calendar in 00-MASTER-SUMMARY.md §"Major Deprecation Calendar" — gpt-4o / 4.1 / 4.1-mini / 4.1-nano / o1 / o3-mini / gpt-image-1 land 2026-…
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New shared enum EnWireProtocol (11 named + Custom catch-all) covers the realistic provider population: OpenAiCompat (OpenAI/xAI/DeepSeek/Mistral/Groq/Cerebras/Together/Perplexity/Azure-OpenAI/Fireworks/DeepInfra/OpenRout…
EnqueueRawSpecAsync inserts a Pending WorkflowExecution row, stamps QueuedAt + Activity Center row, emits torun.authoring.workflowexecution.queued.v1 via transactional outbox (Rule 8), and returns the DTO so the wizard n…
Claude 4.5 / Opus 4.1 / Sonnet 4.5 / earlier Gemini 2.0 / xAI Grok 3 are all examples of models that stay on the API surface but the provider is steering new traffic to a newer release.
EnPricingUnit grows 12 → 15 to model 2026 billing meters the legacy enum couldn't represent.
The 2026 model generation introduced capabilities that the old 18-key vocabulary couldn't address: Claude's adaptive vs.
23 → 25 providers (stability re-introduced after slice 4xx removal, two OSS-serving newcomers fireworks + deepinfra added).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pre-52-O-15-fu the OpenAiImageClient hand-coded every model-specific quirk inline.
Backend (fu1): new POST /api/subscription/budget-preview/preview wraps IBudgetGuard.CheckAsync read-only.
OpenAI image API rejects unknown sizes outright with HTTP 400 + "Invalid size 'WxH'.
WorkflowSelectOptionsDataSeedContributor now does an idempotent per-(option, locale)
User feedback on Sprint 52-O-13: "tabi bunun için kullanıcıyı bi popup ile uyarmalıyoz." Letting the wallet bypass the daily cap is the right behaviour for paid credit (52-O-13 fixed the silent reject), but the user stil…
The Free-tier $0.10/day cap exists to spread $2/month allowance across days so a single user can't front-load the host's AI-cost reimbursement.
Sprint 52-O-12d completes the catalog story started by 52-O-12a (entity)
Hygiene-only follow-up to 52-O-12a/b.
User added a per-locale enrichment block to
Sprint 52-O-12a follow-up — DI bootstrap fail
Phase B (Angular wizard) for the 52-O-12a data-driven dropdowns.
Phase 1 backend stack for data-driven workflow wizard dropdowns.
Backend bug — Cache Manager shows 3 categories of ~10+, every Browse empty
UX bug — cryptic exception copy on /media/video-stream
Backend bug — empty Recent transactions list with non-zero balance
UI bug — multi-theme breakage
Backend bug — entire workflow editor surface ships raw keys
Backend bug — every workflow template run failed
Exception screenshot from Serkan (2026-05-23):
Serkan's motto (2026-05-23): "biz 25 farklı AI provider destekliyoruz...
THE ACTUAL ROOT CAUSE of the seven "title-gen yine bozdun" reports —
52-I excluded DeepSeek V4 from cheap-model picks, but on a deployment
50-LLL-2 added an ExcludeReasoningModels filter so the cost-saving
User reported VS Error List showing CS1501 "No overload for method
F15 (root cause: AgentAuditEntry table unused for the bubble's
Four backend regressions in InAppAssistantTurnAppService surfaced
Audit #14 — confirm Sprint 51-A's reasoning opt-in path is per-request,
Two more console warnings flagged in /me/chat after 52-E:
Bundles four small chat-pipeline polish fixes from the audit (#10, #11,
F10 (root cause: bare WriteSseEventAsync in the controller's outer
Three UX / a11y polish items from the sprint 52-D code-review pass.
Two DOM-side hygiene fixes from the sprint 52-D code-review pass:
Three concurrency / state-coherence regressions in the bubble component
Three SSE-stream regressions in the InAppAssistant bubble shipped with
Three chat-pipeline surfaces were emitting hardcoded strings in violation
Serkan flagged ~148 identical "The localization source separator (::)
C5: ResolveFallbackProviderKey returned the literal string "google"
Every state write in chat-pipeline.component.ts goes through a Signal
Three lifecycle / concurrency defects in the chat-pipeline component, all
Serkan flagged a visible dead band between the composer card and the
ChangelogBackfillDataSeedContributor reads from the embedded resource
> "bu contact formunda bütün maillerimizi açık açık yazdık spammerlara mail
Follow-up to Sprint 51-V (commit 373d84d9) which rewrote en.json only.
Smoke at 2026-05-22 showed `/personas` listing "Echo the Storyteller"
Three compounding bugs from 51-S → 51-U all visible in the same screenshot:
51-S / 51-T drifted from the catalog-first vocabulary and shipped a
Cleanup of regressions introduced by 51-S.
Sprint 51-S (28e76a7d) shipped lib-pricing-grid with a contact-sales price cell that
ONE pricing surface for all 6 plans (Free / Starter / Pro / Business /
User mandate (2026-05-22): "Bu description'ları biraz zenginleştir.
User mandate (2026-05-22): public surfaces leaked the visitor to a new
User report (2026-05-22): "Login durumdayken pricing geliyor, public
Two user-flagged issues on the same screenshot (2026-05-22, anon
User report (2026-05-22): "Login durumdayken pricing geliyor ama public
User report after 51-N landed: "DbMigrator çalıştırdım, proje yeniden
User report (2026-05-22): "ABP bunu hala 20 dil görüyor ve dilleri açtığımızda 20 dil çıkıyor.
User correction (2026-05-22): "bizim platformumuz 29 dilde." Legal seeds
User directive (2026-05-22): About too thin, Terms must hold up against
Three connected anasayfa bugs landed in the same commit because they all
User mandate from 2026-05-22: "release çıkmadan önce change loglarının seed
Three connected bugs from the anasayfa list (platform-plan/BUG_LIST_ANASAYFA_2026-05-22.md):
BUG-3+4+5 from anasayfa list closed.
Follow-up to 51-C — my own mistake.
BUG-1 closeout from anasayfa bug list (platform-plan/BUG_LIST_ANASAYFA_2026-05-22.md).
BUG-2 closeout (3-part user report + 1 rule refinement):
BUG-1 part 2.
- Workflow editor, wizard, templates, validation, preview, run history strings
- Workflow editor, wizard, templates, validation, preview, run history strings
- Workflow editor, wizard, templates, validation, preview, run history strings
- Workflow editor, wizard, templates, validation, preview, run history strings
- Workflow editor, wizard, templates, validation, preview, run history strings
- Workflow editor, wizard, templates, validation, preview, run history strings
- Workflow editor, wizard, templates, validation, preview, run history strings
- Workflow editor, wizard, templates, validation, preview, run history strings
Closes ADR-042 — previously Proposed, now Accepted.
`col-md-1 text-end` clipped the localized "Clear all" label at
Sprint 50-PPPP audit — most MessageKey expressions across the codebase
TEST_PLAN §4 deferred — capability key string literals (text-chat,
- persona-profile.component.ts: drop outer `lpx-content-container py-4` wrapper
Three deferred items landed (or were dismissed) since the previous closeout
Completes the slice50-workflow-engine audit pass for the QualityGate
Continues the slice50-media Phase1Note translation pass started by
Replaces 8 [en] placeholder Admin:StorageProviders:Phase1Note:* and
Sweeps the torun.media Localization resource for the 12 non-EN locales
Replaces ~110 [en] placeholder values in the Authoring resource's
[Cursor-aware var insert (slice50-S)]
Closes the loop on slice50-I's per-node budgetUsd intent layer with
User-driven polish on the /media/storage-providers surface:
Adds OptimizerOptions sub-block under BunnyCdnOptions for Pull-Zone-level
Closes chip #118 last deferred item:
Backend (modules/torun.persona):
Closes the deferred item from chip #118 wrap doc:
Two inspector enhancements that close the gap between author intent
WorkflowGraphComponent:
Closes the deferred item from chip #118 wrap doc:
Closes the deferred item from the workflow-editor wrap (chip #118):
Two related extensions to the advanced editor surface:
Rule 8 (transactional outbox) — after the executor's RunSpecAsync returns
StorageBrowse and UploadAsset landing card descriptions had leftover
The existing executor's QualityGate node (Slice 449/449b) already implements
Single AppService surfaces three endpoints:
Workflow-node-shaped wrapper over Sprint 50-LLL's IModelRoutingService.
User-facing wizard-catalogue endpoint.
Captures what landed this sprint (library landing + simple-mode wizard
Auto-propagated from the en.json additions in 9b95c79c (admin panel
Replaces the existing add-node dropdown with a permanent left-rail
Replaces the /me/workflow-editor entry that dropped users straight into
Idempotent host-pass DataSeedContributor that materialises the three wizard
Foundation for the six host-admin /media surfaces.
Catalog entity for wizard-surfaced workflow presets.
Public-site MVC Razor pages were rendering hardcoded fixture data
DbMigrator hit E11000 on BlogPostsDataSeedContributor: the legacy
BlogPostsDataSeedContributor adds the initial public marketing blog catalog
PublicWebsite layout header override:
- Anonymous browse for /marketplace (paged listings)
- Pages/Sitemap.cshtml (route /sitemap.xml) — returns sitemaps.org urlset
- Pages/Legal/Detail.cshtml (route /legal/{slug}) — Markdig-rendered long
- Pages/Pricing/Index.cshtml (route /pricing) — Monthly/Yearly toggle (real
- Pages/Docs/Index.cshtml (route /docs) — section grid landing + sidebar
- Anonymous browse for /personas (paged catalog)
Pull landing data from IPublicLandingAppService stub + pricing teaser from
- ToRun.Web.Public.csproj — add Markdig 0.37.0 for markdown rendering
- Anonymous read for /legal/{slug} — Terms, Privacy, Cookie, Refund,
- Anonymous read for /faq
- Anonymous read for /docs (tree + by-slug)
- Anonymous read for /changelog (paged, PublishedAt DESC)
- Threads list (paged, optional CategoryKey tag match against ForumThread.Tags)
- Anonymous read surface for /blog (list + by-slug)
رصد smoke-backend.py مشكلة VERB_MISMATCH: Angular يستدعي PUT المُجرَّد بدون مسار صريح.
النصف الخلفي من Sprint 50-F: دور محادثة ترويجية مجهولة في صفحة الهبوط مع حد لكل IP.
لم يستطع المترجم استنتاج نوع القاموس Dictionary<(DateTime Date, Guid? TenantId), ...>.
يُغلق نافذة السباق الوحيدة في KeywordSettlementJob التي قد تُسبب تسويات مكررة.
استمرار task#67 (مسح 50-SS).
يُغلق أساس 50-RRR (الالتزامات A/B/C) بربط المركب الفعلي بالواجهة والمزود.
أُعيد ترحيل Toggle / Heading / New / Untitled / Empty / Load:Failed / JustNow / MinAgo / HourAgo / DayAgo عبر جميع اللغات الـ28 غير الإنجليزية.
يُطبّق نمط Sprint 50-LL (Post.CreatorProfileId) + Sprint 50-VV-2 (AdAuction) على MarketplacePurchase.
يستنتج خط الأنابيب الآن مفتاح القدرة من طبولوجيا المدخلات ويُوجِّه الطلب وفقًا لذلك.
عقد المحوّل لمسار المركب متعدد المدخلات.
التزام أساسي لإعادة هيكلة تحرير الصور متعددة المدخلات (الخيار C — نهج القدرة).
نتيجة الفحص: الربط في ChatPipelineAppService.cs:1415 يستدعي الطريقة بالفعل لكن لا يُدرج أي سجلات.
5 إضافات تسجيل منظمة لكي تُظهر أعطال الإنتاج سياقها الكامل.
إصلاح ثنائي المحاور لتراكم الفقاعة على جلسات فارغة أو غير مرغوبة.
يُغلق التأجيل -2 من 50-YY حيث أُقتطع إرفاق الميكروفون لإطلاق الالتزام الأساسي.
يُغلق الفجوة عبر خطوط الأنابيب التي تركها 50-AAA في تسجيل نشاط المستخدم.
أبلغ المستخدم عن فشل 'Pick a source image' و'Pick a mask image' في تحميل صور المكتبة.
سجل الإنتاج أظهر خطأ 400 بسبب معامل style المهجور في DALL-E 3.
أبلغ المستخدم عن فشل رفع المصدر والقناع في /me/image Edit بسبب غياب ترويسة Bearer.
الشريحة الأخيرة لوحدة المكتبة — يُكمل تجميع الملفات بالتاريخ وربط عروض الشبكة والقائمة.
ملاحظة المستخدم: كانت لافتة 'Upload complete.' الخضراء تومض داخلًا/خارجًا لكل ملف على حدة.
حاول Sprint 50-CCCC إصلاح ObjectDisposedException في خط أنابيب الرفع بطرق مختلفة.
السبب الجذري للرسالة المستمرة 'Upload failed' — رغم وصول الملفات إلى الخادم بنجاح.
أبلغ المستخدم عن خمس مشكلات منفصلة في جلسة اختبار واحدة.
أبلغ المستخدم أن part_001.wav / part_002.wav حُذفا من المكتبة لكنهما لا يزالان مرئيَّين عبر رابط CDN.
ترك 50-YYY انحدارًا: كان openAssetDetail يُشغّل تحميل النص فقط دون إظهار المؤشر بشكل صحيح.
أبلغ المستخدم عن فراغ تبويب Documents بعد رفع ملفات .md / .txt في المكتبة.
كان نمط URL العام لـ CDN خاطئًا في /me/library — المحتوى خاص بالمستخدم وليس عامًا.
خطآن في دُفعة واحدة — كلاهما ظهر في اختبار مستخدم رُفعت فيه 4 ملفات لكن صفحة المكتبة بقيت على 0 عناصر.
المستخدم: 'ضع شريط تقدم لعمليات الرفع، أظهر عدد الثواني، أعلم المستخدم بما تم رفعه، الواجهة الحالية سادة جدًا.'
مشكلتان تمنعان المستخدم من استخدام /me/library بشكل صحيح.
أبلغ المستخدم عن خطأ رفع المكتبة 400 'Only image/* MIME types are accepted on this endpoint.' عند رفع ملف غير صوري من تبويب الكل.
أبلغ المستخدم عن خطأ 500 'Internal error' في مسؤول Message Citations.
أبلغ المستخدم عن خطأ رفع المكتبة 'Bunny storage upload failed with HTTP 401'.
أبلغ المستخدم عن عطل /me/image Generate بخطأ من مزود توليد الصور.
أبلغ المستخدم أن إعادة هيكلة موضع لوحة Sprint 50-III لا تزال لا تعمل بشكل صحيح.
السبب الجذري (البديل B): `openSession()` يستدعي `messages.set(mapped)` ما يمسح الرسالة الأولى.
المستخدم: 'لا حاجة لاستخدام النموذج ذاته للعناوين، هذه مهام بسيطة.'
أبلغ المستخدم عن استمرار انفصال اللوحة عن FAB رغم سبرنتات الإصلاح السابقة.
رفع Sprint 50-CCC MaxOutputTokens من 24 إلى 128 توقعًا لعناوين أطول من 100 حرف.
أبلغ المستخدم عن فراغ /me/activity-history رغم ساعات من المحادثة والصور والصوت.
رُصد انحداران في اختبار المستخدم وأُصلحا؛ أُرجئت المخاوف الثالثة.
| # | القائمة | المجموعة | مسار Angular | مسار الخلفية | الحالة | السبب الجذري |
المستخدم: 'لماذا يجب إضافة الملفات يدويًا واحدًا تلو الآخر في المكتبة؟'
المستخدم: 'المصدر يدعم الرفع من PC لكن القناع لا يدعمه، لماذا؟'
خطأ حرج أبلغ عنه المستخدم: كل محاولة رفع عبر PC تُثير استثناءً فوريًا.
أبلغ المستخدم مرارًا منذ أمس أن /me/notifications/preferences تُعيد خطأ 404.
كانت قائمة المحادثات الأخيرة في /agent/chat-pipeline تحتوي على قوائم إعادة تسمية/حذف لكل صف تختفي خلف فاصل الأيام.
كشف اختبار المستخدم 5 مخاوف؛ عولجت 4 منها في هذا الالتزام، وبقيت واحدة.
يمسح AsyncPeriodicBackgroundWorker اليومي (دورة 24 ساعة) المدفوعات الناجحة ويوزع العائد.
أنشأ Sprint 47-O كيانات AdAuction مسطحة بدون أعمدة FK مكتوبة للربط.
يمسح AsyncPeriodicBackgroundWorker اليومي لـ ABP (دورة 24 ساعة) المعاملات المعلقة ويُسوِّيها.
أُرسل Sprint 50-TT لهذا الهدف لكنه خرج عن المسار المحدد.
طلب المستخدم: مؤشر الحجم في أعلى المكتبة، رفع PC، حصة الخطة، واستنزاف المحفظة عند التجاوز.
يمتد نمط 50-RR (VideoJobPollingWorker IAbpDistributedLock) إلى بقية العمال الدوريين.
أرجأ Sprint 50-P رفع PC لأن الخلفية كانت تفتقر إلى نقطة نهاية التوقيع المسبق في Bunny.
أُلغي 50-AA خلال المسح الكامل؛ يستأنف هذا السبرنت المسح على دُفعات.
ربط Sprint 50-U + 50-EE الاستطلاع وتدفق الاسترداد لكنهما افترضا تشغيل حاوية واحدة فقط.
توجيه المستخدم (دور Sprint 50-E): نقل جرس الإشعارات ومركز النشاط بجوار أيقونات القائمة اليمنى.
الخلفية غير متاحة على https://localhost:44304 خلال هذا السبرنت؛ تم تأجيل إعادة التوليد.
بنى Sprint 47-H فهرسًا مركبًا متدهورًا لخلاصة Creator/Post يفتقر إلى CreatorProfileId.
بنى Sprint 47-H فحصًا متدهورًا (TenantId، CreationTime) لـ PersonaPost بدون PersonaId في المفتاح المركب.
رصد BillingReconciliationJob في Sprint 50-W ثغرات في سجلات Paddle تحتاج إصلاحًا تلقائيًا.
كان كل ملف modules/torun.*/angular/angular.json يشير إلى إصدار قديم من حزمة Angular.
كشفت اختبارات عزل المستأجر في Sprint 50-CC عن خطأ قائم مسبقًا في بيانات الأولية.
أضاف مسح MT في Sprint 47-A..47-P فهارس مركبة مُسبوقة بـ TenantId لكل وحدة؛ الفهارس القديمة تُبطئ الكتابة.
استكمال سلسلة Sprint 49.
خطر R2 قبل الإطلاق: مسح Sprint 47-A..47-P لأكثر من 219 كيانًا أضاف TenantId لكن البيانات التاريخية تحتاج ترحيلًا.
كشف Sprint 50-U فجوة: كانت IBillingRecorder تحتوي على RecordAsync فقط دون دعم الاسترداد.
تدقيق Plan §2.3 / R1 — مسح Sprint 47-A...47-P لأكثر من 219 كيانًا لتطبيق IMultiTenant.
متأخرات Plan §2.5: نشر 22 مفتاحًا لخط أنابيب ImageEdit (من Sprint السابق).
رصد Sprint 50-K تعارضًا واحدًا (إعداد Paddle لخطة الاشتراك)؛ هذا المسح يُغطي المواقع السبعة المتبقية.
Phase 1.5 §2.1 #3 — عامل الخلفية الثالث.
Phase 1.5 §2.1 #4 — عامل الخلفية الرابع والأخير قبل الإطلاق.
أعادت /api/app/run-input-upload خطأ 404 لأن AppService لم يُسجَّل بشكل صحيح.
أنشأ Sprint 50-P واجهة تبويب التحرير في /me/image + الربط بالخلفية ولكن بقي تهيئة قاعدة البيانات معلقًا.
الواجهة الأمامية (Angular | date pipe + Date constructor) تتولى التحويل من UTC إلى التوقيت المحلي.
Phase 1.5 §2.1 — عامل الخلفية ذو الأولوية القصوى.
Phase 1.5 §2.1 #2 — عامل الخلفية الثاني.
أبلغ المستخدم أن طلب المتابعة 'form doldurma' أعاد 'Message failed'.
خطأ A: كان محرر المحادثة يتجاهل Ctrl+V على صور الحافظة.
كانت صفحة تصفح Marketplace (angular/src/app/marketplace/) تستخدم lpx-content-container خارجيًا زائدًا.
كان تبويب التحرير يفتقر إلى اختيار النموذج (Auto/Manual) وإعدادات الجودة.
أبلغ المستخدم أن الإعداد الافتراضي لـ Sprint 50-I (bottom:96 right:24) يتداخل مع عناصر الواجهة.
أدى اختبار المستخدم لـ /me/notifications إلى خطأ 404.
كان PaddleOptions.WalletTopUpPriceIds قاموسًا Dictionary<string,string> مُهيَّأ يدويًا.
أبلغ المستخدم 'paddle.js popup açması lazım, hata veriyor' عند تجربة الدفع.
يعالج Sprint 50-I انحدارَين في UX ظهرا بعد Sprint 50-B + 50-E.
حفظ المسؤول إعداد Paddle لـ SubscriptionPlan؛ نجح الحفظ الأول ولكن فشل الثاني.
كان جدول تفصيل التكاليف في /me/billing يُسبق كل حقل ببادئة $ بشكل اعتباطي.
ترك Sprint 49-B عنواني URL مُضمَّنَين /api/app/* في chat-pipeline.
- 50-B (InAppAssistant:Bubble:Dock/Undock/DragHint): أُضيف إلى en.json + جميع اللغات الـ28 الأخرى بترجمات أصيلة.
المستخدم: 'عند الضغط على حذف في صفحة الذاكرة يظهر confirm من JS، لماذا لا نستخدم LeptonX'.
الإصلاح A (خطأ حرج في الخادم):
أبلغ المستخدم: ظهرت قائمة SourceKind بكتل وردية/زرقاء غريبة (عطل في العرض).
ملاحظة مستخدم: الجرسان العائمان (notification-bell + activity-center) كانا يتداخلان مع تسمية المسؤول.
تطبيق نمط Sprint 47-I + 45-M.
أضاف Sprint 46-A واجهة IBillingRecorder عبر الوحدات وأصدر سجلات BillingRecords.
أكمل Sprint 46-F التوحيد الهيكلي lowercase→PascalCase لكنه ترك 4 لغات بمحتوى إنجليزي مُولَّد من Suite.
تطبيق نمط Sprint 45-M + 47-A حتى 47-N.
تطبيق نمط Sprint 47-M.
تطبيق نمط Sprint 45-M + 47-K.
تطبيق نمط Sprint 45-M + 47-A حتى 47-K.
تطبيق نمط Sprint 45-M + 47-A حتى 47-H.
تطبيق نمط Sprint 45-M + 47-A/B/C/D/E/F/G/O.
تطبيق نمط Sprint 45-M + 47-G.
تطبيق نمط Sprint 45-M + 47-A/B/C/D/E/F.
تطبيق نمط Sprint 45-M + 47-A/B/C/D/E.
تطبيق نمط Sprint 45-M + 47-A/B/C/E.
تطبيق نمط Sprint 45-M + 47-A + 47-B.
تطبيق نمط Sprint 45-M + 47-A/B/C.
تطبيق نمط Sprint 45-M + 47-A/B.
تطبيق نمط Sprint 45-M + 47-A.
تطبيق نمط Sprint 45-M: لم تُصدر Suite واجهة IMultiTenant على الفئات الأساسية رغم تعيين IsMultiTenant: true في JSON.
Slice 56 — IModelRoutingService (ByokVault.Application + Contracts):