Kısa özet — tarama çıktısı düzeltmeleri, kendi uyarısını üretmeyen çerçeve, kaldırılan proje modülünün izlerinin temizlenmesi ve görünür metin temizliği.
Bu sürüm, 0.9.3 yayınından sonra yapılan çalışmanın kaydıdır. Madde madde yükseltme
yapılacakların karşılığı UPGRADING.md 0.9.4 bölümündedir.
Değişti
- Çerçeve dışındaki anlamsız/abartılı sözcükler temizlendi (görünür metinler).
FrameworkIdentity::FRAMEWORK_SLOGAN/FRAMEWORK_DESCRIPTIONdeğerleri gerçeği anlatan nötr metinlerle değiştirildi (artık sayfa kaynağınaframework-sloganveframework-descriptionmeta etiketleri olarak çıkıyor); hata/pre-flight sayfalarındaki, admin paneli bileşenlerindeki, SEO raporu puan etiketlerindeki, uyarı/hata mesajlarındaki ve panele basılan bütünleşen görünür metinlerdekiSovereign/Masterpiece/Kusursuz/RBN 3.5ifadeleri nötr karşılıklarıyla değiştirildi ya da kaldırıldı. Yönetici arayüzü, meta etiketleri, CSS/JS dosya başlıkları ve fınksiyonel davranış değişmedi; PHP yorumlarındaki geçişler ve tanımlayıcı adları (SovereignIdentity,sovereignBundles(),searchInGate('Sovereign', …)) davranş/API değişikliği yaratmamak için bilerek korundu (ayrı envanter işi).
Düzeltildi
-
Çerçeve kendi
[B-92]uyarısını artık tetiklemiyor. Bileşen kurulurken iç çağrılar, parametreyi kullanmayanRemoteRequestveViewEnginenesnelerine DI nesnesi geçirip günlüğe "DI yok sayıldı" satırı yazdırıyordu (canlıda her saat başı ve zamanlanmış görev çalışmalarında). Çağrılardan argüman kaldırıldı; imza ve uyarı mantığı değişmedi, çağıranın verdiği gerçek DI nesnesi hâlâ uyarır. -
Aktif yasal sayfalar
sitemap.xmlvellms.txtçıktısına giriyor.CrawlerProvideryasal sayfaları okurken registry'de var olmayan bir anahtarı (page) arıyordu; sorgu bu yüzden istisna atıyor,catchbloğu hata kaydı tutmadan boş liste döndürüyordu. Bu yüzden veritabanındastatus = activeolan yasal sayfalar hiçbir sitemap'e eklenmiyordu. Doğru model kaydı kullanılıyor ve hata durumu artık günlüğe yazılıyor; yalnızca gerçekten aktif (status = active) sayfalar listelenmeye devam eder, taslak/arsiv sayfaları girmez. -
sitemap.xml/llms.txtçıktısında yinelenen adresler kalktı. Bir modülün rotaları iki ayrı yoldan yükleniyordu (çekirdek web rotası ve modül keşfi), "rotalar yüklendi" işareti ise yalnızca ikinci yolda tutulduğu için ikinci yükleme engellenemiyordu; statik adresler iki kez kaydediliyor ve aynı adres sitemap'e iki kez yazılıyordu. İşaret artık rotalar gerçekten yüklendikten sonra konuyor ve sınıf adı tek bir kanonik biçime indiriliyor (baştaki\temizleniyor — iki yol aynı sınıfı farklı yazımla üretiyordu ve işaret bu yüzden tutmuyordu). Etkilenen adres sayısı: 17 projenin tamamı. -
İçeriği olmayan ve yönlendirme yapan sayfalar
sitemap.xml/llms.txtçıktısına girmiyor. Sitemap girdisi üretilirken hiçbir yerde "bu adres gerçekten 200 döner mi" kontrolü yoktu; sonuç olarak içerik bulunmadığı için ana sayfaya yönlendiren standart dinamik sayfalar ve giriş/panel kökleri listeleniyordu (ölçüm: 11 sitede 23 adres, çoğu 301/302). Artık (1) panel ve giriş kökleri tarama dışı bırakılıyor, (2) içeriğe bağlı standart rotalar veritabanı durumuna göre değerlendiriliyor. Kural çekirdek standardıdır; projeler kendi başına özelleştirmez. İçerik sorgusu hata verirse adres listelenmez (güvenli taraf: eksik sayfa, bozuk adres değil). -
Bir adresin slug'ı veritabanında aktif bir sayfa kaydıyla aynıysa, o adres sitemap'e girmiyor. Çekirdek yönlendirme kuralı, tek segment'li bir yolun slug'ı veritabanında aktif sayfa olarak bulunduğunda o yolu kalıcı olarak
/sayfa/{slug}adresine 301'liyor; yani o adres hiçbir zaman 200 dönmediği hâlde sitemap'te listelenebiliyordu. Artık bu durumda yalnızca kanonik adres (/sayfa/{slug}) listeleniyor, gölgelenen adres listelenmiyor. -
noindex tek kaynaktan yönetiliyor:
noindexsite artıksitemap.xml/llms.txt/feedyayınlamıyor,robots.txttüm taramayı kapatıyor. Sayfanoindexderkensitemap.xmlvellms.txt"bu adresleri tara" demeye devam ediyordu (çelişki). ArtıkSeoResolver::isSiteNoindex()(site) veisPageNoindex()(sayfa/kayıt) tek yardımcıdır; robots, sitemap, llms ve feed aynı cevaba bakar. Site noindex (view_mapping[site]['robots']['noindex'] = trueya da panelmeta-robotsdeğerinoindexiçeriyor):sitemap.xml(+ alt sitemap'ler),llms.txtvefeed404 döner,robots.txtUser-agent: *+Disallow: /döner veSitemap:satırı yazmaz (mevcut "üretim değil / alt alan adı" yolunun proje düzeyi karşılığı, aynı kod yolu). Sayfa noindex (kayıt satırındarobots/meta_robotsnoindexya danoindexbayrağı): site normal yayın yapar, yalnız o kayıt sitemap,llms.txtvefeedçıktısına girmez. Önbellek: site noindex kararı önbellekten ÖNCE verilir (eski çıktı servis edilmez);robots.txtönbellek anahtarı noindex durumunu taşır. Ayrıca/feedbesleme kaynağı olmayan sitelerde (ve noindex sitelerde) hata sayfası/500 yerine gerçek 404 döner (shield()->abort(404)düz bir\Exceptionfırlatıyordu). -
noindex kararı okunamazsa site noindex sayılıyor (fail-closed). Ayar servisi yoksa ya da okuma istisna atarsa
SeoResolver::isSiteNoindex()eskiden "index" diyordu; gizli bir site tam arıza anındasitemap.xml/llms.txtyayınlayabilirdi. Artık karar belirsizse noindex varsayılır ve nedeni süreç başına bir kez günlüğe yazılır. Geçici bir ayar hatasında site o süresitemap.xml/llms.txtiçin 404 verir (UPGRADING'e not düşüldü).isSiteNoindex()ayrıcaresolve()ile aynı öncelik sırasını kullanıyor; robots yönergesi dizi ya da metin olarak yazılabiliyor. -
llms.txtiçeriği tek satıra ve güvenli bağlantı biçimine indirildi. İçerik başlığındaki satır sonu / köşeli parantez / başlık işaretiyle sahte bölüm ve bağlantı eklenebiliyordu.LlmsBuilder::sanitizeText()veLlmsBuilder::link()tek kaynak oldu;addSection()ikinci savunma hattı. -
/sitemap-{tür}.xmlyalnız beyan edilmiş kaynaklar için yanıt veriyor. Bilinmeyen tür (ve aralık dışı / başı sıfırlı sayfa eki) 404 verir ve önbelleğe yazılmaz; önceden her rastgele ad 200 dönüp yeni önbellek dosyası üretiyordu. -
Crawler önbellek anahtarı host sınıfını taşıyor. Resmi alan adı ailesi (
alan,alan.test,alan.local) kendi anahtarını, diğer tüm host'lar tek ortak anahtarı kullanır (rastgeleHostbaşlığıyla anahtar çoğaltılamaz). Eski anahtarlı dosyalar süresiyle düşer. -
RouteBlueprint::LOGIN_ALIASeklendi ve panel-kapalı kapsamı ile sitemap süzgecindeki'giris'literali bu sabite bağlandı;AUTH_ROOTSdeğişmedi, davranış değişmez.hasRouteContent()kaynak kutupları (blocked-by:/satisfied-by:) açık adlandırıldı; okuyucusu olmayansite_noindexanahtarı kaldırıldı;EnvKeys.phpdosya sonu satır sonu ve bir yorum artığı düzeltildi.
Kaldırıldı
- Kaldırılan proje modülünün izleri framework'ten silindi. Artık hiçbir kod tarafından okunmayan jeton ve dizin ortam değişkenleri
EnvKeyskaydından çıkarıldı (SECRET_KEYS9 → 5,ALL_KEYS24 → 15; aynı kanıt kuralıyla, okuyucusu kalmamış iki yükleme dizini adı da kayıttan çıktı),ApiKeysRegistryiçindeki ilgili anahtar eşlemesi veMachineApiRegistrytohumundaki ilgili yol beyanı kaldırıldı; belgeler (ConfigREADME'si,docs/) buna göre sayıldı. Güvenlik etkisi yok: kaldırılan yol beyanıip_exempt = falseidi (IP katmanı muafiyeti zaten verilmemişti), diğer makine API'leri ve muafiyetleri aynen korunur. Bu adları ortamında tanımlayan kurulumlarda değişiklik gerekmez; tanımsız kalmaları zararsızdır.
Sürüm
- Sürüm artışı:
FrameworkIdentity::FRAMEWORK_VERSION0.9.3→0.9.4. Kopyalar (CITATION.cff,README.md,README.en.md,.github/UPGRADING.md"Son sürüm" satırı) tek kaynaktan okur. Sayaç kuralıVersion::next()ile ölçülerek doğrulandı; elle sayı yazılmadı. Kırıcı değişiklik yoktur.