Systems room

Lucid Lattice

3D Game — tap cubes, flip neighbours, restore the signal.

Decision journal

At this new threshold where AI takes the code, the real value is setting the right boundaries and architecture.

  • Automating everything is not the aim. What matters is handing repetitive, error-prone work to the machine, and keeping the exceptions that still need a human touch.
  • Machines favour repetition; people carry the exception. Sound architecture draws that line at the outset, without confusing the two.

Log · 182

· Decision

Contact forms will use a GHL embed; a WhatsApp bridge remains now

If FixRav Website forms stay on mailto, the CRM funnel stays broken. When GHL is ready, the swap should be one cut.

Gee contact and FixRav contact are temporary bridges. The GoHighLevel embed arrives when all sites are done. gtmId events are ready. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

İletişim formu GHL embed olacak; bugün WhatsApp köprüsü durur

FixRav Website formları mailto’da kalırsa CRM hunisi kopuk kalır. GHL hazır olunca tek seferde değişmeliydi.

Gee contact ve FixRav contact geçici köprüdür. GoHighLevel embed tüm siteler bitince gelecek. gtmId event’leri hazırdır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Decision

Turkish support is left last; content and CRM must finish first

If FixRav Website opens Turkish early, translation debt doubles. Canonical English and verified figures must come first.

On the backlog, Turkish sits last. Gee and agency sites finish in one language first. Then i18n is added. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

TR dil desteği en sona bırakılır; önce içerik ve CRM bitmelidir

FixRav Website TR’yi erken açarsa çeviri borcu ikiye katlanır. Önce kanonik EN ve doğrulanmış rakamlar gerekir.

Bekleyen iş listesinde TR dili en sonda durur. Gee ve ajans siteleri önce tek dilde tamamlanır. Sonra i18n eklenir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek y

· Decision

A what’s-new surface may show recent additions as you enter the

Verimaya Tools and changelog sit outside the daily path. Users entering the panel miss “what’s new?” — features listed but never introduced.

A surface for recent additions is under consideration. Listing is not introducing; this door aims to close that gap. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Yenilikler yüzeyi panele girince son eklenenleri gösterecek belki

Verimaya Araçlar ve changelog günlük yolun dışında duruyor. Panele giren kullanıcı “ne yeni?”yi kaçırıyor; özellik listelenmiş ama tanıtılmamış kalıyor.

Son eklenenleri gösteren yüzey değerlendiriliyor. Listelemekle tanıtmak ayrı iş; bu kapı o boşluğu kapatmayı hedefler. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

On-prem install is weighed for clinics that refuse data ever

Verimaya runs in the cloud. Some clinics require that data never leaves their room; the demand is real, the solution is not a promise yet.

A single-box install is under consideration. No commitment — architecture and support cost still weigh, and early promises are refused. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Yerinde kurulum verisi dışarı çıkmayan klinik için tartılıyor

Verimaya bulutta çalışıyor. Bazı klinikler verinin hiçbir yere çıkmamasını şart koşuyor; talep gerçek, çözüm henüz söz değil.

Tek kutu kurulum değerlendiriliyor. Taahhüt yok — mimari ve destek yükü ayrıca tartılacak, erken söz verilmez. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

Voice questions to Maya wait; Turkish recognition quality holds

In Verimaya Maya is asked in writing. Voice feels natural when hands are full; bad recognition would read the wrong balance out loud.

Voice input is under review. Turkish speech quality decides; it will not open on a weak model — wrong numbers are not acceptable. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Maya’ya sesli soru fikirde; Türkçe tanıma kalitesi kapıyı tutuyor

Verimaya’da Maya yazıyla soruluyor. Eller doluyken ses doğal gelir; yanlış tanıma yanlış bakiyeyi yüksek sesle okutur.

Sesli soru değerlendiriliyor. Türkçe ses tanıma kalitesi belirleyici; zayıf modelle açılmayacak, yanlış rakam riski kabul değil. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

In-app alerts will find the user — not before thresholds actually

In Verimaya alerts and the intervention list appear when you open the page. The warning does not find the user; silence costs misses.

Letting the alert find the user is under consideration. It will not open before thresholds settle; noise is not a feature — measurement first. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Panel bildirimi uyarıyı kullanıcıya götürecek; eşik oturmadan

Verimaya’da alarm ve müdahale listesi ilgili sayfaya girilince görünüyor. Uyarı kullanıcıyı bulmuyor; kaçırma pahasına sessiz kalıyor.

Bildirimin kullanıcıyı bulması değerlendiriliyor. Eşikler oturmadan açılmayacak; gürültü özellik sayılmaz, sıra ölçümde. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

The iOS scaffold carries Apple sign-in, Face ID and the core tabs

TickPort cannot reach TestFlight without a mobile scaffold. Real Supabase wiring is still demo-level.

A SwiftUI scaffold carries Portfolio, Ticker, Trade, Scanner, Feed and Settings. Widget and watchOS targets are stubs. The store checklist lives in docs. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

iOS iskeleti Apple giriş ile Face ID ve temel sekmeleri taşır

TickPort mobil iskelet olmadan TestFlight’a çıkamaz. Gerçek Supabase bağları henüz demo seviyesindedir.

SwiftUI iskelet Portfolio, Ticker, Trade, Scanner, Feed ve Settings taşır. Widget ve watchOS hedefleri stub. Mağaza checklist’i dokümanda. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Decision

Maya will open past five fixed questions with supervised free

In Verimaya Maya answers five fixed live-data questions today. When the office asks “and this?”, it hits a wall — built on purpose.

A constrained query layer will allow free questions about records. Widening stays supervised; open-ended invention stays closed. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Maya beş sabit sorunun ötesine denetimli serbest soruyla açılacak

Verimaya’da Maya bugün beş sabit soruyu canlı veriden cevaplıyor. Ofis “şunu da sorayım” deyince duvar var; duvar bilinçli örüldü.

Kısıtlı sorgu katmanıyla kayıtlarla ilgili serbest sorular gelecek. Genişleme denetimli olacak; açık uçlu uydurma kapalı kalır. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

Learning loop will later open a door from corrections into the AI

Verimaya already stores and reports corrections. Jumping from the report into the knowledge note is still a manual break, so learning stays half-done.

Next step: update the AI note straight from the report. Learning is designed to end in measurement — not in chat. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Öğrenme döngüsü düzeltmeden bilgi notuna kapıyı sonra açacak

Verimaya düzeltmeleri zaten kaydedip raporluyor. Rapordan bilgi bankası notuna gitmek hâlâ elle kopuk; öğrenme yarım kalıyor.

Sıradaki adım: rapordan doğrudan AI notunu güncellemek. Öğrenme ölçümle bitsin diye tasarlanıyor; sohbetle değil. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

Referral chain weighs counting the second hop — still only an

Verimaya counts direct referrals today. In the field real value often sits in the second hop; missing it mis-aims incentives.

A chain view is an idea, not a promise. Direct counts work; deeper hops need their own decision and wait for now. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Referans zinciri ikinci halkayı saymayı fikir olarak tartıyor

Verimaya bugün doğrudan referansı sayıyor. Sahada asıl değer sıkça ikinci halkada birikiyor; bu görünmeyince teşvik yanlış kalıyor.

Zincir görünümü fikir aşamasında — taahhüt yok. Doğrudan sayı çalışır; derin halka ayrıca karar ister, şimdilik bekler. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

AI suggestions will widen to phone — only after accuracy now

Verimaya only suggests appointment dates today. Phone and status appear in messages but stay out of scope on purpose.

After measurement the whitelist widens. Opening fields before accuracy holds means a wrong approval queue; measurement goes first. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

AI önerisi telefona genişleyecek; önce isabet ölçümü oturmalı

Verimaya bugün yalnız randevu tarihi için öneri üretiyor. Telefon ve durum da mesajda geçiyor ama kapsama bilinçli kapalı tutuluyor.

Ölçüm sonrası whitelist genişleyecek. İsabet oturmadan yeni alan açmak yanlış onay kuyruğu demektir; sıra ölçümde. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

Multiple titles: one person as doctor and coordinator is still

Verimaya allows one title per contact. In the field the same person holds two roles, so reports under-label or mis-label them and thanks drift.

Several roles on one person is under consideration. The single-title rule is deliberate; widening needs its own decision and model — closed for now. The office should not hunt the same answer in another place.

Çok ünvan: aynı kişi hem hekim hem koordinatör olmayı bekliyor

Verimaya’da kişi başına tek ünvan var. Sahada aynı insan iki görev taşıyınca rapor ya eksik ya yanlış etiketleniyor, teşekkür kayıyor.

Birden çok görev tek kişide değerlendiriliyor. Tek ünvan kuralı bilinçli; genişleme ayrı karar ve model ister, şimdilik kapalı. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

Incident log will cover hotel too — after the clinic loop proves

Verimaya incidents today hold clinic problems only. Hotel, transfer, sales and ads want the same ledger; opening early means a half list.

Expansion waits until the clinic loop works in the field. No promise yet; the queue waits on purpose. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Olay kaydı oteli de kapsayacak; önce klinik döngünün kanıtı şart

Verimaya olay kaydı bugün yalnız klinik sorunlarını tutuyor. Otel, transfer, satış ve reklam da aynı defteri istiyor; erken açmak yarım liste demek.

Genişleme klinik döngü sahada çalıştıktan sonra değerlendirilecek. Taahhüt yok; sıra bilinçli bekliyor. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Decision

Admin panel will manage members and limits without deploys — when

With one Bultine user, an admin panel is early debt. But editing limits in code also breaks at scale.

Member list, plan limits in DB, manual Pro — when a real base exists. Idea for now; not a promise. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface. Before real traffic, this sentence must still hold in the field.

Admin paneli üyeleri ve limitleri kodsuz yönetecek — kullanıcı

Bultine’da tek kullanıcı varken admin paneli erken borç. Ama limitleri koddan değiştirmek de ölçekte kırılır.

Üye listesi, plan limiti DB’den, manuel Pro — gerçek taban gelince. Şimdilik fikir; taahhüt değil. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Decision

Target languages beyond TR enter the menu only after that now

Bultine translation plumbing is parametric, but only Turkish was measured. Opening an unmeasured language would revive the old half-promise.

A new language needs a prompt map plus a measurement pass. A language in the menu is a quality claim; unclaimed languages stay out. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

TR dışı hedef dil menüye ancak o dil ölçülünce girecek artık

Bultine çeviri altyapısı parametrik ama yalnız Türkçe ölçüldü. Ölçülmemiş dili açmak eski “yarım söz” hatasına dönüşürdü.

Yeni dil = prompt haritası + ölçüm turu. Menüde dil görmek kalite iddiasıdır; iddiasız dil eklenmez. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Decision

An approved catalogue will use paid TTS and be checked by ear

MonoLingua dry-run audio does not ship to the store. Production also waits on book selection; unapproved batches are forbidden.

Chosen books will be produced with ElevenLabs. Eye and ear review is mandatory. R2 write verification will close with production. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Onaylı katalog ücretli TTS ile üretilecek ve kulakla denetlenecek

MonoLingua dry-run sesi mağazaya koymaz. Kitap seçimi bitmeden üretim de başlamaz; onaysız batch yasaktır.

Seçilen kitaplar ElevenLabs ile üretilecek. Göz ve kulak denetimi zorunlu. R2 yazma doğrulaması üretimle birlikte kapanacak. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Decision

RevenueCat will bind iOS Play and web into one isPremium gate

If MonoLingua stayed on Stripe alone, store IAP rules would break. Today isPremium is hard-coded true; nothing is locked.

iOS IAP, Play Billing and Stripe web will share one isPremium. The paywall will disclose price, renewal and cancel path. Restore is required. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

RevenueCat iOS Play ve web aboneliğini tek isPremium’a bağlayacak

MonoLingua yalnız Stripe ile kalırsa mağaza IAP kuralını kırar. Bugün isPremium sabit true; hiçbir şey kilitli değildir.

iOS IAP, Play Billing ve Stripe web tek isPremium olacak. Paywall fiyat, yenileme ve iptal yolunu ifşa edecek. Geri yükle zorunlu. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Gee FixRav OrbisMed and Atalay sites publish live from one repo

If FixRav Website opened a repo per client, a theme fix would fan out four ways. One monorepo was required.

geesmile.com, fixrav.com, orbismedclinics.com and atalayyorukoglu.com leave the same workspace. Each site has its own Pages project. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Aynı repodan Gee, FixRav, OrbisMed ve Atalay canlı yayınlanır

FixRav Website her müşteriye ayrı repo açarsa tema düzeltmesi dört yere dağılır. Tek monorepo şarttı.

geesmile.com, fixrav.com, orbismedclinics.com ve atalayyorukoglu.com aynı workspace’ten çıkar. Site başına Pages projesi vardır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Decision

Privacy and terms page shells exist while legal copy still waits

MonoLingua store submission requires a privacy URL. An empty shell still blocks beta, but shipping without routes was worse.

privacy, terms, KVKK, cookies, about, contact and account-deletion sit on the App Router. Final copy waits on Atalay approval. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Gizlilik ve koşullar için sayfa iskeletleri vardır; metin bekler

MonoLingua mağaza gönderiminde gizlilik URL’si zorunludur. Metinsiz iskelet beta’yı bloke eder ama route’suz da ilerlenemezdi.

gizlilik, kosullar, kvkk, cerez, hakkinda, iletisim ve hesap-silme App Router’da durur. Asıl metinler Atalay onayına bağlıdır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Copy uses British English; a calm trust tone is mandatory here

On FixRav Website health and agency copy, “Don’t miss out” language breaks trust. Source text lives in SecondBrain.

British English is the rule. A calm trust tone is required. Gee numeric assumptions stay marked pending Gülçin’s confirmation. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

İçerik British English ile yazılır; baskısız güven tonu şarttır

FixRav Website sağlık ve ajans metninde “Don’t miss out” dili güveni kırar. Kaynak SecondBrain’de durur.

British English kuraldır. Baskısız güven tonu istenir. Gee sayısal varsayımlar Gülçin doğrulamasına bağlı işaretlenir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzey

· Changelog

Landing, how-it-works and legal pages ship together with SEO

With Bultine the product ready, missing marketing and legal surfaces would leave launch half-done. False feature claims were cleaned too.

Landing, /nasil-calisir, privacy/terms/cookies, sitemap and JSON-LD. Placeholders stay visible; no invented company. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Landing, nasıl çalışır ve hukuki sayfalar SEO ile birlikte artık

Bultine ürünü varken pazarlama ve hukuki yüzey eksikse lansman yarım kalırdı. Olmayan özellik iddiası da ayrıca temizlendi.

Landing, /nasil-calisir, gizlilik/koşullar/çerezler, sitemap ve JSON-LD. Yer tutucular görünür; uydurma şirket yok. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Weekly portfolio summary is prepared for email on a scheduled job

TickPort wants a pulse without forcing a daily app visit. Writing summaries by hand does not scale.

Cron builds the weekly summary. A stop/target alert bridge sits in the same family. Without keys it skips gracefully. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice

Haftalık portföy özeti zamanlanmış iş ile e-posta için hazırlanır

TickPort kullanıcıyı her gün uygulamaya zorlamadan nabız vermek ister. Elle özet yazmak ölçeklenmez.

Cron haftalık özeti üretir. Stop hedef uyarı köprüsü de aynı ailede. Anahtar yoksa zarifçe atlanır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

On mobile onboarding, SRS and paywall screens flow without audio

While MonoLingua waited on reader architecture, account and review flows could not stay empty. Copying web code would also birth two sources.

Onboarding, SRS scoring and paywall screens shipped. recommend and estimateLevel moved into packages/core. One source stays. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Mobilde onboarding SRS ve paywall ekranları ses olmadan da akar

MonoLingua mobil okuyucu mimarisi beklerken hesap ve tekrar akışları boş kalmamalıydı. Web kopyası iki kaynak yaratırdı.

Onboarding, SRS puanlama ve paywall ekranları geldi. recommend ve estimateLevel packages/core’a taşındı. Tek kaynak korunur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

On mobile words paint with the same sync engine without estimates

MonoLingua had sync on web; if the phone plays audio while highlight lags, the learning bond breaks. Estimated timing is a v1 trap.

Nested Text, expo-audio currentTime and SyncEngine.activeIndexAt are used. The useWordSync pattern ports over. Real-device drift measurement is next. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Mobilde ses çalınca kelime aynı motorla boyanır ve tahmin yok

MonoLingua web’de senkron vardı; telefonda ses çalıp vurgu geride kalırsa öğrenme bağı kopar. Tahmini timing v1 tuzağıdır.

Nested Text + expo-audio currentTime + SyncEngine.activeIndexAt kullanılır. useWordSync deseni taşınır. Gerçek cihazda drift ölçümü sıradadır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Achievements page fills 17 tiers from real counters, never from

Bultine design notes said “start with mock”. But read state, sources, rules, briefing and AI usage already existed — fiction was unnecessary.

The catalogue is a pure module; a new badge is a data change. No comment or streak stats, because that data does not exist — no fake numbers. The office should not hunt the same answer in another place. The l

Başarımlar sayfası 17 kademeyi gerçek sayaçlardan dolduruyor

Bultine tasarım notu “mock ile başla” diyordu. Ama okundu, kaynak, kural, brifing, AI kullanımı zaten vardı — uydurma gerekmedi.

Katalog saf modül; yeni rozet veri değişikliği. Yorum ve giriş serisi yok çünkü o veriler yok — sahte istatistik eklenmedi. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Billing portal in settings: upgrade, cancel, keep self-service

Needing support email to cancel Bultine would be slow and fight RTBF. The self-service door had to stay open.

Settings billing opens the Stripe customer portal. Even when account-delete order changed, portal cancel remained. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Fatura portalı ayarlarda: yükselt, iptal et, self-servis kalsın

Bultine’da iptal için destek maili istemek hem yavaş hem RTBF ile çelişirdi. Self-servis kapı açık kalmalıydı.

Ayarlar faturalama sekmesi Stripe müşteri portalına gider. Hesap silme sırası değişse de portal iptali duruyor. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

A public ticker page shows price and fundamentals to any visitor

Without a shareable ticker, TickPort SEO and invites stay weak. Fundamentals also must not open unbounded.

The public ticker route serves price and fundamentals. Allowlist and cache limits apply. Login is not required. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twic

Açık ticker sayfası fiyatı ve temel veriyi ziyaretçiye gösterir

TickPort paylaşılabilir ticker yoksa SEO ve davet zayıf kalır. Temel veri de sınırsız açılmamalıydı.

Genel ticker yolu fiyat ve fundamentals sunar. Allowlist ve önbellek sınırları vardır. Giriş şart değildir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Dikte and the agent share only the mic; meetings run alongside

If Dikte queued every job in one line, an agent command would lock dictation. Meetings would hit the same lock.

Dictation, agent and meeting states are separate. Only the microphone is shared. Pressing the hotkey while busy does nothing; there is no hidden queue. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Dikte ile ajan yalnız mikrofonu paylaşır; toplantı yan yana yürür

Dikte tek kuyrukta her işi sıraya soksaydı ajan komutu dikteyi kilitlerdi. Toplantı da aynı kilide girerdi.

Dikte, ajan ve toplantı durumları ayrıdır. Yalnız mikrofon paylaşılır. Meşgulken kısayola basmak hiçbir şey yapmaz; gizli kuyruk yoktur. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi.

· Changelog

Signup can require an invite code when open registration is shut

Open signup in early TickPort ruins quality. The code is ready, but the door stays env-controlled.

With apply-only and invite codes on, only invited users enter. A waitlist table is ready. Without codes, anyone can still register. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Kayıt davet kodu isteyebilir; açık kayıt kapısı bilerek kapanır

TickPort erken dönemde herkese açık kayıt kaliteyi bozar. Kod hazır ama kapı env ile tutulur.

Apply-only ve davet kodları açılınca yalnız kodlular girer. Waitlist tablosu hazırdır. Kod yoksa herkes kayıt olabilir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor

· Changelog

Dikte keeps desktop differences in tables, not as scattered ifs

Dikte lives on three desktops. Spreading platform branches through every function would break tests and new features.

Clipboard, capture and hotkey differences sit in named tables. The platform is read inside the chooser each time, never cached at import. New behaviour follows the same shape. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Dikte masaüstü farklarını tabloda tutar; koda dağınık if yazılmaz

Dikte üç masaüstünde yaşar. Platform dallarını her fonksiyona yaymak testi ve yeni özellik eklemeyi kırardı.

Pano, kayıt ve kısayol farkları adlı tablolarda durur. Platform seçicide her seferinde okunur, import’ta önbelleğe alınmaz. Yeni davranış aynı şekle girer. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

If you turn cleanup off, Dikte pastes the raw transcript as it is

Sometimes you want Dikte to skip the model: quotes, verse or deliberate fillers should not be “fixed”. Forced cleanup would block that.

Turn cleanup off in Settings. The pipeline produces text and pastes; there is no second model call. The thinking-level control only matters while cleanup is on. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Temizlemeyi kapatırsan ham transkript olduğu gibi yapıştırılır

Dikte bazen modeli aradan çıkarmak ister: alıntı, şiir veya bilinçli dolgular bozulmasın. Zorunlu temizleme buna engel olurdu.

Ayarlardan temizleme kapatılır. Pipeline yazıyı üretir ve yapıştırır; ikinci model çağrısı yok. Düşünme seviyesi kutusu yalnız temizleme açıkken anlamlıdır. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Cloud path streams text while you speak; keys stay on the server

On Dikte’s BYOK path you waited until recording stopped, and keys lived on the desktop. Streaming text while you talk cuts latency; keeping keys off the client mattered for dogfooding too.

The new cloud strategy streams audio to the backend over a WebSocket; Deepgram writes, Haiku cleans, partial text returns. No accounts or billing yet — a shared token for our own use.

Bulut yolu konuşurken metni akıtır; anahtarlar sunucuda kalır

Dikte BYOK yolunda kayıt bitene kadar bekleniyordu ve anahtar masaüstündeydi. Konuşurken gelen metin gecikmeyi düşürür; anahtarı istemciden kaldırmak da dogfood için gerekliydi.

Yeni bulut stratejisi sesi WebSocket ile backend’e akıtır; Deepgram yazar, Haiku temizler, kısmi metin geri döner. Hesap ve faturalama yok — şimdilik paylaşımlı token ile kendi kullanımımız için.

· Changelog

The content pipeline runs in dry-run until paid runs get approval

If MonoLingua ran paid TTS without approval, bill and quality control would vanish. A half pipeline would also never ship store audio.

Gutenberg and Standard Ebooks ingest, chunking, timestamped TTS, Opus and merge run in dry-run. Real production needs a separate explicit approval. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

İçerik pipeline’ı dry-run ile koşar; ücretli üretim onay ister

MonoLingua ücretli TTS’i onaysız çalıştırırsa fatura ve kalite kontrolü kaybolur. Yarım pipeline da mağaza sesi üretmezdi.

Gutenberg/Standard Ebooks ingest, chunk, TTS timestamp, Opus ve birleştirme dry-run’dadır. Gerçek üretim ayrı açık onay ister. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

The mobile app carries a three-tab shell and a full-screen reader

If MonoLingua beta runs on iOS and Android, a smoke screen is not enough. The same information architecture had to live on mobile too.

Expo carries Library, Review and Profile tabs. The reader opens full screen. packages/core holds the shared logic. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Mobil uygulama üç sekmeli iskeleti ve tam ekran okuyucuyu taşır

MonoLingua beta’sı iOS/Android’de yapılacaksa smoke ekranı yetmez. Web ile aynı bilgi mimarisi mobilde de durmalıydı.

Expo’da Kütüphane, Tekrar, Profil tab bar’ı vardır. Okuyucu tam ekran açılır. packages/core paylaşılan mantığı taşır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Settings offers export and account deletion rights to every user

If TickPort denied EU users their rights, launch stays half-done. Rights must not hide in a secret menu either.

GDPR export and delete APIs exist. Cookie consent and legal pages sit beside them. The path is visible from Settings. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Ayarlarda veri indirme ve hesap silme hakları kullanıcıya sunulur

TickPort AB kullanıcısına hak tanımazsa lansman yarım kalır. Hak gizli menüde de olmamalıydı.

GDPR export ve delete API’leri vardır. Çerez onayı ve hukuki sayfalar yanındadır. Süreç ayarlardan görünür. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Local code cannot write production; label conflicts are refused

MonoLingua local guest rows had landed on live Neon. A lying label would silently pollute production.

DB_ENV and env-guard refuse label and target conflicts. Destructive scripts need —confirm in production. The wrong-write door closes. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Lokal kod production DB’ye yazamaz; etiket çelişkisi reddedilir

MonoLingua’da lokal misafir kayıtları canlı Neon’a düşmüştü. Etiket yalanı sessizce production’ı kirletirdi.

DB_ENV ve env-guard etiket/hedef çelişkisini reddeder. Yıkıcı script’ler production’da —confirm ister. Yanlış yazma kapısı kapanır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Stripe opens Pro gates; backtest and alert email may stay locked

If TickPort left paid surfaces ungated, revenue dies and features leak. Gates had to be clear.

Checkout, portal and webhooks write plan state. Pro unlocks backtest, CSV confirm and alert email. Terms and privacy draft pages sit ready. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Stripe Pro kapılarını açar; backtest ve uyarı maili kilitli kalır

TickPort ücretli yüzeyi anahtarsız bırakırsa gelir yok, özellik de sızar. Kapılar net olmalıydı.

Checkout, portal ve webhook planı yazar. Pro backtest, CSV onay ve uyarı e-postasını açar. Şartlar ve gizlilik taslak sayfaları durur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Text translates to plain English; a rate limit protects the quota

TickPort jargon lines push new investors away. Unlimited translation would also eat the bill.

An AI plain-English endpoint exists. Per-IP per-minute limits return 429. Without a key it stays a no-op. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Metin sade İngilizceye çevrilir ve hız sınırı kotayı da korur

TickPort jargon satırları yeni yatırımcıyı iter. Sınırsız çeviri ise faturayı yerdi.

AI sade İngilizce uç noktası vardır. Dakikada IP başına limit 429 döner. Anahtar yoksa no-op kalır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

The App Guide explains scanner and CSV steps in short clear copy

As TickPort gains features, “where is it?” grows. Long docs go unread; a short guide had to sit in the menu.

Guide gives a scanner CSV example and a Settings link. The nav label is App Guide. Setup hunting shortens. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

App Guide sayfası tarayıcı ve CSV adımlarını kısa ve net anlatır

TickPort özellik ekledikçe “nereden?” sorusu büyür. Uzun doküman okunmaz; kısa rehber menüde durmalıydı.

Guide tarayıcı CSV örneği ve Ayarlar linkini verir. Menü etiketi App Guide’dır. Kurulum avı kısalır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Learn articles publish and short teaser cards sit under the Feed

Without education, TickPort users live on signals alone. Articles cut off from Feed also go unread.

Twelve articles are live. The latest two tease under the Feed digest. CTAs match the topic. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Learn makaleleri yayında; Feed altında kısa teaser kartları durur

TickPort eğitim içeriği yoksa kullanıcı yalnız sinyale kalır. Makale Feed’den kopuksa da okunmaz.

On iki makale yayında. Feed digesti altında son ikisi teaser olur. Konuya göre CTA eşleşir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Ads metrics will be daily summaries; they will not flow without

Verimaya reports want spend and conversion in one language. Metric endpoints are ready; live account data does not flow yet — on purpose.

Spend and conversions will arrive as daily summaries. Code is ready; no go-live without legal and account approval — no half data. The de The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Ads metrikleri günlük özet olacak; sağlayıcı onayı olmadan akmaz

Verimaya raporları dönüşüm ve harcamayı aynı dilde istiyor. Metrik uçları hazır; gerçek hesap verisi henüz akmıyor, bu bilinçli.

Harcaması ve dönüşüm günlük özet olarak gelecek. Kod hazır; hukuk ve hesap onayı olmadan canlıya alınmaz — yarım veri yok. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Ads connection is ready to pull spend; live account approval

Verimaya Real ROAS stays incomplete without ad spend. Connection code is written; live account and provider approval sit at the door.

Once an ads account links, campaign spend will pull daily. Status is external approval — no go-live before keys and account acceptance. The d The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Ads bağlantısı harcamayı çekmeye hazır; canlı hesap onayı artık

Verimaya Gerçek ROAS’ı reklam harcaması olmadan eksik kalıyor. Bağlantı kodu yazıldı; canlı hesap ve sağlayıcı onayı kapıda duruyor.

Reklam hesabı bağlanınca kampanya harcaması günlük çekilecek. Durum harici onay — anahtar ve hesap kabulü gelmeden canlıya alınmaz. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Multi-tenant keeps each clinic boxed in, limited strictly by team

Verimaya hosts many offices on one product. One clinic seeing another’s patients was unacceptable; a leak counts as product failure.

Each clinic and agency sees its own data; team roles limit access. Looking into a neighbour’s box must be impossible — and it is. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Çok kiracılı yapıda her klinik kendi kutusunda, rolle sınırlı

Verimaya birden fazla ofisi aynı ürünle taşıyor. Bir kliniğin hastasını diğerinin görmesi kabul edilemezdi; sızıntı ürün hatası sayılır.

Her klinik ve acente kendi verisini görür; ekip rolleri erişimi sınırlar. Komşu kutuya bakmak mümkün olmamalı — ve değildir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

In-product AI scorecard auto-fills 43 criteria from live tenant

Inside Verimaya the readiness scorecard had to differ from the public free form. Real tenant measurement already lived in the panel — use it.

Measurement profile, 43 criteria, auto-fill and comparison sit on /scorecard. The public card is the door; in-product is the operation itself. The office should not hunt the same answer in another place. The That limit was drawn on purpose.

Ürün içi AI karnesi 43 kriteri tenant verisiyle otomatik doldurur

Verimaya panelinde hazırlık karnesi dışarıdaki ücretsiz formdan ayrı durmalıydı. İçeride gerçek tenant ölçümü zaten vardı, boşa gitmesin.

Ölçüm profili, 43 kriter, otomatik dolum ve karşılaştırma /scorecard’ta. Dış karne kapıdır; iç karne operasyonun kendisidir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Maya live data: database gives the number, model only chooses the

Asking Maya for a balance in Verimaya risked invented figures. One wrong answer would end office trust in a single day.

Balance, receivables, appointments, period summary and untouched contacts come from live data. The model picks the query; permission is checked per tool. T The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Maya canlı veri: rakamı veritabanı verir, model yalnız sorgu

Verimaya’da Maya’ya bakiye sorulunca model uydurma rakam riski taşıyordu. Tek yanlış cevap ofisin güvenini bir günde bitirirdi.

Bakiye, açık alacak, randevu, dönem özeti ve temassız kişiler canlı veriden gelir. Model sorguyu seçer; izin araç başına kontrol edilir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

inlineStylesheets inlines CSS into HTML with no extra stylesheet

On small FixRav Website marketing pages, an extra CSS round-trip eats LCP. A separate file was not required.

Astro config sets inlineStylesheets to always. Critical CSS arrives with the HTML. Theme CSS inlines on the same path. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

inlineStylesheets CSS’i HTML’e gömer; ayrı stil isteği oluşmaz

FixRav Website küçük pazarlama sayfalarında ekstra CSS round-trip LCP’yi yer. Harici dosya şart değildi.

Astro yapılandırmasında inlineStylesheets always aktiftir. Kritik CSS HTML ile gelir. Tema CSS’i de aynı yoldan gömülür. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüz

· Changelog

_headers sets security headers plus immutable caching for _astro

Without security headers, a static FixRav Website site stays weakly protected. Asset cache also must not break on every deploy.

Cloudflare recognises the _headers file. Security headers and immutable _astro/* arrive. They ship in the site scaffold. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

_headers güvenlik başlıkları ve immutable _astro cache tanımlar

FixRav Website statik sitede güvenlik başlığı yoksa tarayıcı koruması zayıf kalır. Asset cache de her deploy’da kırılmamalıydı.

Cloudflare _headers dosyasını tanır. Güvenlik başlıkları ve _astro/* immutable gelir. Site iskeletine dahildir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Stripe Free/Pro checkout and webhooks write plan state onto the

If Bultine limits lived only in copy, payment would be theatre. Plan columns also must not be user-writable.

Checkout plus webhooks write plan / plan_status. Users cannot update those columns; writes go through the service_role door. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Stripe Free/Pro checkout ve webhook planı profiles satırına yazar

Bultine limitleri metinde durup DB’de yoksa ödeme tiyatrosu olurdu. Plan kullanıcının yazabileceği kolon da olmamalıydı.

Checkout + webhook plan / plan_status yazar. Kullanıcı bu kolonları güncelleyemez; yazma service_role kapısından. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Rules evaluate on ingest when articles arrive — a failure never

In Bultine, running rules by hand later gets forgotten. But an evaluation error must not kill the fetch either.

An ingest hook evaluates in bulk via service_role. Errors log; fetch continues. Backfill is capped at the last 500. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Yeni makale gelince kurallar ingest’te değerlendirilir; akış

Bultine’da kuralı sonradan elle koşturmak unutulur. Ama değerlendirme hatası çekimi de düşürmemeliydi.

Ingest kancası service_role ile küme değerlendirir. Hata loglanır, çekim devam eder. Backfill son 500 ile sınırlı. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Daily Log automation writes EN and TR from commits and publishes

Hand-writing FixRav Website Log misses days. Commits carry the story, but nobody opened the notebook.

launchd runs run.sh at 21:30. Claude writes 350–400 characters under LOG-PROMPT rules. Commit and push land on Cloudflare. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice. That limit was drawn on purpose. It stays on one surface so the answer is not hunte

Günlük Log otomasyonu commit’lerden EN ile TR yazıp yayınlar

FixRav Website Log’u elle yazmak günleri kaçırır. Commit’ler hikâyeyi taşır ama kimse deftere bakmazdı.

launchd 21:30’da run.sh çalıştırır. Claude LOG-PROMPT kurallarıyla 350–400 karakter yazar. Commit + push Cloudflare’e düşer. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek

· Changelog

Rules engine tags, highlights or mutes by keyword — matches stay

Noise in the Bultine stream differs by person. Writing mute onto a shared article would poison everyone.

Condition → action CRUD is real. Matches live in a per-user table. Word boundaries hold; “AI” does not fire inside “Rain”. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Kural motoru anahtar kelimeyle etiketler, öne çıkarır veya artık

Bultine akışında gürültü kişiden kişiye değişir. Susturmayı herkese yazmak paylaşımlı makaleyi bozardı.

Koşul → aksiyon CRUD gerçek. Eşleşme kullanıcıya ait tabloda. Kelime sınırı var; “AI” “Rain” içinde patlamaz. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Log keeps entries as paired English and Turkish markdown files

If Atalay Log on FixRav Website stayed monolingual, half the readers would be shut out. Translation must not vanish under a separate slug.

Paired YYYY-MM-DD-slug-en.md and -tr.md files live under src/content/log. kind is changelog or decision. The home page sorts by date. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Log karar ve changelog’u EN ile TR çift dosyada yan yana tutar

FixRav Website / Atalay Log’da tek dil kalırsa okur yarısı dışarıda kalır. Çeviri ayrı slug’da kaybolmamalıydı.

src/content/log altında YYYY-MM-DD-slug-en.md ve -tr.md çiftleri durur. kind changelog veya decision’dır. Ana sayfa tarihle sıralar. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Atalay’s site leads with Log on custom Astro and WebGL background

A FixRav Website agency theme does not fit a personal notebook. atalayyorukoglu.com needed its own language.

No theme package; a custom shader background exists. Content is the Log collection. Covers are unused; the style is an inline notebook. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Atalay sitesi temasız Astro ve WebGL arka planla Log’u öne alır

FixRav Website ajans teması kişisel deftere uymaz. Atalayyorukoglu.com ayrı dil isterdi.

Tema paketi yok; özel shader arka plan vardır. İçerik Log koleksiyonudur. Cover görseli artık kullanılmaz; inline defter stilidir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde d

· Changelog

theme-ray carries OrbisMed Travel on the ray layout family live

Inside FixRav Website, the old orbismed skeleton clashed with the travel brand. The live path had to be clear.

orbismedtravel plus theme-ray is live. theme-saga remains as a package with no bound site. The domain is orbismedclinics.com. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

theme-ray OrbisMed Travel’ı ray layout ailesiyle canlıda taşır

FixRav Website’te eski orbismed iskeleti ile travel markası çakışıyordu. Canlı yol netleşmeliydi.

orbismedtravel + theme-ray yayındadır. theme-saga paket olarak durur ama bağlı site yoktur. Domain orbismedclinics.com’dur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde

· Changelog

Briefing does not consume AI quota — cost is logged, the fairness

If Bultine briefing also ate quota, cheap summary calls could starve the flagship. Once a day is already a structural cap.

ai_usage.kind separates briefing; quota counts only summary plus translation. Cost stays visible; quota is not eaten. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Brifing AI kotasını tüketmez; maliyet loglanır, adalet freni ayrı

Bultine’da brifing de kotadan düşse ucuz özet çağrıları amiral gemisini aç bırakırdı. Günde bir zaten yapısal sınır.

ai_usage.kind briefing’i ayırır; kota yalnız summary + translation sayar. Maliyet görünür, kota yemez. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

theme-epic presents FixRav with blue primary and full-bleed bands

If FixRav Website used a clinic theme for the agency site, positioning would read wrong. A separate language was needed.

Inter, #2563EB, navy inverted bands, Badge, Section, StatsBand and LogoStrip exist. fixrav.com carries a work collection. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

theme-epic FixRav’ı mavi primary ve full-bleed bantlarla anlatır

FixRav Website kendi ajans sitesinde klinik teması kullanırsa konum yanlış okunur. Ayrı dil gerekti.

Inter, #2563EB, koyu lacivert inverted bantlar, Badge Section StatsBand LogoStrip vardır. fixrav.com work koleksiyonunu taşır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek y

· Changelog

Daily briefing compiles your sources in Turkish — structurally

In Bultine, single articles are not enough; the morning “what matters?” needs its own surface. Briefing had to arrive without eating summary quota.

An AI compilation page from the user’s sources. One-per-day is structural. Output is Turkish; truncation bugs were fixed. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Günlük brifing kaynaklarından Türkçe derleme üretir; günde bir

Bultine’da tek tek makale yetmez; sabah “ne önemli?” sorusu ayrı yüzey ister. Brifing özet kotasını yemeden gelmeliydi.

Kullanıcının kaynaklarından AI derleme sayfası. Günde bir yapısal limit. Çıktı Türkçe; kesilme hatası düzeltilmiş durumda. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Language badge only on real translation: DE → TR, never a lying

Bultine’s old badge said EN → TR even with no translation. That was a lie; it was removed. With real translation it returned in honest form.

The badge shows only while a translation is displayed, with the model-detected language. No translation means no badge — and a test proves it. The office should not hunt the same answer in another place. The l

Dil rozeti yalnız gerçek çeviride: DE → TR, yalan EN → TR yok

Bultine eski rozeti çeviri yokken bile EN → TR yazıyordu. Yalandı; kaldırılmıştı. Çeviri gelince dürüst biçimle döndü.

Rozet yalnız çeviri gösterilirken, modelin tespit ettiği dille. Çeviri yoksa hiç yok — ayrı testi var. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Content translation builds TR in one Haiku call — the result is

Bultine’s founding claim was reading foreign news in your language. The claim was removed while the feature was missing; now it returns honestly.

One call returns source language, TR title and summary. Translation belongs to the article, not the user. Only tr is active — unmeasured languages stay off the menu. The office should not hunt the same answer in another place.

İçerik çevirisi tek Haiku çağrısında TR üretir; sonuç paylaşımlı

Bultine’ın çıkış iddiası yabancı haberi kendi dilinde okutmaktı. Özellik yokken iddia kaldırılmıştı; şimdi dürüstçe geri geldi.

Tek çağrıda kaynak dil, TR başlık ve özet. Çeviri makaleye ait, kullanıcıya değil. Yalnızca tr aktif — ölçülmemiş dil menüde yok. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

AI label stays honest — with no summary or translation the badge

Early Bultine UI showed an AI badge even with no AI content. EU AI Act and trust broke together.

The label appears only for real AI output. Translation is AI too; it is covered. The original title never disappears. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface. Before r

AI etiketi dürüst: özet veya çeviri yoksa rozet hiç görünmez

Bultine erken arayüzde AI rozeti içerik yokken de duruyordu. EU AI Act ve güven aynı anda kırılıyordu.

Etiket yalnız gerçek AI çıktısı varken. Çeviri de AI’dır; kapsanır. Orijinal başlık kaybolmaz. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

AI summary writes one or two sentences with Haiku — label only

Bultine’s title plus excerpt still left some pieces unread. Showing “AI generated” with no summary was a lie.

Haiku writes a one–two sentence English summary; cost is logged. The badge appears only when a summary exists. The summary belongs to the article — once, for every subscriber. The office should not hunt the same answer in another place. The

AI özet Haiku ile 1-2 cümle yazar; etiket yalnız gerçek özet

Bultine başlık + kısa alıntıyla yetinince bazı makaleler hâlâ okunmadan kalıyordu. Ama “AI ile oluşturuldu”yu boşken yazmak yalandı.

Haiku 1-2 cümle İngilizce özet üretir; maliyet loglanır. Rozet yalnız özet varken. Özet makaleye aittir — bir kez, tüm abonelere. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Daily AI quota is Free 10 / Pro 50 summaries — cache hits do not

Unlimited AI in Bultine would let one user eat the bill. Quota is a fairness brake; sharing already keeps unit cost low.

Quota is atomic in the DB. Viewing an already-summarised article does not consume. Translation counts too; briefing does not. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Günlük AI kota Free 10 / Pro 50 özet; önbellek kotayı yemez artık

Bultine’da AI sınırsız olsa tek kullanıcı faturayı yerdi. Kota adalet freni; maliyet modeli paylaşımda zaten ucuz.

Kota DB’de atomik. Zaten özetlenmiş makaleyi görmek düşmez. Çeviri de aynı kotadan sayılır; brifing sayılmaz. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

theme-ode carries Gee with Cormorant type on a calm cream ground

Inside FixRav Website, Gee Smile needs calm trust; purple-gradient templates would kill the brand.

Self-hosted Cormorant, cream #F0EDE5 and burgundy primary arrive via site.css. geesmile.com uses this theme. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

theme-ode Gee’yi Cormorant ve krem zeminle sakin markada taşır

FixRav Website’te Gee Smile sağlık güveni ister; mor gradyan şablonları markayı öldürürdü.

Cormorant self-host, krem #F0EDE5, bordo primary site.css ile gelir. geesmile.com bu temayı kullanır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

You can transcribe in the cloud with your own OpenAI or Groq key

Dikte had to open a door for people who want a faster or different model without breaking the local default. Keys still had to stay on the machine.

Pick a provider in Settings; keys live in a 0600 config file. Cleanup can be OpenRouter, Claude Code or Codex. Empty fields fall back to environment variables. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Kendi OpenAI veya Groq anahtarınla bulutta yazıya çevirebilirsin

Dikte yerel varsayılanı bozmadan daha hızlı veya başka bir model isteyenlere kapı açmalıydı. Anahtarın makinede kalması da şarttı.

Ayarlarda sağlayıcı seçilir; anahtarlar 600 izinli config dosyasında durur. Temizleme OpenRouter, Claude Code veya Codex olabilir. Boş bırakırsan ortam değişkenleri okunur. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

WhatsApp buttons turn each tap into a measurable dataLayer event

On Gee inside FixRav Website, the real conversion is WhatsApp. Blind taps teach ads nothing.

Floating WhatsApp and the contact card send whatsapp_click. The number comes from site.ts. The form is a temporary mailto or WhatsApp bridge. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

WhatsApp düğmesi tıklamayı ölçülebilir dataLayer olayına çevirir

FixRav Website / Gee’de asıl dönüşüm WhatsApp’tadır. Tıklama kör kalırsa reklam öğrenemez.

Floating WhatsApp ve contact kartı whatsapp_click yollar. Numara site.ts’ten gelir. Form geçici mailto/WhatsApp köprüsüdür. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyo

· Changelog

macOS gets a Dikte.app bundle, menu-bar icon and install script

Shipping the Linux tray model unchanged would miss Mac menu-bar and package expectations. Hotkeys are also not written into a Linux-style config file.

A Dikte.app build script, menu-bar icons and install-macos.sh shipped. The listener captures keys itself. Meetings still need BlackHole or Loopback. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

macOS’ta Dikte.app paketi ile menü ikonu ve kurulum betiği gelir

Dikte Linux tepsi modelini Mac’e olduğu gibi taşımak menü çubuğu ve paket beklentisini karşılamazdı. Kısayol kaydı da Linux’taki gibi dosyaya yazılmaz.

Dikte.app build scripti, menü çubuğu ikonları ve install-macos.sh geldi. Dinleyici tuşları kendi yakalar. Toplantı için BlackHole veya Loopback gerekir. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

install.sh sets the command, menu entry, login start and hotkeys

Wiring Dikte services and hotkeys by hand every time would leave Linux setup half-done. Updates would repeat the same labour.

./install.sh installs the command, optional keys and login start. update.sh pulls the release; uninstall.sh removes it without wiping settings. Wayland and X11 stay in separate tables. That limit was drawn on purpose.

install.sh komutu, menüyü, oturum açılışını ve kısayolları kurar

Dikte’yi her seferinde elle servis ve kısayol bağlamak Linux’ta kurulumu yarım bırakırdı. Güncellemede de aynı iş tekrar ederdi.

./install.sh komutu kurar, isteğe bağlı tuşları yazar, oturumda başlatır. update.sh sürümü çeker; uninstall.sh ayarları silmeden kaldırır. Wayland ve X11 tabloları ayrıdır. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Every setting has a CLI verb and scripts can read results as JSON

If Dikte were mouse-only, agents and scripts could not drive it. Forcing a GUI would kill automation.

dikte record, transcribe, config, meeting and the rest sit in dikte --help. Most accept --json. Verbs that need a mic talk to the running app. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice. That limit was drawn on purpose.

Her ayarın bir komut satırı fiili vardır ve betikler JSON okur

Dikte yalnız fareyle yönetilirse ajanlar ve betikler ürünü süremezdi. GUI zorunluluğu otomasyonu öldürürdü.

dikte record, transcribe, config, meeting ve diğer fiiller dikte --help listesinde. Çoğu --json kabul eder. Mikrofon isteyenler çalışan uygulamaya bağlanır. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

The UI ships in Turkish and English and follows system language

Dikte was born for Turkish dictation, but English-only settings would push away English desktops.

UI strings exist in both languages. The default follows the system; Settings can override. Product language and dictation language stay separate. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice. That limit was drawn on purpose.

Arayüz Türkçe ve İngilizce gelir; varsayılan sistem dilini izler

Dikte’nin kendisi Türkçe dikte için doğdu ama ayar metinleri tek dilde kalsa İngilizce masaüstü kullanıcıyı iterdi.

Arayüz metinleri iki dilde. Varsayılan sistem dilini izler; Ayarlar’dan değiştirilir. Ürün dili ile dikte dili karışmaz. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi.

· Changelog

Sentry and PostHog stay no-op without keys and verify live events

If MonoLingua flew blind, beta diagnosis would be impossible. SDKs crashing without keys would also break local development.

Sentry and PostHog are env-gated. Scrubbing exists. Without keys they no-op. First-error was verified in production. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Sentry ve PostHog anahtarsız no-op kalır; canlı olay doğrulanır

MonoLingua kör uçarsa beta teşhisi imkânsızdır. Anahtarsız ortamda SDK patlaması da geliştirmeyi kırardı.

Sentry ve PostHog env-gated’tır. Scrubbing vardır. Anahtar yoksa no-op. Canlıda first-error doğrulandı. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Paywall appears when a chapter ends and never blocks first launch

An early MonoLingua paywall would kill activation. Still, where the paid gate opens had to be explicit.

The trigger is only chapter ended or Next chapter. Annual is pre-selected and a seven-day trial line sits there. isPremium is still a stub true. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Paywall bölüm bitince çıkar; açılışta ve onboarding’de engel yok

MonoLingua erken paywall aktivasyonu öldürür. Yine de ücretli kapının nerede açılacağı net olmalıydı.

Tetik yalnız bölüm ended veya Sonraki bölüm’dür. Yıllık ön-seçilidir, 7 gün deneme metni durur. isPremium şimdilik stub true’dur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Downloads filter and size summary exist; delete-all is one tap

If MonoLingua downloads chapters but never shows “what did I keep?”, disk bloats. Deleting audio without timestamps would also kill offline highlight.

A Downloads chip sits in the library. Settings shows total size and delete-all. Audio and JSON leave together. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

İndirilenler filtresi ve boyut özeti vardır; silme tek tuştur

MonoLingua bölüm indirir ama “ne indirdim?” yoksa disk şişer. Ses ile timestamp ayrı silinirse offline vurgu da ölürdü.

Kütüphanede İndirilenler çipi vardır. Ayarlar toplam boyutu ve hepsini sil’i gösterir. Ses ve JSON birlikte gider. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Three tabs carry library review and profile; reader is fullscreen

If MonoLingua hid SRS behind Back only, the feature would be treated as missing. Divergent web and mobile menus would also double maintenance.

Three tabs sit on every chromed screen. The reader is not a tab and opens chrome-less. A review card is also discoverable in the library. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Üç sekme kütüphane tekrar ve profili taşır; okuyucu tam ekrandır

MonoLingua’da SRS yalnız Geri ile bulunuyorsa özellik yok sayılır. Web ile mobil menü ayrışırsa bakım ikiye katlanırdı.

Üç sekme her chrome’lu ekranda durur. Okuyucu sekme değildir, chrome’suz açılır. Tekrar kartı kütüphanede de keşfedilir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Settings holds language, speed, voice, theme and storage together

If MonoLingua kept the target language hard-coded to Turkish, users could not choose. Scattered settings would also hide delete and downloads.

Target language, default speed, voice preference, theme, SRS reminders and storage management live in Settings. Account delete moved here too. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Ayarlar çeviri dili hız ses tema ve depolamayı tek yerde tutar

MonoLingua’da hedef dil tr sabit kalırsa kullanıcı seçemez. Ayarlar dağılınca hesap silme ve indirilenler de kaybolurdu.

Hedef çeviri dili, varsayılan hız, ses tercihi, tema, SRS bildirimi ve depolama yönetimi Ayarlar’dadır. Hesap silme buraya taşındı. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Audio is read through a signed R2 URL with a fifteen-minute TTL

If MonoLingua served audio bytes from the API, cost and security would rot. An open bucket would also be a public warehouse.

SigV4 presign issues a fifteen-minute TTL. LocalAssetProvider and R2AssetProvider are selectable. The read path stays separate from write. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Ses kısa ömürlü imzalı R2 adresiyle okunur; TTL on beş dakikadır

MonoLingua ses baytını API’den servis ederse maliyet ve güvenlik bozulur. Açık kova da herkese açık depo olurdu.

SigV4 presign 15 dk TTL üretir. LocalAssetProvider ile R2AssetProvider seçilir. Okuma yolu yazmadan ayrıdır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde

· Changelog

Chapter downloads pull audio and timestamps together as one unit

If MonoLingua downloaded audio alone offline, highlighting would die. A signed URL expiring mid-download would also leave a half file.

Audio and timestamps JSON download and delete together. Size is verified. Expired URLs refresh. Cache Storage and expo-file-system are used. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Bölümde ses ve damga birlikte iner ve yarım indirme sayılmaz

MonoLingua offline’da yalnız ses inerse highlight ölür. İmzalı URL ortada expire olursa indirme de yarım kalırdı.

Ses ve timestamps JSON birlikte iner, birlikte silinir. Boyut doğrulanır. URL expire olursa yenilenir. Cache Storage / expo-file-system kullanılır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Account deletion runs from profile and settings for GDPR rights

If MonoLingua denied delete rights to EU and TR users, store trust would break. An API without UI would also stay untappable.

DELETE /account cascades linked data. It triggers from profile and settings. A web account-deletion request page also sits as a shell. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Hesap silme profil ve ayarlardan çalışır ve GDPR’ye hazırdır

MonoLingua AB ve TR kullanıcıya silme hakkı tanımazsa mağaza ve güven kırılır. Arayüzsüz API sözü de tıklanamaz kalırdı.

DELETE /account bağlı veriyi cascade ile düşürür. Profil ve ayarlardan tetiklenir. Web hesap-silme talebi sayfası da iskelet olarak durur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

A community report is recorded; an admin can delete or dismiss it

In TickPort, Report with nothing behind it is theatre. Without an admin screen the queue cannot work.

A report is filed with a chosen reason. Admins see open cases with the post. Turnstile blocks bots on signup and compose. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice. That limit was drawn on purpose. It stays on one surface so the answer is not hunted

Topluluk şikâyeti kayda düşer; yönetici postu siler veya kapatır

TickPort’ta şikâyet et arkası boşsa tiyatrodur. Yönetici ekranı olmadan kuyruk işlemez.

Neden seçilerek rapor yazılır. Admin açık raporları postuyla görür. Turnstile kayıt ve yazmada botu keser. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

You can ask the room while spam guards limit each community post

If TickPort were charts only, it would stay lonely. An open composer still must not become URL spam and repeats.

A question-style composer sits in the Ask the room card. URL dumps, character floods and 60s duplicates are blocked. IP and per-user limits apply. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Toplulukta odaya soru sorulur; spam koruması yazıyı sınırlar

TickPort yalnız grafikse yalnız kalır. Ama açık yazı alanı URL çöplüğü ve tekrar spam’e dönmemeliydi.

Soru stili besteci Ask the room kartında. URL dump, karakter seli ve 60 saniye tekrar engellenir. IP ve kullanıcı kotası vardır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

LLM cost tracking flags tenant calls and spend early with colour

On the Verimaya platform, model bills should not surprise anyone. Per-tenant visibility was missing; high fallback rates stayed hidden too.

Platform admins see calls, tokens and cost; high fallback gets a colour flag. Early warning arrives instead of a surprise invoice. The The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

LLM maliyet takibi tenant çağrı ve tutarını renkle erken uyarır

Verimaya platformunda model faturası sürprize dönmesin isteniyordu. Tenant bazında görünürlük yoktu; yüksek fallback oranı da saklı kalıyordu.

Platform yöneticisi çağrı, token ve maliyeti görür; fallback yüksekse renkli işaret. Sürpriz fatura yerine erken uyarı gelir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

n8n API connects with scoped keys and signed webhooks, nothing

Wide API keys for Verimaya automations were risky. Unsigned webhooks invited fake calls; one leak threatened the whole panel.

You connect with scoped API keys and signed webhooks. Automation runs; the key does not open the panel, and signatures verify. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

n8n API’si scope’lu anahtar ve imzalı webhook ile güvenli artık

Verimaya otomasyonları için geniş yetkili anahtar riskliydi. İmzasız webhook sahte çağrıya açıktı; bir sızıntı tüm paneli tehdit ederdi.

Scope’lu API anahtarı ve imzalı webhook ile bağlanırsın. Otomasyon çalışır; anahtar tüm paneli açmaz, imza doğrulanır. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

GoHighLevel sync matches leads using clear field-ownership rules

When Verimaya and GHL held the same patient, fields fought. Unclear winners corrupted data and the office argued.

Sync matches with per-field ownership rules. Leads and opportunities live in both places; write rights sit in the rule — no surprise. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

GoHighLevel senkronu lead’i alan sahipliği kurallarıyla artık

Verimaya ve GHL aynı hastayı iki sistemde tutunca alan çatışması oluyordu. Kim kazanır belli olmayınca veri bozuluyor, ofis tartışıyordu.

Senkron alan bazlı sahiplik kurallarıyla eşleştirir. Lead ve fırsat iki yerde yaşar; yazma hakkı kuralda yazılıdır, sürprize yer yok. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Trust Score rates measurement maturity with consent and CAPI

Verimaya trusted ROAS when measurement “felt installed”. Half-done consent, CAPI and CRM feedback made the numbers lie.

A checklist scores what is complete and what is missing. Not a maturity vibe — empty boxes stay visible on screen. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Trust Score consent ve CAPI checklist’iyle ölçüm olgunluğunu

Verimaya ölçüm “kurulu” sanılınca ROAS’a güven artıyordu. Consent, CAPI ve CRM geri bildirimi yarım kalınca sayı yalan söylüyordu.

Checklist skor üretir: ne tamam, ne eksik. Olgunluk hissi değil; kutusu boş olan satır ekranda durur. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı. ---

· Changelog

Fidelity CSV import refuses sells that would exceed open lots

If TickPort truncated oversized sells on import, the ledger would lie. Positions would rot without the user noticing.

Sells that exceed open shares are refused. There is no silent truncate. Cash and lot truth stay intact. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice. That limit was drawn on purpose. It stays on one surface so the answer is not hunted t

Fidelity CSV ithalatı açık lotu aşan satışı kısmaz; reddeder

TickPort ithalatta fazla satışı kısarsa defter yalan söyler. Kullanıcı fark etmeden pozisyon bozulurdu.

Açık payı aşan satış reddedilir. Sessiz kısaltma yoktur. Nakit ve lot gerçekliği korunur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Pre-launch check asks compliance and unit economics on one shared

In Verimaya, “ready to launch” skipped three separate checks. One miss made rollback expensive and trust thinner.

One screen asks compliance, unit economics and measurement threshold together. While a door stays open, publish stays early — on purpose. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Yayın öncesi kontrol uyumluluk ve birim ekonomiyi tek ekranda

Verimaya’da kampanya “hazır” denince üç ayrı kontrol unutuluyordu. Biri eksik yayınlanınca geri dönüş maliyeti büyüyor, güven azalıyordu.

Tek ekran uyumluluk, birim ekonomi ve ölçüm eşiğini birlikte sorar. Eksik kapı açıkken yayın düğmesi erken kalır — bilerek. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Price alerts live on the server and email fires past a threshold

If TickPort kept alerts only in the browser, a closed laptop would miss the move. Silent local fallback while signed in also burned trust.

Signed-in alerts write to the server. Cron evaluates thresholds and re-arms when cleared. Without a Resend key, email is skipped, not crashed. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Fiyat uyarıları sunucuda saklanır; eşik aşılınca e-posta yollanır

TickPort uyarıyı yalnız tarayıcıda tutarsa telefon kapalıyken fırsat kaçar. Girişliyken sessiz yerel düşüş de güveni yerdi.

Girişli kullanıcıda uyarılar sunucuya yazılır. Cron eşiği değerlendirir, temizlenince yeniden kurar. Resend anahtarı yoksa e-posta atlanır, çökmez. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

You can import a scanner watchlist from a CSV file in Settings

Typing dozens of tickers by hand in TickPort breeds errors. If import lived only inside Scanner, Settings could not find it.

CSV import moved to Settings. Guide gives a short example and a link. The file feeds the device watchlist. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Tarayıcı izleme listesi Ayarlar'dan CSV dosyası ile içeri alınır

TickPort’ta onlarca ticker’ı elle yazmak hata üretir. İçe aktarma tarayıcıda kaybolursa ayarlarda bulunamazdı.

CSV ithalatı Ayarlar’a taşındı. Guide kısa örnek ve link verir. Liste cihaz izleme listesini besler. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Source limits are Free 15 / Pro 50 — extras are not deleted on

Unlimited sources in Bultine would wreck cost and quality. Limits in copy and code must not drift apart.

Limits read from one module and enforce atomically in the DB. Downgrade keeps existing sources; it only refuses new adds. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Kaynak limiti Free 15 / Pro 50; fazla olan geriye dönük silinmez

Bultine planda sınırsız kaynak vaadi maliyeti ve kaliteyi bozardı. Limit metinle kodu da birbirinden kopuk olmamalıydı.

Limit tek kaynaktan okunur, DB’de atomik zorlanır. Downgrade eski kaynakları silmez; yalnız yeni eklemeyi reddeder. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Source management lists and leaves subscriptions — it never now

In Bultine, “my sources” are subscriptions. Deleting the canonical row would hit everyone.

The page manages subscriptions. Leave and your list shrinks; a shared source lives on if others remain. The write door stays single and narrow. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Kaynak yönetimi abonelikleri listeler, çıkarır; kanonik satıra

Bultine’da kullanıcının gördüğü “kaynaklarım” aslında abonelikler. Kanonik satırı silmek herkesi etkilerdi.

Sayfa abonelikleri yönetir. Çıkınca senin listen iner; paylaşımlı kaynak başka abonesi varsa yaşar. Yazma kapısı tek ve dar. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Canonical sources: one fetch per feed URL, subscribers share the

If every Bultine user fetched their own feed row, cost and conflict would grow. The same URL must not be written twice.

One source row per feed_url; visibility comes from subscriptions. Fetch once, share the result. The poisoning door stays narrow. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Kanonik kaynak: aynı feed bir kez çekilir, aboneler sonucu artık

Bultine’da her kullanıcı kendi feed satırını çekse maliyet ve çelişki büyürdü. Aynı URL iki kez yazılmamalıydı.

feed_url başına tek kaynak satırı; görünürlük abonelikten. Çekim bir kez, sonuç paylaşılır. Zehirleme kapısı dar tutulur. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Scheduled ingest arrives on cron — missing secret closes the door

Bultine articles cannot wait on manual refresh. An unprotected endpoint would hand write access to anyone.

Vercel Cron hits /api/cron/ingest; CRON_SECRET is required. Wrong or missing secret returns 401. Hobby runs daily; hourly waits on Pro. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Zamanlanmış çekim cron ile gelir; secret yoksa kapı 401 ile artık

Bultine makaleleri elle yenilemeye bırakılamaz. Ama korumasız bir uç herkese yazma hakkı verirdi.

Vercel Cron /api/cron/ingest çağırır; CRON_SECRET şart. Yanlış veya eksik secret 401. Hobby planda günde bir; saatlik Pro’ya bağlı. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Feed discovery tries common paths from a site URL — no User-Agent

Bultine users often paste a site root and do not know the feed path. Reading only link tags missed most measured cases.

Discovery fires on not_a_feed; HTML alternates and common paths are tried in order. No spoofed bot UA; the found address is written plainly in the success message. The office should not hunt the same answer in another place. The

Feed keşfi site adresinden yaygın yolları dener; UA taklidi yok

Bultine kullanıcıları sıkça site kökünü yapıştırıyor, feed yolunu bilmiyor. Yalnız link etiketi okumak ölçülen vakaların çoğunu kaçırıyordu.

Keşif not_a_feed olunca tetiklenir; HTML alternate ve yaygın yollar sırayla denenir. Bot UA yok; bulunan adres başarı mesajında açık yazılır. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

History keeps recent dictations under a size cap you can delete

If Dikte pasted and forgot, a wrong sentence would be gone forever. Unlimited history would also cost disk and privacy.

Settings → History lists recent outputs. There is a size cap; right-click deletes a row. Nothing leaves the machine. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice. That limit was drawn on purpose.

Geçmiş sekmesi son dikteleri tutar; boyut sınırlıdır ve silinir

Dikte yapıştırıp unutursa yanlış giden bir cümleyi geri bulmak imkânsız olurdu. Sınırsız geçmiş de disk ve gizlilik yükü olurdu.

Ayarlar → Geçmiş son çıktıları listeler. Boyut sınırı vardır; sağ tıklayınca satır silinir. Makine dışına çıkmaz. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi.

· Changelog

An audio or video file becomes text or SRT with the same models

If Dikte only touched a live mic, archive recordings would stay outside. Swallowing a long file in one go would also choke the model.

Settings → Audio file chunks through ffmpeg, optional timestamps, and writes .txt or .srt. Subtitle cleanup keeps lines in place and never shortens them. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Ses veya video dosyası aynı modellerle metne ya da SRT’ye döner

Dikte yalnız canlı mikrofona bağlı kalsaydı arşiv kayıtları dışarıda kalırdı. Uzun dosyayı tek parçada yutmak da modeli boğardı.

Ayarlar → Ses dosyası sekmesi ffmpeg ile parçalar, isteğe bağlı zaman damgası ekler, .txt veya .srt yazar. Altyazı temizliği satırları yerinde tutar, kısaltmaz. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Meeting mode splits mic and speaker, then writes the minutes

On a single channel, Dikte loses who spoke. Pulling decisions and actions out by hand after the call was a second job.

Mic and speaker record together; channel identity separates speakers. Both sides are transcribed, merged, then a chosen model writes minutes. If interrupted, audio is kept. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Toplantı kaydı mikrofon ile hoparlörü ayırır ve tutanak üretir

Dikte tek kanallı kayıtta kimin konuştuğu kaybolur. Toplantı sonrası karar ve aksiyonları elle ayıklamak da ayrı işti.

Mikrofon ve hoparlör aynı anda kaydedilir; kanal kimliği konuşmacıyı ayırır. İki taraf yazıya çevrilip birleşir, seçtiğin model tutanak üretir. Yarıda kalırsa ses saklanır. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

The agent hotkey sends your speech to Claude or Codex as command

Pasting text alone was not enough; a line like “put this on the calendar” had to reach an agent in the same breath.

A separate hotkey sends the transcript to Claude Code, Codex or OpenRouter and pastes the reply. Skills and working directory live under Settings → Agent. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Ajan kısayolu konuşmayı Claude veya Codex’e komut olarak gönderir

Dikte yalnız metin yapıştırmak yetmez; “bunu takvime koy” gibi bir cümleyi ajana vermek de aynı nefesten çıkmalıydı.

Ayrı kısayol transkripti yapıştırmak yerine Claude Code, Codex veya OpenRouter’a gönderir ve dönen cevabı yapıştırır. Skill’ler ve çalışma dizini Ayarlar → Ajan’da kalır. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Backtest shows win rate and the equity curve on one shared panel

If TickPort signal claims stay unmeasured, the Pro gate is theatre. A roughly two-year simulation had to open the door with numbers.

Backtest returns win rate, average return, trade count and a curve. An NIA line sits too. The Pro gate locks this surface. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Backtest kazanma oranını ve getiri eğrisini panelde gösterir

TickPort sinyal vaadi ölçüsüz kalırsa Pro kapısı tiyatro olur. Yaklaşık iki yıllık simülasyon kapıyı sayıyla açmalıydı.

Backtest kazanma oranı, ortalama getiri, işlem sayısı ve eğriyi getirir. NIA satırı da durur. Pro kapısı bu yüzeyi kilitler. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Custom scan lets you set RSI range and the minimum score yourself

When TickPort presets are not enough, users want their own thresholds. If parameters vanish, the run cannot be remeasured.

The custom form takes RSI range and min score. Signed-in runs persist to scan history. The custom preset hits the server. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Özel taramada RSI aralığını ve minimum skoru sen kendin seçersin

TickPort hazır set yetmeyince kullanıcı kendi eşiğini isteyebilir. Parametre kaybolursa tekrar ölçüm yapılamazdı.

Custom form RSI aralığı ve min skor alır. İmza girişli koşular tarama geçmişine yazılır. Özel preset sunucuya gider. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

The scanner runs dip and breakout presets on live history data

If TickPort left the scanner on demo only, users would doubt “is this live?” Presets had to open the first door.

The FastAPI scan endpoint runs rule presets over Yahoo history. The UI separates live from demo sources. The keyed endpoint stays protected. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Tarayıcı dip ve kırılım setlerini canlı geçmişte de çalıştırır

TickPort tarayıcıyı yalnız demo ile bırakırsa kullanıcı “canlı mı?” diye şüphe eder. Hazır setler ilk kapıyı açmalıydı.

FastAPI tarama ucu Yahoo geçmişi üzerinde kural setlerini koşturur. Arayüz canlı ile demo kaynağını ayırır. Anahtarlı uç korunur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

The US session is badged as pre-market, regular or after-hours

In TickPort, “how much today?” lies if yesterday’s close is wrong. Without session phase, badges mean nothing.

An NYSE calendar for 2025–2027 produces session phase. Pre and AH badges show on summary and public ticker. The top bar hints too. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

ABD seansı ön piyasa, normal ve sonrası diye rozetle işaretlenir

TickPort’ta “bugün yüzde kaç?” sorusu yanlış önceki kapanışla cevaplanınca yalan söyler. Seans bilinmeden rozet anlamsızdır.

NYSE takvimi 2025–2027 için seans fazını üretir. Özet ve genel ticker’da Pre ve AH rozetleri görünür. Üst çubuk da ipucu verir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

UTM templates emit 3:2:2 creative plus a clear 60/30/10 budget

In Verimaya campaigns, hand-typed UTMs broke source reports. Budget splits were re-argued every time and burned the clock.

Templates mint UTM links plus a quick 3:2:2 creative with a 60/30/10 budget split. Less debate; tracking stays intact. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

UTM şablonları 3:2:2 kreatif ve 60/30/10 bütçe bölüşümünü çıkarır

Verimaya kampanyalarında UTM elle yazılınca kaynak raporu bozuluyordu. Bütçe bölüşümü her seferinde yeniden tartışılıp zaman yiyordu.

Şablon UTM linki üretir; 3:2:2 kreatif ve 60/30/10 bütçe bölüşümünü hızlı çıkarır. Tartışma kısalır, izlenebilirlik yerinde kalır. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Compliance scan catches banned health claims in copy before you

For Verimaya clinic ads, fixing a risky claim after publish was expensive. Human reading missed lines and fine risk grew.

The scan flags banned and risky health claims in ad or landing copy. It runs before publish — not after the fine arrives. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Uyumluluk taraması yasaklı sağlık vaadini yayın öncesi yakalar

Verimaya klinik reklamında riskli vaat yayınlandıktan sonra düzeltmek pahalıydı. Gözle okuma her satırı kaçırıyor, ceza riski büyüyordu.

Tarama reklam veya landing metnindeki yasaklı ve riskli sağlık vaatlerini işaretler. Yayın öncesi çalışır; ceza sonrası değil. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Ad simulator paints cost per sale from CPC and warns with a now

Verimaya offices said “a few more clicks” without seeing the scale ceiling. Cost per sale was invented in meetings, then surprised everyone.

CPC, conversion and close rate produce cost, a traffic light and a scale cap. Growth decisions use numbers, not a hopeful guess. The d The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Reklam simülatörü CPC ile satış başı maliyeti ışıkla boyar uyarır

Verimaya ofisleri “biraz daha tıklama” deyince ölçek tavanı görünmüyordu. Satış başı maliyet toplantıda uyduruluyor, sonra şaşırılıyordu.

CPC, dönüşüm ve satış oranıyla maliyet, trafik ışığı ve ölçek tavanı hesaplanır. Büyütme kararı tahminle değil sayıyla alınır. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Campaign Assistant gathers ROAS, simulator and compliance into

In Verimaya marketing tools were scattered: calculator here, compliance there, pre-launch checks often forgotten until too late.

The hub holds real ROAS maths, simulator, compliance scan and pre-launch checks together. The tool hunt ends; only the decision remains. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Kampanya Asistanı ROAS, simülatör ve uyumluluğu tek hub’da toplar

Verimaya’da pazarlama araçları dağınıktı: hesap bir yerde, uyumluluk başka yerde, yayın öncesi kontrol çoğu zaman unutuluyordu.

Hub gerçek ROAS hesabı, simülatör, uyumluluk taraması ve yayın öncesi kontrolleri bir arada sunar. Araç avı biter; sıra karara kalır. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Real ROAS calculator cuts platform smiles down to profit with

In Verimaya’s marketing hub, a high panel ROAS raised budgets. Without contribution margin and fixed costs, scale decisions went blind.

The calculator turns platform ROAS into real profit; break-even and per-patient ad caps show first. Maths speaks before you grow. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Gerçek ROAS hesabı platform gülümsemesini katkı payıyla kâra

Verimaya pazarlama hub’ında panel ROAS’ı yüksek görünce bütçe artıyordu. Katkı payı ve sabit maliyet hesapta olmayınca ölçek körleşiyordu.

Hesap platform ROAS’ını gerçek kâra çevirir; başabaş ve hasta başı reklam tavanını gösterir. Büyütmeden önce matematik konuşur. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Add an RSS or Atom URL, validate it, subscribe — first fetch runs

Bultine only accepts a working feed. Saving a broken address to be surprised later is more expensive than validating on add.

You paste a URL, redirects are followed, parse is tried, the canonical source is subscribed, first fetch runs. Title and short excerpt — never full text. The office should not hunt the same answer in another place. The limit That limit was drawn on purpose.

RSS veya Atom URL’si doğrulanıp abone olunuyor; ilk çekim hemen

Bultine yalnız çalışan feed kabul eder. Bozuk adresi kaydedip sonra şaşırmak yerine eklerken doğrulamak daha ucuz.

URL verilir, yönlendirme izlenir, ayrıştırma denenir, kanonik kaynağa abone olunur, ilk çekim yapılır. Başlık ve kısa alıntı — tam metin yok. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Theme and density stay local — no forced sync onto the account

If Bultine appearance preferences were forced onto the account, a travel device would wreck the office theme. Preferences are not profile columns yet.

Theme and density stay on the device. They can move to the profile later; for now the device’s choice stays on the device. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Tema ve yoğunluk yerelde kalır; sunucuya zorunlu senkron yok

Bultine’da görünüm tercihi hesapla zorunlu birleştirilirse gezi cihazı ofis temasını bozardı. Tercih henüz profil kolonu değil.

Tema ve yoğunluk yerel saklanır. İstenirse sonra profile taşınır; şimdilik cihazın kararı cihazda kalır. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

When gtmId is set, GTM and Consent Mode v2 banners open together

If FixRav Website measured without consent, GDPR would break. Defaults had to start denied.

When site.ts has a gtmId, BaseLayout injects GTM. CookieConsent starts permissions denied. whatsapp_click and form events hit dataLayer. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

gtmId dolunca GTM ile Consent Mode v2 çerez bandı birlikte açılır

FixRav Website ölçüm izinsiz çalışırsa GDPR kırılır. Varsayılan denied olmalıydı.

site.ts gtmId dolunca BaseLayout GTM basar. CookieConsent izinleri denied başlar. whatsapp_click ve form event’leri dataLayer’a düşer. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duru

· Changelog

FAQ heading structure produces FAQPage JSON-LD with no extra code

Hand-carrying Gee FAQs into schema on FixRav Website gets forgotten. Keeping the format should produce it automatically.

Frequently Asked Questions and ### question structure are parsed. faq-schema.ts emits FAQPage. New copy follows the same format. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

SSS başlık yapısı otomatik FAQPage JSON-LD üretir; kod gerekmez

FixRav Website / Gee’de SSS’yi elle schema’ya taşımak unutulur. Biçim korunursa otomatik üretmeliydi.

Frequently Asked Questions ve ### soru yapısı ayrıştırılır. faq-schema.ts FAQPage basar. Yeni içerik aynı formatı izler. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüz

· Changelog

Gee Smile price tokens fill from prices.json during the build

Updating Gee prices by hand across twenty FixRav Website pages breeds errors. One table had to feed the build.

{{prices.key}} is filled by a remark plugin. Frontmatter uses fillPrices. prices.json is the single source. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twic

Gee Smile fiyat token’ı build sırasında prices.json’dan dolar

FixRav Website / Gee’de fiyatı yirmi sayfada elle güncellemek hata üretir. Tek tablo build’e bağlanmalıydı.

{{prices.key}} remark eklentisiyle dolar. Frontmatter için fillPrices vardır. prices.json tek kaynaktır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Layout emits schema.org JSON-LD shaped for clinic or agency types

Without structured data, FixRav Website misses rich results. The type still had to vary by site.

BaseLayout injects JSON-LD. Gee uses Dentist or MedicalClinic examples; FixRav uses ProfessionalService. parentOrganization can attach. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Layout JSON-LD basar; tip klinik veya ajans şemasına göre değişir

FixRav Website arama sonuçlarında yapılandırılmış veri yoksa rich result kaçırılır. Tip siteye göre değişmeliydi.

BaseLayout JSON-LD enjekte eder. Gee’de Dentist/MedicalClinic, FixRav’da ProfessionalService örnekleri vardır. parentOrganization bağlanabilir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

A new page is a new markdown file; routes open via the schema

In FixRav Website, writing an .astro file for every copy change kills content speed. Editors had to stay in markdown.

content.config.ts defines collections. treatment, cost, page, blog or work slugs are born from files. No code is required. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Yeni sayfa yeni markdown’dır; route koleksiyon şemasıyla açılır

FixRav Website’te her metin değişikliği için .astro yazmak içerik hızını öldürür. Editör markdown’a kalmalıydı.

content.config.ts koleksiyonları tanımlar. treatments, costs, pages, blog veya work slug’ları dosyadan doğar. Kod gerekmez. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Summary dashboard puts leads, conversion and collections on now

In Verimaya the ops question was “what happened this period?” The answer lived on four screens, so meetings dragged and decisions waited.

Leads, conversion, collections and message volume sit on period cards. Pulse in one glance; deep reports open from another door — the hunt ends. The office should not hunt the same answer in another place. The li

Özet dashboard lead, dönüşüm, tahsilat ve mesajı dönem kartında

Verimaya’da operasyon sorusu “bu dönem ne oldu?” idi. Cevap dört ayrı ekrana dağılınca toplantılar uzuyor, karar gecikiyordu.

Lead, dönüşüm, tahsilat ve mesaj hacmi dönemsel kartlarda durur. Tek bakışta nabız; derin rapor ayrı kapıdan açılır, av biter. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Referral value asks who brought whom, what they earned, which

Verimaya said “referrals are good” without how many people or how much collected in one view. Broken coordinator links sent thanks to the wrong desk.

The report shows who referred how many, what those people earned, plus title and coordinator. Figures share the finance summary on the contact card. The office should not hunt the same answer in another place.

Referans değeri kim getirdi, ne kazandı, ünvanı kim diye sorar

Verimaya’da “referans iyi” deniyordu ama kaç kişi ve ne kadar tahsilat tek bakışta yoktu. Koordinatör bağı kopuk kalınca teşekkür yanlış yere gidiyordu.

Rapor kim kaç kişi getirdiğini, o kişilerden ne kazanıldığını, ünvan ve koordinatörü gösterir. Rakamlar kişi kartındaki finans özetiyle aynı kaynaktan gelir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. ---

· Changelog

Sign-in asks once about second-device guest progress to merge

In MonoLingua, auto-merge could silently crush account progress. Merging without asking is forbidden on this product.

A one-time prompt appears after sign-in. POST /users/merge-guest merges progress by newest last_listened_at. Vocabulary merges too. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Girişte ikinci cihaz misafir ilerlemesi sorulur; bir kez birleşir

MonoLingua’da otomatik birleştirme hesaptaki ilerlemeyi sessizce ezebilir. Kullanıcıya sormadan birleştirmek bu projede yasaktır.

Giriş dönüşünde tek seferlik soru çıkar. POST /users/merge-guest ilerlemeyi en yeni last_listened_at ile birleştirir. Vocabulary birleşir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Clerk sign-in links guest rows to the same id without copying

In MonoLingua, copying the guest row into an account would birth duplicate identities. Silent data loss is also unacceptable.

Guest-to-account keeps the same users.id. The client deletes the guest id only when the server reports clerkLinked and isGuest=false. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Clerk girişi misafir satırını aynı kimliğe bağlar ve kopyalamaz

MonoLingua’da misafir ilerlemesi hesaba geçerken satır kopyalanırsa çift kimlik doğar. Sessiz veri kaybı da kabul edilmez.

Guest→hesap aynı users.id üzerinde döner. İstemci yalnız sunucu clerkLinked ve isGuest=false deyince misafir kimliğini siler. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Guests read first and accounts do not block the first reading

MonoLingua activation hinges on chapter_completed in the first 48 hours. A signup wall at the door would kill that metric.

A guest identity opens catalogue and reader. The paywall appears only when a chapter ends or on next chapter. Onboarding has no paywall. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Misafir önce okur ve hesap ile paywall ilk okumada engel koymaz

MonoLingua aktivasyonu ilk 48 saatte chapter_completed’a bağlıdır. Kapıdaki kayıt formu bu metriği öldürürdü.

Misafir kimliği ile katalog ve okuyucu açılır. Paywall yalnız bölüm bittiğinde veya sonraki bölümde çıkar. Onboarding’de paywall yoktur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Profile shows progress and builds a share card at chapter end

In MonoLingua, a finished chapter with no trace kills motivation. An external export library would also bloat the bundle.

Profile holds listening and review summaries. The finish card is drawn with DOM and CSS. A shareable image leaves the app. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Profil ilerlemeyi gösterir ve bitişte bir paylaşım kartı üretir

MonoLingua’da biten bölümün izi yoksa motivasyon düşer. Harici export kütüphanesi de paket şişirirdi.

Profil dinleme ve tekrar özetini tutar. Bitirme kartı DOM/CSS ile çizilir. Paylaşılabilir görüntü uygulamadan çıkar. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde du

· Changelog

SRS schedules word reviews with FSRS and caps new daily cards

If MonoLingua only played audio, words would fade. Random quizzes would also drift into Duolingo’s field; v1 must prove sync, translation and review.

FsrsScheduler keeps ts-fsrs isolated. The daily new-card cap is twenty. The review tab shows a due-card badge. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

SRS kelime tekrarını FSRS ile planlar ve yeni kartı sınırlar

MonoLingua yalnız okutursa kelime unutulur. Rastgele quiz de Duolingo sahasına kayar; v1’in kanıtı senkron + çeviri + tekrar döngüsüdür.

FsrsScheduler ts-fsrs’i izole tutar. Günlük yeni tavan 20’dir. Tekrar sekmesi bekleyen kart rozeti taşır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Three column widths are fixed: 240/280, 600 max, 350/380 on the

When Bultine layout stayed fluid, the reading column bloated and the source list was crushed. Every screen became a different composition.

Widths were measured and locked. Narrow left, capped middle, fixed right. Layout debate ends; reading holds. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Üç sütun genişlikleri sabit: sol 240/280, orta 600, sağ 350/380

Bultine düzeni esnek bırakılınca okuma sütunu şişiyor, kaynak listesi eziliyordu. Her ekranda başka bir kompozisyon çıkıyordu.

Genişlikler ölçüldü ve kilitlendi. Sol dar, orta okuma tavanlı, sağ sabit. Düzen tartışması bitti; okuma duruyor. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Mobile bottom nav separates from content — the active tab finally

On Bultine mobile the bottom bar matched the page ground; the active tab vanished. Fingers lost which door they were on.

The bar uses a raised ground and an active pill. Touch targets grow on coarse pointers; desktop pixels stay intentional. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Mobil alt gezinme içerikten ayrışıyor; aktif sekme artık artık

Bultine mobilde alt çubuk sayfayla aynı zemindeydi; aktif sekme görünmüyordu. Parmak hangi kapıda olduğunu kaçırıyordu.

Çubuk raised zemin ve aktif pill ile ayrıştı. Dokunma hedefi kaba işaretçide büyür; masaüstü pikseli bilinçli korunur. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Empty and loading states stay honest — no fake skeleton promising

In Bultine, full-looking cards with no sources lied that the product worked. Loading and emptiness were also confused.

No sources, no articles, empty filter — each has its own empty state. Skeletons only for real loading; no fake fullness. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Boş ve yükleme durumları dürüst: sahte iskelet vaat etmiyor artık

Bultine’da kaynak yokken dolu görünen kartlar “ürün çalışıyor” yalanı söylüyordu. Yükleme ile boşluk da karışıyordu.

Kaynak yok, makale yok, filtre boş — her biri kendi boş durumu. İskelet yalnız gerçek yüklemede; sahte doluluk yok. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Right-rail “you may like” is fed from your real subscribed stream

Fake “suggested” cards in Bultine’s right rail would have burned trust. Filling a list without data would be half a promise.

“You may like” comes from real subscribed rows. No mock; if empty, it stays honestly empty. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface. Before

Sağ rayda ilginizi çekebilir listesi gerçek akıştan besleniyor

Bultine sağ panelinde uydurma “öneri” kartı güveni yerdi. Verisi olmayan listeyi doldurmak yarım söz olurdu.

İlginizi çekebilir, abone akışından gerçek satırlarla geliyor. Mock yok; boşsa dürüst boş kalır. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Cancel drops the take from hotkey or tray; half lines never paste

An accidental Dikte recording pasting a half sentence would be embarrassing. Cancel had to be a clear verb.

Ctrl+Alt+Space, the tray menu or dikte cancel drops the take. The pipeline never reaches paste. Pressing again while busy does not queue either. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice. That limit was drawn on purpose.

Kayıt iptali kısayol veya tepsi ile düşer; yarım metin yapışmaz

Dikte yanlışlıkla açılan kayıtta yarım cümlenin panoya düşmesi utanç verici olurdu. İptal net bir fiil olmalıydı.

Ctrl+Alt+Space, tepsi menüsü veya dikte cancel kaydı düşürür. Pipeline yapıştırma adımına gitmez. Meşgulken tekrar basmak sıraya da girmez. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi.

· Changelog

The corner overlay shows stage and level without stealing focus

While Dikte runs you need to see which stage you are in. If the overlay stole focus, the writing window would vanish and the hotkey would break.

The corner overlay draws a red dot, waveform, duration and stage. It never takes focus. When an agent command runs at the same time, the second overlay stacks above the first. That limit was drawn on purpose.

Köşe göstergesi kaydı ve aşamayı gösterir; yazı odağını çalmaz

Dikte çalışırken hangi aşamada olduğunu görmek gerekir. Ama gösterge odak alırsa yazdığın pencere kaybolur, kısayol da bozulur.

Köşedeki gösterge kırmızı nokta, ses dalgası, süre ve aşamayı çizer. Odak almaz. Ajan komutuyla aynı anda açıkken ikinci gösterge birincinin üstüne biner. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

The tray menu opens record, cancel, agent, meeting and settings

Dikte still has to work on a day when you forget the hotkey. Sending every action back to a terminal would break the tray-app promise.

From the tray icon you start or cancel recording, ask the agent, record a meeting, open settings or quit. The same verbs also exist on the command line. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Tepsi menüsü kaydı, iptali, ajanı, toplantıyı ve ayarları açar

Dikte kısayol bilmeyen bir günde de çalışmalı. Her iş için terminale dönmek tepsi uygulaması vaadini bozar.

Tepsi simgesinden kaydı başlatır, iptal eder, ajana sorar, toplantı kaydeder, ayarları açar veya çıkarsın. Aynı fiillerin komut satırı karşılığı da durur. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

If cleanup fails, raw text pastes and the overlay turns amber

Losing the utterance when Dikte cleanup crashes was unacceptable. A silent fallback that looked like success would also burn trust.

The raw transcript still pastes; the overlay turns amber and states why. It does not look like a normal success, and it is not swallowed quietly. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Temizleme bozulursa ham metin yapışır ve gösterge kehribar olur

Dikte temizleme çökerse metnin kaybolması kabul edilemezdi. Ama başarı gibi görünen sessiz düşüş de güveni yerdi.

Ham transkript yine yapıştırılır; gösterge kehribar rengine döner ve nedeni yazar. Normal bir başarı gibi görünmez, sessizce yutulmaz. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi.

· Changelog

The library lists books with CEFR filters and a continue card

If MonoLingua dumped the catalogue without levels, A1 and B2 would share one shelf. A half-finished chapter must not vanish either.

CEFR badges and filters (including A1) exist. A continue card opens the last listened chapter. Empty states greet new users. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Kütüphane CEFR filtresiyle kitap listeler ve devam kartı gösterir

MonoLingua kataloğu seviyesiz yığılırsa A1 ile B2 aynı rafta karışır. Yarım kalan bölüm de kaybolmamalıydı.

CEFR rozetleri ve filtreler (A1 dahil) vardır. Devam et kartı son dinlenen bölümü açar. Boş durum ekranları yeni kullanıcıyı karşılar. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Cleanup rules strip fillers and fix proper names with a glossary

Raw Dikte transcripts kept fillers and misheard brand names. Broken forms like “kuber netis” would paste as-is.

The cleanup model drops fillers and fixes punctuation. Names you add under Cleanup rules go as hints and as a glossary. If context is unclear, the model is told not to touch the word. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Temizleme kuralları dolgu sözleri siler ve özel isimleri düzeltir

Dikte ham transkriptte ıı, şey, hani ve yanlış duyulan marka adları kalırdı. “kuber netis” gibi kırık isimler olduğu gibi yapışırdı.

Temizleme modeli dolguları atar, noktalamayı kurar. Kurallar sekmesine yazdığın isimler hem ipucu hem sözlük olarak gider. Bağlam net değilse modele dokunmaması söylenir. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

LLM translation uses context and stores results in durable cache

In MonoLingua, DeepL translated single words without context and broke meaning. Calling a model on every tap would also eat the bill.

claude-haiku produces contextual Turkish. translation_cache multiplies hit speed. When the prompt version changes, stale bad cache refreshes. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Çeviri LLM ile bağlama göre yapılır ve sonuç önbellekte saklanır

MonoLingua’da DeepL tek kelimeyi bağlamsız çeviriyordu; yanlış anlam öğrenmeyi bozar. Her dokunuşta yeniden model çağırmak da faturayı yerdi.

claude-haiku bağlamlı Türkçe üretir. translation_cache isabeti hızı katlar. Prompt sürümü değişince eski hatalı cache yenilenir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Onboarding estimates level from CEFR questions with no account

If MonoLingua forced an account or paywall on first open, activation would drop. Users first need level and genre signals.

Five steps: goal, four micro-questions, genre, three recommendations, guest reader. No account in between. Suggestion cards land in the library. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Onboarding CEFR sorularıyla seviye tahmin eder ve hesap istemez

MonoLingua ilk açılışta hesap veya paywall koyarsa aktivasyon düşer. Kullanıcı önce kendi seviyesini ve türünü seçmeliydi.

Beş adım: hedef, dört mikro-soru, tür, üç öneri, misafir okuyucu. Arada hesap yok. Öneri kartları kütüphaneye düşer. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Dikte drops silent takes before they hit an API or the clipboard

Speech models invent lines like “Thanks for watching” on near-silence instead of returning empty. A constant fan would trigger the same trap.

If the take never rises enough above its own noise floor, the recording is discarded. The overlay shows the measured level so you can set the threshold. Silence does not bill you or dirty the clipboard. That limit was drawn on purpose.

Dikte sessiz kaydı API’ye göndermez ve uydurma cümle yapıştırmaz

Konuşma modelleri sessize yakın seste boş dönmek yerine “Thanks for watching” gibi cümle uydurur. Sabit fan gürültüsü de aynı tuzağa düşerdi.

Kaydın kendi gürültü tabanının üstünde yeterince ses yoksa kayıt atılır. Gösterge ölçülen seviyeyi yazar; eşiği ona göre ayarlarsın. Sessizlik fatura ve panoyu kirletmez. Bu sınır bilinçli çizildi. Kullanıcı Bu sınır bilinçli çizildi.

· Changelog

Settings downloads local models and verifies them with sha256

Asking users to compile stacks just to run Dikte locally would kill setup. A download without a checksum would also leave a silent wrong binary.

Settings fetches the program and model, verifies sha256, and refuses unsigned releases. With CUDA, ROCm or Vulkan it can use the GPU. The server stays up while you dictate. That limit was drawn on purpose.

Ayarlar penceresi yerel modeli indirir ve sha256 ile doğrular

Dikte yerel çalışsın diye kullanıcıya derleme talimatı yığmak kurulumu öldürürdü. Checksum’suz indirme de sessizce yanlış ikili bırakırdı.

Ayarlar programı ve modeli indirir, sha256 doğrular, checksum’suz yayını reddeder. CUDA, ROCm veya Vulkan varsa ekran kartına ulaşır. Sen dikte ettikçe sunucu ayakta kalır. Bu sınır bilinçli çizildi. Kullanıcı a

· Changelog

Real ROAS puts ad spend beside period collections for an honest

Verimaya offices trusted platform ROAS and felt profitable. Collections and cost per patient lived elsewhere, so budgets inflated wrongly.

The report compares spend to period collections; cost per patient and source split sit together. A platform smile alone is not enough. T The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Gerçek ROAS harcamayı dönem tahsilatıyla yan yana koyup kıyaslar

Verimaya ofisleri platform ROAS’ına bakıp kârlı sanıyordu. Tahsilat ve hasta başı maliyet ayrı tablolarda kalınca bütçe yanlış şişiyordu.

Rapor harcamayı dönem tahsilatıyla kıyaslar; hasta başına maliyet ve kaynak kırılımı aynı yerde. Platform gülümsemesi tek başına yetmez. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Intervention list: worsening rates surface without anyone asking

Verimaya is the clinic panel. Did a doctor’s success rate fall, did period income slip, did an incident stay open — those sat in scattered reports unless someone went looking.

The intervention list gathers worsening doctor rates, falling income, open incidents and valuable referrals on one page. Sentences are templates; figures come from the database. No model invents findings.

Müdahale listesi geldi: kötüleşen oranlar kimse sormadan duruyor

Verimaya klinik paneli. Hekim başarı oranı düştü mü, dönem geliri geriledi mi, olay açık mı kaldı — bunlar dağınık raporlarda saklıydı; kimse sormadan görünmüyordu.

Müdahale listesi kötüleşen hekim oranlarını, düşen geliri, çözülmemiş olayları ve değerli referansları tek sayfada toplar. Cümleler şablon, rakamlar veritabanından gelir; dil modeli bulgu uydurmaz. ---

· Changelog

Period comparison puts the prior window beside you with equal

In Verimaya it was easy to say “this month looks fine”; if the prior period was a different length, percentages lied and meetings chose wrong.

Summary and appointment metrics compare to the immediately previous window of equal days. No percentage appears when the sample is too thin. The office should not hunt the same answer in another place. The l

Dönem karşılaştırması önceki pencereyi aynı gün sayısıyla koyar

Verimaya özetinde “bu ay iyi” demek kolaydı; önceki dönem farklı uzunluktaysa yüzde yalan söylüyordu ve toplantı yanlış karara gidiyordu.

Özet ve randevu metrikleri hemen önceki, aynı gün sayılı pencereyle kıyaslanır. Az kayda dayanan değişimde yüzde hiç gösterilmez. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

AI accuracy report: which field gets corrected most is visible

Verimaya drafts payments and appointments from WhatsApp; the clinic approves or edits. Corrections piled up, but where they clustered stayed invisible — fixes were guesswork.

The Tools accuracy report shows untouched approval rate, the field edited most, and questions Maya could not answer. Unanswered ones point to the knowledge base. Guesswork ends; the numbers are there.

AI isabet ölçümü geldi: hangi alan en çok düzeltiliyor belli

Verimaya, WhatsApp mesajlarından ödeme ve randevu taslağı çıkarıyor; klinik onaylıyor ya da düzeltiyor. Düzeltmeler birikiyordu ama nerede yoğunlaştığı görünmüyordu.

Araçlar’daki AI isabet ölçümü dokunulmadan onay oranını, en çok düzeltilen alanı ve Maya’nın cevaplayamadığı soruları listeler. Cevaplanamayanlar bilgi bankasına yönlenir. Varsayım bitti; sayı var. ---

· Changelog

A word tap opens translation without splitting text into spans

Wrapping every MonoLingua word in a span would kill the highlight API and break layout. Translation still had to arrive in one tap.

The caret API selects the word and opens a popup. Positioning keeps it inside the viewport. The zero-span rule stays intact. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Kelimeye dokununca çeviri balonu açılır; span hiç kullanılmaz

MonoLingua’da her kelimeyi span yapmak highlight API’yi öldürür ve düzeni bozar. Çeviri yine tek dokunuşla gelmeliydi.

Caret API ile kelime seçilir, popup açılır. Viewport dışına taşmayı önleyen konumlandırma vardır. Span = 0 kuralı korunur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Long chapters paint only visible paragraphs for smooth scroll

MonoLingua opens public-domain stories chapter by chapter. Dumping thousands of lines into the DOM would stall on a phone.

The reader virtualises paragraphs with TanStack Virtual. Focus and word sync stay intact. Long chapters still scroll smoothly. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Uzun bölümde yalnız görünen paragraflar çizilir ve akış korunur

MonoLingua kamu malı hikâyeleri bölüm bölüm açar. Binlerce satırı birden DOM’a basmak telefonda takılırdı.

Okuyucu TanStack Virtual ile paragraf sanallaştırır. Odak ve vurgu senkronu bozulmaz. Uzun bölümde kaydırma akıcı kalır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek y

· Changelog

Draft source trail: every field shows which sentence produced the

Verimaya AI drafts showed an amount with no proof sentence attached. One fabricated quote on screen would end trust for good.

Each field carries its source line; the badge highlights that quote in the message. Fabricated quotes die on the server — they never render. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Taslakta kaynak izi: her alan hangi cümleden geldiğini gösterir

Verimaya AI taslağında tutar görünüyordu ama hangi satırdan çıktığı belli değildi. Uydurma alıntı bir kez görünürse güven biterdi.

Her alan kaynak cümlesini taşır; rozete tıklayınca mesajda alıntı vurgulanır. Uydurma alıntı sunucuda düşer — ekrana çıkmaz. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Knowledge base versions prices; Maya stops quoting yesterday’s

Verimaya’s WhatsApp parsing and Maya guessed prices from office memory. When rules changed, the model kept answering from the old ones.

Services, prices, payment rules and rejection reasons enter in Settings; changes are versioned. Parsing and Maya feed from the same source. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Bilgi bankası fiyatı sürümler; Maya artık eski kuralı konuşmaz

Verimaya WhatsApp ayrıştırması ve Maya, ofisin kafasındaki fiyatı tahmin ediyordu. Kural değişince model eski bilgiyle cevap vermeye devam ediyordu.

Hizmet, fiyat, ödeme kuralı ve red gerekçesi Ayarlar’dan girilir; değişiklikler sürümlenir. Ayrıştırma ve Maya aynı kaynaktan beslenir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez.

· Changelog

Income ledger keeps patient, payment status and invoice on the

When Verimaya finance sat apart from the case file, balance and collections disagreed. Invoice detail vanished in side notes and audits suffered.

Collections and payments save with patient link, status and invoice. Ledger and file tell the same truth; broken totals end. The The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Gelir-gider defteri hasta, ödeme durumu ve faturayı satırda tutar

Verimaya finansı hasta dosyasından kopuk tutulunca bakiye ile tahsilat birbirini tutmuyordu. Fatura bilgisi ayrı notta kaybolup denetimi zorlaştırıyordu.

Tahsilat ve ödeme hasta bağlantısı, durum ve fatura ile kayda geçiyor. Defter ile dosya aynı gerçeği konuşur; kopuk toplam biter. K Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez.

· Changelog

site.ts keeps name, nav and footer columns in one identity source

If FixRav Website repeated the brand name across three files, drift would follow. One source was required.

src/config/site.ts holds name, tagline, nav, footer, gtmId and contact. Layout and components read from it. Markdown does not invent identity. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

site.ts ad nav ve footer kolonlarını tek kimlik kaynağında tutar

FixRav Website’te marka adı üç dosyada tekrarlanırsa tutarsızlık doğar. Tek kaynak şarttı.

src/config/site.ts ad, tagline, nav, footer, gtmId ve iletişim taşır. Layout ve bileşenler buradan okur. Markdown kimlik yazmaz. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde d

· Changelog

Sites compile fully static; Cloudflare Pages publishes the output

If FixRav Website carried SSR, hosting and cold-start cost would grow. Static output is enough for agency sites.

pnpm —filter site build produces dist. Push triggers Pages deploy. _headers and 404.html are recognised. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twic

Siteler tamamen statik derlenir; Pages çıktıyı otomatik yayınlar

FixRav Website SSR taşırsa hosting ve soğuk başlangıç maliyeti büyür. Ajans siteleri için statik yeterlidir.

pnpm —filter site build dist üretir. Push sonrası Pages deploy olur. _headers ve 404.html tanınır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Six literary-named themes deepen visuals from epigram toward epic

If FixRav Website wrote fresh CSS for every client, speed would die. A shared language is needed without crushing the brand.

theme-epigram, ballad, ode, saga, ray and epic packages exist. A site imports one via theme.ts. Colour overrides use html:root. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Altı tema edebi adlarla sıralanır; dil epigramdan epic’e büyür

FixRav Website her müşteriye sıfırdan CSS yazarsa hız düşer. Ortak dil gerekir ama marka da ezilmemelidir.

theme-epigram, ballad, ode, saga, ray ve epic paketleri vardır. Site theme.ts ile birini import eder. Renk html:root ile override edilir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

The new-site command scaffolds a site; ballad stays the default

In FixRav Website, hand-copying folders forgets schema and _headers. A scaffold had to appear in one command.

pnpm new-site name [theme] runs tools/create-site.mjs. Layout, content.config and public/_headers arrive. A build can be tried at once. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

new-site komutu iskelet üretir; varsayılan tema ballad ile açılır

FixRav Website’te elle klasör kopyalamak şema ve _headers’ı unutturur. İskelet tek komutta doğmalıydı.

pnpm new-site ad [tema] tools/create-site.mjs’i çalıştırır. Layout, content.config, public/_headers gelir. Build hemen denenebilir. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Theme packages stay apart from site content inside one monorepo

FixRav Website runs many company sites from one repo. Mixing theme and content in one folder kills reuse.

packages/themes holds UI; sites/ holds identity and markdown. pnpm workspace builds per filter. Cloudflare Pages deploys per site. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Monorepo tema ile siteyi ayırır; tasarım içerikten ayrı durur

FixRav Website birçok firmanın sitesini tek repodan yönetir. Tema ile içerik aynı klasörde karışırsa yeniden kullanım ölür.

packages/themes UI taşır, sites/ kimlik ve markdown taşır. pnpm workspace ile filtreli build çalışır. Cloudflare Pages site başına yayınlar. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

A wash-sale warning appears when sell and rebuy fall in 30 days

If TickPort ignored US tax reality, users would trade blind. The warning must not shout, but it must be visible.

Buy and sell dialogs check a thirty-day window. The hint stays helper copy; it does not hard-block the trade. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice. That limit was drawn on purpose. It stays on one surface so the answer is not hunted

Satış ve yeniden alım 30 gün içindeyse wash-sale uyarısı görünür

TickPort ABD vergi gerçeğini yok sayarsa kullanıcı kör işlem yapar. Uyarı bağırgan olmamalı ama görünür olmalıydı.

Satış ve sonraki alım diyaloglarında 30 günlük pencere kontrol edilir. İpucu yardımcı metin olarak durur; işlemi zorla engellemez. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Today's attention lists concentration, stops and nearby earnings

In TickPort, risk left on scattered screens is forgotten in the morning scan. An empty panel still had to say “nothing”, not vanish.

Concentration, stop/target proximity and nearby earnings sit in one list. The panel always shows; when empty it states what would be flagged. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Dikkat paneli yoğunluk, stop ve yakındaki bilançoları listeler

TickPort’ta risk dağınık ekranlarda kalınca sabah taraması unutulur. Boş panel de “bir şey yok” demeliydi, kaybolmamalıydı.

Yoğunlaşma, stop hedef yakınlığı ve yakındaki kazançlar tek listede. Panel her zaman görünür; boşsa neyin bayraklandığı yazılır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

The journal puts your plan beside the result and measures P and L

In TickPort, if the “why I entered” note sits apart from the result, learning dies. Overflowing analytics also made cards unreadable.

Plan and result share one surface. Realised P&L shows on metric cards without overflow. The next trade does not forget the prior note. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Günlük planı sonuçla yan yana koyar ve gerçekleşen kârı ölçer

TickPort’ta “neden girdim?” notu sonuçtan kopuk kalırsa öğrenme olmaz. Analitik taşması da kartı okunmaz yapıyordu.

Plan ile sonuç aynı yüzeyde durur. Gerçekleşen P&L metrik kartlarında taşmadan görünür. Sonraki işlem önceki notu unutmaz. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

On the trade form you can edit an autofilled entry price by hand

When TickPort autofilled from a quote, a wrong tick sometimes stuck. The first keypress locked the field, so correction died.

Autofill no longer treats the first edit as a skip. Refresh does not overwrite what you typed. Aligning with a broker ticket stays possible. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

İşlem formunda otomatik dolan giriş fiyatı elle değiştirilebilir

TickPort kotasyondan fiyat doldurunca yanlış tick bazen kalıyordu. İlk tuşa basınca alan kilitleniyor, düzeltme imkânsızlaşıyordu.

Otomatik dolum ilk düzenlemeyi atlanmış saymaz. Yenileme elle yazılanı ezmez. Broker fişiyle hizalama mümkün kalır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Buys, sells and dividends are recorded; cost follows FIFO lots

TickPort needs to know which lot sold for tax and P&L truth. Average cost alone is not enough.

The ledger holds buys, sells, deposits, withdrawals and dividends. Sells consume lots first-in first-out. Partial sells work too. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice. That limit was drawn on purpose. It stays on one surface so the answer is not hunte

Alım, satım ve temettü yazılır; maliyet FIFO lot ile hesaplanır

TickPort vergi ve kâr doğruluğu için hangi lotun satıldığını bilmek zorunda. Ortalama maliyet tek başına yetmez.

İşlem defteri alım, satım, yatırma, çekme ve temettüyü tutar. Satışta lotlar ilk giren ilk çıkar ile düşülür. Kısmi satış da mümkündür. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Playback rate changes keep pitch and never rescale timestamps

In MonoLingua, slowing audio helps learning, but broken pitch sounds fake. Multiplying timestamps by rate would also slide the highlight.

Rate runs from 0.5× to 1.5×. preservesPitch is set on every change. Timestamps stay media time and are not scaled by playbackRate. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Oynatma hızı değişince perde korunur; damga yeniden ölçeklenmez

MonoLingua’da hızı düşürmek öğrenmeyi kolaylaştırır ama perde bozulursa ses yapay kalır. Zaman damgasını hızla çarpmak da vurguyu kaydırırdı.

Hız 0,5×–1,5× arasındadır. preservesPitch her değişimde set edilir. Timestamp medya zamanıdır; playbackRate ile ölçeklenmez. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Words highlight with audio using native TTS engine timestamps

MonoLingua teaches English by listening while reading. Estimated timestamps would drift and lie; the riskiest technique sat here.

SyncEngine finds the active word with binary search. The web uses the CSS Highlight API with no word spans. Drift stays under 50 ms. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Ses çalınca kelime aynı anda boyanır ve damga motordan gelir

MonoLingua işiterek-okuyarak İngilizce öğrenir. Tahmini zaman damgası kayınca vurgu yalan söyler; ürünün en riskli tekniği buradaydı.

SyncEngine ikili arama ile aktif kelimeyi bulur. Web’de CSS Highlight API kullanılır, kelime span’i yoktur. Drift hedefi 50 ms altındadır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Accounts stay separate; GBP value sits under USD with live FX

If swing and retirement mix in one TickPort bucket, decisions rot. A sterling account must not read as a dollar-only line either.

Accounts stay separate. GBP market value shows under USD with a live GBPUSD rate. The equals sign is kept on FX pairs. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Hesaplar ayrı tutulur; GBP değeri USD altında canlı kurla durur

TickPort’ta swing ve emeklilik aynı torbada karışırsa karar bozulur. Sterlin hesabı da yalnız dolar satırıyla okunmamalıydı.

Hesaplar ayrı izlenir. GBP piyasa değeri canlı GBPUSD kuruyla USD altında gösterilir. FX çiftlerinde eşittir işareti korunur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Live quotes load before first paint so demo totals never flash

On a real TickPort account, showing mock prices first then jumping to live quotes broke trust. The first frame must not lie.

Real holdings are no longer seeded with demo prices. Live quotes warm before first paint. The total jump disappears. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Canlı fiyatlar ilk boyamadan önce gelir; demo toplamı flaş yapmaz

TickPort gerçek hesapta önce sahte fiyat gösterip sonra canlıya atlamak güveni kırıyordu. İlk kare yalan söylememeliydi.

Gerçek holdings artık demo fiyatla tohumlanmaz. Canlı kotasyonlar ilk boyamadan önce ısınır. Toplam zıplaması kaybolur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Portfolio summary shows total value and gain together at a glance

In TickPort the pulse question is “where do I stand today?” Scattered cards drag meetings; the hero line had to be clear.

The summary hero holds net contributed and total gain together. Extra explainer cards were removed. The office reads from the same line. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

Portföy özeti değeri ve kazancı aynı satırda tek bakışta gösterir

TickPort’ta nabız sorusu “bugün ne durumdayım?”dır. Dağınık kartlar toplantıyı uzatır; kahraman satır net olmalıydı.

Özet hero’da net katkı ve toplam kazanç bir arada durur. Gereksiz açıklama kartları kaldırıldı. Ofis aynı satırdan okur. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

You sign in with email and password; a reset link can be sent

TickPort is an investing app that tracks a portfolio. Without an account, sync and alerts cannot work; the sign-in door had to stay simple.

Email and password signup and login work. A forgotten password gets a reset link. A Google OAuth button is visible, but that provider is still closed. That limit was drawn on purpose. It stays on one surface so the answer is not hunted twice.

E-posta ve parola ile giriş yapılır; şifre sıfırlama da gelir

TickPort yatırımcı portföyünü takip eden bir uygulama. Hesapsız kalmak veri senkronunu ve uyarıları imkânsız kılar; giriş kapısı sade olmalıydı.

E-posta ve parola ile kayıt ve giriş çalışır. Unutulan şifre için sıfırlama linki gönderilir. Google OAuth düğmesi görünür ama sağlayıcı henüz kapalıdır. Bu sınır bilinçli çizildi. Kullanıcı aynı cevabı iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Server search runs across every subscribed article — the mock

Bultine search said “(mock)” and meant it: it only scanned the last slice in memory. Older articles never appeared.

Search runs on the server across all subscribed articles. No body search — the body is never stored. Wildcard and filter-injection escapes are closed. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Sunucu araması tüm abone makalelerde çalışır; mock dilim bitti

Bultine arama sayfası “(mock)” diyordu ve haklıydı: yalnız belleğe yüklenmiş son dilimi tarıyordu. Eski makale bulunmuyordu.

Arama sunucuda, abone olunan tüm makalelerde. Gövde aranmaz — gövde yasal çizgi gereği yok. Joker ve filtre enjeksiyonu kaçışı kapatıldı. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Sidebar filters split later-read and saved items out of the main

In Bultine everything sat in one pile. “Read later” mixed with today’s noise, so priority vanished.

Filters split the stream: main, later, saved. Same engine, different door — not a second app. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface. Before real traffic, this sentence must still hold in the field.

Kenar çubuğu filtreleri sonra oku ve kayıtlıyı akıştan ayırıyor

Bultine akışında her şey bir yığındı. “Sonra oku” ile bugünkü gürültü aynı listede kalınca öncelik kayboluyordu.

Filtreler akışı ayırır: ana akış, sonra, kayıtlı. Aynı motor, farklı kapı — ikinci bir uygulama yok. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Paste WhatsApp payment text and AI drafts the ledger row for

Verimaya collections lagged when offices typed by hand. Amounts and names were copied line by line from group chat; errors surfaced in meetings.

Paste the message or pick from the WAHA queue; AI extracts, you approve, then the record opens. The human gate stays — the machine only drafts. The office should not hunt the same answer in another place. That limit was drawn on purpose.

WhatsApp ödeme mesajı yapıştırılınca AI işlem taslağı çıkarıyor

Verimaya tahsilatı elle yazılan ofislerde gecikiyordu. Grup mesajındaki tutar ve isim satır satır kopyalanıyor, hata toplantıda çıkıyordu.

Mesajı yapıştır veya WAHA kuyruğundan seç; AI ayrıştırır, sen onaylayınca kayıt açılır. İnsan kapısı kapanmaz — makine yalnız taslak üretir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Doctors bind to appointments; success rates read from the split

In Verimaya, metrics without a doctor hid who owned quality problems. RPT maths vanished inside a nameless average.

Assign a doctor; metrics return per-doctor and doctor × type cross-counts. Rates come from the split now, not from thin air. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Randevuya hekim bağlanır; başarı oranı kırılımdan okunur artık

Verimaya’da randevu metrikleri hekimsiz toplanınca kalite sorunu kime ait belli olmuyordu. RPT hesabı isimsiz ortalamada kayboluyordu.

Randevuya hekim atanır; metrikler hekim ve hekim × tip çaprazını döndürür. Oran artık havadan değil, kırılımdan gelir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Appointment calendar keeps clinic, hotel and transfer in a shared

Verimaya offices do not run on clinic time alone; hotel and transfer are part of the same trip. Separate lists hid clashes and slowed ops.

Day and week views hold all three together. Clashes and gaps show on the calendar; ops stops hunting times inside chat threads. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the Tools list.

Randevu takvimi klinik, otel ve transferi aynı görünümde tutar

Verimaya ofisleri hastayı yalnız klinik saatiyle yönetmiyor; otel ve transfer aynı yolculuğun parçası. Ayrı listeler çakışmayı gizleyip operasyonu geciktiriyordu.

Gün ve hafta görünümünde üçü birden durur. Çakışma ve boşluk takvimde görünür; operasyon artık sohbet thread’inde saat aramaz. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. S ---

· Changelog

WhatsApp dates become suggestions; approve each card, never in

Verimaya can read an appointment date from a message. Writing it automatically risked the wrong day on the wrong patient — hard to unwind.

Changes land in an approval queue; every card is approved alone, never in bulk. Ambiguous matches produce nothing — silence beats a wrong record. The office should not hunt the same answer in another place. The That limit was drawn on purpose.

WhatsApp’tan gelen tarih öneri olur; toplu onay yok, kart kart

Verimaya mesajdan randevu tarihi okuyabiliyor. Bunu otomatik yazmak yanlış hastaya yanlış gün basma riski taşıyordu; geri almak zor olurdu.

Değişiklik onay kuyruğuna düşer; her kart tek tek onaylanır, toplu onay yoktur. Eşleşme belirsizse öneri üretilmez — sessizlik yanlış kayıttan iyidir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. ---

· Changelog

Operation alerts ring at flight time — no AI is guessing the

Verimaya’s calendar holds time-locked items like flights and transfers. On threshold days, gaps appeared with nobody watching — misses were expensive.

Alerts are deterministic code: they fire at the threshold. No model; a missed transfer can never be excused as “the AI guessed wrong”. The office should not hunt the same answer in another place. The

Operasyon alarmı uçuş eşiğinde çalar; yapay zekâ tahmin etmez

Verimaya randevu takviminde uçuş ve transfer gibi saat kilitli kalemler var. Eşik günü gelince kimsenin bakmadığı boşluklar oluşuyordu, kaçırma pahalıydı.

Alarm deterministik koddur: eşiğe gelince uyarı üretir. Model yok; kaçırılan transfer “yapay zekâ yanıldı” bahanesi olamaz. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez. ---

· Changelog

Read, save and star persist — refresh no longer forgets what you

Early Bultine kept states in the client. Refresh or another device forgot “I read that”.

States live in article_states, tied to the user. Read, save and star survive refresh; they never leak to a neighbour. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface. Before real traffic, this sentence must still hold in the field.

Okundu, kaydet ve yıldız kalıcı; yenileyince durum kaybolmuyor

Bultine erken sürümde durumları istemciye gömüyordu. Yenile veya başka cihaz deyince “okudum” unutuluyordu.

Durumlar article_states ile kullanıcıya bağlı saklanır. Okundu, kaydet, yıldız yenilemeden sonra da durur; komşuya sızmaz. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Three-panel reader keeps sources, stream and detail in one now

When Bultine reading collapsed to one column, context vanished. Sources, stream and article lived on separate pages.

Left sources, middle stream, right detail — three columns with fixed widths. Reading is one composition, not a tab hunt. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Üç panelli okuyucu kaynak, akış ve ayrıntıyı aynı bakışta tutuyor

Bultine haber okumayı tek sütuna sıkınca bağlam kayboluyordu. Kaynak listesi, akış ve makale ayrı sayfalarda geziliyordu.

Sol kaynaklar, orta akış, sağ ayrıntı — genişlikte sabitlenen üç sütun. Okuma bir kompozisyon; sekme avı değil. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez. Pilot öncesi bu cümle sahada da aynı kalmalı.

· Changelog

Dikte writes speech on this machine by default with no account

If Dikte required the cloud, every sentence would leave the machine. That was unacceptable for office and personal notes; the default path had to stay local.

Speech-to-text runs on whisper.cpp and cleanup on llama.cpp. No key, no account, nothing leaves the machine. You can pick a cloud provider later if you want. That limit was drawn on purpose. I

Dikte varsayılan olarak sesi bu makinede yazar ve hesap istemez

Dikte buluta zorunlu bağlanırsa her cümle dışarı çıkar. Ofis ve kişisel notlar için bu kabul edilemezdi; varsayılan yol makinede kalmalıydı.

Sesi yazıya çevirme whisper.cpp, temizleme llama.cpp üzerinde yürür. Anahtar yok, hesap yok, makineden çıkan bir şey yok. İstersen sonra bulut sağlayıcı seçersin. Bu sınır bilinçli çizildi. Kullanıcı aynı işi iki yerde aramasın diye tek yüzeyde duruyor.

· Changelog

Dikte writes speech on a hotkey and pastes into the focused app

Dikte is a voice-dictation tray app. Typing long prose by hand was slow, and the text still had to land in the window that held focus.

You press a global hotkey, speak, and press again. The transcript is cleaned, copied, and pasted into the focused window. There is no second copy-paste step. That limit was drawn on purpose. It stays on one surface so the job is not hunted twice.

Dikte kısayola basınca konuşmayı yazar ve pencereye yapıştırır

Dikte bir sesle yazma tepsi uygulaması. Eller klavyedeyken uzun metin yazmak yavaş kalıyordu; odaktaki pencereye de metnin düşmesi gerekiyordu.

Global kısayola basıp konuşuyorsun, tekrar basıyorsun. Transkript temizlenir, panoya kopyalanır ve o an odakta olan pencereye yapıştırılır. İkinci bir kopyala-yapıştır adımı yoktur. Bu sınır bilinçli çizildi.

· Changelog

Incident log opens in one click from the file and closes when

Verimaya lost clinic problems in chat or free notes: revision, complication, process delay. Cost and appointment links often stayed broken.

One click from the case file opens an incident; optional cost and appointment attach, then it closes as resolved. v1 is clinic only — prove that loop in the field first. The office should not hunt the same answer in another place.

Olay kaydı dosyadan tek tıkla açılır, çözülünce kapanır durur

Verimaya klinik sorunlarını sohbette veya serbest notta kaybediyordu: revizyon, komplikasyon, süreç gecikmesi. Maliyet ve randevu bağı çoğu zaman kopuk kalıyordu.

Hasta dosyasından tek tıkla olay açılır; isteğe bağlı maliyet ve randevu bağlanır, çözüldü deyince kapanır. v1 yalnız klinik — önce bu döngü sahada dursun. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. ---

· Changelog

Contact titles label doctor and sales without opening any now

In Verimaya reports need to know who is doctor, coordinator or sales. Mixing a title with login roles would open the panel to the wrong person.

The title list lives in Settings. Labels describe; they never change session rights. Reports name the right person; security keeps its own door. The office should not hunt the same answer in another place. That limit was drawn on purpose.

Kişi ünvanları hekim ve satışı etiketler; yetki kapısını açmaz

Verimaya’da kim hekim, kim koordinatör, kim satış — raporlar bunu ister. Ama ünvanı rol yetkisiyle karıştırmak paneli yanlış kişiye açardı.

Ünvan listesi Ayarlar’dan yönetilir. Etiket tanımlayıcıdır; oturum yetkisini değiştirmez. Rapor doğru kişiyi söyler, güvenlik ayrı kapıyı tutar. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz Araçlar listesine girmez.

· Changelog

Duplicate scan finds repeats by phone and merges them into one

In Verimaya a patient opened twice split collections and appointments in half. Until someone spotted it by hand, summary reports showed the wrong totals.

The scan checks phone, email or name; you merge the matches. Once the double row is gone, balance and history sit in one file — the double truth ends. The office should not hunt the same answer in another place.

Çift kayıt taraması telefona göre mükerrerleri bulup birleştirir

Verimaya’da aynı hasta iki kez açılınca tahsilat ve randevu ikiye bölünüyordu. Ofis bunu elle fark edene kadar özet raporlar yanlış toplam gösteriyordu.

Tarama telefon, e-posta veya ada bakıyor; eşleşenleri birleştiriyorsun. Çift satır kapanınca bakiye ve geçmiş tek dosyada toplanır — çift gerçek biter. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. ---

· Changelog

RLS keeps each user in their own box — a neighbour’s state never

Bultine may fetch shared feeds, but read state, rules and briefings belong to the person. One user’s star must not appear to another.

Policies lock each user to their rows. E2E proves A cannot read B’s data. A shared article is not a shared state. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

RLS ile her kullanıcı yalnız kendi kutusunu görür; komşu sızmaz

Bultine kaynakları paylaşımlı çekebilir ama okundu, kural ve brifing kişiye aittir. Birinin yıldızı diğerine sızmamalıydı.

Politikalar kullanıcıyı kendi satırına kilitler. Kanıt E2E’de: A, B’nin verisini okuyamaz. Paylaşılan makale ≠ paylaşılan durum. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Data export for GDPR: your rows only — articles as title and link

Bultine’s legal line never stores full article text. Export must not break that line; “give me everything” would punch a hole in the law.

Download runs on the user’s own RLS client. Articles export as title, short excerpt and link; no body, because the body was never kept. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Veri indirme GDPR: kendi satırların, makalede yalnız başlık ve

Bultine yasal çizgisi tam metin saklamıyor. Export’ta da aynı çizgi kırılmamalı; “her şeyi ver” demek hukuku delmek olurdu.

İndirme kullanıcının kendi RLS istemcisiyle çalışır. Makalelerden başlık, kısa alıntı ve link çıkar; gövde yok çünkü gövde hiç yoktu. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Account delete is RTBF: cancel active billing first, then the

In Bultine, deleting an account while Stripe kept charging was unacceptable. Matching a deleted customer later was also impossible.

If billing is active, cancel is attempted first; if cancel fails, delete is refused with a clear error. Portal cancel stays open — order changed, the right did not close. The office should not hunt the same answer in another place.

Hesap silme RTBF: aktif abonelik varsa önce iptal, sonra kapı

Bultine’da “hesabı sil” ile Stripe’ın çekmeye devam etmesi kabul edilemezdi. Silinmiş müşteriyi sonradan eşlemek de imkânsızlaşıyordu.

Aktif abonelik varsa önce iptal denenir; iptal edilemezse silme reddedilir ve net hata döner. Portal iptali hâlâ açık — sıra değişti, hak kapanmadı. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Display name now actually saves — the fake Save button is gone

Bultine settings showed a display name, but save was fake or silently updated zero rows. Users thought it stuck, then refresh restored the old name.

Save writes through the user’s own RLS client and checks the row really changed. Silent zero-row updates are caught now. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Profil adı artık gerçekten kaydoluyor; sahte Kaydet düğmesi artık

Bultine ayarlarında görünen ad vardı ama kayıt ya sahteydi ya sessizce sıfır satır güncelliyordu. Kullanıcı “kaydettim” sanıp yenileyince eski ada dönüyordu.

Kayıt kullanıcının kendi RLS istemcisiyle yazılıyor; satırın gerçekten güncellendiği doğrulanıyor. Sessiz 0 satır artık yakalanır. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Patient list: lead, status, notes and contact live on one screen

Verimaya is the ops panel for medical travel offices. Leads and patients were scattered; status, notes and phone lived in separate menus, so opening a file lagged.

List and detail share one flow: see records, track status, reach notes and contact from one screen. The three-menu hunt ends; the office pulse sits in the list. The office should not hunt the same answer in another place.

Hasta listesi tek ekranda: lead, durum, not ve iletişim bir arada

Verimaya sağlık turizmi ofisleri için hasta operasyon paneli. Lead ve hasta kayıtları dağınıktı; durum, not ve telefon ayrı menülerde aranıyordu, dosya açmak gecikiyordu.

Liste ve detay aynı akışta duruyor: kayıtları gör, durumu takip et, nota ve iletişime tek ekrandan ulaş. Üç menü gezmek kalktı; ofis nabzı listede. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. ---

· Changelog

Free AI scorecard: areas without proof show up in plain sentences

Verimaya wants clinics to see AI readiness without a sales call first. A five-minute public scorecard; the result appears before any membership gate.

Gaps without evidence are listed in plain sentences, not praise. Lead capture stays closed on purpose — honest measure first. The door stays open; selling comes later. The office should not hunt the same answer in another place.

Ücretsiz AI karnesi: kanıtı olmayan alanlar net cümleyle duruyor

Verimaya kliniklerin yapay zeka hazırlığını satış görüşmesi olmadan göstermek istiyor. Üyeliksiz beş dakikalık karne; sonuç abonelik kapısından önce ekrana geliyor.

Kanıtı olmayan alanlar övgüyle değil düz cümlelerle listeleniyor. Lead formu bilinçli kapalı — önce dürüst ölçüm. Karne kapısı herkese açık; satış sonra gelir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. ---

· Changelog

Onboarding sets the first feed and reading habit without a dead

First-time Bultine users saw three empty panels and thought the product was broken. With no sources, the next step was unwritten.

Onboarding shows the first steps: add a source, see the stream, open briefing. Empty states stay honest, but the path is visible; first value lands in one session. The office should not hunt the same answer in another place.

Onboarding ilk kaynağı ve okuma alışkanlığını boş ekran olmadan

Bultine’a ilk giren kullanıcı boş üç panel görünce ürünü “bozuk” sanıyordu. Kaynak yokken ne yapılacağı yazılı değildi.

Onboarding ilk adımları gösterir: kaynak ekle, akışı gör, brifinge bak. Boş durum dürüst kalır ama yol kaybolmaz; ilk değer bir oturumda kurulur. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Settings now let you set a password — magic-link accounts can

Bultine accounts often started with magic link; later, places that needed a password had no door. Users could not finish the lock.

Profile settings gained set and change password. Passwords never hit logs; re-auth errors become clear Turkish actions, not opaque failures. The office should not hunt the same answer in another place. The limit is deliberate; hype does not enter the product surface.

Ayarlarda parola belirleme geldi; magic link hesabı kilidi artık

Bultine hesabı çoğu zaman magic link ile açılıyordu; sonra parola isteyen yerde kapı yoktu. Kullanıcı kilidi tamamlayamıyordu.

Profil sekmesine parola belirleme ve değiştirme eklendi. Parola loga düşmez; yeniden doğrulama hatası Türkçe ve eyleme dönüştürülebilir mesaja çevrilir. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Email-and-password stays as a second door for tests and now today

Bultine’s primary sign-in is magic link. E2E and scripts cannot wait on an inbox; requiring live SMTP on every run would break the suite.

Email plus password stays as a secondary path. The product promise remains password-light; tests enter their own door without forcing users. The office should not hunt the same answer in another place. The limit That limit was drawn on purpose.

E-posta ve parola yolu duruyor; otomasyon ve test için ikinci

Bultine’da asıl giriş magic link. Ama E2E ve betikler posta kutusunu bekleyemez; her koşuda canlı SMTP şart koşmak testi kırardı.

E-posta + parola ikincil akış olarak açık. Ürün vaadi “parolasız” kalır; test ve otomasyon kendi kapısından girer, kullanıcıyı zorlamaz. Böylece ofis aynı soruyu her seferinde başka yerde aramaz. Sınır bilinçli; abartılı söz ürün yüzeyine girmez.

· Changelog

Magic-link sign-in: no password — the inbox becomes the door

Bultine collapses the feeds you follow into one reading flow. Forcing a password at signup broke onboarding; office email should be enough to enter.

A magic link is sent; the click opens the session. No password means nothing to forget. A secondary password path stays for automation and E2E; the real door is still the inbox. The office should not hunt the same answer in another place.

Magic link ile giriş: parola yok, e-posta kutusu kapı oluyor

Bultine, takip ettiğin RSS kaynaklarını tek brifinge indiren okuma sistemi. Kayıtta parola zorunlu tutmak onboarding’i bozuyordu; ofis e-postasından girmek yeterli olmalıydı.

Magic link gönderiliyor, tıklayınca oturum açılıyor. Parola yoksa unutma da yok. İkincil parola yolu otomasyon ve E2E için duruyor; asıl kapı hâlâ posta kutusu. Böylece ofis aynı soruyu her seferinde başka yerde aramaz.

© 2026 Atalay Yörükoğlu. All rights reserved. A brand of Albion Signature Group Limited