fix(sohbet): iç içe markdown bağlantısı düzleştiriliyor ([[x](y)](y) → [x](y))

Model paketsiz cevapta "[[/paket](/paket)](/paket)" yazıyor, ekranda
köşeli parantezler ve "Paket (Paket)" kartı çıkıyordu (QA B3). Rehber
eşlemesinden önce aynı adresi iki kez saran bağlantı her adres için
düzleştirilir; akış tamponu `)`'den sonra `](` gelip gelmediğine bakar
(bir karakterlik bekleme), parça parça çıktı tek seferlikle aynı kalır.
baglanti-denetim'e iki senaryo: 56/56.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-10-08 23:59:16 +03:00
parent 00e0a8ae9f
commit f955a76c1e
2 changed files with 61 additions and 7 deletions

View File

@@ -5,8 +5,9 @@
*
* lib/ai/baglanti-denetimi.ts gerçek content/rehber listesiyle sınanır:
* kayıtlı slug dokunulmaz, yakın slug yeniden yazılır (başlık kayıttan),
* uydurma slug düz metne iner; akış tamponunun parça parça çıktısı tek
* seferlik sonuçla birebir aynı olmalı. Beklenti tutmazsa çıkış kodu 1.
* uydurma slug düz metne iner; iç içe `[[x](y)](y)` bağlantısı (her adres)
* `[x](y)` olur; akış tamponunun parça parça çıktısı tek seferlik sonuçla
* birebir aynı olmalı. Beklenti tutmazsa çıkış kodu 1.
*/
import { BaglantiTamponu, rehberBaglantilariniDuzelt, type RehberKaydi } from "@/lib/ai/baglanti-denetimi";
import { getRehberAramaKayitlari } from "@/lib/rehber";
@@ -71,6 +72,19 @@ function senaryolar(rehberler: readonly RehberKaydi[]): Senaryo[] {
bekle: `Oku: [${obp.baslik}](/rehber/${obp.slug}).`,
duzeltme: 1,
},
{
// QA 8 Eki 2026: paketsiz cevapta modelin ürettiği biçim
ad: "ic-ice-paket-baglantisi",
metin: "Tercih Dönemi Paketi (299 TL, [[/paket](/paket)](/paket)) ile açılır; [[a](/x)](/y) kalır.",
bekle: "Tercih Dönemi Paketi (299 TL, [/paket](/paket)) ile açılır; [[a](/x)](/y) kalır.",
duzeltme: 0,
},
{
ad: "ic-ice-rehber-baglantisi-sonra-eslesir",
metin: "Oku: [[Yatay geçiş](/rehber/yatay-gecis-rehberi)](/rehber/yatay-gecis-rehberi) ve [[[OBP](/rehber/obp-nedir)](/rehber/obp-nedir)](/rehber/obp-nedir).",
bekle: `Oku: [${yatay.baslik}](/rehber/${yatay.slug}) ve [${obp.baslik}](/rehber/${obp.slug}).`,
duzeltme: 2,
},
];
}