What is new on the ToRun platform, newest first.
June 2026 — 53 changes
Izbirnik modelov zdaj poleg modelov, ki ste jih imeli doslej, vključuje tudi Google Imagen in Gemini za slike ter OpenAI Sora in Google Veo za video. Izberite točno tistega, ki ga želite, ali pa naj Auto izbere najprimer…
Več korakov AI povežite v Workflow, ki ga zaženete, kadar koli ga potrebujete, nato pa ga objavite na Marketplace ali pobrskajte med tem, kar so delili drugi ustvarjalci. Workflow Editor, Runner in Marketplace so zdaj na…
Dodajte ToRun na začetni zaslon in ga zaženite kot domačo aplikacijo, čez cel zaslon in z lastno ikono, tako da je do prihoda mobilne aplikacije le en dotik stran.
Nov logotip in čistejša celostna podoba po vsej aplikaciji, prilagojena tako svetli kot temni temi.
Izberite, kako poglobljeno naj AI razmišlja, zdaj tudi v načinu Auto. Pozivi za slike lahko nevsiljivo upoštevajo vaš shranjeni spomin, da rezultati ustrezajo ljudem in podrobnostim, ki so vam pomembni. Skoraj enaki spom…
Potek ustvarjanja se zdaj prikaže tik ob rezultatu in ne več pod obrazcem, vsaka stran se odpre čista, vaša najnovejša stvaritev pa ostane v ospredju, medtem ko starejše počivajo v vaši Library.
Zgodovina vaše denarnice je zdaj razdeljena na strani in prikazuje natančne zneske pod centom, odstranjevanje predmetov iz vaše Library pa ne sproži več napake.
Ustvarite oglaševalski račun in oddajte kampanje v pregled neposredno iz svojega računa, brez čakanja na ročno nastavitev.
V ozadju: pravičnejše obračunavanje brezplačnih dobropisov, strožja preverjanja izplačil in dovoljenj ustvarjalcev, varnejša moderacija medijev ter zanesljivejši zagoni potekov.
Pri prevajanju v živo lahko zdaj izbirate med dvema mehanizmoma in izberete tistega, ki ustreza vašemu pogovoru — vključno z novo možnostjo, ki govori 77 jezikov, med njimi tudi turščino in ruščino. Vsaka izbira vnaprej…
Modeli, ki jih vaš paket ne vključuje, se zdaj prikažejo z majhno ključavnico in možnostjo, da z enim dotikom nadgradite paket ali napolnite denarnico, namesto da bi odpovedali šele po pošiljanju. Odprli smo tudi zmoglji…
Sliko delite enkrat, pomočnik pa si zapomni, kaj je videl, do konca pogovora — tako ga lahko o njej sprašujete še veliko sporočil pozneje, tudi po menjavi modela, slike pa nikoli ne naloži znova in vam je ne zaračuna dva…
Odgovori v klepetu zdaj diagrame izrišejo kot prave diagrame, tabele oblikujejo z jasnimi obrobami, naslove pa velikostno prilagodijo sporočilu, namesto da bi zapolnili zaslon — tako so odgovori na prvi pogled lažje berl…
Ko model zahteva nadgradnjo ali ko vam zmanjkuje sredstev, zdaj dobite prijazno pasico z gumboma Nadgradi paket in Napolni denarnico kar na mestu. Odgovori, ki jih ni mogoče ustvariti, pojasnijo razlog, namesto da bi pus…
Obračunski zapisi, zgodovina in dejavnost se zdaj prikazujejo v vašem lokalnem času namesto v UTC, tako da se časovni žigi ujemajo z uro na vaši steni.
Ob začetku novega klepeta se zdaj znova uporabi prazen klepet, namesto da bi se kopičili prazni; klepeti brez odgovora ne zasedajo več vašega seznama, nadomestni naslovi pa se zamenjajo s pravim imenom, takoj ko poveste…
Podjetja lahko zdaj ustvarijo oglaševalski račun in celovito vodijo svoje oglaševalske kampanje — ustvarijo kampanje, dodajo pripadajoče oglasne vsebine in jih oddajo v hiter pregled, preden se prikažejo.
Uporaba lastnega ključa ponudnika zdaj zajema tudi glas v realnem času, prevajanje v živo in prepis v živo: uporaba AI poteka prek vašega ključa, mi pa zaračunamo le majhno platformno pristojbino na minuto.
Naše javne strani zdaj poganja urejljiva vsebina v številnih jezikih, naložene slike se pred shranjevanjem pregledajo glede neprimerne vsebine, registracija računa in potrditvena e-poštna sporočila delujejo zanesljivo, š…
Dolgi odgovori zdaj tečejo na strežniku in se nadaljujejo, medtem ko preklapljate med klepeti, odprete drugo stran ali zaprete zavihek. Vrnite se kadar koli in odgovor se še vedno pretaka ali pa vas že čaka.
Klepeti, začeti znotraj projekta, samodejno prevzamejo njegova navodila, naloženo znanje in spomin, prikažejo značko projekta s hitro povezavo nazaj ter projekt poimenujejo med vašimi nedavnimi klepeti. V znanje projekta…
Spomin vašega pomočnika zdaj spremlja, kako hitro se posamezno dejstvo spreminja, in označi tista, ki so morda zastarela, tako da se opira na tisto, kar še drži. Z novim urejevalnikom lahko posamezne spomine sami pregled…
Dodali smo najnovejše modele za slike, videoposnetke, prepisovanje in glas v realnem času ter odprli samostojni strani za prevajanje in prepisovanje, da do teh orodij dostopate neposredno iz menija.
Govorite in vaše besede se prevedejo skoraj v trenutku: izberite dva jezika, ju zamenjajte z enim samim dotikom, prevajalnik pa zajame vaš glas in vam med govorom sproti pretaka prevod.
Video stran zdaj usklajeno posodablja ploščice, ko brišete iz knjižnice, omogoča nastavitev dolžine posnetka za vsak model posebej, odstranjevanje posameznih posnetkov in jasno označuje predoglede, tako da vedno veste, k…
Pomočnik v aplikaciji zdaj prikazuje lepo oblikovane odgovore, med tipkanjem ohranja zadnje sporočilo v vidnem polju, zanesljivo shrani dokončan odgovor in vsakemu pogovoru samodejno dodeli naslov.
Odgovori, ki vsebujejo povezave, matematične formule ali zneske v valutah, se ne prikazujejo več prazni ali napol izrisani, tudi po osvežitvi strani, odgovori poglobljene raziskave pa vedno vključujejo končni povzetek.
Obsežen sklop dela v ozadju: natančnejše merjenje porabe in skupnih zneskov, pravičnejša samodejna povračila, robustnejše sporočanje v realnem času, močnejši ukrepi za zasebnost in varnost ter jasnejša sporočila o stanju…
Javne objave na blogu in razprave na forumu — vključno z njihovimi odzivi in odgovori — so zdaj vidne tudi odjavljenim obiskovalcem.
Uporaba se zdaj zaračunava z enotnim, poštenim pribitkom, merilnika vaše mesečne porabe in preostalega proračuna kažeta natančno, seznam modelov pa je počiščen — zastareli modeli so umaknjeni, novi vodilni modeli pa vklj…
Oglasi delovnih tokov in paketi lahko prikažejo pravo naslovno sliko, kar olajša in polepša brskanje po tržnici.
Vprašajte pomočnika in namesto vas bo izpolnil obrazce, kliknil gumbe in se premikal po aplikaciji — ob podpori širšega nabora orodij, ki zdaj sega do stika, pogostih vprašanj, foruma, pomnilnika in ustvarjanja delovnega…
Odgovori zdaj pritekajo besedo za besedo, namesto da bi se pojavili naenkrat, oblaček pomočnika pa lahko povlečete kamor koli vam ustreza, z jasnim namigom o tem, na čem dela.
Ustvarjanje projekta in zagon novega klepeta v njem zdaj delujeta gladko, tako da lahko sorodne klepete, datoteke in kontekst ohranjate skupaj.
Videoposnetki se zanesljivo predvajajo, zasebna predstavnost se naloži prek varnega posrednika, avatarji ustvarjalcev in oseb so zdaj vidni vsem, glasovna sporočila pa se prepišejo brez napak.
Ko ima del storitve težave, je obvestilo zdaj lažje razumljivo in ne razkriva več internih imen ponudnikov.
Povežite zunanje aplikacije z eno samo prijavo ali ključem API, da bo pomočnik lahko deloval neposredno z orodji, ki jih že uporabljate.
Orodja za slike zdaj izberejo model, ki ustreza temu, kar počnete, prikažejo takojšen predogled rezultata na mestu, urejanje pa znova deluje po zamenjavi modela ponudnika.
Ko je slika ali priloga odstranjena, vaša zgodovina klepetov, galerija predstavnosti in urejevalnik slik zdaj prikažejo prijazno nadomestno vsebino, namesto da bi se ustavili z napako.
Prevajalnik zdaj ponuja iskalnik s približno 100 jeziki, od katerih je vsak prikazan z imenom v izvirnem jeziku in v angleščini.
Dodali smo sklop novih blogovskih člankov in forumskih tem — vključno z odgovorjenimi vprašanji — tako da je že od prvega dne na voljo več za branje in raziskovanje.
Pogovor zdaj zmore iskati po naloženih datotekah, zaganjati Python v peskovniku, urejati slike, prepisovati in predvajati zvok ter sprožati vaše delovne tokove — vse brez zapuščanja pogovora.
Pustite pogovoru, da išče po spletu v živo, izvaja poglobljene raziskave iz več virov ter pridobiva in bere celotne strani — vsak odgovor se vrne z viri, ki jih je uporabil.
Vaš asistent zdaj hrani lahkoten pomnilnik med pogovori, zna navesti, česa se spomni, in upošteva zahtevo za pozabo v katerem koli jeziku.
Ustvarjajte in urejajte slike, produciraite kratke filme ter sestavljajte pesmi z besedili — s poganjanjem novih pogonov za slike, video in glasbo, skupnim izbirnikom medijev in vašo knjižnico le en klik stran.
Pogovarjajte se z ToRun na glas — nova zmogljivost glasovnega prenosa v realnem času prinaša govorne pogovore in transkripcijo v živo v pogovor.
Izvajanje delovnih tokov zdaj daje prednost modelom vrhunske kakovosti, ustavi se za vaše odobritve tam, kjer je to pomembno, in ga je mogoče preklicati, regenerirati ter nadaljevati — vsak izhod je shranjen neposredno v…
Združite sorodne pogovore, datoteke in kontekst v Projekte, da ima vaš asistent vedno pravo ozadje za nalogo pred seboj.
Osnutkujte in razvijajte dolgotrajno vsebino ter kodo na namenski plošči Canvas neposredno ob pogovoru.
Drseči povzetki, pametnejša kontekstna okna in hitrejše drsenje po zgodovini ohranjajo dolge pogovore koherentne in odzivne, z jasnimi kontrolami, ko pogovor preseže okno modela.
Humana brezplačna dovolitev, ki se polni v drseče okno, jasnejši merilniki porabe, samodejna vračila, ko generiranje slike ali videa ne uspe, ter krmila stopnje razmišljanja, ki odklenejo le toliko, kolikor krije vaše st…
Dodane so bile desetine modelov iz leta 2026 in zastareli so bili umaknjeni, poleg tega pa dnevna samodejna sinhronizacija, ki ohranja modele ponudnikov in cene aktualne — upravljano iz novega skrbniškega kataloga.
Objavite pogovor na javni povezavi in razvijajte skupnost okoli tega, kar ustvarjate.
May 2026 — 499 changes
Samostojno .NET konzolno ogrodje (test/ToRun.SmokeTests), ki se overi pri delujočem gostitelju (OpenIddict geslo) in preizkusi vsako osnovno zmogljivost od konca do konca prek pravega HTTP API: auth/me, spomin CRUD, dena…
Mediji platforme so shranjeni v ZASEBNI Bunny Storage coni, zato navaden
Zaključuje funkcijo upravljanja pomnilnika prek pogovora na vrhu
memory_forget je vračal no_match za spomine, ki obstajajo.
gemini-2.5-flash je začel vračati HTTP 400 pri thinkingBudget=128 (nizka vrednost 52-N
Dve strani za skrbnike gostitelja (/admin/model-catalog, /admin/model-onboarding)
Odkrivanje je ujemalo le po natančnem ProviderModelId/ModelKey, zato so zastareli posnetki ponudnikov
Vrata stopnje razmišljanja so zdaj zasnovana na financiranju, ne na ravni naročnine.
Združitev najboljšega iz obeh svetov v pristalo sinhronizacijo 52-Q-MODEL-SYNC-JOB: ko OpenRouter
Izbirnik stopnje razmišljanja je bil trdo zaklenjen na raven naročnine ter z izvzetjem za skrbnika/gostitelja iz prejšnjega, zavrnjenega pristopa.
Rezultat faze 1: seznam 26-provider ponudnikov/virov cen, the
Čarovnik za uvajanje (faze A-D) le USTVARI vrstice kataloga; ni bilo
Zaledni del (torun.agent): SharedChat pridobi IsListed/ListedSlug/ListedAt + denormalizirana polja kartice; PublicCommunityAppService + PublicCommunityController (anonimni vir /community + pregledovalnik po slimegu); Com…
Zvočne priponke v pogovoru so bile pokvarjene; dejanski vzroki so se razlikovali od
DEL 1 — spustni meni "Obravnava prekoračitve konteksta" v glavi pogovora je bil zaklenjen na
Odstranitev dnevnega limita (84178afab) je izbrisala DailyKey/MonthlyKey iz BudgetBucketCacheItem
Del 1 — odpravi rdeče teste na dnu integracij MongoDB.
Nizi izbirnika stopnje razmišljanja (Effort:Tooltip, Effort:Locked:Tooltip,
Kanonično, ponudniško neodvisno krmiljenje stopnje razmišljanja v pogovornem sestavljalniku,
Končni prehod mrtve kode za prepisovanje proračuna seansnega okna.
Merilnik mesečne/dnevne porabe bere telemetrijo UserDailySummary (ScopeKey=userId,
Nadaljnji pregled po prepisovanju proračuna seansnega okna (2a33fd31f).
Merilnik proračunskega segmenta na domači strani (/) + moji strani je prikazoval "$0.00 / 0% / $0.00" kadar koli
Proračunski segment brezplačne ravni je bil kapljično polnjenje "$2 / 30d / 24h": polnjenje = $2/720/h in
Merilnik PRORAČUNSKEGA SEGMENTA na domači strani (/) in moji strani (/me) je prikazoval "$0.00 (2% / $0.01)":
Napaka vizije pri večkratnih izmenah.
Prvo zaklepanje regresije v dimni plasti.
Popravek temeljnega vzroka za ponavljajoče se napake 404 pri generiranju naslovov / javnih pogovorih / vidu: zmogljivost
Uporabnik je potrdil, da opis slike zdaj deluje.
Lastnik je dobil napako 403 celo za zakonite lastnike pogovora: priponke, ustvarjene prek upravljalnika —
A3 PRAVI temeljni vzrok (ugotovljen z živim testom v brskalniku): slika priponke pogovora
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reševanje IQueuedRequestDispatcher je povzročilo StackOverflow ob zagonu (neujemljiv —
Tako zaledni pomivalni izliv za čas izvajanja gostitelja (appsettings.json) kot zagonski zapisovalci
Ponavljajoči se temeljni vzrok: ChangelogBackfillDataSeedContributor je preverjal idempotentnost na
Zagnan extract-sprint-changelog.py + propagate-changelog-locales.py iz 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 + zametek zmogljivosti voice-realtime + združitev
Backend exception → frontend humane message + retry hint + status banner.
Consolidator landed both 52-Q-CHAT-CONTEXT-BUILDER's ChatSummaries
Zrcaljenje ključev UI načina glasovnega prenosa v realnem času, dodanih v en.json v
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
V skladu s pravilom 10 CLAUDE.md.
Izhod `python platform-plan/scripts/_validate-29-locales.py` po pristanku vseh 27 skupin prevajalcev sorodnih jezikov + prehodu čiščenja BOM:
Skupini 6 vzporednih prevajalskih agentov Sonnet (vse potrjeno v repozitorij iz prejšnjih krogov + zdaj spuščena zadnja skupina):
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).
Samo bralni revizijski pregled ChatPipelineAppService + InAppAssistant + odjemalcev ponudnikov + 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 flagged a VERB_MISMATCH: Angular calls bare PUT
Backend half of Sprint 50-F: anonymous landing-Stran demo Klepet with per-IP
The dictionary `Dictionary<(DateTime Datum, Guid?
Closes the only race window in KeywordSettlementJob that could
Continuation of Naloga #67 (50-SS sweep).
Closes the 50-RRR foundation (commits A/B/C) by wiring the actual composite
Backfilled Preklopi / Heading / Novo / Untitled / Prazno / Load:Neuspešno / JustNow / MinAgo / HourAgo / DayAgo across Vse 28 non-English locales (en.json already had the Polno set from Sprint 50-CCC-2).
Mirrors Sprint 50-LL (Objava.CreatorProfileId) + Sprint 50-VV-2 (AdAuction
Pipeline now derives the capability Ključ from Vnos topology and uses the
Adapter contract for the multi-Vnos composite Pot.
Foundation commit for the multi-image Uredi refactor (Možnost C — capability
Scope finding: the wire-up at ChatPipelineAppService.cs:1415 already calls
5 structured log additions so Produkcija failures surface their Polno context
Two-pronged fix for the bubble accumulating Prazno / unwanted sessions:
Closes the deferred -2 from 50-YY (where the mic-attach was carved out so the
Closes the cross-pipeline gap left by 50-AAA.
Uporabnik reported both "Pick a source image" and "Pick a mask image"
Produkcija log:
Uporabnik reported both source-Naloži and mask-Naloži on /me/image Uredi
Final Knjižnica Modul slice.
Uporabnik Povratna informacija: green "Naloži complete." Pasica flickered in/out for
Sprint 50-CCCC tried to fix the Naloži-pipeline ObjectDisposedException
Root cause of the persistent "Naloži Neuspešno" toast — even though Datoteke
Uporabnik reported five separate issues:
Uporabnik reported part_001.wav / part_002.wav Izbrisano from Knjižnica but
50-YYY left a regression: openAssetDetail only triggered text preload
Uporabnik reported Documents tab Prazno after uploading .md / .txt Datoteke —
CDN public URL pattern was wrong for /me/Knjižnica — Vsebina is per-Uporabnik
Two bugs in one batch — both surfaced by a Uporabnik test where 4 Datoteke were 'uploaded' per the green Pasica but the Knjižnica Stran stayed at 0 items.
Uporabnik: 'Naloži işlemleri için progress bar koy, uploading vs saniye yazsın hangisi Naloži oldu kullanıcı bilgilensin, böyle çok yavan duruyor.'
Two Uporabnik-blocking issues from /me/Knjižnica testing:
Uporabnik reported Knjižnica Naloži 400 'Only image/* MIME types are accepted on this Končna točka.' after uploading a non-image Datoteka from the Vse tab.
Uporabnik reported Sporočilo Citations Skrbnik 500 'Internal Napaka'.
Uporabnik reported Knjižnica Naloži 'Bunny Shramba Naloži Neuspešno with HTTP 401'.
Uporabnik reported /me/image Ustvari broken: "Image generation Ponudnik
Uporabnik reported the Sprint 50-III Plošča-position refactor is STILL not
Root cause (Scenario B variant): `openSession()` calls `Sporočila.set(mapped)`
Uporabnik: "You don't have to use the same Model for titles, these are
Uporabnik reported Plošča kept opening detached from FAB despite Sprint
Sprint 50-CCC raised MaxOutputTokens 24 → 128 expecting "~100
Uporabnik reported /me/Dejavnost-Zgodovina Prazno despite hours of Klepet/image/voice/etc.
Two Uporabnik-testing regressions found and fixed; the third concern
| # | Meni | Skupina | Angular Pot | Backend Pot | Status | Root cause |
Uporabnik: "Knjižnica dosya eklerken neden tek tek el ile eklemem gerekiyor,
Uporabnik: "source da Naloži from pc var da mask ta neden yok, bizim
Uporabnik-reported Kritično bug: every PC Naloži attempt threw
Uporabnik reported repeatedly since yesterday that /me/Obvestila/
Recent-chats Seznam in /agent/Klepet-pipeline had per-row Rename/Izbriši
Uporabnik testing surfaced 5 concerns; 4 of them addressed in this commit, 1
Dnevno AsyncPeriodicBackgroundWorker (24h tick) sweeps Paid
Sprint 47-O Ustvarjeno flat AdAuction entities without join FKs;
Dnevno ABP AsyncPeriodicBackgroundWorker (24h tick) sweeps V teku
Sprint 50-TT was dispatched for this but went off-script (it did
Uporabnik asked: Knjižnica top size indicator, PC Naloži, plan-tier kota,
Extends the 50-RR pattern (VideoJobPollingWorker IAbpDistributedLock)
Sprint 50-P deferred PC Naloži because backend lacked a Bunny
50-AA aborted during the Polno sweep; this is the resumed batched
Sprint 50-U + 50-EE wired polling + Povračilo flow but assumed single-pod
Uporabnik direktifi (Sprint 50-E turn): bell + Dejavnost sağdaki menü ikonlarının
Backend unreachable at https://localhost:44304 during this sprint;
Sprint 47-H built a degraded compound index for Ustvarjalec/Objava Vir
Sprint 47-H built a degraded (TenantId, CreationTime) scan for PersonaPost
Sprint 50-W BillingReconciliationJob detected holes (Paddle
Each Moduli/torun.*/angular/angular.json referenced
Sprint 50-CC tenant isolation tests revealed a pre-existing defect:
Sprint 47-A..47-P MT sweep added TenantId-prefixed compound indexes to every
Sprint 49 series completion.
Pre-launch R2 risk: Sprint 47-A..47-P swept 219+ entities to
Sprint 50-U surfaced gap: IBillingRecorder had only RecordAsync.
Plan §2.3 / R1 audit — Sprint 47-A...47-P swept 219+ entities to
Plan §2.5 backlog: propagated 22 ImageEdit pipeline Ključi (Sprint
Sprint 50-K caught one collision (Naročnina plan paddle Konfiguracija
Phase 1.5 §2.1 #3 — third background worker.
Phase 1.5 §2.1 #4 — fourth and final pre-launch background worker.
/api/Aplikacija/run-Vnos-Naloži returned 404 because the AppService was
Sprint 50-P landed the /me/image Uredi tab UI + backend wiring but
Frontend (Angular | Datum pipe + Datum constructor) handles UTC -> Lokalno
Phase 1.5 §2.1 — top-Prioriteta background worker.
Phase 1.5 §2.1 #2 — second background worker.
Uporabnik reported "Obrazec doldurma" Sledi-up turn returned "Sporočilo Neuspešno.
Bug A: Klepet composer ignored Ctrl+V on clipboard images.
The Marketplace browse Stran (angular/src/Aplikacija/marketplace/
Uredi tab was missing the Model selection (Auto/Manual), Quality
Uporabnik reported the Sprint 50-I Privzeto (bottom:96 right:24) overlaps
Uporabnik testing /me/Obvestila hit 404 on
PaddleOptions.WalletTopUpPriceIds was a Dictionary<string,string>
Uporabnik reported "paddle.js popup açması lazım, hata veriyor" when
Sprint 50-I addresses two UX regressions surfaced after Sprint 50-B + 50-E:
Skrbnik saved a SubscriptionPlan's Paddle Konfiguracija; the first Shrani worked.
Cost breakdown Tabela on /me/Zaračunavanje was naively prefixing every
Sprint 49-B left two hard-coded /api/Aplikacija/* URLs in Klepet-pipeline
- 50-B (InAppAssistant:Bubble:Dock/Undock/DragHint): added to en.json + Vse 28 Drugo locales with native translations
Uporabnik: 'memory sayfasında sil tıkladığımda js Potrdi çıkıyor biz neden leptonx e
Fix A (Strežnik Kritično bug):
Uporabnik reported: SourceKind dropdown showed weird pink/blue blocks (broken
Uporabnik Povratna informacija: the two floating bells (Obvestilo-bell + Dejavnost-center)
Sprint 47-I + 45-M pattern apply.
Sprint 46-A introduced cross-Modul IBillingRecorder + emitted BillingRecords
Sprint 46-F structural normalize Dokončano lowercase→PascalCase but left 4 locales with Suite-stub English Vsebina.
Sprint 45-M + 47-A through 47-N pattern apply.
Sprint 47-M pattern apply.
Sprint 45-M + 47-K pattern apply.
Sprint 45-M + 47-A through 47-K pattern apply.
Sprint 45-M + 47-A through 47-H pattern apply.
Sprint 45-M + 47-A/B/C/D/E/F/G/O pattern apply.
Sprint 45-M + 47-G pattern apply.
Sprint 45-M + 47-A/B/C/D/E/F pattern apply.
Sprint 45-M + 47-A/B/C/D/E pattern apply.
Sprint 45-M + 47-A/B/C/E pattern apply.
Sprint 45-M + 47-A + 47-B pattern apply.
Sprint 45-M + 47-A/B/C pattern apply.
Sprint 45-M + 47-A/B pattern apply.
Sprint 45-M + 47-A pattern apply.
Sprint 45-M pattern apply: Suite did NOT emit IMultiTenant on Base classes despite IsMultiTenant: true in JSON.
Slice 56 — IModelRoutingService (ByokVault.Application + Contracts):