
Yapay Zekâ Not Asistanınız Neden Toplantının Ortasında Kaydı Durdurur
Kendi uygulamamız, karşı taraf cümlesinin ortasındayken iki toplantımızı sonlandırdı. Adli iz, sizden başka kimseyi duyamayan iyi niyetli bir boşta kalma zamanlayıcısına — ve tüm masaüstünüzü kilitleyebilen ikinci bir hataya çıktı. İkisi de GeekBye v2.0.9'da düzeltildi.
2 Temmuz'da GeekBye bir toplantı kaydını kendi kendine sonlandırdı. Veritabanı satırı her şeyi anlatıyor: ended_reason = 'idle', süre 519 saniye, 99 transkript girdisi — sonuncusu, uygulamanın kimsenin orada olmadığına karar vermesinden iki saniye önce yazılmış.
Karşı taraftaki katılımcı açıklamasının tam ortasındaydı. Transkriptin son satırı kelimenin tam anlamıyla yarım bir cümle: "...executes it or turns it on or so—".
İlk sefer de değildi. Bir önceki akşam, başka bir oturum aynı şekilde bitmişti. İki toplantı, kendi güvenilirlik özelliğimiz tarafından öldürüldü. İşte teşhis ve GeekBye v2.0.9 ile yayınlanan düzeltme — artı aynı sürümde düzelttiğimiz ikinci, daha korkutucu bir hata.
Yalnızca sizi duyabilen iyi niyetli bir zamanlayıcı
Boşta kalma otomatik kapatması iyi bir nedenle var. İnsanlar kayıtları gece boyunca açık unutuyor; açık bırakılmış bir toplantı sekmesi sonsuza kadar ses damlatmaya devam ediyor. GeekBye bu yüzden hareketsizliği izliyor: sesli aktivite olmadan 60 saniye geçince küçük bir "Still recording?" ("Hâlâ kaydediyor musun?") uyarısı gösteriyor ve 30 saniye sonra, yanıt gelmezse, oturumu sonlandırıyor — her şeyi kaydederek, kibarca.
Kusur tek bir kelimedeydi: sesli. Aktivite saati yalnızca sürekli mikrofon enerjisini sayıyordu. Bu bilinçli bir tasarım kararıydı ve aptalca da değildi — ham sistem sesi enerjisini saymak, sessize alınmış ama gürültülü bir sekmenin ölü bir oturumu sonsuza kadar ayakta tutmasına izin verirdi; bu da özelliğin önlemek için var olduğu arızanın ta kendisi. Çoğunlukla dinlediğiniz toplantıların ise toplantı penceresi algılamayla kapsanması bekleniyordu.
Ne var ki toplantı algılama her toplantıyı göremiyor. Tarayıcı sekmeleri, alışılmadık istemciler, izlediğiniz bir sunum — algılanmıyor. Ve algılanmayan bir toplantıda 90 saniye boyunca dinlediğinizde — biri Databricks pipeline'ını anlatırken gayet normal bir davranış — boşta kalma saati için boş bir odadan ayırt edilemezsiniz.
Öldürülen oturumun zaman çizelgesine bakın: bizim mikrofonumuzdan gelen son transkript, bitişten 68 saniye önce gelmiş. Sonra karşı tarafın konuştuğu 60 saniye (kusursuz transkribe edilmiş, saat tarafından yok sayılmış), fark edilmeyen uyarı, 30 saniyelik geri sayım ve sonlandırma — son sözlerinden 2 saniye sonra.
Düzeltme: transkript, yaşam kanıtıdır
Düzeltme geriye dönüp bakınca neredeyse utanç verici: gelen bir transkript, oturumun boşta olmadığının mümkün olan en güçlü kanıtıdır. Kimin konuştuğunun önemi yok. Konuşma modeli az önce kelimeler tanıdı — toplantı dediğin budur.
Bu yüzden v2.0.9, iki taraftan da gelen her transkriptte aktivite saatini damgalıyor. Ham sistem sesi enerjisi hâlâ sayılmıyor — müzik, bekleme tonları ve klima uğultusu ölü bir oturumu hâlâ ölümsüzleştiremiyor ve sabit kayıt üst sınırı her şeyi yedeklemeye devam ediyor. Bir oturumu yalnızca tanınmış konuşma canlı tutuyor; doğru sınır da tam olarak bu.
Kod incelemesinden aktarmaya değer bir ayrıntı: düzeltmenin ilk sürümü saati, konuşmacı atama yolunun içinde damgalıyordu — ki transkriptlerin bir alt kümesi bu yolu meşru biçimde atlayabiliyor. İnceleme, gelecekteki bir değişikliğin hatayı tam da önemli olan transkriptler (karşı konuşmacınınkiler) için sessizce geri getirebileceğini yakaladı. Damga artık koşulsuz, her türlü dallanmadan önce ve biri yerini değiştirirse başarısız olan bir testle korunuyor.
Aynı sürüm daha korkutucu bir şeyi de düzeltti
Bu düzeltmeleri test ederken farklı bir hataya en sert şekilde çarptık: arayüz sürecindeki bir çökme, tüm masaüstünü tıklanamaz hâlde bıraktı.
GeekBye'ın overlay'i, ekranınızı kaplayan şeffaf, her zaman üstte bir pencere. Varsayılan olarak tıklamaları alttan geçiriyor; bir panel kullandığınızda arayüz onu etkileşimli moda alıyor. Bu geçişler arayüz sürecinden geliyor — dolayısıyla o süreç bir panel açıkken çöktüğünde, görünmez pencere arkasında yaşayan hiçbir UI olmadan etkileşimli modda kaldı. Masaüstünüzdeki her tıklama ölü, görünmez bir bölmeye iniyordu. Tek çıkış yolu uygulamayı zorla kapatmaktı.
v2.0.9'un çökme işleyicisi artık tıklama geçirgenliğini anında geri yüklüyor ve arayüzü yeniden yüklüyor — bir çökme döngüsünün sonsuza kadar dönmemesi için dakikada üç yeniden yükleme sınırıyla (sınır aşılınca uygulama yeniden yüklemekten vazgeçiyor ama masaüstünüz kullanılabilir kalıyor; önemli olan kısım da bu). Kod incelemesi bunu da keskinleştirdi: kurtarma özellikle overlay penceresiyle sınırlı, çünkü tıklama geçirgenliğini çökmüş normal bir pencereye — örneğin güncelleme diyaloğuna — körlemesine uygulamak tam tersi bir kilitlenme yaratırdı.
Bu düzeltmeyi kendiniz, acımasızca doğrulayabilirsiniz: bir GeekBye paneli açın, Aktivite Monitörü'nde "GeekBye Helper (Renderer)" sürecini zorla sonlandırın ve uygulamanın masaüstünüzü bir saniye içinde kurtarmasını izleyin.
Bu hata çiftinin bize öğrettikleri
- "Kullanıcı burada mı?" sorusunun her vekili bir yerde çuvallar. Mikrofon enerjisi dinleyenlerde çuvallar. Pencere algılama tarayıcılarda çuvallar. Tanınmış transkriptler ise... henüz bulabildiğimiz hiçbir yerde çuvallamıyor, çünkü onlar bir vekil değil — ürünün ta kendisi.
- Renderer'ın yönettiği her şeyin bir çökme hikâyesi olmalı. Ölü bir UI süreci işletim sistemi düzeyinde durum bırakabiliyorsa (fare yakalama, her zaman üstte, içerik koruması), sıfırlamanın sahibi ana süreç olmalı.
- Kendi en yoğun kullanıcınız olmak bir hata bulma stratejisidir. İki hata da, bir avuçtan fazla müşteri fark etmeden önce bizi gerçek toplantılarda vurdu. Aylar önce gözlemlenebilirlik için eklediğimiz
ended_reasonsütunu, teşhisi bir tahmin yerine bir veritabanı sorgusu hâline getiren şeydi.
Her iki düzeltme de teşhisten yayınlanmış, notarize edilmiş bir sürüme bir gün içinde ulaştı; her biri regresyon testleri içeren, incelenmiş bir PR ile taşındı. GeekBye v2 kullanıyorsanız, v2.0.9'dan beri otomatik güncellemeyle sizdeler.
Bu sürümün hikâyesinin geri kalanı için seri komşusu yapay zekâ transkripsiyonu teknik terimleri neden yanlış duyar (v2.0.11) yazısına, kötü Wi-Fi'de yapay zekâ not asistanınızın neden durduğunu anlatan güvenilirlik altyapısına ve overlay'in tıklamalarınızı çalmadan ekran paylaşımı sırasında nasıl görünmez kaldığına bakın.


