2.1.0

Agent Workflow'ları, Uygulama-İçi Destek ve Partner OAuth

Mastra üzerine yeniden kurulan AI agent canlı workflow akışlarıyla, Helpway destekli uygulama-içi destek, partnerler için self-serve OAuth, Content CMS'e entry başına analitik ve dashboard'un üst nav'dan açılır sidebar'a geçişi.

Mastra Üzerine Yeniden Kurulan AI Agent

AI drawer artık tamamen Mastra-native. Chat, tool execution ve mesaj geçmişi Mastra runtime'ında çalışıyor — eski AI SDK ham bağlantıları kaldırıldı.

Mastra Geçişi `NEW`

`handleChatStream` yeni canonical chat route'u. Eski `/api/chat` AI SDK route'u kaldırıldı. Agent tanımı `apps/api/domains/ai/agents/project-agent.ts` içinde — native tool call'lar, streaming ve adım limitleri ile.

Thread'ler Arası Semantik Hafıza `NEW`

`@mastra/memory` postgres.js storage adapter'ı ("Path B") ile aktif — Cloudflare Workers'ın `prepare:true` modunu destekliyor. Embedding'ler 768 boyuta sabitlendi (4× depolama tasarrufu) ve HNSW indeksleme yeniden açıldı. Her kullanıcı için multi-tenant izolasyon `Vector.query` filter katmanında zorlanıyor.

Sonuç: agent geçmiş konuşmaları hatırlıyor ve mevcut thread'e bağlamı taşıyor — oturum sınırını aşarak.

`useChat` ile HITL `IMPROVED`

Drawer `@ai-sdk/react` `useChat`'a geçti — native Human-in-the-Loop. `askQuestion`, `createPlan`, `proposeTranslations` inline onay kartları çiziyor; agent kullanıcının cevabıyla suspend olup devam ediyor — custom snapshot endpoint yok, D1 round-trip yok.

Yazma Tool'ları Auto-Apply `IMPROVED`

Güvenli yazma tool'ları (`proposeTranslations`, `proposeKeys`, `proposeContentEntries`, `proposePublishEntries`, `proposeTranslationEdits`, dil ekle/düzenle) artık execute'te otomatik uygulanıyor ve agent ne yaptığını anlatıyor. Approve/Deny kartları sadece gerçekten yıkıcı işlemler için. Agent dürüst sayılar veriyor — kısmi başarı "40 talep edildi / 38 yazıldı" olarak görünüyor, sahte-mükemmel sayılar değil.

Daha Akıllı Tool Seti

---

  • `webSearch` (Exa üzerinden) — proje-bilinçli araştırma, aylık kota ile
  • `getContentEntries` relation field UUID'lerini isim/başlığa çözüyor, `focusNamespace` ile alt-grup açılımı destekleniyor
  • %70+ context kazancı — Memory yazımları read/web/edit/workflow tool'ları için slim, tam payload'lar LLM context'ine girmiyor
  • Anti-halüsinasyon — yazma tool'ları boş sonuç setinde başarı iddia etmiyor

Cloudflare Workers Üzerinde Workflow Engine `NEW`

Çok adımlı işler için (toplu çeviri, içerik batch üretimi) agent artık tool döngüsü yerine gerçek bir workflow engine'e devrediyor.

`createPlan` + `startWorkflow` canlı, suspend edilebilir, adım-bazlı bir pipeline üretiyor. İlerleme SSE üzerinden doğrudan chat UI'ya akıyor. Workflow kartı adımları, çeviri batch'leri için dil başına ilerleme çubuklarını ve faz-faz canlı durum pill'ini render ediyor.

Mastra default engine + D1 storage üzerine kurulu. Cloudflare Workers'ın idle timeout'u düşük-overhead SSE heartbeat ile çözüldü. Workflow snapshot'ları `toRawMessages` üzerinden round-trip ediyor — 1.500 key'lik çeviri batch'inin ortasında refresh atınca card state kaybı olmadan restore oluyor.

Bu ay ship olan iki workflow:

Plan kullanıcıya tek bir odaklı soru sorabiliyor (scope gerçekten muğlaksa); aksi halde direkt akıyor.

---

  • `translation-batch` — dil başına ilerleme çubuğuyla toplu çeviri
  • `content-creation` — DISCOVERY → plan → write → verify, feedback-driven rejection ile

Helpway Uygulama-İçi Destek `NEW`

Better i18n artık Helpway destekli uygulama-içi destekle birlikte geliyor. Sidebar son destek duyurusu veya okunmamış konuşma için anchored preview gösteriyor — platforma uyumlu monochrome avatar treatment ile.

Duyuruya tıklama generic inbox yerine entry detail'a deep-link atıyor. Helpway `@helpway/react` SDK'sı bu ay 0.10 → 0.12'ye taşındı — dashboard sidebar entegrasyonu ve görsel treatment sıkılaştırması.

Daha büyük hikaye: Helpway, Better i18n partner OAuth'unu production'da kullanan ilk dış ürün — production dashboard'u kurulum token'larıyla bizim auth surface'imizde doğrulanıyor.

---

Sidebar Navigasyon Yenilemesi `IMPROVED`

Dashboard üst nav'dan açılır sidebar'a geçti — ElevenLabs'in navigasyon kalıbı temel alındı.

Content editor de tek-header layout'a geçti — breadcrumb navigasyon (Content / Model / Title), flat properties tab ve yeniden tasarlanmış icon-tab sidebar.

---

  • Kapsam-bilinçli ayarlar sidebar'ı — org ve project sınırları arasında bağlam korunuyor
  • Last-context navigasyon — ayarlar ile main app arası gidiş-gelişte yerini hatırlıyor
  • Kompakt kullanım kartı sidebar footer'ına taşındı
  • Üyeler ve Faturalama org settings sidebar'ında yüzeyde
  • İç içe section'lar için açılır alt navigasyon
  • İsim/e-posta ile kullanıcı menüsü, sidebar'da yardım butonu

Partner OAuth 2.0 `STABLE`

Partner OAuth artık üçüncü-parti tool'lar için self-serve onboarding ile geliyor.

Helpway kurulum token'larının ilk production tüketicisi.

---

  • OAuth (key-siz) MCP onboarding — Claude Code ve Cursor için, API key copy-paste yok, IDE doğrudan handshake yapıyor
  • RFC 7591 dynamic client registration — native before-hook ile deduplication
  • `GET /v1/installations` — kurulu partner'lar için grant discovery endpoint'i
  • Consent ekranı polish — başarıda 3s otomatik redirect, `logo_uri` olmayan client'lar için `IconCode` fallback
  • Grant revoke `dbDirect` üzerinden okunuyor — revoke anında yansıyor, cache TTL beklemeden

Content CMS Analytics `NEW`

Her içerik entry'si artık görüntüleme analitiği ile geliyor.

`publishEntry` artık body'si boş çevirileri published olarak işaretlemeyi reddediyor — CDN'de "ghost" entry'leri önlüyor.

---

  • Entry başına sparkline — gradient dolgu, hover tooltip, 7g/30g periyot toggle
  • Cloudflare-style TimeRangePicker — 10 preset, custom range, timezone, son kullanılanlar
  • Analytics sidebar — ülke ve referrer breakdown'larıyla
  • Backend — Cloudflare Analytics Engine üzerinde full stats endpoint, periyot başına KV-cache, deterministik cache busting
  • Yerinde CMS aktivasyonu — empty state'ten doğrudan enable, ayrı setup flow yok

Onboarding Wizard `IMPROVED`

---

  • Inline website analizi + auto background enrichment — analyzer için Gemini yerine OpenRouter (`gpt-4o-mini`)
  • OAuth MCP adımı — Claude Code ve Cursor için key-siz handshake
  • Chrome-aware skeleton — pending state'te sayfa şekli gerçek layout ile eşleşiyor
  • Setup wizard canonical `projectId`'ye taşındı

Telemetri & Güvenilirlik `IMPROVED`

---

  • PostHog Managed Reverse Proxy geçişi — self-hosted proxy kaldırıldı, exception capture proxy-rewritten extension chunk'larıyla
  • Sourcemap pipeline PostHog'a bağlandı — production stack trace'leri okunabilir
  • `no-cache` index.html — geri dönen kullanıcılar her zaman güncel chunk'ları alıyor (eski stale-chunk crash'lerinin kök nedeni)
  • **`vite: preloadError` recovery** — cache bust + session-cap'li retry budget ile auto-reload
  • **TanStack Router #7120 workaround** — root route `wrapInSuspense: true` — `<MatchInnerImpl>`'da bare `undefined` throw'a sebep olan ilk-yükleme race'i kapanıyor

Güvenlik `IMPROVED`

---

  • `samlify` >= 2.13.0 — GHSA-34r5-q4jw-r36m (XML injection)
  • `dompurify` >= 3.4.0 — editor XSS yüzeyi kapatıldı
  • `next` >= 16.2.6 — 8 high CVE override ile patch'lendi
  • Release workflow action'ları commit SHA'larına pin edildi
  • `osv-scanner` high+ severity politikasıyla hizalandı
  • CODEOWNERS + org-level security baseline workspace'e bağlandı

Bug Düzeltmeleri & Polish

  • Stripe sync plugin callback'lerine geçti (`onSubscriptionCreated` / `onSubscriptionUpdate`) — `databaseHooks` çalışmıyordu; 5 Mayıs'taki abonelik state divergence olayı çözüldü
  • Webhook `findFirst` → `findMany` + `deletedAt` filtresi — silinmiş proje aynı repo'yu paylaşıyorsa push'lar artık sessizce kaybolmuyor
  • Admin impersonate banner layout'tan sidebar kartına taşındı
  • Stop butonu çalışan workflow'ları gerçekten durduruyor — sadece chat fetch'i değil
  • Session selector Select component stiline hizalandı
  • Çoklu chat persistence düzeltmeleri: zengin tool part'lar canlı stream ile 1:1 restore, etkileşimli part'lar same-id continuation'da korunuyor, terminal workflow snapshot'ları restore üstünden round-trip ediyor