İçeriğe geç

Pasaj haritası ve okuyucu bağlantısı

Geliştirme · 1.0.0

Yayın

Doküman
1.0.0
Uygulama
1.0.0
Şema
1
Veri
tr-latn-1

Bu sayfa

Uygulama
1.0.0
Şema
1
Veri
tr-passage-1

Başlangıç haritasını yalnız süzen adapterın sınırı kaldırıldı. Güncel pasaj dizini aile ve konumları bulur; seçim koordinatları ve doğrulanmış kaynak cümleler tam metni sağlar. Yeni yerleşim, yeni aile ve sınır düzeltmesi eski pasaj yayınını yeniden üretmeden gösterilebilir. Kaldırılan üyelik gizlenir. Web/mobil aynı ortak projeksiyonu ve yönetim sürümü kontrolünü kullanır.

Bu kapanış yeni bir editoryal karar veya atıf sistemi değildir. Mevcut kabul edilmiş ilişkiler korunur; ekleme, düzeltme ve kaldırma test verisinde sınanır. Yayın protokolü sonradan laboratuvardan gelecek kararların nasıl aktarılacağını açıklar. Aşağıdaki 28 Eylül adapter açıklaması ilk sürümün tarihsel sınırını anlatır; güncel okuyucunun sınırı değildir.

Gerçek kaynak kontrolünde Birinci Söz, Gençlik Rehberi ve On Dördüncü Lem’a’daki 21 yerleşimin metni önceki yayınla birebir aynı kaldı. Yeni paketin 298 bölüm nesnesi de önceki paketin aynısıdır; yalnız 102.137 baytlık keşif dizini eklendi. Yönetim sürümü 680, 142 aile ve 309 yerleşim korundu. Tam corpus denetimi veya yeniden üretim yerine değişen okuma/yayın yolu ve geri alınan DB testi sınandı.

Gençlik Rehberi’ne Hanımlar Rehberi ve Nur Çeşmesi tam bölüm sunumları eklendi. Web ve mobil eser sayfaları mevcut bölüm-paragraf ilerlemesini kullanarak okumayı başlatır veya sürdürür; ikinci bir metin ya da ilerleme kaydı oluşmaz. Eser sözleşmesi kimlikleri ve kapsam sınırlarını açıklar.

Güncel üyelik denetimi için R2’ye ayrı references projeksiyonu eklendi. 298 bölümün yönetim sürümü 680 olan tek snapshot’ı 18,6 MB’tır; okuyucu isteği yalnız ilgili bölüm nesnesini okur. Core, not, çeviri ve pasaj metin yayınları değişmedi. Yayın protokolü sonraki yönetim düzeltmesinin yeni snapshot ve Worker piniyle nasıl yayımlanacağını açıklar. Bu katman yazma servisi veya yeni bir atıf arayüzü değildir.

Webde dört, Expo-web’de beş eser akışı; kaynak cümle sayıları, aynı kaynak paragrafa dönüş ve dar RTL yerleşim doğrulandı. Mobil gerçek Birinci Söz pasaj karşılaştırma/gezinme regresyonu da geçti. Fiziksel cihaz testi yapılmadı.

Web ve mobil okuyucunun paneli Diğer geçtiği yerler olarak sadeleştirildi. Pasaj seçimi/önizlemesi, kitap-bölüm listesi, ilgili yere gitme, tam metin karşılaştırması ve birebir/farklı metin ayrımı korunur. Teknik kimlikler, kaynak yönü, derleme bölge dökümleri, başlangıç yayını başlığı, atıf kapsam sayımları ve boş atıf alanı okuyucudan çıkarıldı. Ayrı harita sayfası ve araştırma bileşenleri silinmedi; okuyucu panelinden haritaya inceleme bağlantısı kaldırıldı. Bu bir erişim yetkilendirmesi değil, okuyucu deneyimi ayrımıdır.

@munderecat/reader-core içindeki getCurrentChapterPassages ve getCurrentPassageIdentity yayımlanmış metni yeniden kurmaz. Mevcut okuma projeksiyonunu güncel chapter üyelikleriyle süzer: kaldırılmış, başka aileye taşınmış veya seçim kimliği değişmiş yerleşim gösterilmez. Aile açılırken yalnız o ailede bulunan chapterların güncel durumu birer kez okunur. Farklı yönetim sürümleri veya başlangıç yayınları karıştırılmaz; servis sorunu boş listeye çevrilmez. Panel kapatma ve seçim değişikliklerinde istek iptali korunur.

Bu dar adapter mevcut yayın içindeki yerleşimleri filtreler; yönetimde sonradan eklenen ve okuma yayınında henüz bulunmayan yerleşimlerin tam metnini üretmez. Yeni yerleşimlerin dinamik sunumu ayrı bir projeksiyon geliştirmesidir. Eski haritayı güncel envanterin tamamıymış gibi sunmak doğru değildir. Kaynak sadakati kontrolleri, corpus ID’leri, kaynak sırası ve DB tabloları değiştirilmedi.

Teknik inceleme ve gerekçeli öneri üretimi bağımsız laboratuvar çalışmasıdır. Araştırmanın bütün açık soruları ürün ilerlemesi için kapanış şartı değildir. Gelecekteki atıf ağı bu panel sadeleştirmesinin kapsamına alınmadı.

Başlık, liste etiketi ve konum sayımı 19 ortak UI sözlüğünde güncellendi. Sözlük bütünlüğü teknik olarak test edilir; yeni ifadeler için bütün dillerde anadil editoryal onayı verilmiş olduğu iddia edilmez. Aşağıdaki önceki aşama kayıtları tarihsel bağlamdır; güncel okuyucu gösterimi için bu bölüm geçerlidir.

Doğrulama: web/mobil/reader-core/i18n birim testleri ve tip kontrolleri; masaüstü/dar RTL web tarayıcı senaryoları; Expo-web hata/yeniden deneme ve gerçek Birinci Söz gezinme/karşılaştırma senaryoları. Gerçek yerel web kontrolünde panel açılmadan önceki ve sonraki okuma metni birebir aynı kaldı. Bu tur fiziksel cihaz veya iOS simülatör kontrolü yapılmadı; Expo-web testi bunların yerine geçmez. DB yazımı, migration, tam corpus yeniden doğrulaması ve uzak dağıtım yapılmadı.

Dil çalışmasının ardından kabul edilmiş pasaj ailelerini yeni ortak Content API, web ve mobil okuyucuda görünür kılmak. Eski keşif tablolarını yeniden üretmek, metinleri birleştirmek veya atıf ağı kurmak bu paketin kapsamında değildir.

12 Eylül 2026 tarihinde yerel compact reader verisi ve yayımlanmış RPC çıktıları salt okunur bir transaction ile incelendi. Yeni bir kanoniklik kararı alınmadı.

Kayıt Sayı
Kabul edilmiş pasaj ailesi 142
Bağımsız yerleşim 309
Yerleşim bulunan chapter 90
Yönlü ilişki 84
Derleme haritası 24
Derleme bölgesi 816

117 kimlik compositional_unit, 25 kimlik passage türündedir. 122 ailenin iki, 16 ailenin üç, üç ailenin dört, bir ailenin beş yerleşimi vardır. Tek yerleşimli veya metni eksik aile bulunmadı.

Yönlü ilişkiler: 72 included_as, 9 excerpted_as, 2 adapted_as, 1 republished_as. Derleme bölgeleri: 14 component_exact, 48 component_variant, 91 local_wrapper, 60 local_transition, 603 local_original. Bunlar önceki kabul kararlarıdır; yeni arayüz çıkarımı değildir.

16 ailede bütün yerleşimlerin seçili metni birebir aynıdır. 126 ailede en az bir fark vardır. Aynı aile içindeki 198 yerleşim çiftinin 22’si eşit, 176’sı farklı metin taşır. Karşılaştırmada normalizasyon, boşluk silme veya başlık çıkarma yoktur.

Bu sayılar hata oranı veya yeni bir semantic variant kararı değildir. Örneğin Birinci Söz ailesinin iki yerleşimi 5.021 ve 5.019 UTF-8 byte taşır. On Dördüncü Lem’a’nın İkinci Makamı ailesinin üç yerleşiminde giriş başlıkları da farklıdır. Kabul edilmiş ortak kimlik, bu yerel farkların gizlenmesini gerektirmez.

İlk okuyucu bağlantısı incelenmiş lineage_control.reader_* sonuçlarını kullanır. Her chapter’ın yerleşimleri ve seçili kimliğin bütün yerleşimleri ayrı isteklerdir. Listeleme yalnız panel açıldığında yapılır; metni okumak bu servise bağlı değildir.

Bu kapsam, bütün kısa cümle/paragraf tekrar sınıflarının yeniden taranması veya okuyucuda gösterilmesi değildir. repetition_control.reader_exact_* ve display chain verisi korunur; incelenmiş pasaj haritasıyla aynı şey sayılmaz. Büyük keşif tabloları veya ham benzerlik adayları bu katmana taşınmaz.

Kanonik kimlik, tercih edilen yerleşim ve kaynak yönü ayrı kavramlardır. Bir ailenin ilk sıralanan üyesi kendiliğinden asıl kaynak değildir. Bir aileye üyelik, cümle eşitliği veya atıfların başka yerleşime otomatik aktarımı anlamına gelmez.

  • Core tablo, metin, sıra, kimlik ve reconstruction değişmez.
  • Mevcut tr-passage-1 stable kimlikleri korunur; DB migration veya rebuild yoktur.
  • Yerleşim değiştirildiğinde kendi bölümüne ve başlangıç cümlesine gidilir.
  • İngilizce veya Osmanlıca gösterim pasaj ailesine yeni eşdeğerlik eklemez.
  • Başka dilde okurken Türkçe kaynak konumuna geçiş açık olmalıdır.
  • Servis hatası ve yüklenmemiş veri, “bu bölümde tekrar yok” anlamına gelmez.
  • Yeni ana corpus hash envanteri veya pahalı full-corpus taraması yapılmaz.
Terminal window
node --test scripts/passages/audit-reader.test.mjs
node scripts/passages/audit-reader.mjs .cache/passages/reader-audit.json

Komut yalnız çalışan yerel Supabase’i kullanır; ortam değişkeninden uzak DB’ye geçmez. Kabul edilmiş lineage sürümünü kontrol eder, ailelerin bütün yerleşimlerini mevcut RPC’den okur ve metin eşitliği sayımlarını üretir. Rapor mevcut dosyanın üzerine yazılmaz. Çıktı çalışma önbelleğidir; corpus veya yeni release değildir.

Tekrarlar ve Kanonik Pasaj Haritası: 15 Eylül İş Paketi

Bölüm başlığı “Tekrarlar ve Kanonik Pasaj Haritası: 15 Eylül İş Paketi”

İlk okuyucu bağlantısı aşağıdaki tarihsel listede tamamlanmıştır. Bu devam paketi mevcut kabul verisini kullanır; yeni keşif, DB reset/import veya atıf ağı yazımı içermez.

  • Kapsam: kabul edilmiş tr-passage-1, yerel DB ve mevcut API bağlantısının aynı 142 aile, 309 yerleşim ve 24 derleme haritasını kullandığını doğrula. Sonradan eklenen segment çalışmasını bu paketten ayrı tut.
  • Yayın: chapter/aile sonuçları ve küçük genel harita dizinini ayrı, değişmez bir Content API yayınına dönüştür; mevcut R2 deposunda yayımla ve staging/production servisine bağla. Core yayını ve remote DB değişmesin.
  • Okuyucu: web/mobilde diğer konumlar ve karşılaştırmayı koruyarak kabul edilmiş kaynak/derleme ilişkilerini göster. Tam metinler ve kalıcı cümle adresleri değişmesin; aile üyeliği otomatik atıf eşitliği yaratmasın.
  • Genel harita: kitap/chapter filtreleri, aile yerleşimleri ve derleme ilişkilerini web/mobilde gezilebilir yap. Seçilen kaynak yerine gitme, hata/boş sonuç ayrımı ve dar ekran davranışını doğrula; dokümante et ve web yayınını güncelle.

Başarı ölçütü yalnız test sayısı değildir: Birinci Söz’deki İkinci Makam’dan diğer kitap/chapter yerleşimlerine gidilebilmeli, yerel metin farkları görünür kalmalı ve ana okuyucunun kaynak metni/sırası hiç değişmemelidir. Yerel geliştirme yerel Supabase’de kalır. Büyük similarity tabloları veya yeni bir full-corpus hash envanteri bu iş için yeniden üretilmez.

  • Önceki kabul kararları, migrationlar ve compact kurulum kapsamını doğrula.
  • 142 aile ve 309 yerleşimi mevcut RPC üzerinden karşılaştır.
  • Ortak Content API ve reader-core salt okunur pasaj sözleşmesini bağla.
  • Web ve mobilde bölüm pasajları, diğer konumlar ve ayrı metin gösterimini ekle.
  • Seçili konuma geçiş, hata izolasyonu ve metnin değişmediğini doğrula.
  • Yerel/yayımlanmış ortam farkını ve sıradaki dar kapsamı kaydet.

Content API’de chapter_passages_get ve passage_identity_get, reader-core’da getChapterPassages ve getPassageIdentity eklendi. Kabul edilmiş paket pini SOURCE_PASSAGE_RELEASE ile taşınır. Eski operation kimlikleri, content context ve target registry korunur. Yerel adapter mevcut chapter-lineage ve identity RPC’lerini kullanır; kaynak sürümü ve istenen kimlikleri denetler.

Web’de Tekrarlar düğmesi yan paneli, mobilde aynı düğme native sheet’i açar. Aile seçimi bütün yerleşimleri gösterir; karşılaştırma kaynak metinleri ayrı tutar. Yeni bir diff veya tercih edilen kaynak kararı üretilmez. Karşılaştırma açıldığında görünür alana gelir. Türkçe kaynak konumuna geçiş kalıcı bölüm ve cümle adresini kullanır; bir çeviri karakter konumuna sahte bağlantı kurulmaz.

Hızlı seçim ve kapanış istekleri iptal eder. İptal denetimi, React Native’in kurulu AbortController uygulamasında bulunmayan throwIfAborted metodunu gerektirmez. Capability hatası ana okuyucuyu kapatmaz. Boş başarılı sonuç ve erişilemeyen servis ayrı durumlardır. Arayüz anahtarları 19 dilde tamamlandı; bu, bütün diller için anadil editör onayı anlamına gelmez.

Derleme üyeleri ve yönlü ilişkiler API’de ayrı koleksiyonlar olarak hazırdır. İlk panel bunların tamamını görselleştiren bir graph değildir; bölümdeki pasaj seçimi, aile konumları ve metin karşılaştırmasıyla sınırlıdır.

  • API/contract/reader-core toplam 202 test ve üç typecheck geçti.
  • Web’de 97 unit, 10 pasaj browser ve 11 not browser testi geçti.
  • Mobilde 48 unit ve gerçek yerel veriyle dört Expo-web testi geçti.
  • Sekiz i18n testi, web/mobil/i18n typecheck’leri ve üç audit testi geçti.
  • Gerçek Birinci Söz üzerinde 1440 ve 390 pikselde üç İkinci Makam yerleşimi, tam metinlerin ayrı kalması ve On Dördüncü Lem’a’ya geçiş doğrulandı.
  • Hedef cümlenin gerçekten görünür alana gelmesi kontrol edildi; yalnız URL veya DOM’da bulunması yeterli sayılmadı.
  • Mevcut kısa chapter reconstruction browser testi geçti: 81 paragraf, 221 cümle, 24.634 byte ve önceki chapter hash’i değişmedi.
  • Dar/RTL görünüm, karşılaştırma odağı, hata/yeniden deneme ve stale cevap izolasyonu ilgili testlerle doğrulandı.

Bu turda iOS simülatör veya fiziksel Android testi yapılmadı. Mobil Expo-web sonucu native cihaz doğrulamasının yerine geçmez; native iptal uyumluluğu kurulu React Native polyfill’iyle ayrıca denetlendi.

Web ve mobilde /passages ekranı kütüphane, menü ve okuyucudan erişilir. Kitap/chapter filtresi aileleri bulur; bir aile açılınca diğer kitaplardaki yerleşimleri de korunur. Aileler, incelenmiş yönlü ilişkiler ve derlemeler ayrı görünümlerdir. Reader paneli seçili yerleşimin kaynak bağlantılarını ve derleme üyeliklerini de gösterir. Derlemeler kaynak sıralı bölgeleri ve bunların component_exact, component_variant, local_wrapper, local_transition, local_original rollerini taşır.

Harita tek passage_map_get isteğiyle küçük metadata dizinini yükler. getPassageMap({ signal }) ortak reader-core API’sidir. Tam exactText yalnız aile isteğiyle gelir. Önizleme 160 Unicode karakteriyle sınırlıdır; kaynak metin normalizasyonu veya kesilmesi değildir. Aile numaraları görüntüleme sırasıdır; kalıcı ilişki anahtarı identityId, konum anahtarı placementId olarak kalır.

Compiler kurulu kabul edilmiş chapter RPC’lerini bir kez okur. Aynı veriden aileleri gruplar, yinelenen yönlü ilişkileri tekilleştirir ve haritayı üretir; ikinci bir keşif veya identity sorgu turu yapmaz. Bilinen boş chapter sonuçları da paketlenir; eksik servisle boş kayıt birbirine karışmaz.

Yayın Değer
Pasaj kaynağı Değişmeyen tr-passage-1
Chapter nesnesi 298
Aile nesnesi 142
Harita / manifest 1 / 1
Toplam nesne 442
Toplam boyut 9.291.057 byte
Genel harita 337.041 byte
Haritada kapsanan kitap/chapter 13 / 90

Publication ID: 4ecc51f734ba20b912295e1e0394cede941be2677e6a4b986482b530e866ac91. Bu yeni bir corpus veya tr-passage release değildir; mevcut kabul verisinin Content API okuma yayınıdır. R2 anahtarı content-api/v1/passage-releases/{releaseId}/{publicationId}/ şeklindedir.

Paket mevcut munderecat-target-releases bucket’ına yalnız yeni nesneler olarak yazıldı. Manifest en son yayımlanır, tamamlanmış yayın üzerine yazılmaz. İlk aktarım ve nesne doğrulaması yaklaşık 46 saniye sürdü. Remote DB’ye yazma, reset, migration veya yeni corpus hash envanteri yoktur.

Kurulu yerel tr-passage-1 ve yerel Supabase REST servisiyle:

Terminal window
node --experimental-strip-types scripts/content-api/passage-publication.mjs \
--mode build --upstream http://127.0.0.1:55321
node --experimental-strip-types scripts/content-api/passage-publication.mjs \
--mode verify

Varsayılan dizin .cache/content-api-passages olur. Build mevcut dizini ezmez; yeni çıktı için --output kullanılır. Yerel API bu varsayılan dizini veya MUNDERECAT_PASSAGES_PUBLICATION_DIR değerini kullanır. Dizin yoksa genel harita unavailable olur; mevcut chapter/aile RPC’leri çalışmaya devam eder. Build yalnız açıkça belirtilmiş loopback origin veya sürümü doğrulanan offline --source girdisini kabul eder; production’a kendiliğinden bağlanmaz.

Yayıncı ortamında bucket ile sınırlı S3 kimlik bilgileriyle:

Terminal window
node --experimental-strip-types scripts/content-api/passage-publication.mjs \
--mode publish --package .cache/content-api-passages \
--publication-id <build-sonucundaki-publication-id> \
--bucket munderecat-target-releases

Gerekli ortam değişkenleri CLOUDFLARE_ACCOUNT_ID, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY; geçici S3 oturumu kullanılıyorsa AWS_SESSION_TOKEN. Anahtarlar kaynak koduna veya belgeye konmaz. Bu yayında geçici bucket yetkisi işlemden sonra iptal edildi ve yerel kimlik bilgisi silindi.

Hosted API CONTENT_PASSAGES_PUBLICATION_ID pinini kullanır. Manifest, core context ve registry ile uyumlu olmalıdır. Ana content/notes yayın pinleri ve önceki operation revision ID’leri değişmedi. Pasaj manifest’i yalnız pasaj isteğinde açılır; bozuk/eksik pasaj yayını ana metin veya not servisini bozmaz. Pasaj pinini kaldırmak yalnız bu capability’yi devre dışı bırakır.

  • API/contract/reader-core: 228 test, üç typecheck ve generated dosya kontrolü.
  • Web: 102 unit, 16 browser; i18n: 9 test. Typecheck ve ilgili lint temiz.
  • Mobil: 55 unit, 9 gerçek yerel veriyle Expo-web testi ve typecheck.
  • Production API’deki genel harita, Birinci Söz chapter pasajları ve İkinci Makam ailesi yerel paketin üç nesnesiyle birebir karşılaştırıldı; hepsi aynı.
  • Birinci Söz core isteği ve mevcut kısa chapter reconstruction browser testi geçti. Kaynak metin, 81 paragraf/221 cümle, byte/hash ve sıralama korunuyor.
  • Gerçek harita üzerinde 1440/390 piksel, Türkçe ve Arapça arayüzlerde üç İkinci Makam yerleşimi ve karşılaştırmadaki metinlerin birebir korunması doğrulandı. Taşma veya JavaScript hatası yoktu; dar ekranda haritadan On Dördüncü Lem’a’nın hedef cümlesine geçiş gerçekten görünür alana ulaştı.
  • Mevcut production API smoke testi de geçti: 298 bölüm kataloğu, kısa/uzun bölüm, Latin/Osmanlıca hedefler, İngilizce available/unavailable ayrımı, adresler, başlıklar, ETag ve CORS davranışı korundu.
  • R2 yayını, staging Worker, production API ve production web güncellendi. Staging ve web Access koruması korundu. Staging anonim istekleri 302 ile Access’e gönderdiğinden burada içerik doğrulaması iddia edilmez; hosted içerik karşılaştırması public production API’de yapıldı.

Bu paket için iOS simülatör/fiziksel Android testi yapılmadı. Expo-web testleri native cihaz testi değildir. Arayüz anahtarları 19 dilde tamamdır; anadil editör onayı değildir. Yerel uygulama ve mobil geliştirme yerel Supabase’de kaldı.

Yeni aile kabulü, kısa cümle/paragraf tekrarlarının haritaya eklenmesi, semantic fark kararı, tercih edilen birincil kaynak belirleme, atıf yazma ve otomatik atıf aktarımı bu pakette yapılmadı. Harita kabul edilmiş veriyi inceleme ve gezinti aracıdır; bütün corpus tekrarlarının eksiksiz keşfi iddiası taşımaz.

Paketin ilişkisel ayrıntıları canonical passage release ve tekrar mimarisi belgelerindedir.