Files
aiturk-hermes-ide/apps/mobile/README.md
T

13 KiB
Raw Blame History

AITURK Mobil — Android geliştirme sürümü 0.1.4

Bu bir geliştirme paketi; planın tamamlanmış ürün/kapalı beta kabulü değildir. Android uygulaması, IDE adaptörü ve hesap doğrulamalı bağlantı servisi kodlandı. Google Live ve gerçek telefon/ağ doğrulaması henüz yapılmadı. Canlı turkservis.online veya kurulu IDE bu kaynak değişiklikleriyle güncellenmedi.

Çalışan ve test edilen parçalar

  • Capacitor 8.5.1 Android projesi; Türkçe erişilebilir kurulum ve yazılı kullanım.
  • Tarayıcıda mevcut AITURK hesabıyla kısa kod onayı; uygulamaya parola girilmez. Dar kapsamlı mobil oturum Windows/Android kasasında tutulur. Mevcut hesap API anahtarı gelişmiş seçenek olarak korunur. Bu yeni giriş henüz canlıya dağıtılmadı. Telefonun eşleşmesini hedef bilgisayar kendi cihaz tokenıyla onaylar.
  • WebRTC DTLS/SCTP veri kanalı; büyük Unicode mesajları sınırlı parçalara bölme.
  • Mevcut IDE /api/sessions ve JSON-RPC adaptörü. Konuşma ve seçili model gönderimden önce doğrulanır. Model listesi icat edilmez.
  • Görevden önce diske yazılan tekrar gönderim kaydı. Kabul sonucu belirsizse ikinci kez çalıştırılmaz. Telefonun bekleyen gönderimi Android kasasında kalır.
  • Gerçek IDE onay kimliği ve redakte edilmiş tam komutla yalnız once/deny. Sürekli/genel izin, sudo/UAC veya ses modeli üzerinden onay yolu yoktur.
  • Google anahtarı Windows safeStorage, hesap cihaz sırrı Android Keystore AES-GCM kullanır. Android yedekleme ve cihazlar arası veri taşıma kapatılır.
  • Anahtardan kısa ömürlü, model/araç/sistem talimatı kısıtlı Google Live token üretme kodu; doğrudan Google WebSocket, PCM mikrofon/oynatma ve kapatma kodu.
  • Ses görüşmesini kapatma IDE'ye interrupt göndermez. Görünür görev gönder düğmesi ve ayrı IDE durdur düğmesi vardır.
  • Google kullanım bildirimleri ücretli liste tarifesiyle tahmin edilir; her isteğin tekrar faturalandırılan geçmişi de sayılır. Ayrıntısı eksik tokenlar için fiyat aralığı gösterilir. Bu fatura, kredi veya ücretsiz kota sorgusu değildir.
  • Kullanıcı her görüşme için 1–10 dakika ve 0,01–10 USD tahmini durdurma sınırı seçer (varsayılan 10 dakika / 0,25 USD). Üst tahmin sınıra ulaşırsa, süre dolarsa veya 120 saniye kullanım bildirimi gelmezse yalnız Google bağlantısı kapanır. Otomatik yeniden bağlanılmaz. Her yeni oturumda sayaç sıfırlanır; bu günlük/aylık bütçe veya Google tarafında kesin harcama tavanı değildir.

Geliştirme kurulumu

Node 22+, JDK 21 ve Android API 36 gerekir. Bu çalışma sırasında araçlar %LOCALAPPDATA%/aiturk-mobile-tools altına kuruldu; kullanıcı sistem PATH'i veya yönetici ayarları değiştirilmedi.

# Bu klasörde; kök depodaki kurulumu etkilemeyen Android kurulumu
npm ci --workspaces=false --ignore-scripts
npm test --workspaces=false
npm run android:sync --workspaces=false
# JAVA_HOME ve ANDROID_HOME kendi araç yollarınızı göstermeli
.\android\gradlew.bat -p android assembleDebug assembleRelease lintDebug

app-debug.apk geliştirici anahtarıyla imzalanır. app-release-unsigned.apk üretim imzası içermez ve kurulabilir sürüm olarak paylaşılmamalıdır. Özel üretim imza anahtarı oluşturulmadı; mağaza hesabı veya ücretli hizmet açılmadı.

Uyumlu IDE ve bağlantı servisi

Bu kaynak ağacındaki masaüstü paketini normal masaüstü build süreciyle derleyin. Derlenmiş IDE'yi --aiturk-mobile parametresiyle açın. IDE zaten açıksa parametre mobil bağlantı penceresini açar; çalışmakta olan konuşma kapatılmaz. Mobil pencere açılmadan uzaktan erişim etkinleşmez.

  1. Bilgisayardaki mobil pencerede “AITURK hesabımla giriş yap” seçin; tarayıcıda hesabınıza girip uygulamanın kodunu onaylayın. “Girişi kontrol et” ile tamamlayın.
  2. Bilgisayarı hesapla eşleştirin; açılan mevcut portal sayfasında kodu onaylayın.
  3. Android'de aynı AITURK hesabıyla tarayıcı kod girişini tamamlayın. Bilgisayarda “Telefon için QR oluştur” seçip telefonda kamerayla veya QR resmiyle okuyun.
  4. Bilgisayarda “QR ile gelen telefonu getir” seçin; telefonun gösterdiği kısa kodu girip açıkça onaylayın. Uzun kimliği elle yazmak gerekmez.
  5. Bilgisayarda “Mobil bağlantıyı aç”, telefonda “Bilgisayarları bul” ve “Bağlan”.
  6. Gerçek IDE konuşmasını seçin. Yazılı görevi görünür önizlemeden gönderin.
  7. Google anahtarını telefondaki ayrı güvenli girişten bilgisayara aktarın. Veri/ücret bilgisini kabul ettikten sonra Google görüşmesini başlatın.

Gateway eş değişikliği portal/routes_mobile.py ve router_gateway.py içindedir. Mevcut member guard korunur. Üretim kurulumu ve TURN koşulları eş gateway deposunun docs/aiturk-mobile-operations.md dosyasında açıklanır.

Doğrulama ve sınırlar

0.1.4-dev (Android versionCode 5), 12 Eylül 2026: 41 mobil test geçti; tarayıcı uygulama testi, yerel sertifika/DTLS testi ve Electron IPC/Windows kasa testi geçti. Telefon kimliği QR resminin onaysız içe alınması ve değiştirilmiş cihaz kimliklerinin reddi test edildi. assembleDebug lintDebug başarılı, uygulama lint sonucu 0 hata / 17 uyarı. Debug APK imzası doğrulandı ve kimlik, taşıma, uygulama, davet, gizlilik ve ana sayfa dosyaları kaynakla karşılaştırıldı. APK SHA-256: 94835E223B71BE36AFB26686D3EBC79D8976514FFDB4E7CDFC189ACE7E2F12A5. Bu APK geliştirici imzalıdır; üretim/gerçek Android kabulü değildir.

12 Eylül 2026 yerel doğrulaması: npm test 37/37 geçti. Ses başlangıcı beklerken iptal ve kapatılmış oturumu yeniden açma regresyonları önce başarısız testlerle gösterildi, sonra düzeltildi. npm run android:sync ve gradlew.bat assembleDebug lintDebug başarılı; uygulama lint sonucu 0 hata, 17 uyarı. scripts/browser-smoke.mjs gerçek DTLS veri kanalında 240.000 karakter aktarımını ve sentetik Google kullanım sınırını doğruladı; Google'a gerçek çağrı yapmadı. APK içindeki voice.mjs kaynakla birebir karşılaştırıldı. Debug imzası apksigner verify ile doğrulandı; bu üretim imzası değildir. APK SHA-256: F5DB098DF0F1C59B92F274969FCAD926BCB2DD25AF823533A983085A18BFB966. Bu kontrolde adb devices -l bağlı cihaz göstermedi; fiziksel telefon kabulü ve canlı yayın hâlâ tamamlanmadı.

npm test: davranış, tekrar gönderim, onay sınırı, ses temizliği ve token kısıtları. scripts/browser-smoke.mjs: yeni test tarayıcısında gerçek DTLS veri kanalı, 240.000 karakter Unicode aktarımı, dar ekran taşması ve dokunma hedefi. scripts/electron-smoke.mjs: gerçek Electron IPC ve Windows safeStorage turu; yalnız sentetik bir test anahtarı kullanır.

src/peer-identity.mjs cihaz kimliğine göre kalıcı standart RTCCertificate kaydını, atomik ilk oluşturmayı, kayıtlı parmak iziyle yüklemeyi ve SDP kimlik kontrolünü uygular. Anahtar eksik veya geçersizse yükleme yeni sertifika üretmez. Bilgisayar QR daveti sürüm 2 ile sertifika parmak izini taşır; telefon bunu eşleştirme kaydına alır ve SDP uygulanmadan önce kontrol eder. Bilgisayar bağlantıda kayıtlı sertifikasını kullanır. Eski sürüm 1 QR ve kimliği olmayan elle eşleştirmeler veri bağlantısı açamaz; yeni QR ile yeniden eşleştirme gerekir. Telefon da eşleştirmede kendi sertifikasını oluşturur ve bağlantıda aynı sertifikayı yükler. Kullanıcı telefondaki kimlik belgesini bilgisayardaki ilgili alana aktarır; phone.approve belgeyi eşleştirme kimliği ve sunucunun onayladığı cihaz kimliğiyle karşılaştırıp Windows kasasına kaydeder. IDE hem gelen bağlantı listesinde hem channel.answer yolunda kayıtlı telefon parmak izini kontrol eder; renderer SDP'yi uygulamadan önce tekrar doğrular. İlk kayıt için yerel açık onay gerekir; mevcut telefon kimliği sessizce değiştirilemez. Telefon kimliğini QR olarak da gösterir. Kullanıcı ekran görüntüsünü kendi bilgisayarına aktararak “Telefon kimliği QR resmi” alanından okutabilir; eşleştirme kimliği ve belge doldurulur, fakat otomatik onay verilmez. Kısa kod ve ayrı onay düğmesi gereklidir; elle belge aktarma yolu da korunur.

node scripts/certificate-smoke.mjs: 12 Eylül 2026'da izole Edge bağlamında yerel WebRTC sertifikasının IndexedDB'ye yazılıp sayfa yenilendikten sonra aynı parmak iziyle geri alınması, geri alınan sertifikayla gerçek DTLS veri aktarımı ve yanlış SDP parmak izinde DTLS'nin failed durumuna geçmesi doğrulandı. Test artık gerçek peer-identity.mjs modülünü kullanıyor; eşzamanlı dört oluşturma çağrısının tek kimlikte birleşmesi, kayıp kaydın ve yanlış parmak izinin reddi de geçti. Tarayıcı uygulama testi ayrıca QR ile eşlenen bilgisayar yerine farklı sertifikalı SDP geldiğinde görünür kimlik hatası verildiğini ve hiçbir IDE isteği gönderilmediğini doğruladı. Electron IPC testi Windows kasasındaki parmak iziyle sertifikanın pencere yenilemesinden sonra yüklenmesini ve sessiz kimlik değişiminin reddini doğruladı. Bu testlerde portal ve Google gerçek servisleri kullanılmadı; canlı karşılıklı kimlik kabulü değildir.

Gerçek IDE yolunun testi, kök dizinden zorunlu test sarmalayıcısıyla çalışır:

scripts/run_tests.sh tests/tui_gateway/test_mobile_runtime_integration.py -q

Bu test gerçek IDE HTTP, WebSocket, konuşma veritabanı, prompt.submit ve message.complete yolunu çalıştırır. Ücretli çıkarım servisi yerine yerel deterministik sağlayıcı kullanılır. Aynı görev ikinci defa gönderildiğinde IDE geçmişinde yalnız bir kullanıcı görevi oluşur. Gerçek Google/iş modeli kalite ve maliyet testi olarak sayılmaz.

12 Eylül 2026, 0.1.4 kaynak doğrulaması: zorunlu scripts/run_tests.sh sarmalayıcısıyla test_compute_host.py, test_compute_host_phase1.py ve test_mobile_runtime_integration.py birlikte çalıştırıldı. 3 dosyada 16 test geçti, 0 başarısız; süre 32,9 saniye. Windows venv yönlendirici sürecinin bildirdiği PID, gerçek süreç soy ağacı üzerinden doğrulanır. Bu koşu yalnız yerel sentetik sağlayıcı kullanır, telefon donanımı veya Google kabulü değildir.

Henüz tamamlanmayanlar:

  • Karşılıklı cihaz kimliğinin gerçek Android ve paketlenmiş IDE arasında, yeniden başlatma/iptal/anahtar kaybı senaryolarıyla uçtan uca kabulü. İki yönün kodu var; tarayıcı ve Electron testleri gerçek cihaz kabulünün yerine geçmez. Telefon QR çıktısının pikselden geri okunması ve Electron'da QR resminin açık onay vermeden alanlara aktarılması test edildi; gerçek telefon ekran görüntüsü aktarımı henüz denenmedi.
  • Fiziksel Android'de kurulum, mikrofon, kesme, Keystore ve arka plan testi.
  • Kullanıcıya ait test anahtarıyla Google Live doğrulaması ve Türkçe konuşma senaryoları. Sıfır gerçek Google çağrısı yapıldı; ücret oluştuğu iddia edilmiyor.
  • Canlı gateway/TURN kurulumu, ayrı mobil ve bilgisayar ağlarıyla tam akış.
  • Giriş ve QR artık kodlandı: 9 HTTP/DB testi, 27 mobil testi, gerçek QR pikseli okuyan (hesap/claim yanıtları sahte) tarayıcı akışı geçti. Fiziksel Android kamera/giriş kabulü ve farklı ağ bağlantısı henüz yapılmadı.
  • Açık talimatla prepare_task/submit_task devri ve görev kimlikli terminal olayları kodlandı. 25 Node testi ve üç görevli gerçek yerel IDE bağlantı testi geçti. Canlı Google transkript sırası ve Türkçe kalite kabulü henüz yok.
  • Yeniden bağlantı bounded IDE olay tamponunu okuyarak kaçırılan görev sonucunu alır. Tampon kaybı/backend yeniden başlaması durumunda sonuç bilinmiyor kalabilir; iş otomatik tekrar çalıştırılmaz.
  • Maliyet tahmini/ayarlanabilir oturum sınırı uygulandı: 35 Node testi ve derlenmiş uygulamanın gerçek WebRTC, sentetik IDE/Google yanıtlı sınır akışı geçti. Gerçek Google faturasına karşı karşılaştırma henüz yapılmadı.
  • Bağımsız güvenlik incelemesi ve sinyalleşme sunucusuna karşı doğrulanmış kalıcı eş parmak izi. WebRTC standart şifrelemesi vardır; eş kimliğinin sinyalleşme hizmetine güven sınırı gizlenmez.
  • Üretim imzası, kapalı beta kabulü ve turkservis.online indirme yayını.

Capacitor CLI'nin kullanılmayan iOS araç zincirinde xcode → uuid üzerinden 3 moderate geliştirme bağımlılığı uyarısı mevcut; Android runtime audit sonucu ayrıca kontrol edilir. Bunları gizlemek için npm audit fix --force uygulanmadı.

Resmî dayanaklar