What is new on the ToRun platform, newest first.
June 2026 — 53 changes
Model seçici artık halihazırda kullandığın modellerin yanı sıra görseller için Google Imagen ve Gemini'yi, video için OpenAI Sora ve Google Veo'yu da içeriyor. İstediğin modeli tam olarak sen seç ya da planına en uygun o…
Birden fazla AI adımını istediğin an çalıştırabileceğin tek bir workflow'a bağla, ardından Marketplace'te yayınla veya diğer kreatörlerin paylaştıklarına göz at. Workflow Editor, Runner ve Marketplace artık doğrudan menü…
ToRun'ı ana ekranına ekle ve tıpkı yerel bir uygulama gibi, tam ekran ve kendi simgesiyle aç; mobil uygulama gelene kadar tek dokunuşla yanında olsun.
Tüm uygulama genelinde yeni bir logo ve daha sade bir marka kimliği; hem açık hem koyu tema için özenle ayarlandı.
AI'ın ne kadar derin düşüneceğini sen belirle; artık Auto modunda bile. Görsel istemleri, kaydettiğin hafızandan sessizce yararlanabilir, böylece sonuçlar önemsediğin kişilere ve detaylara uyar. Birbirine çok benzeyen ha…
Üretim ilerlemesi artık formun altında değil, doğrudan sonucun yanında görünüyor; her sayfa tertemiz açılıyor ve en son üretimin ön planda kalırken eskileri Library'nde yerini alıyor.
Cüzdan geçmişin artık sayfalara ayrılıyor ve sentin altındaki tutarları kuruşuna kadar gösteriyor; Library'nden öğe kaldırmak da artık hata vermiyor.
Reklam veren hesabını oluştur ve kampanyalarını incelenmek üzere doğrudan hesabından gönder; manuel kurulum için beklemene gerek yok.
Perde arkasında: daha adil ücretsiz kredi hesaplaması, kreatör ödemeleri ve izinlerinde daha güçlü denetimler, daha güvenli medya moderasyonu ve daha güvenilir workflow çalıştırmaları.
Canlı Çeviri artık iki motor arasından seçim yapmanıza ve sohbetinize en uygun olanı kullanmanıza olanak tanıyor — aralarında Türkçe ve Rusça dahil 77 dil konuşan yeni bir seçenek de var. Her seçenek fiyatını önceden gös…
Planınızın kapsamadığı modeller artık küçük bir kilit simgesiyle ve planınızı yükseltmeniz ya da cüzdanınıza bakiye eklemeniz için tek dokunuşluk bir yolla görünüyor; mesajı gönderdikten sonra başarısız olmuyor. Ayrıca d…
Bir görseli bir kez paylaşın; asistan gördüklerini sohbetin geri kalanı boyunca aklında tutar — böylece çok sonra, hatta model değiştirdikten sonra bile o görsel hakkında soru sorabilirsiniz. Görseli asla yeniden yükleme…
Sohbet yanıtları artık diyagramları gerçek diyagramlar olarak çiziyor, tabloları net kenarlıklarla düzenliyor ve başlıkları ekranı kaplamak yerine mesaja uygun boyutta gösteriyor — böylece yanıtlar bir bakışta daha kolay…
Bir model plan yükseltmesi gerektirdiğinde ya da bakiyeniz azaldığında, artık tam orada Planı yükselt ve Cüzdana bakiye ekle düğmelerini içeren dostça bir bildirim alıyorsunuz. Oluşturulamayan yanıtlar boş bir baloncuk b…
Faturalandırma kayıtları, geçmiş ve etkinlikler artık UTC yerine yerel saatinizle gösteriliyor; böylece zaman damgaları duvarınızdaki saatle uyumlu oluyor.
Yeni bir sohbet başlattığınızda artık boş sohbetler üst üste yığılmıyor, mevcut boş bir sohbet yeniden kullanılıyor; hiç yanıt almamış sohbetler listenizi dağıtmıyor ve geçici başlıklar, anlamlı bir şey söylediğiniz anda…
İşletmeler artık bir reklamveren hesabı oluşturup kendi reklam kampanyalarını baştan sona yürütebiliyor — kampanyalar oluşturun, bunlara eşlik eden reklam görsellerini ekleyin ve yayınlanmadan önce hızlı bir inceleme içi…
Kendi sağlayıcı anahtarınızı getirmek artık gerçek zamanlı ses, canlı çeviri ve canlı transkripsiyonu da kapsıyor: yapay zeka kullanımı kendi anahtarınız üzerinden geçer ve biz yalnızca küçük dakika başına platform ücret…
Genel sayfalarımız artık birçok dilde düzenlenebilir içerikle besleniyor, yüklenen görseller depolanmadan önce güvenli olmayan içeriğe karşı taranıyor, hesap kaydı ve onay e-postaları güvenilir şekilde çalışıyor; ayrıca…
Uzun yanıtlar artık sunucuda çalışır; siz sohbet değiştirirken, başka bir sayfa açarken ya da sekmeyi kapatırken üretim sürer. İstediğiniz an geri dönün — yanıt ya hâlâ akıyordur ya da sizi bekliyordur.
Bir Proje içinde başlatılan sohbetler; projenin yönergelerini, yüklenen bilgi belgelerini ve hafızasını otomatik olarak devralır, geri dönüş bağlantılı bir proje rozeti gösterir ve son sohbetler listesinde proje adını be…
Asistanınızın hafızası artık her bilginin ne kadar hızlı değiştiğini izler ve güncelliğini yitirmiş olabilecekleri işaretler; böylece hâlâ doğru olana dayanır. Yeni bir düzenleyici, hafıza kayıtlarını tek tek gözden geçi…
En güncel görsel, video, deşifre ve gerçek zamanlı ses modellerini ekledik; ayrıca bu araçlara menüden doğrudan ulaşabilmeniz için bağımsız Çeviri ve Deşifre sayfaları açtık.
Sözleriniz neredeyse anında çevrilsin: iki dil seçin, tek dokunuşla yerlerini değiştirin; çevirmen sesinizi yakalar ve siz konuşurken çeviriyi anında geri akıtır.
Video sayfası artık Kitaplığınızdan bir öğe sildiğinizde döşemeleri eşzamanlı tutar, klip süresini modele göre ayarlamanıza ve klipleri tek tek silmenize olanak verir ve önizleme sonuçlarını açıkça işaretler; böylece ney…
Uygulama içi asistan artık biçimlendirilmiş yanıtları düzgün gösteriyor, yanıt yazılırken en son mesajı görünür tutuyor, tamamlanan yanıtı güvenilir şekilde kaydediyor ve her sohbete otomatik bir başlık veriyor.
Bağlantı, matematiksel formül veya para birimi tutarı içeren yanıtlar artık boş ya da yarım görünmüyor — sayfa yenilense bile — ve derin araştırma yanıtları her zaman nihai özetini içeriyor.
Arka planda geniş kapsamlı bir çalışma: daha doğru kullanım ölçümü ve harcama toplamları, daha adil otomatik geri ödemeler, daha sağlam gerçek zamanlı mesajlaşma, daha güçlü gizlilik ve güvenlik önlemleri ve daha anlaşıl…
Herkese açık blog gönderileri ve forum tartışmaları — tepkileri ve yanıtları dahil — artık oturumu kapalı ziyaretçilere de görünüyor.
Kullanım artık tek ve adil bir kâr payıyla ücretlendiriliyor, aylık harcama ve kalan bütçe göstergeleriniz doğru okuyor ve model listesi sadeleştirildi — kullanımdan kalkan modeller emekliye ayrıldı, yeni amiral gemisi m…
İş akışı ilanları ve paketler artık düzgün bir kapak görseli gösterebiliyor; bu da pazar yerinde gezinmeyi daha kolay ve keyifli hale getiriyor.
Asistana söyleyin; formları doldursun, düğmelere tıklasın ve uygulamada sizin yerinize gezinsin — artık iletişim, SSS, forum, hafıza ve tek adımda iş akışı oluşturmaya uzanan daha geniş bir araç setiyle destekleniyor.
Yanıtlar artık hepsi birden değil, kelime kelime akıyor; asistan baloncuğunu size uygun her yere sürükleyebilir, üzerinde çalıştığı şeyi de canlı olarak görebilirsiniz.
Bir proje oluşturmak ve içinde yeni bir sohbet başlatmak artık sorunsuz çalışıyor; böylece ilgili sohbetleri, dosyaları ve bağlamı bir arada tutabilirsiniz.
Videolar sorunsuz oynatılıyor, özel medya güvenli bir vekil üzerinden yükleniyor, içerik üreticisi ve persona avatarları artık herkese görünüyor ve sesli notlar hatasız olarak metne dönüştürülüyor.
Hizmetin bir bölümü sorun yaşadığında bildirim artık daha anlaşılır ve dahili tedarikçi adlarını açığa çıkarmıyor.
Harici uygulamaları tek bir oturum açma veya bir API anahtarıyla bağlayın; böylece asistan, halihazırda kullandığınız araçlarla doğrudan çalışabilsin.
Görsel araçları artık yaptığınız işe uygun bir model seçiyor, sonucun anında satır içi önizlemesini gösteriyor ve sağlayıcı model değişikliğinin ardından düzenleme yeniden çalışıyor.
Bir görsel veya ek kaldırıldığında sohbet geçmişiniz, medya galeriniz ve görsel düzenleyiciniz artık bir hatayla durmak yerine kullanıcı dostu bir yer tutucu gösteriyor.
Çevirmen artık yaklaşık 100 dilden oluşan, aranabilir bir seçici sunuyor; her dil hem kendi adıyla hem de İngilizce adıyla gösteriliyor.
Bir dizi yeni blog yazısı ve forum başlığı ekledik — yanıtlanmış sorular dahil — böylece daha ilk günden okuyup keşfedecek daha çok şey var.
Sohbet artık yüklediğiniz dosyaları arayabilir, bir sanal alanda Python çalıştırabilir, görüntüleri düzenleyebilir, sesi yazıya döküp seslendirebilir ve iş akışlarınızı tetikleyebilir — konuşmadan çıkmadan.
Sohbetin canlı web'de arama yapmasına, çok kaynaklı derinlemesine araştırma yürütmesine ve tam sayfaları çekip okumasına izin verin — her yanıt kullandığı kaynaklarla birlikte gelir.
Asistanınız artık sohbetler genelinde hafif bellek tutar, hatırladıklarını listeleyebilir ve herhangi bir dilde silme isteğini yerine getirir.
Görüntüler oluşturun ve düzenleyin, kısa filmler üretin, sözlü şarkılar besteyin — yeni görüntü, video ve müzik motorlarıyla, paylaşılan bir medya seçici ve kütüphaneniz tek tıkla erişilebilir halde.
ToRun ile yüksek sesle konuşun — yeni gerçek zamanlı ses özelliği sohbete sesli konuşmalar ve canlı yazıya dönüştürme imkânı getiriyor.
İş akışı çalıştırmaları artık premium kaliteli modelleri tercih ediyor, önemli yerlerde onayınız için bekliyor ve iptal edilip yeniden oluşturulabilir ve sürdürülebilir — her çıktı doğrudan kütüphanenize kaydedilir.
İlgili sohbetleri, dosyaları ve bağlamı Projeler halinde gruplayın; asistanınız her zaman eldeki görev için doğru arka plana sahip olsun.
Uzun biçimli içerik ve kodları sohbetinizin hemen yanındaki özel bir kanvas panelinde taslak oluşturun ve yineleyin.
Kayan özetler, daha akıllı bağlam pencereleri ve daha hızlı geçmiş kaydırma, uzun sohbetleri tutarlı ve hızlı tutar; bir konuşma model penceresini aştığında net kontroller sunar.
Kayan bir pencerede yenilenen insancıl ücretsiz tahsis, daha net harcama göstergeleri, görüntü veya video oluşturma başarısız olduğunda otomatik iade ve yalnızca bakiyenizin karşılayabileceği kadar açılan akıl yürütme yo…
2026'dan düzinelerce model eklendi ve eskimiş olanlar kaldırıldı; ayrıca sağlayıcı modellerini ve fiyatlandırmayı güncel tutan günlük otomatik eşitleme — yeni bir yönetici kataloğundan yönetiliyor.
Bir sohbeti herkese açık bağlantıyla yayınlayın ve yarattıklarınızın etrafında topluluk oluşturun.
May 2026 — 499 changes
Çalışan Host'a (OpenIddict parola izni) karşı kimlik doğrulayan ve gerçek HTTP API üzerinden uçtan uca her temel yeteneği test eden bağımsız .NET konsol koşum takımı (test/ToRun.SmokeTests): auth/me, bellek CRUD, cüzdan,…
Platform medyası ÖZEL bir Bunny Depolama Alanında bulunuyor, dolayısıyla düz bir
Sohbet odaklı bellek yönetimi özelliğini tamamlar
memory_forget, mevcut anılar için no_match döndürüyordu.
gemini-2.5-flash, thinkingBudget=128 değerinde HTTP 400 döndürmeye başladı (52-N düşük
İki host-admin sayfası (/admin/model-catalog, /admin/model-onboarding)
Keşif yalnızca tam ProviderModelId/ModelKey eşleşmesiyle çalışıyordu; bu nedenle tarihlenmiş sağlayıcı
Akıl yürütme yoğunluğu kapısı artık katman tabanlı değil, finansman tabanlı.
İnen 52-Q-MODEL-SYNC-JOB eşitlemesiyle en iyi birleştirme: OpenRouter sağlayıcısı
Akıl yürütme yoğunluğu seçici, abonelik katmanına ve daha önce reddedilen bir yaklaşımdan kalma yönetici/host muafiyetine sıkı sıkıya bağlıydı.
Aşama 1 çıktısı: 26-provider liste/fiyatlandırma-kaynağı envanteri ve
Katılım sihirbazı (A-D aşamaları) yalnızca katalog satırı OLUŞTURUYOR; mevcut satırlar için
Backend (torun.agent): SharedChat, IsListed/ListedSlug/ListedAt + normalleştirilmemiş kart alanlarını kazandı; PublicCommunityAppService + PublicCommunityController (anonim /community akışı + slug'a göre görüntüleyici);…
Sohbetteki ses ekleri bozuktu; gerçek temel nedenler farklıydı
BÖLÜM 1 — sohbet başlığındaki "Bağlam taşması işleme" açılır menüsü takılı kalıyordu
Günlük sınır kaldırma işlemi (84178afab), BudgetBucketCacheItem üzerinden DailyKey/MonthlyKey'i sildi
Bölüm 1 — MongoDB entegrasyon testi tabanını düzelt.
Akıl yürütme yoğunluğu seçici dizeleri (Effort:Tooltip, Effort:Locked:Tooltip,
Sohbet bestecisinde kurallı, sağlayıcıdan bağımsız akıl yürütme yoğunluğu kontrolü,
Oturum-penceresi bütçe yeniden yazımı için son ölü kod geçişi.
Aylık/Günlük Harcama göstergesi telemetri UserDailySummary (ScopeKey=userId,
Oturum-penceresi bütçe yeniden yazımının (2a33fd31f) denetim takibi.
Ana sayfa (/) + me-home bütçe-kovası göstergesi ne zaman olursa olsun "$0.00 / 0% / $0.00" şeklinde gösteriliyordu
Ücretsiz katman bütçe kovası "$2 / 30d / 24h" damlatma olarak işliyordu: yenileme = $2/720/sa ve
Ana sayfa (/) ve me-home (/me) BÜTÇE KOVASI göstergesi "$0.00 (2% / $0.01)" olarak görünüyordu:
Çok turlu görme hatası.
Duman katmanındaki ilk regresyon kilidi.
Yinelenen başlık oluşturma / herkese açık sohbet / görme 404 hatalarının kök neden düzeltmesi: yetenek
Kullanıcı görüntü açıklamasının artık çalıştığını onayladı.
Sahip kapsamı, meşru sohbet sahibi için bile 403 döndürüyordu: yönetici tarafından oluşturulan
A3 GERÇEK kök neden (canlı tarayıcı testiyle bulundu): sohbet-eki görüntüsü
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
IQueuedRequestDispatcher çözümlemesi başlangıçta StackOverflow fırlatıyordu (yakalanamaz — bir
Host çalışma zamanı havuzu (appsettings.json) ve önyükleme günlükçüleri
Yinelenen temel neden: ChangelogBackfillDataSeedContributor idempotent kontrolü
extract-sprint-changelog.py + propagate-changelog-locales.py ana daldan çalıştırıldı:
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 yetenek tohumu + birleşim
Backend exception → frontend humane message + retry hint + status banner.
Consolidator landed both 52-Q-CHAT-CONTEXT-BUILDER's ChatSummaries
en.json içinde eklenen gerçek zamanlı ses modu UI anahtarlarının yansıması
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
CLAUDE.md Kural 10 gereği.
Tüm 27 kardeş-çevirmen toplu işlemi tamamlandıktan + BOM kaldırma geçişi yapıldıktan sonra `python platform-plan/scripts/_validate-29-locales.py` çıktısı:
6 paralel Sonnet çevirmen ajanından gelen toplu işler (tamamı önceki turlarda depoya işlendi + şimdi tamamlanan son grup da dahil):
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 + sağlayıcı istemcileri + ProviderFallbackChain üzerinde salt okunur denetim geçişi.
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 bir VERB_MISMATCH tespit etti: Angular düz PUT çağırıyor.
Sprint 50-F arka uç yarısı: IP başına hız sınırı ile anonim açılış sayfası demo sohbeti.
Dictionary<(DateTime Date, Guid? TenantId), ...> söz diziminde derleyici tür çıkarımı sorunu giderildi.
KeywordSettlementJob'daki tek yarış penceresini kapatıyor.
task #67 (50-SS taraması) devamı.
Gerçek bileşik ImageEdit akışını bağlayarak 50-RRR temelini (A/B/C commit'leri) kapatıyor.
Toggle / Heading / New / Untitled / Empty / Load:Failed / JustNow / MinAgo / HourAgo / DayAgo tüm 28 İngilizce dışı yerel ayara geri dolduruldu (en.json Sprint 50-CCC-2'den tam sete sahipti).
Sprint 50-LL (Post.CreatorProfileId) + Sprint 50-VV-2 (AdAuction) kalıplarını yansıtıyor.
Pipeline artık capability anahtarını giriş topolojisinden türetiyor ve en uygun sağlayıcıyı kullanıyor.
Çok giriş bileşik yolu için bağdaştırıcı sözleşmesi.
Çok görsel düzenleme yeniden düzenlemesinin (Seçenek C — capability şekli) temel commit'i.
Kapsam bulgusu: ChatPipelineAppService.cs:1415'teki bağlantı zaten doğru çağrıyı yapıyor.
Üretim hatalarının tam bağlamı ortaya çıksın diye 5 yapısal günlük eklendi.
Balonun boş / istenmeyen oturumlar biriktirmesi için iki yönlü düzeltme.
50-YY'den ertelenen -2'yi kapatıyor (mikrofon eki kapsamı daraltıldığı için ayrıldı).
50-AAA'nın bıraktığı çapraz pipeline boşluğunu kapatıyor.
Kullanıcı 'Kaynak görsel seç' ve 'Mask görsel seç' seçicilerinin boş göründüğünü bildirdi.
Üretim günlüğü: DALL-E 3 `style` parametresi artık desteklenmiyor.
Kullanıcı /me/image Edit'teki kaynak yükleme ve mask yüklemesinin başarısız olduğunu bildirdi.
Son library modülü dilimi.
Kullanıcı geri bildirimi: yeşil 'Yükleme tamamlandı' banner'ı her dosya için ayrı ayrı titreşip duruyordu.
Sprint 50-CCCC yükleme pipeline ObjectDisposedException'ı düzeltmeye çalıştı; asıl neden AbpStudioClient'tı.
Kalıcı 'Yükleme başarısız' bildiriminin kök nedeni — dosyalar gerçekte yüklense bile bildirim gösteriyordu.
Kullanıcı beş ayrı sorun bildirdi.
Kullanıcı part_001.wav / part_002.wav'ın library'den silindiğini ama CDN'den sunulmaya devam ettiğini bildirdi.
50-YYY bir regresyon bıraktı: openAssetDetail yalnızca metin ön yüklemeyi tetikledi.
Kullanıcı .md / .txt dosyaları yükledikten sonra Belgeler sekmesinin boş göründüğünü bildirdi.
/me/library için CDN genel URL kalıbı yanlıştı — içerik kullanıcı başınadır, herkese açık değil.
Tek bir toplu işte iki hata — yeşil banner 4 dosya 'yüklendi' dedi ama library sayfası 0 öğede kaldı.
Kullanıcı: 'upload işlemleri için progress bar koy, uploading vs saniye yazsın hangisi upload oldu kullanıcı bilgilensin, böyle çok yavan duruyor' direktifi uygulandı.
/me/library testinden iki kullanıcıyı engelleyen sorun giderildi.
Kullanıcı, Tümü sekmesinden görsel olmayan dosya yükledikten sonra library yükleme 400 'Yalnızca image/* MIME türleri kabul ediliyor' hatası bildirdi.
Kullanıcı Message Citations admin 500 'İç hata' bildirdi.
Kullanıcı library yüklemede 'Bunny depolama yüklemesi HTTP 401 ile başarısız oldu' hatası bildirdi.
Kullanıcı /me/image Generate'in bozuk olduğunu bildirdi: 'Görsel üretimi sağlayıcısı hata döndürdü'.
Kullanıcı Sprint 50-III panel konum yeniden düzenlemesinin HÂLÂ düzgün çalışmadığını bildirdi.
Kök neden (Senaryo B türevi): `openSession()`, `messages.set(mapped)` çağırıyor ve karşılama mesajını eziyor.
Kullanıcı: 'Başlıklar için aynı modeli kullanmak zorunda değilsiniz, bunlar basit görevler' direktifi uygulandı.
Kullanıcı, Sprint düzeltmelerine rağmen panelin FAB'dan kopuk açıldığını bildirdi.
Sprint 50-CCC MaxOutputTokens'ı 24'ten 128'e yükseltmişti; başlıklar hâlâ kesiliyordu.
Kullanıcı saatlerce sohbet/görsel/ses vb. kullanmasına rağmen /me/activity-history'nin boş göründüğünü bildirdi.
Kullanıcı testinde bulunan iki regresyon düzeltildi; üçüncü endişe ertelendi.
Admin menüleri denetim tablosu: # | Menü | Grup | Angular yolu | Arka uç rotası | Durum | Kök neden.
Kullanıcı: 'library dosya eklerken neden tek tek el ile eklemem gerekiyor' şikayeti iletildi.
Kullanıcı: 'source'da PC'den yükleme var da mask'ta neden yok' sorusunu iletti.
Kullanıcı kritik hatası: her PC yükleme girişimi istisna fırlatıyordu.
Kullanıcı dünden bu yana /me/notifications/ yolunun 404 verdiğini tekrar tekrar bildirdi.
/agent/chat-pipeline'daki son sohbet listesinde satır başına Yeniden Adlandır/Sil menüsü gün ayırıcının altında kalıyordu.
Kullanıcı testinde 5 sorun tespit edildi; 4'ü bu commit'te giderildi, 1'i ertelendi.
Günlük AsyncPeriodicBackgroundWorker (24 saatlik tik) Ödenmiş MarketplacePurchase kayıtlarını tarar.
Sprint 47-O birleşim FK'ları olmadan düz AdAuction varlıkları oluşturdu.
Günlük ABP AsyncPeriodicBackgroundWorker (24 saatlik tik) bekleyen KeywordSettlement kayıtlarını tarar.
Sprint 50-TT bunun için gönderildi ama konudan saptı; bu sprint doğru kapsamı tamamlıyor.
Kullanıcı: library üst boyut göstergesi, PC yükleme, plan katmanı kotası ve cüzdan tükenmesi talep etti.
50-RR kalıbını (VideoJobPollingWorker IAbpDistributedLock) diğer periyodik işçilere genişletiyor.
Sprint 50-P, arka uçta Bunny ön imzalama olmadığından PC yüklemeyi erteledi.
50-AA tam tarama sırasında iptal edildi; bu toplu işlenmiş sürdürmedir.
Sprint 50-U + 50-EE yoklama + iade akışını bağladı ancak tek pod varsaydı.
Kullanıcı direktifi (Sprint 50-E turu): çan + aktivite simgesi sağdaki menü ikonlarının yanına taşındı.
Bu sprint sırasında arka uca https://localhost:44304 üzerinden ulaşılamadı.
Sprint 47-H Creator/Post feed için düşük performanslı bileşik indeks oluşturdu.
Sprint 47-H PersonaPost için düşük performanslı (TenantId, CreationTime) taraması oluşturdu.
Sprint 50-W BillingReconciliationJob boşluklar (Paddle kayıtları yerel BillingRecord olmadan) tespit etti.
Her modules/torun.*/angular/angular.json yanlış proje referansları içeriyordu.
Sprint 50-CC kiracı izolasyon testleri önceden var olan bir hatayı ortaya çıkardı.
Sprint 47-A..47-P MT taraması her varlığa TenantId-önekli bileşik indeksler ekledi; eski tekli indeksler kaldırıldı.
Sprint 49 serisi tamamlama.
Lansman öncesi R2 riski: Sprint 47-A..47-P 219+ varlığı taradı; mevcut veriler için geri dolgu betikleri hazırlandı.
Sprint 50-U boşluğu ortaya çıkardı: IBillingRecorder yalnızca RecordAsync içeriyordu.
Plan §2.3 / R1 denetimi — Sprint 47-A...47-P 219+ varlığı taradı.
Plan §2.5 birikmiş işler: 22 ImageEdit pipeline anahtarı yayıldı.
Sprint 50-K bir çakışmayı (abonelik planı Paddle yapılandırması) yakaladı; diğer emit noktaları da tarandı.
Faz 1.5 §2.1 #3 — üçüncü arka plan işçisi.
Faz 1.5 §2.1 #4 — dördüncü ve son lansman öncesi arka plan işçisi.
/api/app/run-input-upload, AppService doğru kayıtlı olmadığından 404 döndürüyordu.
Sprint 50-P, /me/image Edit sekmesi UI + arka uç bağlantısını getirdi; ancak Capability tohumu ve fiyatlandırma bağlantıları eksik kaldı.
Ön uç (Angular | date pipe + Date yapıcısı) UTC → yerel saate dönüşümü yönetiyor.
Faz 1.5 §2.1 — en yüksek öncelikli arka plan işçisi.
Faz 1.5 §2.1 #2 — ikinci arka plan işçisi.
Kullanıcı 'form doldurma' takip dönüşünün 'Message failed' hatası verdiğini bildirdi.
Hata A: sohbet oluşturucu pano görsellerinde Ctrl+V'yi görmezden geliyordu.
Marketplace gözatma sayfasında gereksiz dış lpx-content-container sarmalayıcı kaldırıldı.
Edit sekmesinde Model seçimi (Otomatik/Manuel), Kalite ve diğer seçenekler eksikti.
Kullanıcı Sprint 50-I varsayılanının (bottom:96 right:24) mobilde içerikle çakıştığını bildirdi.
Kullanıcı /me/notifications'ı test ederken 404 aldı.
PaddleOptions.WalletTopUpPriceIds bir Dictionary<string,string> olarak kullanılıyordu; katalog fiyatı yerine satır içi oluşturulacak şekilde değiştirildi.
Kullanıcı 'paddle.js popup açması lazım, hata veriyor' hatası bildirdi.
Sprint 50-I, Sprint 50-B + 50-E sonrasında ortaya çıkan iki UX regresyonunu gideriyor.
Admin bir SubscriptionPlan'ın Paddle yapılandırmasını kaydetti; ilk kayıt çalıştı, ikincisi çakışma hatası verdi.
/me/billing'deki maliyet dökümü tablosu her değeri körce $ ile önekli gösteriyordu.
Sprint 49-B, chat-pipeline'da sabit kodlanmış iki /api/app/* URL bırakmıştı.
- 50-B (InAppAssistant:Bubble:Dock/Undock/DragHint): en.json'a + yerel çevirilerle diğer 28 yerel ayara eklendi.
Kullanıcı: 'memory sayfasında sil tıkladığımda js confirm çıkıyor biz neden leptonx kullanmıyoruz' direktifi doğrultusunda tarama yapıldı.
Düzeltme A (sunucu KRİTİK hatası): araç çağrısı sıralaması sorunu giderildi.
Kullanıcı bildirdi: SourceKind açılır penceresi tuhaf pembe/mavi bloklar gösteriyordu (bozuk render).
Kullanıcı geri bildirimi: iki kayan çan (notification-bell + aktivite-merkezi) admin paneli etiketiyle çakışıyordu.
Sprint 47-I + 45-M kalıbı uygulandı.
Sprint 46-A çapraz modül IBillingRecorder tanıttı ve BillingRecord yaydı.
Sprint 46-F yapısal normalleştirme küçük harf→PascalCase tamamlandı; ancak 4 yerel ayar Suite-stub İngilizce içerikle bırakılmıştı.
Sprint 45-M + 47-A'dan 47-N'ye kalıp uygulandı.
Sprint 47-M kalıbı uygulandı.
Sprint 45-M + 47-K kalıbı uygulandı.
Sprint 45-M + 47-A'dan 47-K'ye kalıp uygulandı.
Sprint 45-M + 47-A'dan 47-H'ye kalıp uygulandı.
Sprint 45-M + 47-A/B/C/D/E/F/G/O kalıbı uygulandı.
Sprint 45-M + 47-G kalıbı uygulandı.
Sprint 45-M + 47-A/B/C/D/E/F kalıbı uygulandı.
Sprint 45-M + 47-A/B/C/D/E kalıbı uygulandı.
Sprint 45-M + 47-A/B/C/E kalıbı uygulandı.
Sprint 45-M + 47-A + 47-B kalıbı uygulandı.
Sprint 45-M + 47-A/B/C kalıbı uygulandı.
Sprint 45-M + 47-A/B kalıbı uygulandı.
Sprint 45-M + 47-A kalıbı uygulandı.
Sprint 45-M kalıbı uygulandı: Suite, IsMultiTenant: true olmasına rağmen Base sınıflarda IMultiTenant yaymıyordu.
Slice 56 — IModelRoutingService (ByokVault.Application + Contracts):