🇬🇧 English: Read this in English →

WordPress 7.1 döngüsünden çıkan her yeni geliştirici notunu okurken kafamda aynı testi çalıştırıyorum: yarın müşterimin admin paneline bir yapay zekâ ajanı gelip çat kapı işlem yapmaya başlasa, WordPress ona okuyabileceği bir menü mü uzatır, yoksa el yordamıyla dolaşacağı bir kara kutu mu? Abilities API bu soruya sessiz sessiz cevap veriyor, geliştirici notu üstüne geliştirici notu ekleyerek — ve bu haftaki cevap keşif tarafı.

İki hafta önce çalışma tarafına ara yazılım (middleware) dikişleri geldi. Bu hafta keşif tarafına da düzgün bir filtreleme boru hattı geliyor. İkisi de WordPress 7.1 ile birlikte, tam bir hafta sonra Phoenix’teki WordCamp US’te yayına girecek. Abilities API geliştirici notlarını “GA’yı bekleyelim” diye erteliyorsan tamponun bitti.

“Programlanabilir admin” dalgasının kaç kez gelip geçtiğini gördüm; ajansların üstüne bina kurabildiği bir API ile koli bandıyla eklenti bahçesi doğuran bir API arasındaki farkı biliyorum. Bu ikincisi değil. Ergonomisi göründüğünden daha çok şey belirliyor.

Gerçekten yeni olan ne

Milana Cap’in 5 Ağustos tarihli geliştirici notu, WordPress 7.1’de wp_get_abilities() ile kayıtlı yeteneklerin filtrelenmesi, isteğe bağlı bir $args dizisini belgeleyerek ham bir kayıt okumasını birinci sınıf bir keşif sorgusuna çeviriyor. Fonksiyon yeni değil; boru hattı yeni.

Artık category, namespace, meta, item_include_callback ve result_callback parametrelerini istediğin gibi birleştirebiliyorsun. Çekirdek önce bildirimsel argümanları eşliyor (önce category, sonra namespace, sonra katı karşılaştırmayla meta), ardından senin öğe bazlı geri çağırma fonksiyonunu çalıştırıyor, sonra her aday için yeni wp_get_abilities_item_include süzgecini uyguluyor. Dizi kurulduktan sonra isteğe bağlı result_callback‘ına, en son da site geneli bir geçiş için wp_get_abilities_result süzgecine devrediyor. Sıra bilinçli olarak tasarlanmış ve daha önemlisi belgelenmiş.

İmza sıkıcı, ki ben tam da bunu istiyorum:

$abilities = wp_get_abilities( array(
    'category'  => 'data-export',
    'namespace' => 'my-plugin',
    'meta'      => array( 'public' => true ),
) );

REST katmanı aynı kelime dağarcığını miras alıyor. GET /wp-json/wp-abilities/v1/abilities?namespace=my-plugin&category=data-export artık ne dediyse onu yapan bir sorgu; dahili readonly, destructive ve idempotent etiketleri de girerken string’den boolean’a çevriliyor. Bir dil modelinin araç çağrısının başarılı olmasıyla halüsinasyon üretmesi arasındaki farkı belirleyen türden küçük API kararları bunlar.

Notun altını çizdiği bir cümle var, aynen aktarayım: filtreleme “keşif sırasında hangi yeteneklerin döneceğini kontrol eder. Mevcut kullanıcının bir yeteneği çalıştırıp çalıştıramayacağına karar vermez.” permission_callback hâlâ yük taşıyor. Keşif ile yetkilendirme iki ayrı iş ve 7.1 bunları ayrı tutuyor.

Bu notu 29 Temmuz’daki dört çalıştırma yaşam döngüsü süzgecinin notuyla (wp_pre_execute_ability, wp_ability_normalize_input, wp_ability_permission_result, wp_ability_execute_result) birlikte oku, tablo netleşiyor. Önce çalıştırma ara yazılımı geldi. Sonra keşif ara yazılımı geldi. İkisinin arasında artık bir ajanın hem ne göreceğini hem de ne yapabileceğini şekillendirecek dikişler var — çekirdeği yamayarak değil, kaydı sararak da değil, üçüncü parti bir katmanla hiç değil.

Yukarıdaki her şey GA için sabitlendi. RC1, 7.1 Release Candidate 1 duyurusu uyarınca 5 Ağustos’ta yayına girdi ve yüzey, 7.1 Field Guide’da 19 Ağustos’ta gelecek 300’ü aşkın diğer biletle birlikte belgelendi.

WordPress ve WooCommerce insanları için neden önemli

Abilities API, yapay zekâ ajanlarının, iş akışı araçlarının ve dahili admin betiklerinin çağıracağı yüzey. WooCommerce mağazası işletiyorsan “çağırmak” eninde sonunda bir sohbet modeline kupon eklettirmek, sipariş iade ettirmek ya da müşteri listesi ihraç ettirmek anlamına gelecek — ve o akış modelin WordPress’e “ne yapabilirim” diye sormasıyla başlıyor.

Bu geliştirici notundan önce, belirli bir entegrasyona küratörlü bir yetenek alt kümesi sunmak isteyen herkes kendi keşif sarmalayıcısını yazıyordu. Kimi kaydı grep’liyordu, kimi rest_pre_dispatch‘e takılıyordu, kimi option tabanlı kendi allowlist’ini uyduruyordu. Üç lezzet de Matt Mullenweg’in bir hafta önce Defensive Data Design‘da işaret ettiği türden teknik borç biriktiriyor: platformun işi güvenli yolu kolay, yıkıcı yolu görünür kılmak ve bunu tutarlı yapmanın tek yolu bir ajanın ne göreceğini filtrelemenin tek bir standart yönteminin olması.

Ajanslar için pratik kazanç daha küçük ama daha yakın. Önümüzdeki on iki ay içinde sevk edeceğim her özel admin paneli “bu müşterinin finans ekibi hangi yetenekleri, mağaza yöneticisi hangilerini alacak” sorusunu cevaplamak zorunda — ve bu haftaya kadar dürüst cevap “mu-plugin’de kendi süzgecimizi yazarız” idi. Artık cevap meta kısıtlaması ve küçük bir allowlist’le wp_get_abilities; temada veya mu-plugin’de sürümlendiriliyor, devir teslimde incelenecek tek bir dosya.

REST entegrasyonu diğer sessiz kazanç. Dahili bir araç, bir MCP sunucusu ya da yetenek koleksiyonunu okuyan zamanlanmış bir iş akışı kuruyorsan, artık filtrelemeyi sorgu parametresi olarak alıyorsun. Bu, ortalama bir entegrasyondan iki gidiş-dönüş ve yaklaşık kırk satır istemci tarafı yapıştırma kodunu kaldırıyor.

Ben olsam ne yapardım (ya da yapmazdım)

Bu hafta, RC3 inip dal daha da sıkılaşmadan: geliştirici notunu bir ekrana, üretimdeki Abilities kayıtlarını diğer ekrana aç. Her yetenek için üç şeye karar ver — ait olduğu category, sonradan filtrelemek isteyeceğin meta bayrakları (public, internal, scope) ve destructive etiketine ihtiyacı olup olmadığı. Bu üç karar tasarım yüzeyi. Bir kez oturttuktan sonra wp_get_abilities sorgu dilini bedava veriyor.

Sonrası: son on iki ayda sevk ettiğin özel yapım keşif sarmalayıcılarını yeni boru hattına göre yeniden yaz. Kiracı bazlı kurallar için item_include_callback, şekil dönüşümleri için result_callback kullan; iki süzgeci (wp_get_abilities_item_include, wp_get_abilities_result) sadece mantık gerçekten çağıranın dışına aitse eline al. Sildiğin her registry grep satırı, ansızlaştıktan sonra bir sonraki ajansın kafa yormak zorunda kalmayacağı bir satır.

Bir şey yapma, altını çizerek söylüyorum: bu çeyrekte Abilities API süzgeçlerini yapılandırmak için admin arayüzlü bir eklenti çıkarma. API’nin tüm amacı, keşfin bildirimsel olması ve siteyle birlikte sürümlenmesi. Kuralları wp_options‘a yazan bir ayarlar ekranına sarmak, tam da bu API’nin emekliye ayırmak için tasarlandığı örüntü — ve o kurallar bir veritabanı satırında yaşamaya başladığı an, bir tema geçişi atlatır, ikincisinde uçarlar.

Bu denetimi 19 Ağustos WordPress 7.1 GA güncelleme penceresine yıkma da. Notu bu hafta oku, kategorileri ve meta’yı bu hafta sonu kabaca çiz, refaktörü 7.1 üretimdeyken ve toz bulutu yatıştığında 24 Ağustos haftasında sevk et. Değişiklik penceresi başına iki hareketli parça hâlâ cumartesileri boş tutan tavan.

Sürüm numaraları manşeti alıyor; işi asıl dikişler yapıyor. Bu, o dikişlerden biri.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Close Search Window