What is new on the ToRun platform, newest first.
June 2026 — 53 changes
Birač modela sada uz dosadašnje modele uključuje Google Imagen i Gemini za slike te OpenAI Sora i Google Veo za videozapise. Odaberite točno onaj koji želite ili prepustite opciji Auto da odabere najbolji za vaš plan.
Povežite više AI koraka u Workflow koji pokrećete kad god želite, a zatim ga objavite na Marketplaceu ili istražite što su podijelili drugi autori. Workflow Editor, Runner i Marketplace sada su vam dostupni izravno iz iz…
Dodajte ToRun na svoj početni zaslon i pokrenite ga kao izvornu aplikaciju, preko cijelog zaslona i s vlastitom ikonom, tako da vam je na dohvat jednog dodira dok ne stigne mobilna aplikacija.
Novi logotip i čišći vizualni identitet kroz cijelu aplikaciju, prilagođeni i svijetloj i tamnoj temi.
Odlučite koliko će AI duboko razmišljati, sada i u Auto načinu rada. Upiti za slike mogu se nenametljivo osloniti na vašu spremljenu memoriju kako bi rezultati odgovarali ljudima i detaljima koji su vam važni. Uz to, got…
Napredak generiranja sada se prikazuje odmah uz rezultat umjesto ispod obrasca, svaka se stranica otvara čista, a vaše najnovije djelo ostaje u prvom planu dok starija nalaze svoje mjesto u vašoj Library.
Povijest vašeg novčanika sada je podijeljena na stranice i prikazuje točne iznose ispod jednog centa, a uklanjanje stavki iz vaše Library više ne izaziva pogrešku.
Otvorite svoj oglašivački račun i pošaljite kampanje na pregled izravno sa svog računa, bez čekanja na ručno postavljanje.
Iza kulisa: pravednije obračunavanje besplatnih kredita, strože provjere isplata i ovlasti autora, sigurnija moderacija medija te pouzdanije izvođenje Workflow procesa.
Prevođenje uživo sada vam omogućuje izbor između dva pogona, pa možete odabrati onaj koji najbolje odgovara vašem razgovoru — uključujući novu opciju koja govori 77 jezika, među njima turski i ruski. Svaki izbor unaprije…
Modeli koje vaš plan ne pokriva sada se prikazuju s malom lokotom i mogućnošću nadogradnje ili nadopune novčanika jednim dodirom, umjesto da zakažu tek nakon što pošaljete poruku. Otvorili smo i naprednije modele za Free…
Podijelite sliku jednom i asistent pamti što je vidio do kraja razgovora — pa o njoj možete pitati i mnogo poruka kasnije, čak i nakon promjene modela, a slika se nikad ponovno ne učitava niti vam se naplaćuje dvaput.
Odgovori u chatu sada crtaju dijagrame kao prave dijagrame, slažu tablice s jasnim obrubima i prilagođavaju veličinu naslova poruci umjesto da ispunjavaju cijeli ekran — pa su odgovori lakši za čitanje na prvi pogled.
Kad modelu treba nadogradnja ili vam ponestane sredstava, sada dobivate ljubazan natpis s gumbima Nadogradi plan i Nadopuni novčanik točno tu. Odgovori koji se ne mogu generirati objašnjavaju zašto umjesto da ostave praz…
Zapisi o naplati, povijest i aktivnosti sada se prikazuju u vašem lokalnom vremenu umjesto u UTC-u, pa se vremenske oznake podudaraju sa satom na vašem zidu.
Pokretanje novog chata sada ponovno koristi prazni umjesto da gomila prazne, chatovi koji nikad nisu dobili odgovor više ne zatrpavaju vašu listu, a rezervirani naslovi zamjenjuju se pravim imenom čim kažete nešto smisle…
Tvrtke sada mogu postaviti oglašivački račun i voditi vlastite oglasne kampanje od početka do kraja — kreirati kampanje, dodati oglasne materijale koji im pripadaju i poslati ih na brzu provjeru prije nego se prikažu.
Korištenje vlastitog ključa pružatelja sada pokriva i glas u stvarnom vremenu, prevođenje uživo i transkripciju uživo: AI korištenje ide kroz vaš ključ, a mi naplaćujemo samo malu platformsku naknadu po minuti.
Naše javne stranice sada se temelje na uredivom sadržaju na mnogim jezicima, učitane slike provjeravaju se na nesiguran sadržaj prije pohrane, registracija računa i potvrdni e-mailovi rade pouzdano, a širok niz pozadinsk…
Dugi odgovori sada se izvode na poslužitelju i nastavljaju se dok mijenjate razgovore, otvarate drugu stranicu ili zatvarate karticu. Vratite se bilo kada i odgovor se i dalje generira ili vas već čeka.
Razgovori započeti unutar projekta automatski preuzimaju njegove upute, učitano znanje i memoriju, prikazuju oznaku projekta s brzom poveznicom natrag te navode naziv projekta na popisu nedavnih razgovora. U znanje proje…
Memorija vašeg asistenta sada prati koliko se brzo svaka činjenica mijenja i označava one koje bi mogle biti zastarjele, kako bi se oslanjala na ono što je još uvijek točno. Novi uređivač omogućuje vam da sami pregledava…
Dodali smo najnovije modele za slike, video, transkripciju i glas u stvarnom vremenu te otvorili zasebne stranice za prevođenje i transkripciju kako biste tim alatima pristupili izravno iz izbornika.
Govorite i vaše se riječi prevode gotovo trenutačno: odaberite dva jezika, zamijenite ih jednim dodirom, a prevoditelj hvata vaš glas i prenosi prijevod dok govorite.
Stranica videa sada usklađuje pločice pri brisanju iz vaše knjižnice, omogućuje vam postavljanje trajanja isječka po modelu, uklanjanje pojedinačnih isječaka i jasno označava rezultate pregleda, tako da uvijek znate što…
Asistent u aplikaciji sada prikazuje lijepo oblikovane odgovore, zadržava najnoviju poruku u vidnom polju dok tipka, pouzdano sprema dovršeni odgovor i svakom razgovoru automatski daje naslov.
Odgovori koji sadrže poveznice, matematičke formule ili novčane iznose više se ne prikazuju prazni ni napola iscrtani, čak ni nakon osvježavanja stranice, a odgovori dubinskog istraživanja uvijek uključuju svoj završni s…
Širok val rada iza kulisa: točnije mjerenje potrošnje i ukupnih troškova, pravedniji automatski povrati novca, otpornije slanje poruka u stvarnom vremenu, snažnija zaštita privatnosti i sigurnosti te jasnije poruke o sta…
Javne objave na blogu i rasprave na forumu — uključujući njihove reakcije i odgovore — sada su vidljive posjetiteljima koji nisu prijavljeni.
Korištenje se sada naplaćuje jednom, poštenom maržom, mjerači vaše mjesečne potrošnje i preostalog proračuna prikazuju točno, a popis modela je počišćen — zastarjeli modeli povučeni su iz upotrebe, a novi vodeći modeli u…
Oglasi radnih tijekova i paketi mogu prikazati pravu naslovnu sliku, čime je pregledavanje tržnice lakše i ugodnije.
Zatražite pomoćnika i on će umjesto vas ispuniti obrasce, kliknuti gumbe i kretati se aplikacijom — uz podršku šireg skupa alata koji sada obuhvaća kontakt, česta pitanja, forum, memoriju i izradu radnog tijeka u jednom…
Odgovori sada pristižu riječ po riječ umjesto da se pojave odjednom, a oblačić pomoćnika možete povući kamo god vam odgovara, uz jasnu naznaku onoga na čemu radi.
Stvaranje projekta i pokretanje novog razgovora unutar njega sada glatko funkcioniraju, pa srodne razgovore, datoteke i kontekst možete držati na jednom mjestu.
Videozapisi se pouzdano reproduciraju, privatni mediji učitavaju se putem sigurnog proxyja, avatari autora i persona sada su vidljivi svima, a glasovne poruke transkribiraju se bez pogrešaka.
Kada dio usluge ima poteškoća, obavijest je sada razumljivija i više ne otkriva interna imena dobavljača.
Povežite vanjske aplikacije jednom prijavom ili API ključem kako bi pomoćnik mogao raditi izravno s alatima koje već koristite.
Alati za slike sada odabiru model koji odgovara onome što radite, prikazuju trenutni pregled rezultata na licu mjesta, a uređivanje ponovno radi nakon promjene modela pružatelja usluge.
Kada je slika ili privitak uklonjen, vaša povijest razgovora, galerija medija i uređivač slika sada prikazuju ljubazni rezervirani sadržaj umjesto da stanu uz pogrešku.
Prevoditelj sada nudi pretraživi izbornik s otprilike 100 jezika, od kojih je svaki prikazan svojim izvornim i engleskim nazivom.
Dodali smo niz novih članaka na blogu i tema na forumu — uključujući odgovorena pitanja — pa ima više za čitanje i istraživanje već od prvog dana.
Chat sada može pretraživati vaše učitane datoteke, pokretati Python u pješčaniku, uređivati slike, transkribirati i reproducirati zvuk te pokretati vaše tijekove rada — sve bez napuštanja razgovora.
Neka chat pretraži živi web, provede dubinsko istraživanje iz više izvora te dohvati i pročita cijele stranice — svaki odgovor dolazi s izvorima koje je koristio.
Vaš asistent sada čuva laganu memoriju kroz chatove, može navesti što pamti i poštuje zahtjev za zaboravljanjem na bilo kojem jeziku.
Generirajte i uređujte slike, stvarajte kratke filmove i komponujte pjesme s tekstovima — pogonjeno novim pogonima za slike, video i glazbu, s dijeljenim biraćem medija i vašom bibliotekom na jedan klik.
Razgovarajte s ToRun naglas — nova sposobnost glasovne komunikacije u realnom vremenu donosi govorne razgovore i živu transkripciju u chat.
Tijekovi rada sada preferiraju modele vrhunske kvalitete, pauziraju za vaše odobrenje gdje je to važno i mogu se otkazati, regenerirati i nastaviti — pri čemu se svaki izlaz automatski sprema u vašu biblioteku.
Grupišite povezane chatove, datoteke i kontekst u Projekte kako bi vaš asistent uvijek imao pravu pozadinu za zadatak koji je pred vama.
Izrađujte i unaprjeđujte dugačke sadržaje i kod u namjenskom panelu platna izravno pored vašeg chata.
Kotrljajući sažetci, pametniji kontekstni prozori i brže pomicanje kroz povijest čuvaju duge razgovore koherentnima i brzima, uz jasne kontrole kada razgovor nadraste prozor modela.
Humani besplatni iznos koji se puni unutar kotrljajućeg prozora, jasniji mjerači potrošnje, automatski povrati pri neuspjehu generiranja slike ili videa te kontrole razine zaključivanja koje otključavaju samo ono što vaš…
Dodani su deseci modela iz 2026. i povučeni zastarjeli, uz dnevnu automatsku sinkronizaciju koja čuva modele davatelja i cijene ažurnima — upravljano iz novog administrativnog kataloga.
Objavite razgovor na javni link i razvijte zajednicu oko onoga što stvarate.
May 2026 — 499 changes
Samostalni .NET konzolni harness (test/ToRun.SmokeTests) koji se autentificira prema pokrenutom Hostu (OpenIddict lozinkom) i testira svaku temeljnu sposobnost s kraja na kraj putem stvarnog HTTP API-ja: auth/me, memorij…
Mediji platforme nalaze se u PRIVATNOJ Bunny Storage zoni, pa jednostavan
Dovršava značajku upravljanja memorijom putem chata izgrađenu na vrhu
memory_forget vraćao je no_match za uspomene koje postoje.
gemini-2.5-flash počeo je vraćati HTTP 400 za thinkingBudget=128 (niska vrijednost 52-N
Dvije host-admin stranice (/admin/model-catalog, /admin/model-onboarding)
Otkrivanje je odgovaralo samo po točnom ProviderModelId/ModelKey, pa su zastarjeli snimci davatelja
Provjera razine zaključivanja sada se temelji na financiranju, a ne na razini pretplate.
Spajanje najboljeg iz obaju pristupa u isporučenu sinkronizaciju 52-Q-MODEL-SYNC-JOB: kada OpenRouter
Birač razine zaključivanja bio je tvrdo zaključan na razini pretplate uz izuzeće za administratore/domaćine iz ranijeg, odbačenog pristupa.
Isporuka faze 1: inventar izvora cijena za 26-provider popis, the
Čarobnjak za uvođenje (faze A-D) samo STVARA retke kataloga; nije postojao
Pozadina (torun.agent): SharedChat dobiva IsListed/ListedSlug/ListedAt + denormalizirana polja kartice; PublicCommunityAppService + PublicCommunityController (anonimni /community feed + preglednik po slugu); CommunityLis…
Audio privici u chatu bili su pokvareni; stvarni uzroci razlikovali su se od
DIO 1 — padajući izbornik „Rukovanje prekoračenjem konteksta“ u zaglavlju chata bio je zaglavio na
Uklanjanje dnevnog ograničenja (84178afab) izbrisalo je DailyKey/MonthlyKey iz BudgetBucketCacheItem
Dio 1 — ukloni crveno s dna MongoDB integracijskih testova.
Nizovi birača za razinu zaključivanja (Effort:Tooltip, Effort:Locked:Tooltip,
Kanonična, neovisna o davatelju kontrola razine zaključivanja u composeru chata,
Završni prolaz mrtvog koda za prepisivanje proračuna s prozorima sesije.
Mjerač Mjesečne/Dnevne Potrošnje čita telemetriju UserDailySummary (ScopeKey=userId,
Nastavak audita prepisivanja proračuna s prozorima sesije (2a33fd31f).
Mjerač proračunskog segmenta na početnoj (/) + me-home stranici prikazivao je "$0.00 / 0% / $0.00" uvijek kada
Proračunski segment besplatne razine bio je "$2 / 30d / 24h" kap: punjenje = $2/720/h i
Mjerač PRORAČUNSKOG SEGMENTA na početnoj stranici (/) i me-home (/me) prikazivao je "$0.00 (2% / $0.01)":
Greška u viziji s više okreta.
Prvo zaključavanje regresije u sloju dima.
Popravak temeljnog uzroka za ponavljajuće 404 greške generiranja naslova / javnog chata / vizije: sposobnost
Korisnik je potvrdio da opis slike sada radi.
Pristup u opsegu vlasnika vraćao je 403 čak i za legitimnog vlasnika chata: privitak kreiran od strane menadžera
A3 STVARNI temeljni uzrok (otkriven živim testom u pregledniku): slika privitka chata
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Razrješavanje IQueuedRequestDispatcher uzrokovalo je StackOverflow pri pokretanju (nezaustavljiv —
I Host runtime ponor (appsettings.json) i bootstrap loggeri
Ponavljajući temeljni uzrok: ChangelogBackfillDataSeedContributor provjeravao je idempotenciju na
Pokrenuti extract-sprint-changelog.py + propagate-changelog-locales.py iz main-a:
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 + sjeme sposobnosti za realtime glas + spoj
Backend exception → frontend humane message + retry hint + status banner.
Consolidator landed both 52-Q-CHAT-CONTEXT-BUILDER's ChatSummaries
Zrcaljenje ključeva UI-ja za realtime glasovni način dodanih u en.json u
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
Prema CLAUDE.md Pravilu 10.
Izlaz naredbe `python platform-plan/scripts/_validate-29-locales.py` nakon što su svi 27 skupova prijevoda kolega-prevoditelja isporučeni + prolaz uklanjanja BOM oznake:
Skupovi od 6 paralelnih Sonnet agenata prevoditelja (svi uneseni u repozitorij iz ranijih okreta + sada ispražnjena završna 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).
Prolaz samo za čitanje (audit) nad ChatPipelineAppService + InAppAssistant + klijentima davatelja + 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 označio je VERB_MISMATCH: Angular poziva goli PUT
Pozadinski dio Sprinta 50-F: anonimni demo chat na odredišnoj stranici s ograničenjem po IP-u
Rječnik `Dictionary<(DateTime Date, Guid?
Zatvara jedini prozor utrke u KeywordSettlementJobu koji je mogao
Nastavak zadatka #67 (pretraživanje 50-SS).
Zatvara temelj 50-RRR (predaje A/B/C) spajanjem stvarnog kompozita
Dopunjeni Toggle / Heading / New / Untitled / Empty / Load:Failed / JustNow / MinAgo / HourAgo / DayAgo kroz svih 28 ne-engleskih lokalizacija (en.json već imao cijeli set od Sprinta 50-CCC-2).
Zrcali Sprint 50-LL (Post.CreatorProfileId) + Sprint 50-VV-2 (AdAuction
Pipeline sada izvodi ključ sposobnosti iz ulazne topologije i koristi
Ugovor adaptera za put kompozita s višestrukim unosom.
Temeljna predaja za refaktoriranje višestrukog uređivanja slika (Opcija C — sposobnost
Nalaz opsega: spajanje na ChatPipelineAppService.cs:1415 već poziva
5 strukturiranih log dodataka kako bi produkcijski kvarovi izložili cijeli kontekst
Dvorezno rješenje za nakupljanje praznih / neželjenih sesija u balonu:
Zatvara odgođeni -2 iz 50-YY (gdje je snimanje mikrofonom izdvojeno kako bi
Zatvara međupipelinesku prazninu ostavljenu od 50-AAA.
Korisnik prijavio da i "Odaberi izvornu sliku" i "Odaberi masku"
Produkcijski log:
Korisnik prijavio da su i izvor i maska na /me/image Uredi
Završni isječak modula knjižnice.
Povratna informacija korisnika: zelena poruka "Učitavanje završeno." treperila je unutra/van za
Sprint 50-CCCC pokušao je popraviti ObjectDisposedException u toku učitavanja
Uzrok ustrajne poruke o grešci učitavanja — čak i kad datoteke
Korisnik prijavio pet zasebnih problema:
Korisnik prijavio part_001.wav / part_002.wav obrisane iz knjižnice, ali
50-YYY ostavila je regresiju: openAssetDetail aktivirao je samo preučitavanje teksta
Korisnik prijavio da je kartica Dokumenti prazna nakon učitavanja .md / .txt datoteka —
Uzorak javnog URL-a CDN-a bio je pogrešan za /me/library — sadržaj je per-korisnik
Dvije greške u jednoj seriji — obje otkrivene korisničkim testom gdje su 4 datoteke bile 'učitane' prema zelenoj obavijesti, ali stranica knjižnice ostala je na 0 stavki.
Korisnik: 'za učitavanja dodaj traku napretka, neka piše koliko sekundi traje, neka korisnik zna koje je učitano, ovako izgleda beživotno.'
Dva blokiurajuća problema korisnika pri testiranju /me/library:
Korisnik prijavio 400 'Ovaj endpoint prihvaća samo image/* MIME vrste.' pri učitavanju datoteke koja nije slika s kartice Sve.
Korisnik prijavio 500 'Unutarnja greška' na administratoru Citata poruka.
Korisnik prijavio da učitavanje u knjižnicu javlja 'Bunny pohrana: učitavanje neuspješno s HTTP 401'.
Korisnik prijavio da je /me/image Generate pokvareno: "Pružatelj usluge generiranja slika
Korisnik prijavio da refaktoriranje položaja panela iz Sprinta 50-III i dalje ne
Uzrok (varijanta scenarija B): `openSession()` poziva `messages.set(mapped)`
Korisnik: "Za naslove ne trebate koristiti isti model, to su
Korisnik prijavio da se panel i dalje otvara odvojen od FAB-a unatoč Sprintu
Sprint 50-CCC podigao je MaxOutputTokens 24 → 128 očekujući "~100
Korisnik prijavio da je /me/activity-history prazan unatoč satima chatanja/generiranja slika/glasa itd.
Dvije regresije pronađene pri testiranju; treća briga
| # | Izbornik | Grupa | Angular putanja | Ruta pozadine | Status | Uzrok |
Korisnik: "zašto moram ručno dodavati datoteke u knjižnicu jednu po jednu,
Korisnik: "u izvoru postoji učitavanje s računala, zašto ga nema u masci, naše
Kritična greška prijavljena od korisnika: svaki pokušaj PC učitavanja bacio je
Korisnik je ponavljano prijavljivao od jučer da /me/notifications/
Lista nedavnih chatova u /agent/chat-pipeline imala je padajući izbornik Preimenuj/Obriši po retku
Testiranje korisnika otkrilo 5 problema; 4 su riješena u ovoj predaji, 1
Dnevni AsyncPeriodicBackgroundWorker (24h okidač) pregledava Plaćene
Sprint 47-O stvorio je ravne AdAuction entitete bez spojnih FK-ova;
Dnevni ABP AsyncPeriodicBackgroundWorker (24h okidač) pregledava čekajuće
Sprint 50-TT bio je raspoređen za ovo, ali skrenuo je s teme (učinio je
Korisnik pitao: indikator veličine knjižnice gore, PC učitavanje, plan-razinska kvota,
Proširuje uzorak 50-RR (VideoJobPollingWorker IAbpDistributedLock)
Sprint 50-P odgodio je PC učitavanje jer pozadinskom dijelu nedostajao je Bunny
50-AA prekinut pri punom pretraživanju; ovo je nastavak u serijama
Sprint 50-U + 50-EE spojili su anketu + tok povrata, ali pretpostavljali su jedan pod
Direktiva korisnika (potez Sprinta 50-E): zvončić + aktivnost trebaju biti uz ikone desnog izbornika
Backend nedostupan na https://localhost:44304 za vrijeme ovog sprinta;
Sprint 47-H izradio je degradirani složeni indeks za feed Creator/Post
Sprint 47-H izradio je degradirano (TenantId, CreationTime) skeniranje za PersonaPost
Sprint 50-W BillingReconciliationJob otkrio je rupe (Paddle
Svaki modules/torun.*/angular/angular.json referencirao je
Testovi izolacije stanara iz Sprinta 50-CC otkrili su postojeći defekt:
MT pretraživanje u Sprintovima 47-A..47-P dodalo je spojene indekse s prefiksom TenantId svakom
Završetak serije Sprinta 49.
R2 rizik prije lansiranja: Sprint 47-A..47-P pretraživao 219+ entiteta
Sprint 50-U otkrio prazninu: IBillingRecorder imao je samo RecordAsync.
Plan §2.3 / R1 revizija — Sprint 47-A...47-P pretraživao 219+ entiteta
Plan §2.5 zaostaci: propagirano 22 ImageEdit ključeva pipeline (Sprint
Sprint 50-K otkrio je jednu koliziju (konfiguracija Paddle plana pretplate
Faza 1.5 §2.1 #3 — treći pozadinski radnik.
Faza 1.5 §2.1 #4 — četvrti i posljednji pozadinski radnik prije lansiranja.
/api/app/run-input-upload vraćao je 404 jer je AppService bio
Sprint 50-P uveo je UI kartice Uredi za /me/image + pozadinsku vezu, ali
Frontend (Angular | date pipe + Date konstruktor) obrađuje UTC → lokalno
Faza 1.5 §2.1 — prioritetni pozadinski radnik.
Faza 1.5 §2.1 #2 — drugi pozadinski radnik.
Korisnik prijavio da je nastavni potez "popunjavanja obrasca" vratio "Slanje poruke nije uspjelo.
Greška A: chat composer ignorirao je Ctrl+V za slike iz međuspremnika.
Stranica za pregledavanje Marketplacea (angular/src/app/marketplace/
Kartici Uredi nedostajao je odabir Modela (Automatski/Ručni), Kvaliteta
Korisnik prijavio da se zadano iz Sprinta 50-I (bottom:96 right:24) preklapa
Testiranje korisnika /me/notifications rezultiralo je 404 na
PaddleOptions.WalletTopUpPriceIds bio je Dictionary<string,string>
Korisnik prijavio "paddle.js iskačući prozor bi se trebao otvoriti, javlja grešku" pri
Sprint 50-I rješava dvije UX regresije surfane nakon Sprinta 50-B + 50-E:
Administrator je spremio Paddle konfiguraciju SubscriptionPlana; prvo spremanje je uspjelo.
Tablica raščlambe troška na /me/billing naivno je dodavala prefiks svakom
Sprint 49-B ostavio je dva tvrdo kodirana /api/app/* URL-a u chat-pipelineu
- 50-B (InAppAssistant:Bubble:Dock/Undock/DragHint): dodano u en.json + svih 28 ostalih lokalizacija s izvornim prijevodima
Korisnik: 'na stranici memorije kliknuo sam obriši i pojavio se js confirm — zašto ne koristimo leptonx
Ispravak A (KRITIČNA greška poslužitelja):
Korisnik prijavio: padajući izbornik SourceKind prikazivao je čudne ružičaste/plave blokove (pokvareni
Povratna informacija korisnika: dva plutajuća zvončića (zvončić za obavijesti + aktivnost)
Primjena uzorka Sprint 47-I + 45-M.
Sprint 46-A uveo je IBillingRecorder između modula + emitiranje BillingRecorda
Strukturalna normalizacija iz Sprinta 46-F (mala slova→PascalCase) završena, ali su 4 lokalizacije ostale s engleskim sadržajem generiranim od strane Suitea.
Primjena uzorka Sprint 45-M + 47-A do 47-N.
Primjena uzorka Sprint 47-M.
Primjena uzorka Sprint 45-M + 47-K.
Primjena uzorka Sprint 45-M + 47-A do 47-K.
Primjena uzorka Sprint 45-M + 47-A do 47-H.
Primjena uzorka Sprint 45-M + 47-A/B/C/D/E/F/G/O.
Primjena uzorka Sprint 45-M + 47-G.
Primjena uzorka Sprint 45-M + 47-A/B/C/D/E/F.
Primjena uzorka Sprint 45-M + 47-A/B/C/D/E.
Primjena uzorka Sprint 45-M + 47-A/B/C/E.
Primjena uzorka Sprint 45-M + 47-A + 47-B.
Primjena uzorka Sprint 45-M + 47-A/B/C.
Primjena uzorka Sprint 45-M + 47-A/B.
Primjena uzorka Sprint 45-M + 47-A.
Primjena uzorka iz Sprinta 45-M: Suite nije emitirao IMultiTenant na osnovnim klasama unatoč IsMultiTenant: true u JSON-u.
Slice 56 — IModelRoutingService (ByokVault.Application + Contracts):