Arslan Docs v0.1.63 sürümüne göreTürkçe
Arslan'ı anlamak.İlk prototipten v0.1.63 sürümüne tasarım, uygulama ve gelişim
Mac için yerel öncelikli, açık kaynaklı kişisel bir yapay zekâ asistanı: ürün kararları, çalışma biçimi, verileri ve izinleri, elliden fazla sürümde biriken mühendislik deneyimi. Metin yayımlanmış uygulamayı, tarihsel tasarımları ve gelecekteki yönleri ayırır; her ifade v0.1.63 kaynak koduna bağlanır.
Git'te izlenebilen en erken geliştirme
ilk fikir ya da açık kaynak tarihi değil
v0.1.0–v0.1.63, eksiksiz
63'ı herkese açık sürüm
Uzman personalar → tek bir ajan döngüsü
yetenekler korunur, yol kısalır
01 / Projeye genel bakışDoğal dilden gerçek işlere
Arslan, açık kaynaklı, Mac ve yerel çalışmayı önceliklendiren kişisel bir AI iş asistanıdır. Kullanıcı yapmak istediği işi tarif eder; Arslan bağlamı düzenler, modeli çağırır, araçları kullanır, yürütme sürecini kaydeder ve incelenebilir bir yanıt veya dosya sunar. Sohbeti, belleği, dosya işlemeyi, terminali, web'i, desteklenen yerel uygulamalarla etkileşimi ve arka plan görevlerini tek bir çalışma alanında birleştirir.
Proje, geliştiricisi tarafından AI desteğiyle, yaygın adıyla vibe coding yöntemiyle, bağımsız olarak geliştirilmekte ve sürekli iyileştirilmektedir. Bu belge, ürünün hedeflerinden kodun gerçek sınırlarına uzanarak tasarım kararlarını, çalışma biçimini ve ilk prototipten v0.1.63'a kadar geçirdiği değişimleri açıklar.
Görevi anlamak
Bir sonraki adımda gereken bilgi ve araçları belirlemek için mevcut isteği, yakın tarihli konuşmaları, kullanımına izin verilen kişisel belleği ve ilgili kaynakları bir araya getirir.
Yürütmek ve gözlemlemek
Model, yapılandırılmış eylemler önerir; kod, parametreleri ve izinleri doğrular; araçlar gerçek sonuçları döndürür. Model bu sonuçlara göre devam etmeye, yöntem değiştirmeye veya işi tamamlamaya karar verir.
İncelenebilir sonuçlar sunmak
Sonuçlar; dosyalara, araç yanıtlarına, görev durumlarına ve kaynaklara dayanır. Kullanıcı ilerlemeyi izleyebilir, onay isteklerini yanıtlayabilir, görevi durdurabilir veya mevcut kayıtlardan çalışmaya devam edebilir.
Tek giriş noktası, farklı işler
| Görev türü | Tipik işler | Kullanım koşulları ve sonuçların sınırları |
|---|---|---|
| Araştırma ve okuma | Web'de arama, içerik çıkarma, ekleri okuma ve kaynaklı bilgileri özetleme | Web sayfalarının erişilebilirliğine, çıkarılan içeriğin eksiksizliğine ve modelin yeteneklerine bağlıdır; kaynaklar kontrol olanağı sunar, ancak sonucun doğruluğunu kendiliğinden kanıtlamaz. |
| Dosyalar ve çıktılar | Çalışma alanındaki metinleri veya verileri işleme, dönüştürme komutlarını çalıştırma ve açılabilir çıktı dosyaları oluşturma | Okuma ve yazma kapsamı araca, çalışma alanına ve verilen izinlere bağlıdır; kayıtlar ile gerçek dosyalar birbirini doğrulamalıdır. |
| Mac işlemleri | Sistem arayüzleri, Shortcuts, Apple Events veya Hands aracılığıyla desteklenen uygulamaları okuma ve kullanma | Her yolun sistem izni ve uygulama uyumluluğu gereksinimleri farklıdır; hassas eylemler ek onay gerektirebilir. |
| Süreklilik gerektiren görevler | Uzun işi sohbette sürdürme ya da sen veya model seçtiğinde arka plana aktarma; zamanlanmış görevler çalıştırma (0.1.63'te terminal komutu çalıştırmazlar); ilerleme ve sonuçları alma | Yerel süreçlerin çalışabilmesine bağlıdır; Mac uyurken, çevrimdışıyken veya kapalıyken bir bulut hizmetiyle aynı kullanılabilirliği sunduğu varsayılamaz. |
| Kişiselleştirilmiş iş birliği | Hitap biçimini, biçim tercihlerini, proje kurallarını ve bu makinede doğrulanmış yöntemleri hatırlama | Belleğin kapsamı, hassasiyeti, kaynağı ve kullanım izni vardır; edinilen deneyim araçlara ek yetki vermez. |
“Yerel öncelikli” tam olarak ne demek?
Yerel öncelik, verilerin esas olarak nerede saklandığını ve işlemlerin nerede yürütüldüğünü ifade eder: masaüstü arayüzü, yerel hizmet, veritabanı, çalışma alanı ve Mac araçları ağırlıklı olarak kullanıcının makinesinde çalışır. Modeli kullanıcı yapılandırır. Bulut modeli kullanıldığında istekteki konuşmalar, kaynak parçaları ve kullanımına izin verilen bellek ilgili model sağlayıcısına gönderilir. Uyumlu yerel model uç noktaları da bağlanabilir; ancak araç çağırma ve görsel işleme yetenekleri kullanılan modele ve hizmetin uygulamasına bağlıdır.
Bu nedenle Arslan mimarisinin iki ayrı soruya yanıt vermesi gerekir: İş hangi makinede yapılıyor ve hangi içerik hangi model uç noktasına gönderiliyor? Yerel veri kalıcılığı, buluta gönderilen belleğin kullanım izni ve araç izinleri farklı sorumluluklar taşır; bunları tek bir “yerel” anahtarla açıklamak mümkün değildir.
Bu belge hangi sürümü temel alıyor?
Belge, Pekin saatiyle (UTC+8) 27 Ekim 2026 22:26:31'de resmen yayımlanan v0.1.63 sürümünü temel alır; doğrulama tarihi 27 Ekim 2026'dır. Kod bağlantıları, sürümün 9bbb6ad653b4 commit'ine sabitlenmiştir. Yayın sonrası geliştirmeler, geçmişteki özellikler ve gelecekteki mühendislik yönelimleri ayrıca belirtilir.
Ürünü ve gelişimini tanımak için bu bölümden başlayıp Bağımsız geliştirme ve Gelişimin ana hatları bölümlerine geçin. Uygulamayı anlamak için Sistem mimarisi bölümünden çalışma zamanına, verilere, araçlara ve güvenliğe ilerleyin. Olgunluk düzeyini değerlendirmek için Testler ve sonuçlar ile Mühendislik yönelimleri bölümlerini okuyun. Belirli değişiklikler için Eksiksiz sürüm ekini kullanın.
Uygulama giriş noktaları: Arslan'ın ortak giriş noktası; Görev ve bellek kullanım bağlamı; Model bağlantısı; v0.1.63 sürüm kaydı.
02 / Bağımsız geliştirme ve açık kaynakTek geliştirici, AI desteği ve bir sisteme dönüşen uygulama
Arslan, AI desteğiyle, yaygın adıyla vibe coding yöntemiyle bağımsız olarak geliştirdiğim bir projedir. İlk prototipten sonraki sürümlere kadar projeyi hep tek başıma ilerlettim.
Buradaki “bağımsız geliştirme”, projenin bütününün geliştiricisi tarafından tek başına yürütülmesini ifade eder; AI, uygulama sürecinde bir iş birliği aracıdır. Arslan aynı zamanda açık kaynaklı çatılardan, sistem API'lerinden, harici modellerden ve üçüncü taraf bileşenlerden yararlanır. Geliştirme yöntemi, projenin sorumluluğu ve bileşenlerin kaynağı ayrı kavramlardır. Aşağıdaki bölümler, ürüne yansıyan tasarım ve uygulama kararlarını ele alır.
Kod üretmekten kullanılabilir bir ürünü sürdürmeye
Bir kod parçasının çalışması, ürünün yalnızca küçük bir bölümüdür. Bir masaüstü uygulamasında hizmetin nasıl başlatılacağı, pencerenin ona nasıl bağlanacağı, eski veritabanlarının nasıl yükseltileceği, süreç sonlandırıldığında temizliğin nasıl yapılacağı, sistem izinlerinin hangi bileşene ait olacağı ve kurulum paketinin geliştirme ortamı bulunmayan bir makinede çalışıp çalışmayacağı da çözülmelidir. Agent ise yeni belirsizlikler ekler: model zaman aşımına uğrayabilir, araç parametreleri kesilebilir, web sayfası eksik okunabilir veya işin ortasında kullanıcı onayı gerekebilir.
Bu sorunlar Arslan'ın gelişimini giderek dört yönde şekillendirdi: girdi ve durumları açık sözleşmelerle sınırlandırmak, tamamlanmayı gözlemlenebilir araç sonuçlarıyla doğrulamak, gerçek yan etkileri izin sınırlarıyla denetlemek ve değişiklikleri testlerle ve sürüm kabul kontrolleriyle sınamak. AI desteği uygulamayı ve sorun gidermeyi hızlandırabilir; ancak güvenilir bir teslimat, bu sınırlamaların birlikte işlemesine bağlıdır.
İlk varsayımlardan vazgeçebilmek
Başlangıçta yetenekler uzman kişilikleri etrafında düzenleniyordu; daha sonra tek ve bütünleşik bir Arslan yaklaşımında toplandı. Araçlar ve yöntemler yeniden kullanılmaya devam ederken kullanıcı arayüzü ve temel yürütme yolu, karşılaşılan gerçek sorunlara göre yeniden tasarlandı. 0.1.63 işi kodda tamamladı: hiçbir yanıtın artık ulaşamadığı uzman dönemi kodu (uzman oluşturma, şablonları ve motoru) silindi ve Arslan'ın ürün kodu 0.1.62'ye göre 12.514 satır küçülerek bitti.
İyileşme sağlamayan sonuçları da saklamak
Bir inceleme katmanı, deneyimden öğrenme veya paralel çalışma eklemek, görev sonuçlarını mutlaka iyileştirmez. Projede inceleme başarısızlıkları, araştırma görevlerinde geride kalınan sonuçlar ve öğrenme sonrasında hızlanma görülmeyen denemeler de kaydedildi. Bunlar sonraki değişiklikler için somut yön gösterir. 0.1.63, araştırma incelemesini, evrim ve düzenleme mekanizmasını ve sohbet menüsündeki “Damıt” seçeneğini çalışır durumda tutmak yerine kaldırdı.
Arslan'ın yaptığı işler ve bağımlılıkların sağladıkları
| Bileşen | Projedeki rolü |
|---|---|
| Uygulama ve çalışma sistemi | Arslan; arayüzü, model adaptasyonunu, ortak döngüyü, görev durumunu, belleği, araç izinlerini ve masaüstü dağıtımını kurulabilir bir kişisel uygulamada birleştirir. |
| Temel çatılar | React, Tauri, FastAPI, SQLAlchemy ve SQLite gibi bileşenler genel arayüz, barındırıcı, hizmet ve kalıcı depolama işlevlerini sağlar. |
| Modeller | Modeller, kullanıcının yapılandırdığı uç noktalar üzerinden çağrılır. Arslan uygulamanın çalışma ortamını ve yürütme akışını sağlar; bu projede yeni bir temel model eğitilmemiştir. |
| Masaüstü otomasyon bileşenleri | Hands, agent-desktop (Apache-2.0) bileşenini üst kaynaktaki v0.9.4 sürümüne dört commit eklenmiş hâliyle kullanır. Bu sürüm, bağımlılıklarını depoya alan ve Arslan'ın tek bir değişikliğini (süreci artık bulunmayan bir uygulama, uygulama listesinde gösterilmez) taşıyan bir fork'tan derlenir; değişiklik üst kaynağa da önerilmiştir. Arslan bunun çevresinde bağımsız bir yardımcı süreç, kimlik doğrulaması ve izin politikası uygular. |
| Terminal kurallarının kaynağı | Arslan'ın kabuk komutlarını okuyan kendi modülü ve terminal kurallarının sert tabanı, Hermes Agent'ın MIT lisanslı kodundan uyarlanmıştır; bunların üzerindeki kural katmanları (yasak, yalnızca bu seferlik, sandbox) ile dış sistemlerde eylem ve kimlik bilgisi kuralları Arslan'ındır. 0.1.62'ye kadar Hermes kodunun paketlenmiş bir kopyası dağıtılıyordu; 0.1.63 onu Arslan'ın uyarlanmış modülüyle değiştirdi ve kopyayı kaldırdı. |
Proje Apache-2.0 lisansıyla açık kaynaklıdır. Üçüncü taraf bileşenlerin lisansları ve atıfları THIRD_PARTY_NOTICES.md dosyasında yer alır; bu dosya uygulamayla birlikte de gelir. Arslan'ın kabuk komutlarını okuyan kodu Hermes Agent'tan (MIT) uyarlanmıştır ve kaynağı da orada belirtilir. Açık kaynak, uygulamayı, sınırlarını ve gelişim sürecini incelemeyi mümkün kılar; tasarımın gerekçelerini de belgenin parçası hâline getirir.
Geliştirme yöntemine ilişkin bilgi geliştiricinin açıklamasına dayanır. Uygulama ve atıflar: Proje lisansı; Üçüncü taraf bileşen atıfları; Çalışma çekirdeğine ilişkin mimari karar; Ortak döngü yeniden yapılandırması.
03 / Teknoloji yığınıArayüz, barındırıcı, yürütme ve verilerin görev dağılımı
Arslan'ın teknoloji yığını, masaüstü dağıtımı ve kişisel Agent'ın sorumlulukları etrafında düzenlenmiştir. Aşağıdaki kesin sürümler v0.1.63'ün kilit dosyalarından alınmıştır ve bu kaynak kod için çözümlenen bağımlılıkları gösterir. Kullanıcının makinesine kurması gereken araç sürümleri veya projenin yayın sürümü değildir.
| Katman | Kullanılan teknoloji | Görevi ve seçim gerekçesi |
|---|---|---|
| Arayüz | React 19.2.7 TypeScript 5.8.3 Vite 6.4.3 | Bileşen temelli sohbet, görev ve onay kartları, ayarlar ve bellek sayfaları. Tür denetimi, sayfalar arasındaki durum ve olay protokollerini korumaya yardımcı olur; Vite geliştirme ve derlemeyi sağlar. |
| Arayüz durumu ve stilleri | Zustand 5.0.14 Tailwind CSS 4.3.1 i18next 26.3.1 | Ortak UI durumu, stil düzeni ve altı dilin kaynakları. ECharts, sohbette render_chart aracının ürettiği grafikleri ve çalıştırma karşılaştırmalarını çizer; D3 bellek grafiğini çizer. İkisi de arka uç çıkarım çatısı değildir. |
| Masaüstü barındırıcısı | Tauri 2.11.5 / Rust Sistem WebView'ı / objc2 | Pencerelerden, sistem tepsisinden, başlatma ve kapatmadan, durum adasından, güncellemelerden ve macOS API'lerinden sorumludur. Rust projesi asgari 1.77.2 sürümünü ve edition 2021'i bildirir; bu, fiilen kullanılan derleyici sürümü olarak yorumlanmamalıdır. |
| Yerel hizmet | Python ≥ 3.11 FastAPI 0.141.1 Uvicorn 0.51.0 | API'ler, WebSocket, Agent döngüsü, asenkron I/O, araç yürütme ve zamanlama. Python, model ve belge işleme ekosisteminden yararlanmayı kolaylaştırır. |
| Veri modeli | Pydantic 2.13.4 SQLAlchemy 2.0.51 aiosqlite 0.22.1 / SQLite | Girdi ve görev sözleşmelerinin doğrulanması, asenkron veritabanı erişimi ve yerel kalıcı depolama. SQLite, kişisel masaüstü ürününün dağıtım maliyetini azaltır; çok kiracılı dağıtık bir veri platformu değildir. |
| Arama ve bellek | SQLite FTS5 Embedding / cosine / RRF İsteğe bağlı fastembed 0.8.0 | Tam metin ve anlamsal arama birbirini tamamlar; embedding yolu olmadığında anahtar sözcük araması kullanılabilir. Kişisel belleğin ayrıca kapsamı, hassasiyeti ve kullanım izinleri vardır. |
| Model iletişimi | httpx 0.28.1 OpenAI-compatible / Anthropic / Gemini adaptörleri | Sağlayıcıların araç çağırma, akıl yürütmeyi sürdürme ve kullanım ölçümü anlamlarını koruyarak ortak bir model çağrı arayüzü sağlar. 0.1.63'ten itibaren yanıtlar, OpenAI-compatible sağlayıcılarda, Claude'da ve Gemini'de model yazdıkça akar; bir sağlayıcının artık kabul etmediği parametre bırakılır ve model başına hatırlanır. Yetenekler yine kullanılan model ve uç noktayla sınırlıdır. |
| Genişletmeler | MCP Python SDK 1.28.1 SKILL.md / arslan.plugin.json | MCP araç protokolünü, Skill çalışma yöntemini sağlar; eklenti bildirimi yeteneklerin nasıl birleştirileceğini tarif eder. Bunlar üç ayrı kavramdır. Etkinleştirilen MCP sunucuları arka planda başlar; her birinin modelin ve Yetenekler sayfasının ikisinin de okuduğu tek bir durumu vardır; 0.1.63'ten itibaren MCP araçları ve seyrek kullanılan araçlar her istekle gönderilmek yerine ihtiyaç anında bulunur. |
| Ekler ve yerel OCR | pypdf / pypdfium2 python-docx / python-pptx / Pillow macOS Vision + PyObjC | Belge içeriğini ve görsellerdeki metni okur. OCR, karakter tanımadır; grafiklerin anlaşıldığı veya belgenin tamamının eksiksiz okunduğu anlamına gelmez. Kısmi okumalar ve dil sınırlamaları açıklanmalıdır. |
| Yerel Mac uygulamaları | Arslan Hands (Rust yardımcı süreci) agent-desktop (v0.9.4 + 4 üst kaynak commit'i, sabitlenmiş fork) Accessibility / Unix socket | Erişilebilirlik ağacını ve 0.1.60'tan itibaren üzerinde çalıştığı tek pencerenin görüntüsünü okur; eylemleri kurallara göre yürütür. agent-desktop, Apache-2.0 lisanslı bir bağımlılıktır; fork, Arslan'ın tek bir değişikliğini taşır ve pakete eklenen NOTICE dosyası bunu belirtir. |
| Cihazlar arası iletişim | Mac Swift Bridge (bu depo) CloudKit / CryptoKit / Keychain iPhone tarafının SwiftUI uygulaması bu depoda değil, ayrı bir iOS projesinde yer alır | Mac ile iPhone arasında şifreli mesaj, onay ve sonuç eşitlemesi. Mobil uygulamanın mühendislik ilerlemesi ile resmen yayımlanma durumu ayrı ele alınır. |
| Paketleme ve kalite | uv.lock / npm lock / Cargo.lock PyInstaller 6.21.0 pytest / Vitest / Rust / Swift tests GitHub Actions | Tekrarlanabilir bağımlılıklar, yerel hizmetin paketlenmesi, diller arası testler, platform kontrolleri, imzalama ve noter onayı ile gerçek kurulum paketinin kabul kontrolleri. Teslimat yolu masaüstü kurulum paketidir; Docker ile dağıtım yolu 0.1.63'te kaldırıldı. |
Python yürütme çekirdeği neden korundu?
Python; model adaptasyonu, belge işleme, Agent döngüsü ve görev hizmetlerini üstlenir. Böylece mevcut ekosistem ve uygulama doğrudan yeniden kullanılabilir. Tauri ve Rust ise pencereleri, süreç yaşam döngüsünü ve yerel sistem bütünleşmesini yönetir. Bu yürütme çekirdeğini koruma kararı, kamuya açık mimari karar kaydında açıklanır. Çekirdeği başka bir dile taşımak araçları, veri geçişlerini, paketlemeyi ve test sınırlarını birlikte değiştirir; yararı yalnızca “daha yerel” olmasına bakılarak değerlendirilemez.
Bu yapı mantıksal olarak katmanlıdır; dağıtımda ise merkezinde yerel hizmet bulunur. Dahili Python modülleri ayrı uzak mikroservislere dönüştürülmemiştir ve çalışma için Redis, Celery, Docker veya Kubernetes gerekmez. Hands, Bridge, MCP hizmetleri ve terminal alt süreçleri, bağımsız izin veya çalışma ortamı gereken noktalarda süreç sınırları oluşturur.
Sabitlenmiş bağımlılıklar: Ön uç kilit dosyası; Masaüstü kilit dosyası; Python kilit dosyası. Tasarım ve atıflar: Çalışma çekirdeği kararı; Üçüncü taraf atıfları.
04 / Projenin bugüne gelişiUzman üretmekten, çalışmayı sürdürebilen tek bir Arslan'a
Arslan, geliştiricisi tarafından AI destekli vibe coding yöntemiyle bağımsız olarak geliştirilmektedir. Bu süreçte hem yeni yetenekler eklendi hem de bazı tasarımlardan vazgeçildi: kimi özelliklerin çalışma koşullarının tamamlanması, kimi karmaşıklıkların ise kaldırılması gerekti. Bugünkü mimariyi anlamak için bu değişimleri izlemek, geçmişteki tüm özellikleri yan yana sıralamaktan daha açıklayıcıdır.
Haziran: Önce “sohbet yoluyla Agent oluşturma” döngüsü
7 Haziran 2026 tarihli, korunmuş en eski commit veri modeliyle başladı. O dönemde yönelim Meta-Agent idi: teknik bilgisi olmayan kullanıcılar sohbet ederek alan uzmanları oluşturacak, görevleri bu uzmanlar yapacaktı. Ardından model adaptörleri, araç kayıt sistemi, gereksinim görüşmesi durum makinesi, şablonlar, Spawn Manager ve CLI geldi. 8 Haziran'da FastAPI, asenkron veritabanı, kimlik doğrulama, WebSocket ve React arayüzü bağlandı; prototip, etkileşim kurulabilen, kayıt tutan ve bağlantısı yeniden kurulabilen bir giriş noktasına kavuştu.
Araçlar gerçekten çalışmaya başlayınca sistemin “nelerin yürütüldüğünü” bilmesi ve yanıtlar için kaynak sağlaması gerekti. 23 Haziran'da Runs, Steps, Evaluations, belge parçalama ve SQLite FTS5 eklendi; 27 Haziran'da MCP'nin stdio ve HTTP taşıma yolları bağlandı. Böylece proje, bir uzman istemi üretmekten tam bir yürütmeyi yönetmeye ilerledi: model çağırma, araç çalıştırma, süreci kaydetme, bilgi arama ve sonucu kullanıcıya döndürme.
İlk veri modeli; Runs veri modeli; FTS5 bilgi dizini; MCP HTTP taşıması.
Temmuz: Bellek ve teslimatın mühendislik sorunlarına dönüşmesi
5 Temmuz'da Second Brain'e embedding ve kapsama göre filtrelenen hibrit arama eklendi; tam metin araması, vektör benzerliği ve RRF sıralama birleştirmesi birlikte kullanıldı. Daha sonra olguların kaynakları, geçerlilik durumu, yerine geçme ve geri alma ilişkileri, düzenleme önerileri ve kullanım kayıtları tamamlandı. Bellek böylece sohbet özetinin ötesine geçti: bir bilginin ilgili olup olmadığı, hâlâ geçerli olup olmadığı ve hangi kapsama ait olduğu, model bağlamına alınıp alınamayacağını belirlemeliydi.
Bağlama daha fazla geçmiş eklemek yeni ödünleşimler doğurdu: fazla geniş arama ilgisiz bilgileri getirebilir, eski bilgiler yenileri gölgeleyebilir, harici metinler uzun vadeli davranışı etkileyebilirdi. Bu nedenle temmuzdaki uygulama, olgulara kaynak ve zaman bilgisi eklemeye; otomatik eklemeyi, inceleme gerektiren değişiklikleri ve hassas içeriği ayırmaya; düzenleme sonuçlarını öneri gelen kutusuna yönlendirmeye başladı. Sonraki bellek özellikleri de bu sınırlar içinde gelişti. Kullanıcının belleği görebilmesi, düzeltebilmesi ve geri alabilmesi, “daha fazlasını hatırlamaktan” daha somut bir mühendislik hedefi oldu.
Bu dönemde uzun vadeli bakım da ele alındı. 14 Temmuz'da veritabanı geçişleri, projeye ait sürümlü bir yürütücüye taşındı ve Alembic bağımlılığı kaldırıldı. 10 Temmuz'da lisans Apache-2.0 olarak değiştirildi, NOTICE ve SECURITY.md eklendi; 25 Temmuz'da açıkça açık kaynak hazırlığına ayrılmış bir commit geldi. 27 Temmuz'da ilk masaüstü kurulum sürümü v0.1.0 yayımlandı. Tauri kabuğu ve paketlenmiş Python arka ucu birlikte dağıtıldı; imzalama, noter onayı, güncelleme ve ilk kurulum kontrolleri yayın akışına girdi.
Gerçek kurulum ortamı kısa sürede geliştirme testlerinin göstermediği bir açığı ortaya çıkardı: v0.1.0–0.1.6 kurulum paketlerinde WebSocket çalışma bağımlılığı eksikti. Sağlık uç noktası çalışıyor, ancak sohbet bağlantısı kurulamıyordu. 0.1.7, bağımlılık katmanını ve PyInstaller'ın örtük içe aktarmalarını düzeltti; gerçek bağlantı el sıkışmasını kurulum kabul kontrollerine ekledi. Bu hata, “arka uç başladı” kontrolünün neden “kullanıcının tüm iş akışı çalışıyor” düzeyine çıkarılması gerektiğini gösterir.
Hibrit arama; Sürümlü geçişler; Açık kaynak hazırlığı; Kurulum paketindeki WebSocket hatasının değerlendirmesi.
Ağustos: Yetenekleri bağlamak ve kullanıcıya anlaşılır kılmak
0.1.20, kimlik bilgisi durumlarını yapılandırılmamış, şifresi çözülebilir ve şifresi çözülemez olarak ayırdı; salt ve anahtar geçişlerini kararlı hâle getirdi. Aramaya kaynak ve hata açıklamaları eklendi, modeller göreve göre ayrılmaya başladı. Ardından MCP OAuth, OpenRouter oturum açma, ilk kullanım rehberi, eklenti bildirimi, yerel çalışma alanında okuma ve yazma, zamanlanmış görevler ve SSH aşamalı olarak eklendi. Genişletmeler arttıkça sistemin mevcut bağlantının araç çağırıp çağıramadığını, eklenen yeteneklerin etkin olup olmadığını ve hangi eylemin izin gerektirdiğini doğru açıklaması da zorunlu oldu.
Yerel yürütme yetenekleri de katmanlara ayrılmaya başladı. Çalışma alanında okuma ve yazma ayrıldı; yazma için uygun yetki gerekti. Zamanlanmış görevlerin kendi zamanlama izni vardı. SSH makineleri hatırlayabiliyor, ancak her uzak yürütme yine onay gerektiriyordu. Araç listesi böylece hem yetenekleri hem kullanım koşullarını tarif etmeye başladı. Kullanıcı açısından “bağlandı” ve “bu sefer yürütülebilir” farklı durumlardır; arayüzün ve model bağlamının bu farkı yansıtması gerekir.
0.1.23'ün turn journal özelliği, konuşmalar arasında geçiş yapıldıktan sonra hâlâ üretilmekte olan yanıtın yeniden alınmasını sağladı. Kurulu uygulamanın npx'i bulmasıyla ilgili düzeltme ise masaüstü uygulamasının ortamının terminalinkinden farklı olduğunu bir kez daha gösterdi. Ağustosun ana ekseni, daha fazla hizmet bağlamanın yanında bağlantı, durum ve yetkilendirmeyi anlaşılır işlemlere dönüştürmekti.
Eylül: Tek bir yanıttan izlenebilir çalışmaya
0.1.38 güvenilirliğe odaklandı: güvenli koşullar sağlanmadığında yürütmeyi reddeden Python korumalı alanı, bağımsız hesaplama çalışma ortamı, kalıcı Runs kayıtları, çıktılar, kontrol noktaları ve ortak yürütme bütçesi eklendi. 0.1.40'ın önizleme ve kararlılaştırma çalışmaları; proje belleğini, belge kaynaklarını, görev devamlılığını ve geçiş öncesi yedeklemeyi ilerletti. Aynı zamanda diller arası, çok belgeli karşılaştırmalardaki bilinen başarısızlıklar kayıtlarda korundu. Bir kaynağın tıklanabilir olması yalnızca bilginin bulunabildiğini gösterir; modelin sonucunun doğru olduğunu kanıtlamaz.
Biraz daha önce, 31 Ağustos ile 3 Eylül arasında, ses özellikleri sesli okumadan (0.1.32) ve basılı tutarak konuşmadan (0.1.36) yarı çift yönlü sohbete (0.1.37) ilerledi; mikrofon izinleri ve dil seçimi düzeltildi. Bununla birlikte 0.1.40 araştırma kabul sonuçlarında diller arası karşılaştırma başarısızlığı başarı olarak yeniden yazılmadı. 0.1.41'in kaynak incelemesi, kalibrasyon sonuçları yeterli olmadığı için varsayılan olarak kapalı kaldı (0.1.63 bu araştırma incelemesini sonradan kaldırdı). Bu kayıtlar, “sistem kontrol yaptı” ifadesinin ne anlama geldiğini sınırlar ve sonraki iyileştirmeleri gerçek başarısızlıklara odaklar.
0.1.41, pencere kapatıldığında menü çubuğunda çalışmaya devam edilmesini sağladı. 0.1.42, uzun görevleri arka plana taşıyarak kullanıcının sohbete devam etmesine olanak verdi. 0.1.43 ise bütçenin esnek sınırı ile kesin durdurma sınırını ayırdı: esnek sınıra ulaşınca mevcut malzemeyle sonuç hazırlanır; böylece araştırmanın yarıda kalıp hiçbir çıktı sunamaması önlenir. Görevler giderek arayüzden bağımsız bir yaşam döngüsü kazandı. Ancak bu, her harici eylemin bir çökmeden sonra güvenle otomatik tekrarlanabileceği anlamına gelmez.
Eylül sonundan ekime: Tek yürütme döngüsünde birleşme
İlk tasarım, uzmanları kalıcı roller olarak ele alıyordu; hem kullanıcı hem sistem seçim, davet ve yönlendirmeyle uğraşmak zorundaydı. 0.1.44, uzman oluşturmayı ve zamanlamayı durdurdu; eski uzmanların yöntemleri Skill'e dönüştürülebilir hâle geldi. 0.1.46, artık sonuçları kullanılmayan uzmanların arka plandaki gelişimini durdurdu. 0.1.48, ön yönlendiriciyi kaldırarak her mesajı doğrudan Agent döngüsüne gönderdi. Sürüm notlarına göre bazı sabit “bunu yapamam” yanıtları gerçek yetenek sınırından değil, yönlendirme kararından kaynaklanıyordu. Bu sadeleşme, araç seçimini gerçek araçlara ve duruma erişen yürütme sürecine geri taşıdı.
Birleşmeden sonra iyileştirmeler ortak yürütme katmanına yoğunlaştı: 0.1.49 sağlayıcının kendi araç protokolünü, kesilme ve hata kurtarmayı geliştirdi; 0.1.50 mevcut çalışma durumunu, planları ve alternatif yolları ekledi; 0.1.51 komut korumalı alanını ve Island'ı getirdi; 0.1.52 kullanıcı belleğinin ve learned practices kayıtlarının sonraki işlerde kullanılmasını sağladı. Buradaki “öğrenme”, yönetilebilir deneyimlerin saklanması ve kullanılmasıdır; temel model ağırlıkları güncellenmez.
0.1.53, bağımsız Hands yardımcı süreciyle erişilebilirlik ağacını okuma ve Mac uygulamalarında işlem yapma yeteneğini geliştirdi; iPhone Bridge'in Mac tarafını da pakete ekledi. 0.1.54 bu Mac tarafını iPhone uygulamasına hazır hâle getirdi (Touch ID onayları, her telefon için tek kayıt, bir telefon kaldırıldığında temizlik) ve terminal kapısındaki dört açığı kapattı; bunların her biri daha az değil, daha çok onay ister. 0.1.55, onay isteyen her şeye tek bir görünüm ve tek bir kuyruk verdi: kartlar Inbox'tan ve adım riskli değilse Island'dan da yanıtlanabilir. 0.1.56 projeleri iki katmanda ele aldı: tüm projeler için bir pano ve Arslan'ın yalnızca kaynağını gösterebildiği kanıtlara dayanarak işaretlediği kontrol noktalarına sahip seviyeler. 0.1.57 yeteneklerin büyümesini sağlar: bir adım Arslan'ın yapamadığı bir şey gerektirdiğinde Arslan bir sunucu veya Skill bulur, izin ister, onu sabitlenmiş sürümüyle ve korumalı alanda kurar, test eder ve adımı yeniden dener. 0.1.58 yanıtları ve dosyaları okunabilir kılar: yapılanları gösteren sade bir satır, kart olarak geri gelen dosyalar, bir okuyucu ve her konuşmada istenen modeli seçebilme. 0.1.59 uzun yanıtlar boyunca sohbeti canlı tutar, kullanıcının dilinde yanıt verir ve tamamlanmış arka plan işlerini bitmiş sayar. 0.1.60 Hands v2'yi getirir: Hands üzerinde çalıştığı tek pencereye bakabilir, ön planı kısa bir an ödünç alabilir ve yalnızca kullanıcının onayıyla ekranın denetimini devralabilir. 0.1.61, sohbet penceresine, Inbox'a, Island'a ve iPhone'a tek bir onay kartı getirir; kendiliğinden başlayan MCP sunucuları ve temperature ayarını reddeden Claude modelleri için bir düzeltme de gelir. 0.1.62, uzun terminal komutlarının kendi sınırlarına kadar çalışmasını sağlar, “kontrol etmen gerek” uyarısını gerçekten iz bırakmış olabilecek eylemlerle sınırlar, MCP araç açıklamalarını bir sağlayıcının reddi her sohbeti bozmasın diye yeniden biçimlendirir ve dosya yazmanın çalışma klasörünün dışına çıkan bir bağlantıyı izlemesini engeller. 0.1.63, yanıt sürerken mesaj eklemeye, yanıtların yazıldıkça akmasına, aynı anda en fazla dört okumanın çalışmasına izin verir; bir turun geri alınabilmesi için kontrol noktası kaydeder, seyrek kullanılan araçları yalnızca ihtiyaç anında gönderir, görev başına bir dolar sınırı ekler (varsayılan olarak açık) ve zararsız komutların değerlendirilmesi sonradan tamamlanırken her yeni komuttan önce sorar. Kod da sildi: hiçbir yanıtın ulaşamadığı uzman dönemi kodunu, evrim ve düzenleme mekanizmasını, araştırma incelemesini, “Damıt” seçeneğini, Docker ile dağıtım yolunu ve paketlenmiş Hermes kopyasını. Eski uzman orkestrasyonu artık tarihsel bir tasarımdır. Erişilebilirlik yoluyla işlem yapabilmek de tüm uygulamaların güvenilir biçimde denetlenebildiği anlamına gelmez. Mevcut sürüm, modelin fiilen yapabildiklerini görünür durumlar, açık izinler ve incelenebilir sonuçlarla sınırlandırmaya devam eder.
Güvenilirlik temeli; Kararlı araştırma asistanının kapsamı; Arka planda çalışma; Ortak Agent döngüsü; Hands ve Bridge.
05 / Sistem mimarisiArayüz, yürütme ve izinlerin sorumlulukları
Basitçe ifade etmek gerekirse: React kullanıcının gördüğü çalışma alanı, Tauri macOS'e bağlanan kabuk, Python işleri koordine eden motordur. Model karar verir, araçlar gerçek eylemleri gerçekleştirir, veritabanı ve disk ise süreci ve sonuçları saklar. Bu sorumluluklar tek bir masaüstü ürününde birleştirilir, ancak tek bir süreçte yürütülmez.
Şekil 1 · Mevcut mimari. Metinle: çalışma alanı ↔ yerel hizmet → ortak Agent döngüsü ↔ model; yürütme döngüsü → araçlar → sistem/dosyalar; durum SQLite'a ve diske kaydedilir. iPhone, Mac'in internete açık API'sine doğrudan bağlanmaz; Mac Bridge ile CloudKit üzerinden iletişim kurar.
Bu katmanlama neden seçildi?
| Sınır | Sağladıkları | Gerektirdikleri |
|---|---|---|
| React ↔ Yerel hizmet | Sohbet, ayarlar ve grafik arayüzlerini yürütme mantığından ayırır; yanıtlar model yazdıkça akar ve araç olayları anlık gösterilebilir. | Protokol, yeniden bağlantı, akış durumu ve kimlik doğrulama korunmalıdır; sayfanın açık olması görevin hâlâ çalıştığını göstermez. |
| Tauri ↔ Python sidecar | Python'ın model ve belge ekosistemini korurken standart bir Mac kurulum deneyimi sunar. | Birden çok dilin paketlenmesi, dinamik bağımlılıklar, port keşfi, süreç çıkışı ve imzalama yönetilmelidir. |
| Model ↔ Araç yürütücüsü | Model eylem önerir; deterministik kod doğrular, yetkilendirir, yürütür ve kaydeder. | Bozuk parametreler, bilinmeyen araçlar, kesilmiş yanıtlar, tekrarlanan hatalar ve iptal işlenmelidir. Seyrek kullanılan araçlar ve MCP araçları her istekle gönderilmek yerine ihtiyaç anında bulunur; bir adımın onaya ihtiyacı olduğunda bir onay kartı gösterilir. |
| Bağımsız Hands yardımcısı | Accessibility izni bağımsız bir süreçtedir; uygulama ve eylem düzeyinde kurallar uygulanır. | Kod imzası, süreç kimliği, sistem izinleri ve uygulama farklılıkları ek bakım maliyeti getirir. |
| Mac ↔ iPhone | Mac açık, uyanık ve internete bağlıyken bilgisayardan uzakta da istek gönderilebilir, sonuçlar görülebilir ve desteklenen onaylar yanıtlanabilir. | Mac kullanılamadığında mesajlar iCloud'da bekler; yeniden deneme, sırasız teslim, kurtarma ve son durum tutarlılığı yönetilmelidir. |
Başlatma sırasında süreçler nasıl bağlanır?
- Tauri, paketlenmiş Python sidecar'ı başlatır ve hizmet hazır olana kadar başlangıç ekranını gösterir.
- Sidecar, öncelikle yerel port
47317üzerinde dinlemeyi dener; çakışma varsa geçici port kullanır ve standart çıktı üzerindenARSLAN_PORTel sıkışmasını döndürür. - Masaüstü kabuğu portu aldıktan sonra sistem WebView'ında yerel hizmetin sunduğu React sayfasını açar. Sabit portun öncelikli olması, WebKit origin'ini ve yerel arayüz depolamasını kararlı tutmaya yardımcı olur. Sunucudaki oturum dizini, port değişse de geçmişin yeniden bulunmasını sağlar.
- Arayüz kaynakları HTTP üzerinden yönetir; metin akışını, araç durumlarını, onayları ve görev ilerlemesini WebSocket üzerinden alır. Yerel bağlantıda da token ve kaynak denetimi gerekir; masaüstü uygulamasının sunucusu her zaman token ister, başka hiçbir web sitesini çağıran olarak kabul etmez ve kendisini başlatan ortamdan miras kalan ayarları yok sayar.
- Kabuk, standart girdi borusunu yaşam döngüsü bağlantısı olarak açık tutar. Üst sürecin çıkmasıyla EOF oluştuğunda sidecar temizlik yaparak kapanabilir. Çıktı boruları da sürekli okunmalıdır; aksi hâlde süreçler tıkanabilir veya bağlantı kesilince yetim süreçler kalabilir.
Bu ayrıntılar pencerenin, hizmetin ve veritabanının yaşam döngülerini uyumlu tutar. HTTP health yanıtının başarılı olması; WebSocket'in, eklerin, statik kaynakların ve yerel yardımcı süreçlerin kullanılabilir olduğunu kanıtlamaz. Bunlar yayın kabul sürecinde ayrı ayrı denetlenmelidir.
Başlatma ayrıntıları: Paketlenmiş hizmetin giriş noktası ve port politikası; Sidecar el sıkışması ve boru yönetimi; WebSocket bağlantısı.
Eski ve yeni mimari: Yeniden kullanımı korumak, uzman zamanlamasını kaldırmak
Çoklu uzman / Meta-Agent
Kullanıcı → ön Router → Spawn seçimi/oluşturma → uzman yürütmesi → özet. Uzman istemleri, ayrılmış değerlendirme kümesiyle sınanıp insan eliyle Promote edilebilirdi. Ürün, kullanıcının uzman kimliklerini, araçlarını, listesini ve gelişimini anlamasını gerektiriyordu.
One Arslan / Ortak döngü
Kullanıcı → aynı Agent loop → gerektiğinde Skill yükleme ve araç çağırma → sonuç. Olağan olgular yanıttan sonra çıkarılır. Eski uzmanlar Skill'e dönüştürülebilir ve geçmişleri korunur, eski bir uzmanın başlattığı görev devam ettirildiğinde Arslan tarafından sürdürülür. Uzman yönlendirmesi artık ana yürütme yolu değildir ve 0.1.63'ten itibaren hiçbir yanıtın ulaşamadığı uzman dönemi kodu, evrim ve düzenleme mekanizması ile araştırma incelemesi silinmiştir.
“Ortak döngü”, “her şey sıralı” veya “asla görev devri yok” demek değildir. Kodda sınırlandırılmış salt okunur worker yeteneği hâlâ vardır. Bu, bağımsız kişilik, araçlar, gelişim ve yönlendirmeye dayanan eski uzman ürün sistemiyle aynı şey değildir.
Kod giriş noktaları: Masaüstü kabuğu ve sidecar yaşam döngüsü; Ortak giriş noktası; Yürütme döngüsü; Python yürütme çekirdeğini koruma kararı; Bridge süreç denetimi; Yerel Bridge kontrol kanalı; Cihazlar arası protokol.
06 / Yürütme çalışma zamanıHer isteğin süreci, sınırları ve sonucu olsun
Arslan'ın yürütme çekirdeği, kullanıcı niyetini gözlemlenebilir bir eylem dizisine dönüştürür: bağlamı hazırlar, modeli çağırır, araç isteklerini doğrular, izin verilen işlemleri yürütür, gerçek sonuçları okur ve devam etme ya da sonucu sunma kararını verir. v0.1.60'tan itibaren varsayılan giriş noktası ortak döngüdür. Mesajlar doğrudan yanıt akışına girer; uzun vadeli olgular yanıt verildikten sonra çıkarılır. Ana akış model tabanlı bir yönlendirmeyle başlamaz ve hiçbir yanıtın artık ulaşamadığı uzman dönemi kodu (uzman oluşturma, şablonları ve motoru) v0.1.63'te kaldırılmıştır.
Kaynak kod: Mesaj girişi ve bağlamın hazırlanması; Güvenilir görev bağlamı; Ortak araç döngüsü.
Şekil 2 · Yürütme döngüsü. Metinle: girdi → bağlam → model → parametre doğrulama → yetkilendirme → araç yürütme → sonuç dönüşü ve yeni tur. Model doğrudan da yanıt verebilir. Yanıt ve çıktılar kontrol edildikten sonra sunulur; tamamlanmayan işler açıkça belirtilir. Modelin isteği, yasakları veya ret kararlarını geçersiz kılamaz.
Model bir sonraki adımı önerir; çalışma zamanı yürütme koşullarını denetler
Model, araçları adları, amaçları ve parametre şemalarıyla görür. Yapılandırılmış tool_calls döndürdüğünde çalışma zamanı önce JSON'u ayrıştırıp parametreleri doğrular, ardından aracın hâlâ kullanılabilirliğini, mevcut bütçenin yeterliliğini ve kullanıcı izni gerekip gerekmediğini yeniden kontrol eder. Yerleşik araçlar kayıt sistemi üzerinden yürütme işlevlerine eşlenir; mcp_ önekli araçlar MCP çağrısına yönlendirilir ve modele yalnızca şu anda hazır olan MCP sunucuları sunulur. Bir aracın kayıt sisteminde bulunması, her konuşma turunda erişime açık olacağı anlamına gelmez: v0.1.63'ten itibaren bir istek yalnızca düzenli kullanılan araçları ve iki bulucuyu, find_tools ile use_tool'u taşır; seyrek kullanılan araçlar ve MCP araçları ihtiyaç anında bulunur ve doğrudan çağrıyla aynı onaylar ve kayıtlar altında çağrılır. Bir konuşmanın ihtiyaç anında kullandığı liste en fazla 12'ye kadar büyür ve yalnızca bellekte tutulur.
Yanıtın bütünlüğü önemli bir sınırdır: sağlayıcı çıktı uzunluğu sınırı nedeniyle araç çağrısını keserse, içlerinden biri tamamlanmış görünse bile o gruptaki çağrıların hiçbiri yürütülmez. Araç çağrısı içeren model metni yalnızca süreç açıklamasıdır; erkenden nihai çıktı sayılmaz. Yürütme öncesinde ve sonrasında kontrol noktaları kaydedilir; gerçek araç sonuçları ilgili çağrının kimliğiyle modele döner. Web sayfalarından, dosyalardan veya dış araçlardan gelen içerik veri olarak ele alınmaya devam eder.
Bu nedenle “dosyayı kaydettim” ifadesi gerçek bir kayıt sonucuna ve çıktı başvurusuna dayanmalıdır. Doğal dille verilen bir söz, kendiliğinden gerçekleşmiş bir işleme dönüşmez. Araç hataları da sonraki turun girdisi olur; döngü yöntem değiştirebilir, ancak aynı izin ve bütçe sınırlarına uymayı sürdürür.
“Belirtilen dizini oku ve bir liste oluştur” örneğinde dizin yolu önce girdi olarak görev kapsamına alınır. Model okuma isteği yapar, araç gerçek dosya bilgilerini döndürür; liste ancak bundan sonra dayanak kazanır. Dosyaları taşıma veya silme de istenirse çalışma zamanı ilgili işlemin yetkilendirmesini ayrıca değerlendirir. Son teslimat, gerçekten oluşturulmuş dosyaya işaret etmeli ve kontrol sonuçlarını açıklamalıdır. Bu süreçte dosya listesi, işlem alındıları ve çıktı başvuruları farklı kanıt işlevleri görür.
v0.1.63'ten itibaren yanıt yazıldıkça görünür (aşağıda sıralanan uç noktalarda) ve eskiden yanıtı tutan denetimler gerektiğinde yanıtın ardından bir düzeltme ekler; bir akış yarıda koparsa Arslan yeniden başlamak yerine senin gördüğünü korur ve yanıtın kesildiğini söyler. Model art arda birkaç okuma istediğinde (web sayfaları, aramalar, sunucusunun salt okunur diye işaretlediği MCP araçları) en fazla dördü aynı anda çalışır; her sonuç onu isteyen çağrıyla eşli kalır ve okuma olmayan her çağrı kendi yerinde tek başına çalışır.
Kaynak kod: Birlikte çalışan okumalar; Akış ve araç döngüsü.
Ortak arayüz, model protokollerinin farklarını korur
LLMAdapter ortak çağrı arayüzü sunar; ilgili Provider istek biçimini, akış olaylarını, araç çağrılarını ve usage bilgisini işler. Provider uygulamaları HTTP isteklerini httpx üzerinden gönderir. OpenAI uyumlu uç noktalar yerel model hizmeti olarak da yapılandırılabilir. Bulut modeli seçildiğinde ilgili istek bağlamı kullanıcının yapılandırdığı sağlayıcıya gönderilir.
| Protokol yolu | v0.1.63'teki uygulama |
|---|---|
| OpenAI uyumlu | Native trajectory desteklenir: assistant araç çağrıları, çağrı kimlikleri ve tool result, protokolün kendi mesaj geçmişine dönüştürülür. Belirli protokol retleri sınırlı bir geri dönüş yolunu tetikleyebilir. Yanıt, akışlı araç çağrılarının eksiksiz olduğu bilinen DeepSeek, OpenAI ve OpenRouter uç noktalarında yazıldıkça akar; diğer uç noktalar yanıtı bütün olarak verir. |
| Anthropic | v0.1.63'ten itibaren native trajectory de kullanılır. Anthropic'in kendi sunucusunda (ya da listelenmiş birinci taraf bir vekilde) yanıt yazıldıkça akar ve API'den eski araç sonuçlarını kendisinin temizlemesi istenir; Anthropic protokolünü kullanan başka bir uç nokta yanıtı bütün olarak verir. |
| Gemini | Kendi araç çağrısı ve geçmiş gösterimini korur; sağlayıcının gerektirdiği devam bilgilerini saklar; v0.1.63'ten itibaren native trajectory'yi de kullanır ve yalnızca Google'ın kendi sunucusunda akış yapar. |
Trajectory, döngünün yapılandırılmış yürütme izidir; “hangi çağrı hangi sonucu üretti” ilişkisini korur. İç kayıtları ortaklaştırırken sağlayıcıların kendi protokollerini kullanmasına izin verir. Böylece araç etkileşimleri, doğrulanması zor sıradan bir metne sıkıştırılmaz. Bir uç nokta native geçmişi reddederse tur, kalan kısmı için eski gösterime geçer.
Bu katmanda iki onarım bulunur. 0.1.61'den itibaren bir sağlayıcı isteğe bağlı bir istek ayarını reddettiğinde (örneğin daha yeni Claude modellerinde temperature) Arslan isteği o ayar olmadan ya da hatanın istediği adla yeniden gönderir ve bunu yeniden başlatmaya kadar model için hatırlar. 0.1.62'den itibaren MCP araç açıklamaları Anthropic, OpenAI uyumlu sağlayıcılar ve Gemini'nin kabul ettiği biçime dönüştürülür; bir sağlayıcı yine de bir aracı reddederse o araç yanıtın geri kalanı için dışarıda bırakılır (ikinci bir ret ya da hiçbir aracı adlandırmayan bir ret, o yanıt için tüm MCP araçlarını dışarıda bırakır). Yerleşik araçlar olduğu gibi gönderilir.
Kaynak kod: Model arayüzü; Yürütme izi veri yapıları; Provider yetenek sözleşmesi; Reddedilen ayar olmadan yeniden gönderme; MCP araç açıklamalarının yeniden biçimlendirilmesi; İhtiyaç anında araçlar; Yürütme katmanı değişiklikleri.
Geçici yardımcılar ve arka plan görevleri farklı işler yapar
delegate_work, bağımsız araştırmaları geçici worker'lara dağıtır: bir grupta en çok 4 iş, aynı anda en çok 2 iş çalışır. Mevcut worker'ların yalnızca web_search ve web_extract araçlarına erişimi vardır; dosya veya kişisel bellek yazamaz, yeniden görev devrederek özyinelemeli çalışamazlar. Ana yürütücü dönen bilgileri doğrulayıp birleştirir. Böylece paralel araştırmanın yararı korunurken yürütme sorumluluğu asıl görevde kalır.
Arka plan job'ları daha uzun ve bütünlüklü görevler içindir. Kendi bağlamları ve bütçeleri vardır; araç döngüsünü, çıktı kontrollerini ve onarım akışını yeniden kullanırlar. İlerleme, görev kartıyla konuşmaya aktarılır; varsayılan olarak aynı anda en çok 3 görev çalışır. Ağ bağlantısının, sohbet penceresinin ve arka plan yürütmesinin yaşam döngüleri ayrıdır; konuşmayı değiştirmek görevi iptal etmez. Makine uyuduğunda veya süreç kapandığında arka plan işi buluta devredilip çalışmaya devam etmez.
Kesin sınıra ulaşmadan sonuçlandırmaya geçmek
Bütçe; model isteği sayısını, araç çağrısı sayısını, toplam token kullanımını, yürütme süresini ve v0.1.63'ten itibaren dolarları birlikte izler. Sohbet yanıtı ve arka plan görevi artık aynı sınırları alır: Ayarlar'da seçilen kademe, varsayılan olarak standard. Esnek sınıra (soft limit) ulaşıldığında döngü araştırma kapsamını genişletmeyi bırakıp mevcut sonuçları düzenlemelidir. Kesin sınır (hard limit), kontrolsüz kaynak tüketiminin sürmesini önler. İç içe yürütmeler ve yeniden denemeler de görev bütçesine yazılır. Aynı başarısız yolun sürekli denenmesini önlemek için ilerleme sağlamayan tekrar çağrıları ayrıca tespit edilir.
| Kademe (sohbet yanıtı ve arka plan görevi) | Model isteği | Araç çağrısı | Toplam token | Yürütme süresi |
|---|---|---|---|---|
| Lean | 60 | 40 | 300.000 | 900 saniye |
| Standard (varsayılan) | 120 | 80 | 600.000 | 1.800 saniye |
| Ample | 240 | 160 | 1.200.000 | 3.600 saniye |
Tablo varsayılan esnek sınır değerlerini gösterir; dört kesin sınır değeri de bunların 1.5 katıdır. Tek yanıtın çıktı sınırı ve dosya boyutu sınırları ayrıca hesaplanır. Token kullanımı yanıt döndükten sonra kaydedildiği için bu eşikler zamanlama sınırlarıdır; kesin maliyet tavanı veya tamamlanma süresi taahhüdü değildir. Bir onay kartını beklemekle geçen süre yürütme süresine sayılmaz. Kademelerin üzerine görev başına bir dolar sınırı da vardır; varsayılan olarak açıktır ve 2 $'dır (Ayarlar › Arka plan › Görev başına dolar sınırı): çalışma, sınırın üçte ikisinde toparlanmaya başlar ve sınırda durur. Yalnızca fiyatı bilinen modellerin yanıtları sayılır; dolayısıyla yerel bir model ya da fiyat tablosunda olmayan bir model hiçbir şey eklemez ve token sınırları yine geçerlidir. Denetim bir sonraki istekten önce yapılır, bu yüzden bir çalışma bir yanıt kadar aşabilir. Devam ettirilen görevler kullanılan sayaçları, yürütme süresini ve dolarları devralır. Kapalı kaldığı bekleme süresi yeni yürütme süresine eklenmez; bütçe de sıfırlanmaz.
Uzun iş sohbette kalır: Arslan onu artık kendiliğinden arka plana itmez; arka plan görevi, sen ya da model seçtiğinde aynı işin başka yerde yapılmasıdır. On dakika sonra yanıt, hâlâ çalıştığını söyler. Bir terminal komutu istediği süre kadar çalışır (varsayılan 2 dakika, en fazla 10), yanıtın kalan süresini asla aşmaz; bir süre sınırı onu durdurursa Arslan o âna kadarki çıktıyı yine görür ve durdurulduğu kendisine söylenir; çıktısını taşıran bir komut başını ve sonunu korur. Varsayılan olarak her yeni komut önce bir kart gösterir (v0.1.63) ve zamanlanmış bir görev bu sürümde komut çalıştırmaz: o adım atlanır ve Gelen Kutusu'nda listelenir. Yanıtsız kalan bir kart 30 dakika sonra sona erer; Arslan'a bunun bir ret olmadığı söylenir.
Kaynak kod: Bütçe kuralları; Komut süre sınırı ve çıktı sınırı; Onay kartları ve süre dolumu; Geçici yardımcılar; Arka plan görevleri.
Görev, deneme ve kabul ayrı kaydedilir
TaskSpec, görev sözleşmesini saklar: talimatlar, girdiler, kapsam, kabul ölçütleri ve bütçe; ayrıca revizyon sürümünü içerir. Bir task birden fazla attempt geçirebilir; attempt somut bir yürütme denemesidir. Sözleşme değişiklikleri, iptalden sonra gelen eski sonuçlar ve kurtarma sonrası yeni denemeler birbirlerinin durumuna yazamaz. Kalıcı güncellemelerde hem attempt kimliği hem row version denetlenir; böylece eski yürütmenin yeni durumun üzerine yazması önlenir.
| Durum | Anlamı |
|---|---|
queued / running | Başlamayı bekliyor / Yürütülüyor. |
waiting_user | Kullanıcı işlemi veya açıkça devam ettirme gerekiyor; bu durum tek başına sonucun tamamlandığını göstermez. |
verifying | Kanıtlar ve çıktılar görev sözleşmesine göre denetleniyor. |
succeeded / failed / cancelled | Kabulden geçti / Yürütme başarısız / İptal edildi. |
Kabul sonuçları; geçti, başarısız, çalıştırılmadı ve uygulanamaz gibi durumları ayırır. Her karar karşılık gelen kanıta dayanmalıdır. Sözleşmedeki kontroller atlanamaz ve tümü modelin öz değerlendirmesine bırakılamaz. Dosyanın varlığı, ait olduğu görev ve özeti gibi özellikler deterministik olarak doğrulanabilir; öznel kalite için model veya insan değerlendirmesi eklenebilir. Hazırlanan, süren veya etkisi bilinmeyen eylemler varken veri erişim katmanı görevin doğrudan başarılı duruma geçmesini de engeller.
Görev revizyonunun kimliğinin korunması da bu nedenle gereklidir: eski gereksinimler için üretilen sonuç, yeni gereksinimlerin karşılandığını kendiliğinden kanıtlamaz. Kabul; aynı sözleşme sürümüne, aynı geçerli denemeye ve o göreve ait kanıtlara dayanmalıdır. Kritik kontroller gelişigüzel “uygulanamaz” olarak işaretlenemez; bu ancak sözleşme kurallarına uyan kritik olmayan maddeler için mümkündür. Kanıt eksikse sonuç doğrulanmamış veya tamamlanmamış olarak korunmalı ve ek kontroller beklenmelidir.
Kurtarma, mevcut kanıtlardan devam eder
Kontrol noktaları ilerlemeyi, kullanılan bütçeyi, kanıtları ve çıktı başvurularını saklar. Çalışma olayları, arayüz yeniden bağlandığında görüntülenebilir. Süreç içindeki run registry gerçek asenkron görevleri ve iptal giriş noktalarını tutar; olayları bağlı pencerelere dağıtır. Yeniden bağlanırken anlık görüntü eşzamanlı alınır ve olay akışına bağlanılır; böylece bağlantı devrindeki olay kaybı ve tekrarlar azaltılır.
Süreç yeniden başladığında bitmemiş yürütmeler kesintiye uğramış olarak tanınır ve kullanıcı tarafından açıkça devam ettirilir. Dışarıya gönderilmiş fakat alındısı dönmemiş eylemlerin etkisi bilinmez; önce kontrol edilmeli, doğrudan yeniden gönderilmemelidir. Yedekten geri yükleme ayrıca eski eylem yetkilerini iptal eder ve ilgili eylemleri belirsiz olarak işaretler. Kontrol noktaları “nereden güvenle devam edilebilir” sorusunu çözer; oluşmuş dış sonuçları geri alamaz.
“Bu turu geri al” (v0.1.63) için ayrı türden bir kontrol noktası vardır. Bir tur bir dosyayı ilk kez yazdığında ya da bir komutu ilk kez çalıştırdığında Arslan çalışma klasörünü olduğu gibi, bir kez kaydeder. Geri alma dosyaları yerine koyar ve o turu ve sonraki her turu, onların öğrettiği olgularla birlikte konuşmadan kaldırır; özetler korunur ve mesaj kimlikleri asla yeniden kullanılmaz. Klasör yalnızca en fazla 20.000 dosya ve 5 GB içeriyorsa, yeterli boş disk varsa ve Arslan'ın verileriyle aynı diskteyse kaydedilir. Yeniden oluşturulabilir klasörler (Python ortamları, node_modules, derleme çıktıları, __pycache__) ile gizli anahtar biçimli dosyalar dışarıda bırakılır ve asla geri konmaz; geri alma kutusu nelerin kaydedilmediğini söyler. Turdan sonra değişen dosyalar korunur ve listelenir; bir çalıştırma klasörü hâlâ değiştirirken geri alma reddedilir.
Durdurmanın da iki katmanı vardır: çalışma kayıt sistemi bekleyen veya yürütülen asenkron işi iptal eder; kalıcı durum ise geç gelen sonuçların kaydedilmesini engeller. Harici sistemin zaten kabul ettiği bir istekte yerel beklemeyi iptal etmek, karşı tarafın işlemi yapmadığını kanıtlamaz. Bu yüzden eylem tablosu hazırlandı, başladı, onaylandı, başarısız, etkisi belirsiz ve iptal edildi durumlarını ayırır. Kurtarma akışı önce bunları ele alır, ardından hangi adımların yeniden denenebileceğine karar verir.
Kaynak kod: Görev ve kabul sözleşmeleri; Kalıcı durum ve eşzamanlılık kontrolleri; Çıktı doğrulaması; Yürütme ve açıkça devam ettirme; Bağlantı ile çalışmanın ayrılması; Yedekten kurtarma sınırları; Geri alma için klasör kontrol noktaları; Bir turu geri alma.
Pencereyi haberdar tutan bir tur
0.1.59'dan itibaren bir tur sürerken sunucu, model tek bir uzun dosyayı yazmak için dakikalar harcasa bile pencereye en az 15 saniyede bir “working” olayı gönderir; böylece “Interrupted” artık bağlantının kendisinin koptuğu anlamına gelir. 0.1.63'ten itibaren Arslan hâlâ yanıt verirken gönderilen bir mesaj, yanıtın bitmesini beklemek yerine yanıta bir sonraki adımında ulaşır: henüz başlamamış adımlar atlanır, yanıt mesajı önce okur ve pencere mesajın eklendiğini söyler. Nihai yanıtını yazmakta olan bir yanıtın kalan adımı yoktur; bu yüzden mesaj hemen ardından çalışır. Bir onay kartı beklerken gönderilen mesaj kartı, mesajı not olarak ekleyerek “No” diye yanıtlar ve sıradaki olarak çalışır. Yanıt dili kullanıcının son mesajını izler: dil belirlenirken yollar, URL'ler ve kod dikkate alınmaz; hiç sözcük içermeyen bir mesajda arayüz dili esas alınır. Pencerenin bağlantısı kapanmışken istenen bir onay artık turu başarısız kılmaz; kart Inbox'ta, Island'da veya yeniden bağlanan pencerede bekler.
Kaynak kod: Çalışma olayları, kuyruk ve yeniden bağlanma sonrası kartlar; Çalışan bir yanıta eklenen mesaj; Yanıt dili.
Projeler: pano, seviyeler ve kanıt isteyen kontrol noktaları
0.1.56'dan itibaren her projenin seviyelerden oluşan bir planı vardır; her seviyenin açık bir geçme koşulu ve birkaç kontrol noktası bulunur. Bir tür seçildiğinde (oyun, uygulama, web sitesi, araştırma, yazı, video, beceri, seyahat, iş veya diğer) seviyeler model çağrısı yapılmadan bir şablondan taslak olarak oluşturulur. “Let Arslan refine”, kullanıcının kendi modeline tek bir çağrı yaparak seviyeleri hedeflenen bitiş noktasına uyarlar; kullanıcı projeyi oluşturana kadar hiçbir şey kaydedilmez. Panonun sütunları — Idea, Shaping, Doing, Done — sürüklenerek değil, her zaman mevcut seviyeden türetilir; Done ve Dropped durumlarını yalnızca kullanıcı belirler.
Arslan planı yalnızca kaynağını gösterebildiği kanıtlarla ve yalnızca mevcut seviye için ilerletir: dosya adı belirten bir kontrol noktası, bu dosyalar proje klasöründe ortaya çıktığında işaretlenir; kullanıcının kendi turundan sonra bir değerlendirici, mesajın bir işin tamamlandığını söyleyip söylemediğine bakar; projenin devir adımından başlatılan bir arka plan görevi tamamlanarak bittiğinde ilgili kontrol noktasını işaretler. Küçük işaretler geri alınabilir; bir seviyeyi geçmek ise kart üzerinde bir öneridir, asla bildirim ya da Inbox öğesi olmaz. Arslan, seviyeleri kendisinin ilerletip ilerletemeyeceğini ancak art arda on doğru tahminden sonra bir kez sorar. Öğrendiği plan kuralları, kullanıcının çalışma temposu ve “stalled” uyarısı yerelde kalır; bir modele yalnızca kullanıcının başlattığı bir taslak isteğinin içinde ulaşır.
Kaynak kod: Seviyeler, pano ve öneriler; Dosyalar, kullanıcının söyledikleri, çalıştırmalar; Seviye şablonları; Plan kuralları, tempo ve duraksama.
07 / Veri ve bellekKullanışlı bağlamı saklamak, veri sınırlarını açık tutmak
Arslan temel durumu yerel SQLite'ta saklar: konuşmaların, çalışma kayıtlarının, görevlerin, kişisel belleğin, model yapılandırmasının ve kullanımın ayrı veri modelleri vardır. Teslim edilen dosyalar diske yazılır; çok uzun araç çıktılarının tam metni uygulamanın veri klasöründe ayrıca saklanır (7 gün tutulur) ve model bu metni sonuçta verilen yoldan parça parça okur. Böylece bir pencereyi kapatmak görev sürecini silmez. “O sırada ne söylendi”, “gerçekte ne yapıldı” ve “ileride ne hatırlanabilir” ayrı ayrı yönetilebilir.
Veri erişiminde asenkron SQLAlchemy ve aiosqlite kullanılır. Bağlantılarda WAL, yabancı anahtar denetimi ve 5 saniyelik meşgul bekleme etkinleştirilir; synchronous=NORMAL ayarı kullanılır. Bu seçimler, yerel ve tek kullanıcılı uygulamanın dağıtım bağımlılıklarını azaltır; eşzamanlı okuma ve yazma deneyimini iyileştirir. Veri dizininde ayrıca iş birliğine dayalı bir süreç kilidi vardır; aynı protokole uyan örneklerin aynı veriyi eşzamanlı kullanmasını önler.
Şekil 3 · Bellek döngüsü. Metinle: kaynak → değerlendirme → etkinleştirme/öneri → kayıt → kapsam ve izne göre filtreleme → geri çağırma → kullanımı kaydetme. “EventKit kullan” bilgisini hatırlamak, Anımsatıcılar iznini elde etmek değildir.
Veri nesneleri sorumluluklarına göre ayrılır
| Veri grubu | Temel nesneler | Yanıtladığı sorular |
|---|---|---|
| Konuşma ve çalışma | ArslanMessage, ArslanSummary, Run, RunStep, UsageLedger | Kullanıcı ne söyledi, neler çağrıldı, ne kadar kaynak tüketildi? |
| Kalıcı görevler | companion_tasks, task_revisions, task_attempts, task_checkpoints, task_events, task_actions | Görev hangi sözleşme sürümünü kullanıyor, hangi denemede, hangi eylem ve kanıtlara sahip? |
| Kişisel bellek | memory_entries, memory_revisions, memory_sources | Hangi bilgi hatırlanıyor, geçerli sürümü hangisi, kaynağı ne? |
| Kullanım ve silme kayıtları | context_receipts, memory_deletions, memory_suppressions | Hangi bellek sürümü bağlama alındı, hangi silmelerin etkisi sürmeli? |
| İzinler ve onaylar | permission_rules, permission_grants, approval_events | Hangi kalıcı yanıtlar (“Always”) ile görev başına ya da konuşma başına yanıtlar var; bir sınırı aşan her karar, kimin verdiği ve kartın ne kadar beklediği. |
| Kaynaklar ve deneyimler | KnowledgeChunk, Lesson, Judgment | Aranabilir bilgiler, yeniden kullanılabilir deneyimler ve dar kapsamlı kararların sonuçları. |
Görev tablosu güncel durumu, revizyon tablosu görev sözleşmesini, attempt tablosu yürütme denemelerini, event tablosu sıralı olayları, action tablosu ise gerçek eylemleri ve etkilerinin durumunu kaydeder. Birlikte kontrol ve kurtarmayı desteklerler. Kişisel bellekte ise düzenlemeyi, kaynak takibini ve silmeyi kolaylaştırmak için sabit kimlik, içerik revizyonları ve kaynaklar ayrılmıştır; tüm sohbet içeriği doğrudan kalıcı bellek olarak yeniden kullanılmaz.
Kaynak kod: SQLite bağlantısı; Çalışma, kaynak ve yapılandırma modelleri; Görev modelleri; Kişisel bağlam ve bellek modelleri.
Çalışma bağlamı: Bu turun girdisini sınırla, özgün geçmişi koru
Modelin tek seferde alabileceği içerik sınırlıdır. Arslan çalışma bağlamını, boyutu sınırlandırılmış güncel bir özet ve yakın tarihli mesajlarla oluşturur. v0.1.63'ten itibaren geçmiş penceresinin boyutunu turun modeli belirler: tahmini olarak bağlam penceresinin %40'ı, ancak hiçbir zaman 3.000 token'ın altında ya da 24.000 token'ın üstünde değil (bilinmeyen bir model için 32.000, yerel bir model için 8.192 varsayılır); özetin de ayrı bir uzunluk sınırı vardır. Bu, yalnızca geçmişin hazırlanmasına ayrılan bütçedir; model isteğinin tamamının 3.000 token olduğu anlamına gelmez. Sistem talimatları, araç şemaları, kaynaklar ve sonuçlar da ayrıca yer kaplar.
Konuşma uzadığında son dört kullanıcı turu özgün hâliyle korunur (bütçenin yarısına sığdıkları sürece) ve önce eski turların araç özetleri maskelenir, bu hiçbir maliyet getirmez; geçmiş bütçesinin dörtte üçünü aştığında eski mesajlar özete katlanır ve özet Hedef, İlerleme, Kararlar, Dokunulan dosyalar ve Sonraki adımlar bölümlerini korur. Turdan türe değişenler (olgular, özet, kaynaklar, yanıt dili) sistem isteminde değil, turun isteğinin başındaki bir başvuru bloğunda taşınır ve asla kullanıcının sözleri olarak saklanmaz. Sıkıştırma, sonraki bağlama hangi içeriğin alınacağını değiştirir; veritabanındaki tam konuşmayı silmez. Sıkıştırma başarısız olsa da özgün kayıtlar korunur. Aşırı uzun araç çıktıları ayrıca diske yazılır: modele başlangıç ve son kısımların özetiyle dosya yolu verilir; gerektiğinde parça parça okunur. Tam çıktı saklama politikasına göre temizlenir.
Bu katmanlama modelin öncelikle mevcut görev için gereken bilgileri görmesini sağlarken sonraki kontroller için özgün dayanağı da korur. Özet, mevcut içeriğin sıkıştırılmış bir temsilidir; harici bir eylemin gerçek alındısının yerini tutmaz.
Kişisel bellek: Önce kullanılabilirliğe, sonra ilgililiğe karar ver
Bellek kayıtları tür, kapsam, hassasiyet düzeyi, kullanım politikası, durum, güven bilgisi ve sürüm içerir. Kapsam genel veya bir proje olabilir (alan ve uzman gibi iç kapsamlar da vardır); her kaydın ayrıca bir sahibi bulunur. local_only gibi kullanım politikaları, içeriğin bulut modeli isteğine girip giremeyeceğini ayrıca belirler. Her turun güvenilir bağlamı, oturum ayarlarını veritabanından yükler. Sıradan kullanıcı metni, web sayfası veya model çıktısı bu izinleri kendiliğinden değiştiremez.
“Hakkınızda” ve “Mac notları” için sınırlı bir temel ekleme yapılır; diğer içerikler ilgililiğe göre seçilir. v0.1.52'den itibaren varsayılan olarak açık olan “Beni hatırla ve konuşmalarda kullan” seçeneği, olağan ve cloud_allowed durumundaki kayıtların yapılandırılmış bulut modelinde kullanılmasına izin verebilir. Hassas içerik ek izin gerektirir; local_only içeriği, genel anahtar açıldı diye buluta gönderilebilir hâle gelmez.
ContextReceipt, hangi kayıtların ve revizyonların kullanıldığını, neden kullanıldıklarını ve tahmini miktarlarını kaydeder; bellek metnini kopyalamaz. Kullanıcı bağlam seçiminin dayanağını izleyebilir; sistem de bunun için hassas içeriğin yeni bir kopyasını oluşturmak zorunda kalmaz.
Belleği düzenlemek yeni bir revizyon oluşturur ve kaydın geçerli revizyon işaretçisi güncellenir. Kaynak kayıtları bu içeriğin nasıl oluştuğunu açıklamayı sürdürür. Duraklatılmış, süresi dolmuş, yerine yenisi geçmiş veya silinmiş olması da sonraki bağlama alınıp alınmayacağını etkiler. Sürümleme değişiklikleri kontrol etmeyi kolaylaştırır; ancak silme süreci silinmesi gereken metni temizler. Bu nedenle sistem, tüm tarihsel içeriğin sonsuza kadar silinemez olduğu bir olay deposu olarak görülmemelidir.
Kaynak kod: Geçmiş ve özetler; Uzun araç çıktıları; Model penceresine göre geçmiş boyutu; Tur başına başvuru bloğu; Oturum izinleri; Kapsam ve gizlilik filtreleri, alındılar.
Bilgi arama: Anahtar sözcük ve vektörler birlikte kullanılabilir
Bilgi arama modülü, SQLite FTS5 tam metin aramasını ve vektör kosinüs benzerliği aramasını destekler. İlki sözcük eşleşmelerini bulur; ikincisi embedding kullanarak anlamsal olarak ilişkili parçaları arar. İki yol da kullanılabiliyorsa sıralamalar RRF ile birleştirilir. RRF, farklı ölçeklerdeki ham puanları doğrudan karıştırmak yerine sıralamadaki konumları karşılaştırır. Embedding yapılandırılmadığında veya vektörler eksik olduğunda tam metin araması kullanılabilir.
Bulunan parçalar kaynaklarıyla birlikte model bağlamına girer; model bunları mevcut soruyla birleştirerek yanıtı oluşturur. Buradaki RAG budur. Kaynak araması yalnızca kaynak koleksiyonu bağlanmış projelerde yapılır; bulut modeli kullanılıyorsa konuşmanın kendi bulut bellek izninin de açık olması gerekir (varsayılan “Beni hatırla” anahtarı kaynakları kapsamaz). Sonuçlar bağlama recall aracının dönüş değeri olarak girer. Bunların hiçbiri temel model ağırlıklarını değiştirmez ve ayrı dağıtılan bir vektör veritabanı gerektirmez. Kişisel bellek v2'nin seçimi ağırlıklı olarak izin filtrelerini, tam metni ve yerel ilgililik mantığını kullanır; tüm belleğin aynı vektör hattından geçtiği varsayılamaz.
Deneyimden öğrenme: Düzeltmeleri incelenebilir kurallara dönüştürmek
Lesson, kullanıcı düzeltmelerini, başarısızlıktan sonra işe yarayan alternatif yöntemleri ve makine ortamının özelliklerini saklar. Örneğin bir komut mevcut Mac'te farklı parametreler gerektiriyorsa, benzer görevlerde kullanılmak üzere kaynağı belli bir deneyim oluşturulabilir. En çok 5 kayıt, toplam yaklaşık 800 karakter geri çağrılır ve kararlı sistem önekini değiştirmeden dinamik agent status içine konur. Geri çağırma, uyma, başarı ve başarısızlık ayrı ayrı sayılır.
Bir bilginin saklanmaya değer olup olmadığı, mevcut içerikle tekrar veya çelişki oluşturup oluşturmadığı konusunda judgment katmanı dar kapsamlı kararlar verebilir; olasılıkları ve sonraki sonuçları kaydeder. Kullanıcı düzeltmeleri veya dış içerikten etkilenmemiş deneyimler, ayarlar izin veriyorsa ve değerli bulunuyorsa doğrudan etkinleşebilir. İnceleme gereken diğer içerikler öneriye dönüşür. Kimlik bilgisi içeren adaylar doğrudan atılır; çıkarım yoluyla elde edilen hassas bilgilerin incelenmesi kuralı deneyimlere değil, kişisel belleğe aittir. Karar eksikse veya zaman aşımına uğrarsa yedek bir yol bulunur.
0.1.55'ten itibaren bir düzeltme, ancak Arslan'ın konuşmada daha önce yaptığı bir şeye yanıt veriyorsa düzeltme sayılır: ilk mesaj her zaman bir istektir, asla düzeltme değildir. Aynı turda az önce işe yarayan yola ters düşen bir düzeltme hemen etkinleşmez; kullanıcının onayını bekleyen bir öneriye dönüşür. Kullanıcının kendisinin gidermesi gereken bir hata, örneğin macOS'un bir izni reddetmesi, hiçbir zaman başka bir yola geçmek için gerekçe olarak öğrenilmez. Arslan konuşma sırasında bir bellek kaydettiğinde bunu sohbet akışında, Undo seçeneğiyle birlikte bildirir.
Bu mekanizmalar uygulamanın saklayıp geri çağırdığı bilgiyi değiştirir; model ağırlıklarını eğitmez. Judgment'ın etkin olduğu alanlar da farklıdır: bellek, deneyim ve proje noktaları yanıttan sonra çalışır, kayıtlı olan biri (turun tamamlanması) kapalıdır. Hiçbir judgment bir komutun çalışıp çalışmayacağına karar vermez: komut kartlarının shadow judgment'ı v0.1.63'te kaldırıldı ve yalnızca yetkilendirme akışı karar verir.
Kaynak kod: Hibrit bilgi araması; Deneyim çıkarma ve geri çağırma; Dar kapsamlı kararlar ve çalışma modları.
Silme, özetlere ve eski yedeklere de uzanmalıdır
Bir bellek kaydı silinirken sistem deletion epoch değerini artırır, bu kaydın eski revizyon metinlerini ve kaynaklarını siler; ayrıca tüm konuşmaların sürekli güncellenen özetlerini ve çalışma kayıtlarında önbelleğe alınmış istemleri temizler. Böylece eski türetilmiş içerik silinen belleği geri getiremez. Silme kaydı, silinen metni deftere yeniden kaydetmemek için yalnızca eşleştirmede kullanılan bir içerik parmak izini (yerel anahtarla HMAC) ve kapsam gibi metaverileri tutar. Suppression kayıtları, sohbet geçmişindeki aynı kaynağın bu belleği otomatik olarak yeniden üretmesini önler. Belleği silmek ile özgün konuşmayı silmek ayrı veri işlemleridir. “Bu turu geri al” üçüncü, daha dar bir işlemdir: her kaynağı geri alınmış bir tur olan kayıtları siler (başka bir şeyin de desteklediği bir kayıt yalnızca o kaynakları kaybeder), metin mezar taşı bırakmaz ve özetleri korur.
Bağımsız silme defteri ve silme listesi, başlatma ve kurtarma yollarında silmelerin uygulanmasını sürdürür. Eski bir yedek geri yüklenmeden önce sistem depolama kimliğini kontrol eder; veriyi etkinleştirmeden önce geçici verileri silme bilgilerine göre düzenler. Böylece eski yedeklerin silinmiş belleği geri getirme olasılığı azaltılır. Bu güvence kurtarma akışına ve kullanılabilir silme kayıtlarına bağlıdır; dışarı aktarılmış tüm kopyaların geri alınabildiği anlamına gelmez.
Yedekteki diğer bellek kayıtları da tüm kullanım izinlerini hemen geri kazanmaz. Kurtarma süreci bunları inceleme için karantinaya alır, kullanım politikasını daraltır, önbellekteki bağlamı temizler, tüm zamanlanmış görevleri devre dışı bırakır, konuşma düzeyindeki bulut ve hassas içerik izinlerini geri alır ve etkin projeleri arşivler. Veriyi geri yükleme ve kullanımını yeniden onaylama ayrı yapılır; böylece eski oturum izinleri yeni çalışma ortamında sessizce etkinleşmez.
Uygulama veriyi kullanmadan önce geçiş tamamlanır
Güncel veritabanı yükseltmeleri açıkça tanımlanmış bir geçiş runner'ı kullanır: şema sürümünü kontrol eder, yükseltme yedeğini hazırlar, eksik tabloları oluşturur, bekleyen geçişleri sırayla yürütür, ardından anahtar uyumluluğunu ve bellek v2 etkinleştirmesini ele alır. Bilinmeyen veya fazla yeni şema reddedilir; eski programın yeni veriyi körlemesine değiştirmesi önlenir. v0.1.63'te kayıtlı açık geçişler 0070 düzeyine ulaşmıştır. İlk dönemdeki Alembic geçmişi, güncel çalışma mekanizması olarak yorumlanmamalıdır. v0.1.60'tan beri şunlar eklendi: 0067 (izin tabloları), 0068 (MCP sunucusu başına tek durum ve her aracın ipuçları), 0069 (mesaj kimlikleri asla yeniden kullanılmaz; böylece bir turu geri almak silinmiş bir kimliği yeniden vermez) ve 0070 (saklanan bir “yalnızca riskli komutlarda sor” ayarı bir kez “her komuttan önce sor” olarak değişir).
Bellek v2 etkinleştirilirken eski olgu ve öğrenme tabloları legacy adıyla yeniden adlandırılır ve salt okunur tetikleyiciler eklenir. Uyumluluk görünümleri eski okuma girişlerini yeni yapıya eşler; tam metin dizini de bu süreçte oluşturulur. Model API anahtarları, MCP ortam değişkenleri ve OAuth token'ları, SSH anahtarları gibi gizli alanlar, alan düzeyinde Fernet şifrelemesiyle (PBKDF2 ve her kuruluma özgü salt) korunur. Bu, sıradan konuşma ve görev tablolarının da veritabanı genelinde şifrelendiği anlamına gelmez. Kalıcı depolamanın, sır korumasının ve yedekten kurtarmanın somut sınırları ayrıdır.
Kaynak kod: Bellek silme ve sürümleme; Kalıcı ve görev başına yanıtlar; Bir turu geri alma; Silme defteri; Kurtarma öncesi silme denetimi; Yedekten kurtarma koordinasyonu; Kurtarılan verinin karantinası; Depolama başlatma sırası; Açık geçişler; İzin tabloları; Bellek yapısının etkinleştirilmesi; Anahtar alanlarının korunması.
08 / Araçlar, Skill ve genişletmelerYetenekleri yeniden kullanmak, yürütmeyi sınırlandırmak
Arslan, “ne yapabilir” ile “nasıl yapılacağını bilir” kavramlarını ayrı düzenler. Araçlar gerçek eylemleri gerçekleştirir; Skill yöntemleri ve kaynakları saklar; MCP dış yeteneklere bağlanır; eklenti bildirimi bu kaynakları bir araya getirir. Modele o turda kullanılabilir olan yetenekler sunulur. Bir aracın kaynak koddaki kayıt sisteminde bulunması, varsayılan olarak etkin veya yürütme iznine sahip olduğu anlamına gelmez.
Bu dört kavram birlikte nasıl çalışır?
| Bileşen | Sağladığı | Yerini tutmadığı |
|---|---|---|
| Tool | Adı, parametre sözleşmesi ve yürütücüsü olan bir eylem; örneğin arama, dosya okuma veya komut çalıştırma | Araç açıklaması, parametre doğrulamasının, izin kararının ve gerçek dönüş değerinin yerine geçmez. |
| Skill | SKILL.md içindeki çalışma yöntemi, isteğe bağlı betikler ve başvuru kaynakları | Kendiliğinden sistem izni kazanmaz; ayrıca eğitilmiş bir model değildir. |
| MCP | Harici araçları stdio veya HTTP üzerinden keşfetme ve çağırma protokolü | Ortak arayüz, hizmetin güvenilirliğini garanti etmez; bağlantı, erişime açma ve yetkilendirme uygulamanın denetimindedir. |
| Plugin manifest | arslan.plugin.json, MCP'nin başlatılma biçimini, secret alanlarını ve ilişkili Skills'i bildirir. | Bildirimi kurmak ve ayrıştırmak, içindeki herhangi bir sunucuyu hemen çalıştırmak anlamına gelmez. |
Bildirimden yürütmeye hangi kontroller yapılır?
Yerleşik araçları kayıtlı yürütücüler çalıştırır; mcp_ önekli çağrılar MCP aracısına gider. Araç sonuçları ortak döngüye döner; model bunlara göre parametreleri tamamlayabilir, alternatif bir yöntem seçebilir veya görevi bitirebilir. Model bir Skill'i okumuş olsa da dosya, komut ve uygulama işlemleri kendi izin sınırlarından geçmek zorundadır.
0.1.63'ten itibaren bir istek artık her aracı taşımaz. Günlük araçlardan oluşan sabit bir küme (web arama ve sayfa okuma, dosya okuma, yazma ve düzenleme, terminal, planlama, arka plan işi, bellek, read_skill, yetenekler listesi ve Hands'in masaüstü araçları) ile iki bulucu taşır: find_tools, bu turun çağırabileceği ama gösterilmemiş araçları sıralar; use_tool ise birini gerçek adıyla çağırır, böylece parametreler o aracın kendi parametrelerine karşı denetlenir ve doğrudan çağrıdaki aynı onay, iz ve alındılar geçerli olur. MCP araçlarına, attach_file'a ve tarayıcı araçlarına bu yolla ulaşılır. İhtiyaç anında kullanılan bir araç, sonraki turdan itibaren o konuşmanın listesine katılır (konuşma başına en fazla 12, bellekte tutulur; bu yüzden yeniden başlatmadan sonra model yeniden arar). find_tools'un geri verdiği bir MCP sunucusu metni, asla talimat olarak değil, dış veri olarak sarılır.
Model art arda birkaç okuma istediğinde en fazla dördü aynı anda çalışır: web arama ve sayfa okuma, read_skill, dosya okuma, listeleme ve benzerleri ile sunucusunun salt okunur diye işaretlediği MCP araçları (bir grupta sunucu başına bir tane). Her çağrı yine yanıtın sırasıyla her kapıdan geçer ve her sonuç onu isteyen çağrıyla eşli kalır; okuma olmayan her şey kendi yerinde tek başına çalışır.
Skill içeriği ihtiyaç olduğunda okunur: dizin, hangi yöntemlerin bulunduğunu modele bildirir; read_skill ise metni kayıtlı SkillPack'ten veya izin verilen başvuru yolundan alır. Böylece yöntem kitaplığı büyürken her turun bağlam boyutu denetlenebilir. Arslan'ın kendi iki Skill'i vardır: tasarlanmış bir HTML raporu ve Skill oluşturucu. 0.1.63'ten itibaren uzman dönemi tohumları, hazır MCP bağlayıcı listesi ve modelin bağlayıcı önerme aracı kaldırılmıştır (yeni bir MCP sunucusu bulmak aşağıdaki find_capability üzerinden yapılır) ve eski bir adla içe aktardığın bir Skill artık kaldırılmaz.
0.1.55'ten itibaren Capabilities sayfası, Arslan'ın yapabildiklerini anahtarlar olarak listeler; her biri açık, kapalı, bir adım uzakta veya burada mümkün değil durumundadır ve nedeni de gösterilir. Kapalı, modele hiç sunulmaması anlamına gelir; read_skill da kapatılmış bir Skill'i okumayı reddeder. Satırlar, bir turun hangi araçları alacağına karar veren kapıların aynısından okunur; bu yüzden bir satır, araçları eksikken “açık” görünemez. whats_new aracı, “hangi sürümsün, neler değişti” sorusunu modelin belleğinden değil, uygulamayla birlikte gelen sürüm notlarından yanıtlar.
Genişletme hizmetleri yeni bir güven sınırıdır
Yerel stdio MCP genellikle ayrı bir süreç başlatır; HTTP MCP ise uzak bir hizmete bağlanabilir. Arslan bağlantıyı, ana asistanın kullanabilmesini, araçların erişime açılmasını ve kimlik bilgilerinin nasıl saklanıp gösterileceğini ayrı ayrı yönetmelidir. Eklenti bildiriminde tanımlanan HTTP MCP hizmet URL'leri HTTPS kullanmalıdır. Secret alanları parametre yapısını tanımlar; gerçek kimlik bilgileri bildirime gömülmez. Yapılandırılmış ortam değerleri şifreli saklanır ve görüntülenirken maskelenir.
0.1.61'den itibaren açtığın her MCP sunucusu Arslan açıldığında arka planda başlar, aynı anda en fazla dört tane; bir sohbet hiçbirini beklemez. Her sunucunun Yetenekler sayfasının ve modelin ikisinin de okuduğu tek bir durumu vardır ve modele yalnızca şu anda hazır olan sunucular sunulur; diğer herhangi birine yapılan çağrı, anahtarlar ve token'lar maskelenerek durumu ve nedeniyle yanıtlanır. İlk başlatma 120 saniye alır; başarısız olan bir sunucu 30 saniye sonra, ardından daha seyrek (en fazla 10 dakikada bir) yeniden denenir.
0.1.62'den itibaren Arslan, MCP araçlarının parametre açıklamalarını göndermeden önce Anthropic, OpenAI uyumlu sağlayıcılar ve Gemini'nin kabul ettiği biçime dönüştürür; yerleşik araçlar olduğu gibi gönderilir. Bir sağlayıcı yine de birini reddederse o araç yanıtın geri kalanı için dışarıda bırakılır ve yanıt sürer (ret hiçbir aracı adlandırmıyorsa ya da ikinci bir araç reddedilirse o yanıt için tüm MCP araçları dışarıda bırakılır).
0.1.63'ten itibaren bir MCP çağrısı, sunucunun aracın ne yaptığı hakkında söylediğine göre sorar: sunucunun salt okunur diye işaretlediği bir araç kartsız çalışır; yıkıcı diye işaretlediği her seferinde, yalnızca bu seferlik sorar; diğer her araç bu seferlik ya da konuşma için sorar, asla “Always” ile değil. Parametreleri bir kartta tam gösterilemeyecek kadar uzun olan bir çağrı kesilmez, reddedilir. Bu işaretler sunucunun kendi beyanıdır ve Arslan bunları doğrulamaz. Kimseye sorulamayan yerde (zamanlanmış bir çalışma) yalnızca salt okunur araçlar çalışır.
Bu sınırlamalar yanlışlıkla ifşa ve istemeden yürütme olasılığını azaltır; ancak gerçek MCP hizmeti, kendisine verilmiş kaynaklara yine erişebilir. Aracın kaynağı, gerekli izinler, uzağa gönderilen veriler ve eylemin yan etkileri, genişletmenin açıklanması gereken parçalarıdır.
Büyüyen yetenekler: bul, sor, kur, tara, test et
0.1.57'den itibaren bir adım Arslan'ın yapamadığı bir şey gerektirdiğinde find_capability, resmî MCP Registry'de, GitHub'da ve incelenmiş Skill kitaplıklarında birlikte arama yapar. propose_capability yalnızca bu sohbette gösterilmiş bir adayı önerebilir; kart, modelin sözlerinden değil, sunucu tarafında o arama sonucundan oluşturulur: neyi ekleyeceği, nereden geldiği, projenin kendi lisans dosyasından okunan lisansı, nasıl çalışacağı, hangi klasörleri kullanabileceği ve gerektirdiği anahtar. Yalnızca soruyu soran Arslan penceresi onay verebilir; bir arka plan job'ı ya da sorulacak kimsenin olmadığı bir tur ise bulunan adayı Capabilities sayfasında “Arslan found” altına kaydeder.
Onaydan sonra aday sabitlenmiş ve kapalı olarak kurulur: hash'leri içeren bir kilit dosyası, yayımlanmış bir checksum veya bir commit ile, Arslan'ın kendi sabitlenmiş uv ya da Node ortamında ve kurulum sırasında hiçbir paket kodu çalıştırılmadan (yalnızca wheel'ler, kurulum betikleri olmadan npm). Ardından bir tarama bilinen tehlikeli kalıpları arar: bir Skill'deki gizli talimatlar, başka kod indirip çalıştıran kod, macOS'un program başlattığı konumlara yazma gibi. Yüksek önem dereceli bir bulgu, adayın yeniden kaldırılmasına yol açar. Tarama hiçbir şeyin güvenli olduğunu kanıtlayamaz; bu yüzden sunucu daha sonra kendi korumalı alanında çalışır (09. bölüm). Açılmadan önce başlaması ve en az bir araç listelemesi gerekir; araç döngüsü de araçlarını yeniden okur, böylece başarısız adım aynı yanıt içinde yeniden denenebilir. GitHub'dan içe aktarılan Skill'ler, her dosya için bir checksum ile tek bir commit'e sabitlenir; metinleri izin veremeyen dış içerik olarak okunur.
Kaynak: Sorma, kurma, tarama, test ve açma; Sabitlenmiş kurulumlar ve kaynağındaki lisans; Bilinen kalıp taraması; MCP Registry, GitHub ve Skill kitaplıkları.
Dosyalar dosya olarak geri gelir: çalışma panelindeki okuyucu
0.1.58'den itibaren bir tur sırasında yazılan dosya, yanıtın altında bir kart olarak görünür; yanıttaki yollar Arslan'da veya dosya yöneticisinde açılır. Çalışma panelindeki okuyucu yalnızca Arslan'ın kendi okuma araçlarının okuyabildiği yerleri okur: çalışma alanı, varsayılan okuma açıkken Desktop, Documents ve Downloads, etkin proje klasörleri ve Arslan'ın kendi çıktıları. Sembolik bağlantılar önce çözümlenir; gizli dosyalar ve kimlik bilgisine benzeyen adlar hiçbir zaman listelenmez ve okunmaz; dosya baytları nosniff ile ek olarak gönderilir; HTML ise boş bir sandbox özniteliği taşıyan bir iframe içinde gösterilir, böylece betikleri çalışamaz.
0.1.63'ten itibaren bir dosya istediğinde (ekran görüntüsü, grafik, dışa aktarım ya da belge) attach_file onu yanıta ekler: pencerede bir dosya kartı, eşleştirilmiş bir iPhone'da ise dosyanın kendisi. Kendi kartı yoktur, çünkü yalnızca okuyucunun okuyabileceği yerden okur ve aynı kurallar geçerlidir: gizli ya da kimlik bilgisi biçimli adlar yok, okunabilir klasörlerin dışına çıkan bağlantı yok. Ayrıca Arslan'ın kendi verileri, anahtar zincirleri ya da SSH anahtarları altındaki hiçbir şeyi, 20 MB'ı aşan bir dosyayı ya da bir çalışmanın taşıyabileceğinden fazla dosyayı da asla almaz.
Kaynak: attach_file; Okuyucunun kök dizinleri ve gizli adlar; Dosya baytları; Korumalı alanda HTML.
Hands v2: tek pencerenin görüntüsü, toplu adımlar, ön planı ödünç almak, denetimi devralmak
Hands bir pencereyi hâlâ erişilebilirlik ağacı olarak okur. 0.1.60'tan itibaren her bakışa o tek pencerenin bir JPEG görüntüsü de eklenebilir — asla ekranın tamamı değil. Görüntü bellekte tutulur ve yalnızca modele gönderilir; diske, trace kaydına veya arayüze yazılmaz. Model görüntü kabul edemiyorsa metni bunun yerine macOS Vision yerelde okur. Bu özellik Settings → Hands bölümünden kapatılabilir ya da listelediğiniz uygulamalarda yalnızca metinle sınırlanabilir. Aynı uygulamadaki birkaç adım, en fazla sekiz adımlık tek bir toplu iş olarak çalışır; menü öğeleri uygulama önde olmasa bile doğrudan seçilir ve uygulamalar arka planda açılır. 0.1.62'ye kadar bir sohbet yanıtı en fazla beş eylem yapabiliyordu ve bunların hepsi tek bir uygulamada olmalıydı; 0.1.63'ten itibaren sohbet yanıtının Hands'e özgü bir sınırı yoktur ve arka plan job'ları gibi çalışmanın sınırları içinde çalışır. Zamanlanmış bir çalışma Mac'te hiç eylem yapamaz: onaylayacak kimse yoktur.
Açılır menü gibi bazı şeyler yalnızca uygulama öndeyken çalışır. Bu durumda Hands yazmada bir saniyelik bir duraklama bekler; tüm ekranların kenarları mavi renkte parlarken ön planı yaklaşık bir saniyeliğine ödünç alır, bu sırada basılan tuşları bekletir ve kullanıcının uygulaması geri geldiğinde onları yeniden iletir. Uygulamanın penceresi başka bir masaüstündeyse Hands aynı kurallarla oraya gider; iş bittiğinde, 15 saniye boyunca hiçbir eylem olmadığında veya kullanıcının ilk girdisinde geri döner. Daha uzun işler için bir arka plan job'ı, ekranın denetimini 30 dakikaya kadar devralmak için izin isteyebilir; herhangi bir klavye veya fare girdisi, kullanıcı devam edene kadar devralmayı duraklatır. “While I'm away” varsayılan olarak kapalıdır; açıkken, üç dakika boyunca hiç girdi olmazsa devralma kart gösterilmeden başlayabilir. Ödünç alma kapatılabilir; bu durumda Hands işlemi yapmak yerine reddeder.
Kaynak: Tek pencere, hiçbir şey yazılmaz; Ön planı ödünç alma; Başka bir masaüstü; Devralma ve girdiyle duraklama; Sohbet içindeki eylemler, toplu adımlar ve menüler; Settings → Hands.
Arama ve web okuma
0.1.63'ten itibaren web_search önce bu turun üzerinde çalıştığı modelin aramasını kullanır: Anthropic'in kendi API'sindeki bir Claude konuşması için Anthropic'in kendi web araması, bir DeepSeek modeli için DeepSeek'in araması. Yerel bir modeldeki konuşma sorgularını asla bir sağlayıcının kendi aramasına göndermez. Ayarlar'da seçilen Tavily ya da kendi barındırdığın SearXNG ya tek arama ya da modelin kendi aramasından sonra bir yedektir; bilinçli bir seçim yoksa en iyi çabayla yapılan bir DuckDuckGo taraması en sona kalır. Bir arama hizmeti Arslan'ı reddettiğinde sonuç, aramanın engellendiğini ve hiçbir şeyin aranmadığını söyler; asla “sonuç yok” demez.
Sayfa okumaları ve tarayıcı dışa çıkış korumasını sürdürür: yerel adlar, gerçek özel adresler ve denetim karakteri içeren ana makineler reddedilir. 0.1.61'den itibaren, vekil sunucusu ya da VPN'i DNS'i sahte adreslerle (198.18.0.0/15) yanıtlayan bir Mac'te, https üzerinden 443 numaralı bağlantı noktasında istenen ve tüm adresleri bu bloğa düşen bir ada izin verilir; böyle bir ada düz http ya da başka bir bağlantı noktası reddedilir. Böyle bir ad için isteğin gerçekte nereye gideceğine vekil sunucusu karar verir; hâlâ geçerli olan şey, gerçek adla denetlenen TLS'dir.
Kaynak: Arama sırası ve engellenen aramalar; Sağlayıcı aramaları; Dışa çıkış koruması ve sahte IP istisnası.
Paralel araştırma neden korunuyor?
Ortak Agent döngüsü, sınırlı ve geçici salt okunur worker'ları korur. v0.1.63'te bir grupta en çok 4 iş, aynı anda en çok 2 worker çalışır. Araçları arama ve web içeriği çıkarmayla sınırlıdır; dosya veya kişisel bellek yazamaz, özyinelemeli olarak yeni worker'lar oluşturamazlar. Ana asistan sonuçlarını kontrol edip birleştirir.
Bu tür görev devri, birbirinden bağımsız bilgi sorgularını ayırmaya uygundur. Yaşam döngüsü, eski kalıcı uzman kişiliklerinden farklıdır: kullanıcının önce bir uzman ekibi seçmesini veya yönetmesini gerektirmez; her mesajı başka bir “uzmana” zorunlu olarak yönlendirmez. Paralel çalışma kararı, görevin verimli biçimde bölünüp bölünemediğine ve ek çağrı maliyetine dayanmalıdır.
Arka plan, zamanlama ve heartbeat
Arka plan job'ları, uzun süren yürütmeyi mevcut sohbetten ayırır; aynı model, araç ve kabul mantığını kullanır. Zamanlanmış görevler “ne zaman başlanacağını” kalıcı olarak saklar. Heartbeat, düzenli kontrol listesi kullanım biçimidir; varsayılan olarak kapalıdır ve kontrol yapıp öneri sunar. Zamanlanmış tetikleme, bir öneriyi onaylanmış yazma işlemine veya komuta dönüştürmez. 0.1.63'ten itibaren her zamanlanmış çalışma, sorulacak kimsenin bulunmadığı sıradan bir Arslan turudur: bu sürümde, önceden ne izin verilmiş olursa olsun hiçbir terminal komutu çalıştırmaz, yalnızca Arslan'ın kendi klasörüne yazar, Mac üzerinde eylem yapamaz ve yalnızca sunucusunun salt okunur diye işaretlediği MCP araçlarını çalıştırır; daha fazlasını gerektiren bir adım reddedilir ve Gelen Kutusu'nda listelenir.
Sohbet yanıtları ve arka plan görevleri görev başına bir dolar sınırında durur (varsayılan olarak açık, 2 $; sınırın yaklaşık üçte ikisinde toparlanmaya başlarlar; yalnızca fiyatı bilinen modeller sayılır) ve bu sınır Ayarlar'dan değiştirilebilir. Bir sohbet yanıtı uzun iş için artık arka plana itilmez: arka plan işi, sen ya da model seçtiğinde aynı işin başka yerde yapılmasıdır.
Mevcut zamanlama yerel hizmet tarafından sağlanır; çakışan çalışmaları atlama, hata sonrası duraklatma ve yeniden başlatma temizliği içerir. Kaçırılan döngüler tek tek telafi edilmez; aynı görevin önceki çalışması bitmediyse yenisi onun üzerine başlatılmaz. Bu davranışlar kişisel masaüstü uygulamasına uygundur; çalışma koşullarının sürekli çevrimiçi sunucudan farklı olduğu da anlaşılmalıdır.
Uygulama: Araç kaydı ve read_skill; Anahtar olarak yetenekler; Eklenti bildirimi sözleşmesi; MCP bağlantısı ve yapılandırması; find_tools ve use_tool; Aynı anda çalışan okumalar; MCP başlatma ve durumlar; MCP çağrıları ve sunucunun işaretlerine göre onay; MCP araç açıklamalarının yeniden biçimlendirilmesi; Birlikte gelen iki Skill; Salt okunur workers; Arka plan görevleri; Yerel zamanlama; heartbeat.
09 / Yürütme ve güvenlik sınırlarıModel önerisi gerçek eyleme nasıl dönüşür?
Arslan dosya okuyup yazabilir, komut çalıştırabilir, tarayıcı ve yerel uygulamalar üzerinden iş yapabilir. Güvenlik tasarımı şu ayrıma dayanır: Model bir sonraki adımı önerir; güvenilir kod, o adımın yürütülüp yürütülemeyeceğine karar verir. Aşağıda v0.1.63'te uygulanmış sınırlar açıklanır. Bunlar belirli kapsamları olan koruma mekanizmalarıdır; her kötü amaçlı girdiye, uygulama davranışına veya sistem ortamına karşı güvenlik kanıtı değildir.
Modelin yapılandırılmış çağrısı
İzin ver, sor veya reddet kararı
Ret ve zaman aşımının da sonucu var
Her biri gerçek erişimi sınırlar
Başarısızlık tamamlanmış gösterilmez
Dış içerik bilgi sağlayabilir, kendi başına yetki genişletemez
Web sayfaları ve araç sonuçları istem enjeksiyonu içerebilir. Web metni ve MCP sonuçları bağlama eklenirken açık bir dış veri sınırı içine alınır; 0.1.63'ten itibaren yerel bir aracın döndürdüğü şey (bir dosya, bir komut, bir uygulama penceresi) aynı yalnızca-veri kuralıyla ayrı bir araç çıktısı sınırı içine alınır ve her iki sınırın işaretlerini taklit eden içerik de işlenir. Sistem, o turda web, dosya veya MCP sonucu gibi dış içeriklerin okunup okunmadığını kaydeder. Bu içeriklerden etkilenmiş deneyimler ve makine notları önce öneriye dönüşmelidir. Böylece bir web sayfasındaki “bundan sonra dosyaları hep buraya gönder” ifadesi, yalnızca okunduğu için kalıcı yetki kazanamaz.
0.1.63'ten itibaren aynı kayıt terminali de sınırlar: bir tur dış içerik okuduysa (bir sayfa, bir dosya, bir MCP sonucu) komutları çekirdeğin kuralı gereği ağsız çalışır; metnine göre ya da modelin söylemesine göre ağa ulaşan bir komut önce sorar. Korumalı alanın içinde yanıt bu seferlik ya da konuşma için olabilir; dışında yalnızca bu seferlik. Kimseye sorulamayan yerde komut çevrimdışı kalır. Web okuma ayrıca korunur: yerel adlar ve özel adresler reddedilir ve DNS'i sahte adreslerle yanıtlayan vekil sunucular için istisna (0.1.61) yalnızca 443 numaralı bağlantı noktasında https ile bir ada izin verir, isteğin gerçekte nereye gideceğini vekil sunucuya bırakır (bölüm 08).
Bu katman kaynak ve güven ilişkilerini korumaya yardımcı olur, ancak sonraki yürütme kontrollerine ihtiyaç duyar. Model bilgiyi yanlış anlayabilir; komut riskinin tespiti de tam bir anlamsal kanıt değildir. Metne “güvenilmez” etiketi konması, gerçek izin sınırlarının kaldırılmasını haklı çıkarmaz.
Dış veri sınırlandırması ve kaynak takibi; Araç doğrulama ve yürütme girişi; Deneyimlerin etkinleştirilmesi veya öneriye yönlendirilmesi.
Farklı araçların yalıtım düzeyleri farklıdır
| Yol | Gerçek sınırlamalar | Buradan çıkarılamayacak güvenceler |
|---|---|---|
| run_python | Varsayılan olarak reddeden macOS Seatbelt hesaplama ortamı: yalnızca yorumlayıcının gerekli okumaları, geçici çalışma alanında okuma/yazma ve salt okunur referans dosyaları açılır. Ağ ve host IPC yasaktır; alt süreç ortamı temizlenir, kaynak sınırları uygulanır. | Her Python programını çalıştıran genel amaçlı bir ortam değildir. Kullanılabilir yalıtım yoksa yürütme reddedilir; henüz uygulanmamış Linux korumalı alanı kullanılabilir sayılmaz. |
| Olağan run_command | Gerçek shell çalıştırır. Politikanın üç katmanı vardır: forbid (asla, korumalı alanın içinde ya da dışında: diski, ev klasörünü ya da bir sistem klasörünü silmek, ham disk yazmaları, Mac'i kapatmak, anahtar zincirinden parola okumak, Arslan'ın kendi anahtar dosyalarına dokunmak, sudo gerektiren her şey); ask, yalnızca bu seferlik (göndermek ya da yayımlamak, çalışma klasörü dışında silmek, programları zorla sonlandırmak, başlangıç ya da sistem ayarlarını değiştirmek, başka uygulamaları yönetmek, korumalı alan dışında uygulama ya da bağlantı açmak, ekranı ya da panoyu okumak, shell başlangıç, SSH, kimlik bilgisi ya da diğer agent'ların ayar dosyalarına yazmak ve metni okunamayan her komut; örneğin dengesiz tırnaklama, eval ya da bir shell'e yönlendirilen indirilmiş kod); ve run. Komut zincirindeki (&&, ;, |, ||, &) yalnızca ilk komut değil, her komut denetlenir. Bir kuralla eşleşen bir komutun kartı yalnızca bu seferlik yanıtlanır: onun için hiçbir yanıt hatırlanmaz. 0.1.63'ten itibaren varsayılan olarak her yeni komut önce sorar (“When to ask” ayarı: “Ask before every command”); yalnızca “Ask only for risky commands” seçiliyse politikanın run dediği bir komut kart göstermeden çalışır: korumalı alanda ya da bu konuşmanın korumalı alandan çıkmasına izin verildiyse dışında. Varsayılan çalışma alanı koruması yazmayı çalışma dizini, geçici dizinler ve önbelleklerle sınırlar, Apple Events göndermeyi engeller; Arslan'ın verilerine ve anahtarlarına, Hands socket'ine ve kullanıcının kimlik bilgilerine (SSH anahtarları, Keychain dosyaları, AWS, gcloud, kube, gh, GnuPG, npm ve netrc dosyaları gibi bulut ve CLI kimlik bilgileri, tarayıcı profilleri, Safari ve çerezler) giden yolları kapatır. 0.1.59'dan itibaren “Desktop, Documents, Downloads” kapalıyken bu üç klasör, /System/Volumes/Data ve sembolik bağlantılar üzerinden erişim dahil, okumaya ve yazmaya da kapatılır; bu klasörlerin içindeki bir çalışma dizini okunup yazılabilir, etkin projelerin klasörleri ise salt okunur kalır. | Diğer konumları okuma, program çalıştırma ve ağ erişimi açık kalır; kullanıcının korumalı alanın dışında çalışmasına izin verdiği bir komut da klasör anahtarıyla ya da kapatılmış kimlik bilgisi yollarıyla (ssh, git push ve gh bunlara ihtiyaç duyar) sınırlanmaz; Arslan'ın kendi verilerini, anahtarlarını ve Hands klasörünü yine kapatan ve Apple Events'i engelleyen asgari bir profille çalışır. Korumalı alan kullanılamıyorsa komut önce sorar (“Ask only for risky commands” seçiliyken “In this conversation” onayı o konuşmanın, politikanın run dediği sonraki komutlarını da kapsar); izin verilince korumalı alan olmadan çalışır ve sandbox=unavailable döner; dolayısıyla her koşulda güvenli biçimde reddeden bir yol değildir. |
| Kurulan MCP sunucusu (0.1.57) | Varsayılan olarak reddeden bir Seatbelt profiliyle başlar: kendi klasörü ve geçici dizini, izin verdiğiniz klasörler ve Arslan'ın sabitlenmiş çalışma ortamları salt okunur olarak açılır; korunan yollarınız, izin verilen bir klasörün içinde bile kapalı kalır. HOME, sunucunun kendi klasörünü gösterir. | Ağ yalnızca sunucu bir çevrimiçi hizmet için anahtar gerektirdiğini bildirmişse açılır; o durumda da her hosta açıktır (Seatbelt erişimi tek bir hostla sınırlayamaz). Elle eklediğiniz sunucular 0.1.57'de bu korumalı alana taşınmaz. 0.1.63'ten itibaren araç çağrıları, sunucunun aracın ne yaptığı hakkında söylediğine göre sorar (bölüm 08); bu beyan sunucunun kendi beyanıdır ve doğrulanmaz. |
| Çevrimdışı sonuçlandırma komutları | Görev sonuçlandırmaya geçtiğinde edinilmiş verilerin işlenmesine ve çıktıların kaydedilmesine izin verilir; ağ erişimi ayrıca engellenir. | Gerekli korumalı alan yoksa yürütme reddedilir; olağan komutun korumasız devam kuralı burada uygulanmaz. |
| AppleScript / Shortcuts | Bir terminal komutunda osascript ve shortcuts run, yaygın yazımlarında (bir yolla, command, exec ya da xargs üzerinden, yönlendirmeyle) her zaman, yalnızca bu seferlik sorar. Korumalı alan Apple Events'i engeller; bu yüzden Arslan'ın tanımadığı bir yazım onun içinde başarısız olur. Yalnızca onaylanmış düz bir çağrı korumalı alan sarmalayıcısı olmadan çalışır: Reminders, Calendar, Notes ya da Contacts ile konuşan ve başka riskli bir şey yapmayan bir betik ya da dosyaları Arslan'ın klasöründe kalan düz bir shortcuts run; bu yalnızca Mac penceresindeki bir tıklamayla onaylanabilir. Hands'in kendi AppleScript aracı her seferinde betiğin tamamı gösterilerek sorar, yalnızca arka plan işine sunulur ve engellenmiş bir uygulamayı adlandıran ya da uygulamasını hesaplanmış bir adla seçen bir betiği reddeder. | Onaylanmış bir Shortcut kullanıcı olarak, korumalı alanın dışında çalışır ve Arslan ne yaptığını göremez. Komutun dosya korumalı alanında olması, çağrılan uygulamanın da aynı dosya kapsamıyla sınırlandığı anlamına gelmez. |
| Arslan Hands | Accessibility izni bağımsız yardımcı süreçtedir; süreç uygulamayı, eylemi, alanı ve durdurma durumunu yeniden denetler. 0.1.60'tan itibaren bir bakış, yalnızca bellekte tutulan o tek pencerenin görüntüsünü de taşıyabilir. | Erişilebilirlik ağacı tam iş anlamını içermez; pencere görüntüsü de kod tarafından denetlenmez, model tarafından okunur. Uygulamanın işlem yapılabilir düğümler sunması kullanılabilirliği etkiler; başka bir masaüstündeki pencereye yalnızca ödünç alma kurallarına göre oraya gidilerek ulaşılır (08. bölüm). |
Komut korumalı alanının dışına çıkmak kullanıcının tıklayarak onay vermesini gerektirir. İzin mevcut eylem için istenebilir veya kullanıcı o oturum boyunca izin vermeyi seçebilir; bu izin konuşmayla birlikte saklanır (yeniden başlatmadan sonra da kalır), o konuşmanın arka plan görevleri için de geçerlidir ve Ayarlar'dan geri alınabilir. Kaynak koddan geliştirme ortamında ayrıca Python'ı korumalı alan olmadan çalıştırmaya yönelik açık bir kaçış ayarı vardır; masaüstü uygulaması bu yolu kapatır. Bu iki seçenek de modelin korumayı kendi başına kapatabildiği şeklinde yorumlanmamalıdır.
0.1.62'den itibaren write_file ve edit_file çalışma klasörünün dışına çıkan bir bağlantıyı asla izlemez: dışarıyı gösteren bir bağlantı üzerinden yazma reddedilir, başka bir yerde ikinci bir adı olan bir dosya (sabit bağlantı) çalışma klasöründe değiştirilir ve diğer ad eski içeriğini korur, yeni dosyalar asla çalıştırılabilir olmaz ve var olan bir dosya izinlerini korur. Dosya, yanına yeni bir dosya olarak yazılıp yerine konur; böylece başarısız bir yazma eski dosyaya dokunmaz. 0.1.63'ten itibaren bir turun çalışma klasöründe yaptığı ilk değişiklik bir kontrol noktası kaydeder ve “Bu turu geri al” dosyaları yerine koyar ve turu konuşmadan çıkarır. Bu bir sınır değil, bir kurtarma ağıdır: yalnızca en fazla 20.000 dosya ve 5 GB'lık bir klasörü kaydeder (dışarıda bıraktığı ve asla geri koymadığı Python ortamları, node_modules, derleme çıktıları ve önbellekler sayılmaz), gizli anahtar biçimli dosyaları asla kopyalamaz, yalnızca çalışma klasörünü kapsar, Mac'ten çıkmış hiçbir şeyi geri almaz ve kaydedemediğinde “Not saved” der. Kontrol noktaları yedi gün saklanır.
Kısıtlı hesaplama ortamı ve geliştirme kaçış ayarı; Çalışma alanı ve korunan dizin kuralları; Kurulan sunucuların korumalı alanı; Olağan komutta korumasız devam ve çevrimdışı ret; Komut politikası; Bağlantıyı izlemeden yazma; Kontrol noktaları; Bu turu geri al.
Onay somut eyleme bağlıdır; arka plan işleri tüm kolaylık izinlerini devralmaz
Onay kartı, call_id ve eylem türüyle ilişkilendirilir; yanlış türdeki yanıt başka bir kartı onaylayamaz. Mac penceresinde ve telefonda birlikte görünen kartta ilk geçerli yanıt kabul edilir; kapanma sonucu diğer görünümlere yayınlanır. Yanıt gelmezse kart 30 dakika açık kalır ve sürenin dolması bir ret sayılmaz (0.1.61'den itibaren; önceki sürümlerde 300 saniye sonra geçersizleşirdi). 0.1.61'den itibaren tek bir kart pencerede, Inbox'ta, Island'da ve iPhone'da aynı görünür: Once (ya da kartın ilk sunduğu hangisiyse For this task), In this conversation, Always ve Arslan'a giden bir notla No; kartın beklediği sırada sohbete yazılan bir mesaj, o mesaj not olarak, kartı No diye yanıtlar ve bir tıklama bir kartı yanıtlar. Bazı türler daha az seçenek sunar: bir kuralla eşleşen komut, para, ekran devralma ve bir uygulamadaki riskli adım yalnızca bu seferlik yanıtlanır; korumalı alandan çıkma, bir site, bir Shortcut ve bir MCP aracı ise asla “Always” sunmaz. Bir arka plan görevinin kartları, penceredekilerle aynı seçenekleri sunar; 0.1.63'ten itibaren (S4a), bir konuşmadan başlatılan görev, korumalı alandan çıkma izni de dahil olmak üzere o konuşmanın izinlerini kullanır. Sorulacak kimsenin olmadığı bir çalışma (zamanlanmış bir çalışma) bu adımların hiçbirini atmaz: orada önceki hiçbir yanıt sayılmaz, adım hemen reddedilir ve yapamadığı şey Inbox'ta listelenir. Bu sürümde zamanlanmış bir çalışma hiçbir terminal komutu çalıştırmaz. Model MCP'ye bağlanmayı, uzak makine kaydetmeyi veya başka yürütme girişlerini kullanmayı önerdiğinde, öneri ile bağlantının fiilen etkinleştirilmesi ayrı ele alınır.
Harici yan etkilerde isteği göndermek, eylemin tamamlandığı anlamına gelmez. Görev kurtarma, sonucu bilinmeyen devam hâlindeki eylemleri belirsiz olarak işaretler; süreç yeniden başladı diye bunlar otomatik tekrarlanamaz. Amaç, yeniden deneme ve kurtarmanın anlamını açık kılmaktır; her harici sistemdeki eylemin geri alınabileceği taahhüt edilmez.
0.1.55'ten itibaren bekleyen her kart — ister bir pencereden, ister bir arka plan görevinden, ister iPhone'dan gelsin — aynı zamanda tek bir kuyrukta ve Inbox'ta yer alır ve orada kendi call_id'siyle yanıtlanabilir. Yanıt kartın kendi türünden oluşturulur; bu yüzden yalnızca o kartı onaylayabilir veya iptal edebilir; daha geniş seçenekler (In this conversation, Always) yalnızca bunları sunan bir kartta seçilir: iPhone ve Island yalnızca kartın ilk seçeneğini verir, asla “Always” vermez; Inbox ise kartın kendisinin sunduğu her seçeneği verebilir. Island klasör, uygulama, ekran, MCP aracı, zamanlama, site ve Shortcut kartlarını ve riskli türlerden biri olmayan bir komutu ya da çalışma alanı yazmasını yanıtlayabilir. Para, gönderme, silme, bir uygulamadaki riskli adım, ekran devralma, korumalı alandan çıkma, bir terminal ask kuralıyla eşleşen ya da okunamayan bir komut, ağı da isteyen bir komut, uzak bir makinedeki her şey, sistem değişiklikleri, diğer agent'ların ayarları, bir yetenek kurmak, bir AppleScript, çevresinde korumalı alan olmadan çalışacak bir komut ya da denetimin tanımadığı her kart türü onayını veremez. Bunlarda “Open in Arslan” gösterilir; Island'dan gelen onayı yalnızca Island sayfası değil, sunucu da reddeder. Onaylanmış düz bir AppleScript'i ya da Shortcut'ı korumalı alan sarmalayıcısı olmadan çalıştıracak bir kart ile bir yetenek kuran kart yalnızca Mac penceresinde onaylanır; iPhone'un bu tür bir karta verdiği onay yok sayılır. Pencerede ⌘⏎ izin verir, Esc reddeder; tek başına ⏎ hiçbir kartı yanıtlamaz.
Inbox'tan ve Island'dan yanıtlar; Kart eşleme, süre sonu ve çok cihazlı yanıtlar; Kurtarmadaki belirsiz yan etkiler; Bağlantı önerileri ve yetkilendirme girişi.
Hands, sistem iznini daha küçük bir süreçte tutar
Accessibility izni ana uygulamaya değil, Arslan Hands.app'e verilir. İmzalı dağıtım paketi, korunan Unix socket, her başlatmada üretilen token ve eş süreç imzası denetimiyle istek alır. Kuralları yardımcı sürecin kendisi uygular; alttaki agent-desktop bu izne bağımsız olarak sahip değildir. 0.1.61'den itibaren bir uygulamaya bakmak ve onda eylem yapmak uygulama başına tek bir karttır ve önce “for this task” sunar. 0.1.60'tan itibaren bir sohbet yanıtı da eylem yapabilir: 0.1.62'ye kadar tek bir uygulamada en fazla beş adımla, 0.1.63'ten itibaren ise arka plan görevlerinin yaptığı gibi çalışmanın kendi sınırları içinde, birden fazla uygulamada ve Stop onu durdurur (zamanlanmış bir çalışma eylem yapamaz: onaylayacak kimse yoktur); bir konuşmadan başlatılan görev o konuşmanın onayını devralır. Tarayıcıda eylem, Shortcuts ve AppleScript çalıştırma hâlâ yalnızca arka plan işine sunulur. Bir uygulama kimliğine göre değerlendirilir; bu yüzden onu .app ya da tam yolla veya başka bir harf biçimiyle adlandırmak yasak listesini ya da eksik bir onayı aşmaz. Silme, gönderme, ödeme, satın alma, para transferi ve gönderimi tamamlama gibi hassas düğmeler için gerçek etikete göre her seferinde izin sorulur. Parola alanlarına yazılmaz; parola yöneticileri ve sistem güvenlik arayüzleri gibi uygulamalar yasak listesindedir.
Durdurma girişi bir durdurma mandalı ayarlar; sonraki eylemler bu denetimden geçer. Etkinlik kayıtları işlem izlerini korur; girilen metnin yalnızca uzunluğu kaydedilir. Sınırlamalar da açıktır: başka bir Space'teki pencereye yalnızca ödünç alma kurallarına göre oraya gidilerek ulaşılır; ekranda bir konuma tıklama ve sürükleme sunulmaz; büyük pencereleri okumak 10–20 saniye sürebilir. Stop tarafından kesilen çağrıların karşılık gelen trace satırı olmayabilir; denetim kaydı tüm kesinti durumları için eksiksiz adli iz garantisi sunmaz.
0.1.56'dan itibaren Hands her isteği en fazla bir kez yürütür: bir istek kimliğine verilen yanıtlar on dakika saklanır, tekrarlanan bir kimlik bu kayıttan yanıtlanır ve arka uç, yanıtını kaybettiği bir isteği yeniden göndermek yerine o yanıtı geri ister. Metni okunamayan bir alana ekleme yapma isteği, alanın içeriğini değiştirmek yerine reddedilir; Return tuşuna yalnızca o alan odaktayken basılır. Gönderilmiş ancak geri okunarak doğrulanamamış bir eylem tamamlandı olarak değil, “sent, not confirmed” olarak bildirilir. Hands, Arslan'ın fork'undan sabitlenmiş bir commit'te derlenen agent-desktop'u çalıştırır; Cua Driver motoru 0.1.63'te Hands'ten çıkarıldı; böylece yardımcı süreç onu artık aramaz ya da başlatmaz (kullanılmayan modülü yardımcı sürecin kaynağında hâlâ durur). 0.1.60'tan itibaren tek bir kart bir iş için en fazla sekiz uygulamayı kapsayabilir, bir konuşmadan başlatılan arka plan görevi o konuşmada verilen onayı devralır ve uygulamalara Settings → Hands bölümünden kalıcı olarak izin verilebilir. Silme, gönderme, ödeme, satın alma, gönderimi tamamlama, para transferi, imzalama, paylaşma, yayımlama veya onaylama etiketi taşıyan (birkaç dilde) bir tıklama, seçim ya da son menü öğesi; bunlara karşılık gelen kısayol tuşları; Return ile gönderen uygulamalarda Return tuşu; ekran devralma ve her AppleScript yine her seferinde izin ister.
* ya da null adlandıran bir host ya da origin değişkeni artık başlatmayı reddettirir; “Yalnızca yerelde dinliyor” ile “kimliği doğrulanmış” aynı değildir. Mevcut kullanıcıyla aynı yetkilere sahip, ele geçirilmiş bir ana makine ortamı da tek bir yerel token sayesinde güvenilir hâle gelmez.Socket, token, eş süreç ve durdurma denetimleri; Yasak uygulamalar ve sınıflandırma; Her zaman izin isteyen sözcükler ve tuşlar; Hands saha testleri ve sınırları; API ve WebSocket kimlik doğrulaması.
10 / iPhone ve Mac BridgeTelefon işi iletir ve sonucu gösterir; Mac yürütür
Mobil köprü, eşleştirilmiş bir iPhone'un Mac görevlerini görmesini, iş başlatmasını, onayları yanıtlamasını ve sonuçları okumasını sağlar. Yürütmeyi Mac'teki Arslan yapmaya devam eder. Telefon ayrı bir bulut Agent hizmeti değildir; Mac'in HTTP arayüzünü doğrudan açmaz veya çağırmaz. Bu bölüm, Mac v0.1.63'ün kamuya açık protokolünü ve kaynak kodunu temel alır. Mac Bridge önceki sürümlerle birlikte gelmiştir; yayımlanan sürüm notlarında iPhone uygulaması hâlâ yakında App Store'da olacak olarak belirtilir. Bu belge, App Store yayınının veya üretim akışının tüm kabul kontrollerinin tamamlandığını ileri sürmez. 0.1.60'tan beri olan değişiklikler göründükleri yerde sürümleriyle işaretlenmiştir; 0.1.61 notları Mac tarafının Arslan for iPhone 1.0 ile çalıştığını söyler ve bu uygulama hâlâ yakında App Store'da olacak diye anlatılır.
Şifreleme, giden kutusu, durum görünümleri
Şifreli zarfların asenkron saklanması
Yerel HTTP / WebSocket
Yapılandırılmış sonuçlar aynı yoldan döner
CloudKit posta kutusudur; cihaz kimliğini protokol doğrular
v1, aynı Apple ID altındaki CloudKit özel veritabanını kullanır. Mac açık, çevrimiçi ve çalışabilir durumda olmalıdır; aksi hâlde mesajlar işlenmeyi bekler. Telefon, kapatılmış bir Mac'i çalıştıramaz. Yerel ağ üzerinden Bonjour gelecekteki bir yönelimdir; bu sürümün yedek doğrudan bağlantı kanalı değildir. Mac yardımcı süreci, uygulamayla birlikte çalışan bağımsız ArslanBridge.app'tir. Yerel API token'ını stdin üzerinden alır ve arka uca bağlanır. Telefon bu token'ı tutmaz, model API anahtarını da almaz.
Zarfın bulutta görünür dizin alanları; gönderen ve alıcı cihazları, sıra numarasını, kaba düzeyde kind bilgisini, bildirim işaretini ve zamanı içerir. Gerçek mesaj türü, gövdesi ve dosya içeriği uygulama katmanındaki şifreli veridedir. Dolayısıyla “uçtan uca şifreleme”, eşleştirilmiş cihazlar arasındaki mesaj korumasını anlatır; metaveri olmadığı veya arka uç model çağrılarının kullanıcının yapılandırdığı AI hizmetinden geçmediği anlamına gelmez.
Taşıma, zarf ve Mac bağlantı protokolü; CloudKit depolama uygulaması; Bridge çalışma giriş noktası.
QR kodu taramak eşleştirmenin yalnızca başlangıcıdır
QR kodu; tek kullanımlık pairing_id, Mac'in imza ve anahtar değişimi açık anahtarları, 32 baytlık eşleştirme anahtarı, sabit kapsayıcı kimliği ve son geçerlilik zamanını içerir. Geçerlilik 600 saniyeyi aşmaz. Telefon süresi dolmuş bilgiyi, yanlış kapsayıcıyı ve koşullara uymayan içeriği reddeder; QR kodundaki Mac açık anahtarını sabitler. Ardından kendi kimlik ve anahtar değişimi anahtarlarını üretip şifreli eşleştirme isteği gönderir. Mac, isteği doğruladıktan sonra yine kullanıcıya gösterir; kabul veya ret kararı Mac'teki tıklamayla verilir.
Aynı isteğin yeniden denenmesi aynı kararı döndürmeli, ikinci bir yetkilendirme üretmemelidir. Kabulden sonra iletişim cihaz kimliğiyle sürer ve eşleştirme kodu tüketilir. Mac, telefonun yetkisini kaldırabilir. Aynı iPhone yeniden eşleştiğinde önceki kimliklerini bildirir; Mac iki kaydı yan yana tutmak yerine bu eski kayıtları kaldırır. Bir telefonun kaldırılması, Mac'in iCloud'da ona bıraktığı mesajları da siler; Mac başlangıçta artık eşleşmiş olmayan telefonlar için bekleyen kayıtları temizler. Settings › Connections › iPhone ekranında her telefon, Mac ondan kimliği doğrulanmış bir mesaj okuyana kadar Connecting…, ardından son görülme zamanıyla birlikte Connected olarak görünür. Cihazların özel anahtarları kendi Keychain'lerinde saklanır. Buradaki güven, tek kullanımlık eşleştirme bilgileri ile kullanıcı onayının birleşiminden gelir; “aynı iCloud hesabındayız, o hâlde her mesaj güvenilir” varsayımından değil. 0.1.60'tan itibaren iPhone eşleştirmeyi kendisi kaldırdığında Mac, o telefonu Settings › Remove sonrasında olduğu gibi unutur, ondan gelen diğer her şeyi yok sayar ve listeyi günceller.
Mesajın içeriği, kaynağı ve bağlamı birlikte doğrulanır
Her yeni mesajda geçici bir X25519 anahtarıyla ortak sır oluşturulur; HKDF-SHA256 ile 32 baytlık anahtar türetilir. ChaCha20-Poly1305 ile şifreleme ve kimlik doğrulama yapılır, ardından Ed25519 imzası eklenir. Diller arası JSON sıralama farklarının doğrulamayı etkilememesi için başlık, uzunluklarıyla kodlanmış UTF-8 alanları kullanır. Başlık alanları hem imzaya hem AEAD doğrulamasına bağlanır. Bu, CryptoKit'in temel kriptografik işlevleriyle uygulanmış bir uygulama protokolüdür. Signal'in Double Ratchet protokolünü uygulamaz; yalnızca geçici anahtar kullanıldığı için her senaryoda ileri gizlilik sağlandığı da iddia edilmemelidir.
Alma sırası açıktır: önce biçim ve alıcı kontrol edilir, sonra imza doğrulanır, ardından şifre çözülür. Daha sonra açık metnin başlık alanlarıyla tutarlılığı, dosya varsa ekin doğruluğu kontrol edilir. Herhangi bir adımın başarısızlığı kısmi iş etkisi bırakmamalıdır. Dosya sınırı 20 MiB'dir. Şifreli metin özeti, doğrulama etiketi, açık metin boyutu ve özeti eşleşmeden dosya önbelleğe alınamaz veya önizlenemez.
Eşleştirme, kriptografik algoritmalar ve doğrulama sırası; Mac kodlama ve kriptografi protokolü; Tek kullanımlık eşleştirme ve kullanıcı kararı.
Teslim edilme, eylemin tamamlanması ve arayüzün son durumu ayrı şeylerdir
| Mekanizma | Sorumluluğu | Sınırı |
|---|---|---|
| Kalıcı kayıt ve aynı paketi yeniden deneme | Yeniden denemede aynı zarf ID'si, seq ve şifreli metin kullanılır. Sıra numarası gibi kritik durumlar önce kaydedilir; ağ hatasının durumu geriye götürmesi önlenir. | Teslimat günlüğü, dış iş sisteminin işleminin yerini tutmaz. |
| Yeniden oynatma penceresi | Her gönderen için son 1.024 sıra numarası saklanır. Pencere içindeki yeni, sırası değişmiş paketler alınır; tekrarlar ve fazla eski paketler reddedilir. | Geçerli yeni sıra numarası mutlaka yeni iş durumu anlamına gelmez; eski ilerleme bilgisi de daha geç gönderilmiş olabilir. |
| ACK | Zarfın teslimini doğrular; tekrarlanan paketlere yeniden ACK verilebilir. Özgün kayıt doğrulandıktan sonra silinir; ACK'nin kendisine ACK gönderilmez. | ACK, görevin başarılı olduğunu veya onaylanan eylemin tamamlandığını göstermez. |
| İş kimlikleri ve sonuçlar | client_msg_id ve client_task_id tekrarları önler; approval.result, görev olayları ve sonuçlar iş durumunu taşır. | v0.1.63'te iş kimliği eşlemelerinin bir kısmı bellektedir; her türlü çökmede genel bir exactly-once garantisi verilemez. |
Mac durum görüntüsü yalnızca hâlâ çalışan görevleri listeler. Normal heartbeat aralığı 60 saniyedir; telefon 90 saniye güncelleme görmezse Mac'i çevrimdışı sayar. İlerleme iletileri seyreltilip birleştirilir; son durum gecikmeden gönderilmelidir. Bu yüzden istemci hem tekrarları ve sırası değişmiş mesajları işlemeli hem görev listesini, onay kartlarını ve geçmişi tutarlı hâle getirmelidir. Durum, yalnızca “son gelen metin öncekini ezsin” yaklaşımıyla yönetilemez.
Sıra numaraları, işleme kayıtları, ACK ve temizlik; İş düzeyinde tekrar önleme ve sonuç eşleme; Durum görüntüsü ve heartbeat.
Telefon onayı, Mac'in yetkilendirme ve yürütme akışını kullanır
Telefon somut action, target ve risk bilgisini gösterir. Onay için cihazda biyometrik doğrulama gerekir; ret için gerekmez. Yanıt gönderildikten sonra Mac'ten approval.result beklenir. Mac kartın hâlâ geçerli olduğunu kontrol eder ve yanıtı özgün confirm / cancel işlemine eşler. Telefon bir komuta “her zaman izin ver” yetkisi vermez. Ses girişi onay bekleyen metin oluşturabilir; onayın yerine geçemez.
0.1.61'den itibaren her yerde tek bir onay kartı vardır (sohbet penceresi, Inbox, island ve iPhone). Telefon, kartın başlığından alınan kartın kendi sorusunu ve evet cevabının neyi kapsadığını gösterir. Bir kez yanıtlar ya da kartın ilk seçeneği buysa bu görev için yanıtlar (bir uygulama, site ya da Shortcut kartlarında başlık o zaman “(for this task)” ile biter) ve asla “In this conversation” ya da “Always” yanıtlamaz. Bir kart Mac'te 30 dakika bekler (0.1.61'den önce 5 dakikaydı); sürenin dolması expired olarak bildirilir ve Arslan bunu ret olarak değil, kimsenin yanıtlamaması olarak ele alır. Yeni bir yetenek kurmayı isteyen kart telefona asla ulaşmaz. Mac önce yanıtladığında (bir pencerede, Inbox'ta ya da island'da), telefonun approval.result mesajı answered_on_mac taşır.
faceid veya touchid işaretiyle (iPhone SE için Touch ID) onay sayar ve bunu yetenek bildiriminde telefona açıkça belirtir; başka her işaret ret sayılır. 0.1.54'ten önce Touch ID ile verilen onay iptal olarak işleniyordu. Protokoldeki high_risk_mac_only bu sürümde false değerine sabittir; kullanıcı tarafından ayarlanabilen bir seçenek değildir. Ortak protokol ve test vektörleri birlikte çalışabilirliği ve olumsuz durumları doğrulayabilir; nihai dağıtım paketinin, gerçek iCloud'un, push bildirimlerinin ve cihaz doğrulamasının uçtan uca kabulünün yerini tutmaz.Telefondan dosyalar, canlı konuşmalar ve rotayı değiştirme
Bunlar protokole eklenen türlerdir (protokol belgesinin 5.7 bölümü); bunlara sahip olmayan bir Mac unknown_type yanıtı verir ve Mac yeni olayları yalnızca hello özelliklerinde bunları isteyen bir telefona gönderir.
- Telefondan dosyalar (0.1.61). Arslan for iPhone'dan gönderilen bir dosya ya da fotoğraf (20 MiB'a kadar, mesaj başına en fazla 10) her varlık gibi denetlenir ve Mac'te çalışma klasöründe
Inbox/iPhonealtında, tarih başına bir klasörde saklanır. Arslan onu mesajla birlikte okur; resimler modele görsel olarak gidebilir. Bir mesajın dosyalarının hepsi 120 saniye içinde ulaşmazsa mesaj çalıştırılmaz ve telefon onu yeniden gönderebilir. - Canlı konuşmalar (0.1.61). Mac en yeni 20 konuşmasını ve çalışan bir görevi olan her konuşmayı bağlı tutar; böylece telefon bunları listeler ve Arslan çalışırken yanıtları, ilerlemeyi ve kartları izler. Telefon bir konuşmayı silebilir (Remote konuşması asla silinmez). Tek bir mesaja sığmayacak kadar uzun bir geçmiş en eski mesajlarını bırakır ve kesildiğini söyler.
- Yanıtlar yazıldıkça (0.1.63). İsteyen bir telefon için yanıt, o ana kadarki yanıtın tamamını taşıyan
partialolaylarıyla gelir; saniyede en fazla bir kez ve 100 KB'ı aşmadan; son mesaj bunların yerini alır. Mac'te yazılan sözler telefonda Mac'ten olarak işaretli gösterilir ve telefonu asla çaldırmaz. - Yönlendirme (0.1.63). Bir yanıt sürerken gönderilen mesaj, beklemek yerine yanıta bir sonraki adımında ulaşır; iPhone, Mac penceresi ve basılı tutarak konuşma bunu yapar. Yanıt nihai yanıtını yazarken kalan adım olmadığından mesaj hemen ardından çalışır. 0.1.63'teki bilinen sınır: bir yanıt sırasında Mac penceresinde eklenen mesaj iPhone'da yalnızca sonraki yanıttan itibaren görünür ve iPhone, kendi mesajı eklendikten sonra da “Queued behind the current turn” demeye devam eder.
- Telefona dosyalar (0.1.63). Bir dosya istediğinde (ekran görüntüsü, grafik, dışa aktarım, belge) Arslan onu yanıtına ekler: Mac penceresinde bir dosya kartı, iPhone'da dosyanın kendisi, 20 MiB sınırı altında.
Onay işaretlerinin özgün eylemlere eşlenmesi; Telefon kaldırıldığında veya yeniden eşleştiğinde temizlik; Durum, özellik alanları, telefon dosyaları ve canlı konuşmalar için gelen kutusu; Canlı bağlantılar, telefondan gelen dosyalar ve kısmi yanıtlar; Bağımsız protokol referans uygulaması; 0.1.54'ün kamuya açık teslimat durumu.
11 / Doğrulama ve yazılım dağıtımıÇalışan kaynak koddan kurulabilir ve güncellenebilir uygulamaya
Masaüstü yazılımı uygulama paketi olarak teslim edilir. Kaynak kod ortamındaki Python modülleri, sistem araçları ve eski veritabanları, eksik kaynakları olan bir kurulum paketinin sağlıklı görünmesine yol açabilir. Arslan doğrulamayı kaynak kod, platform, paketlenmiş çıktı, yeni kullanıcı ortamı ve dağıtım katmanlarına ayırır. Bu bölüm v0.1.63 sürecini ve ilgili yayın kanıtlarını kaydeder.
CI davranışı, platformu ve bağımlılık sınırlarını birlikte denetler
| Kontrol grubu | Temel içerik | Amaç |
|---|---|---|
| Linux arka ucu | Python 3.11, uv frozen lock, Ruff, pytest; OCR test bağımlılıklarının açıkça kurulması ve kontrolü. | Tüm arka uç testlerini çalıştırmak; macOS yalıtımı yoksa yürütmenin reddedilmesini doğrulayan olumsuz platform testlerini korumak. |
| macOS | Swift ses yardımcısının tür denetimi, Bridge derleme ve testleri, Rust fmt/test/clippy, Hands kontrolleri ve yerel Python testleri. | Dağıtımın yapıldığı platformdaki Vision, Seatbelt ve barındırıcı kodunu düzenli doğrulamaya almak. |
| Ön uç | Node 22, npm ci, TypeScript tür denetimi, Vitest ve üretim derlemesi. | Durum ve bileşen davranışlarını sınamak, üretim kaynaklarının oluşturulabildiğini doğrulamak. |
| Geçmiş ve tedarik zinciri | gitleaks tüm Git geçmişini tarar ve hassas bilgileri maskeleyerek raporlar. Hands, üst kaynak commit'ini sabitler, depoya alınmış dosyaları doğrular ve bağımlılıkları cargo-deny ile denetler. | Yalnızca son diff'in kontrol edilmesini veya derlemede dış kaynak kodunun sessizce değişmesini önlemek. |
macOS testlerinde yalnızca pytest çıkış kodu yeterli sayılmaz. İş akışı JUnit'i ayrıştırır ve belirlenmiş 60 platform testinin gerçekten çalışmasını, hiçbirinin atlanmamasını ve hata olmamasını zorunlu kılar. Eksik bağımlılık nedeniyle tüm testlerin atlanması da başarısızlık sayılır. Python ve Rust ortak Hands sözleşme örneklerini; Mac, iOS ve bağımsız Python referans uygulaması ortak Bridge vektörlerini kullanır. Böylece parametre eşleme, imza, alıcı, kurcalama ve yeniden oynatma sınırları diller arasında karşılaştırılabilir.
Bu sonuçların kapsamı yine sınırlıdır: Swift tür denetimi mikrofon iznini, Linux birim testleri macOS çekirdeğini, taklit posta kutusu da üretim CloudKit'ini doğrulamaz. Test sayısı genel kapsam oranı değildir; örtüşen test kümeleri bağımsız senaryo sayısı gibi toplanamaz.
Dört CI grubu ve gerçek yürütme koşulu; Diller arası Hands sözleşme örneği; Bridge referans uygulaması.
Yayın, tam olarak belirlenmiş kaynak commit'inden başlar
Başarılı CI kaydı
Swift / Rust yardımcıları
notarize, staple, Gatekeeper
Kimlik doğrulama, kaynaklar, çalışma yolları
Draft incelemesinden sonra resmi yayın
Release workflow, yayımlanacak SHA'nın başarılı CI kaydı olup olmadığını sorgular; başka bir commit'in başarısı bunun yerine geçmez. Derleme kilit dosyalarıyla sınırlandırılmış bağımlılıkları kullanır. Python için uv tarafından yönetilen bağımsız yorumlayıcı açıkça seçilir; böylece runner'ın tesadüfen framework build seçmesi önlenir. Arka uç PyInstaller onedir ile paketlenir; ön uç statik kaynakları ve Swift/Rust yardımcıları Tauri uygulamasına eklenir.
İmzalama ve noter onayı farklı işlevler görür. Gömülü Mach-O dosyaları önce imzalanmalı, ardından dış uygulama tarafından paketlenmelidir. Dağıtımda Developer ID, hardened runtime ve zaman damgası kullanılır. DMG Apple noter onayına gönderilir, onay bileti staple edilir ve Gatekeeper ile kontrol edilir. Derleme betiğinde imzasız geliştirme paketi ve bazı kimlik bilgileri eksik olduğunda uyarıyla devam etme yolları korunmuştur. Dolayısıyla “derlenebiliyor”, “kamuya açık dağıtım koşullarını karşılıyor” demek değildir; resmi yayında elde edilen gerçek çıktılar doğrulanmalıdır.
Güncelleme bildiriminin ayrıca koşulları vardır: tag ile Tauri sürümü aynı olmalı; ilgili manifest yalnızca updater imzası varsa oluşturulmalıdır. Süreç bir GitHub Draft Release üretir. Ancak resmi yayın yapıldıktan sonra kurulu uygulamalar sonraki kontrollerinde güncellemeyi görebilir.
Kesin SHA koşulu, sürüm kontrolü ve Draft Release; Paketleme, birleştirme, imza, noter onayı ve yedek yollar; PyInstaller bağımlılıkları ve kaynakları.
Yeni kurulum kabulü doğrudan uygulama paketini başlatır
fresh_install_check.py, geçici HOME ve asgari ortamla paketin içindeki gerçek arslan-desktop'u başlatır; onun yerine kaynak venv'inden hizmet çalıştırmaz. Kontroller, pakete kullanıcı veritabanı veya gizli dosya karışmamasını, ilk açılış hazırlığını, token üretimini ve dosya izinlerini, kimlik doğrulanmamış isteklerin reddini, gerçek WebSocket 101 el sıkışmasını ve ön uç JavaScript'inin doğru alınmasını kapsar. HTTP 200 yalnızca SPA'nın yedek sayfası olabilir; kaynak kontrolünde durum koduna bakmak yeterli değildir.
Aynı betik yerel OCR'ı, gömülü yardımcıları, Bridge öz denetimini ve ilgili imzaları da kontrol eder. Geçmişte paketlenmiş uygulamada dinamik yüklenen WebSocket bağımlılığı eksik kalmıştı: sağlık uç noktası çalışıyor, ancak sohbet bağlantısı yükseltilemiyordu. Bu sorun, içe aktarmanın başarısı, hizmetin çalışması ve temel işlevin paketle birlikte teslim edilmesinin üç farklı kanıt olduğunu gösterir.
Uygulama başlatma ve paket kabul kontrolleri; Dinamik WebSocket bağımlılıklarının açıkça toplanması.
Güncelleme kurulumunu kullanıcı başlatır; indirilen içerik doğrulanır
Tauri updater, herkese açık latest.json üzerinden güncellemeleri bulur ve uygulamaya derleme sırasında eklenen açık anahtarla arşiv imzasını doğrular. Uygulama açılışta bir kez kontrol eder; menüden elle de kontrol yapılabilir. Bu sürümde periyodik kontrol timer'ı yoktur. Yeni sürüm bulunduğunda bildirim gösterilir; indirme, imza doğrulama, değiştirme ve yeniden başlatma yalnızca kullanıcı kurulum düğmesine tıkladığında gerçekleşir. Otomatik kontrolün başarısızlığı geçici çevrimdışılıktan kaynaklanabilir; kurulum hatası ise kullanıcıya açıkça bildirilmelidir.
İlk 0.1.0/0.1.1 sürümlerinde updater eklentisi kaydedilmiş, ancak kontrol işlevi çağrılmamıştı; yeni sürümler otomatik bulunamıyordu. Güncel uygulama kontrolü, kurulabilir durumu, indirme hatalarını ve yeniden başlatmayı açık bir akışta birleştirir. İmza yapılandırmasının bulunması, akışın tetiklendiği anlamına gelmez.
Kontrol, kurulum ve yeniden başlatma durumu; Güncelleme adresi ve açık anahtar yapılandırması.
0.1.63'ün teslimat kanıtı hangi çıktıya aittir?
Yayın commit'ine ait GitHub Actions kayıtları şunları gösterir: yayımlanan kaynak main dalındaki 9bbb6ad6'dır; main dalındaki CI ilk denemede geçmiştir (run 40502155919); macOS işinde adı belirlenmiş 60 platform senaryosu sıfır atlamayla çalışmış, arka uçta 9.469 test geçmiş ve 124 test atlanmıştır. Etiketi göndermek kendi başına bir CI çalıştırması başlatmamıştır; bu yüzden kapı, aynı commit için main dalındaki çalıştırmayı kullanmıştır. Yayın iş akışı (run 40505601007) kaynak doğrulamasını, derlemeyi ve yayını başarıyla tamamlamıştır; DMG noter onayından geçmiş, staple edilmiş ve Gatekeeper tarafından kabul edilmiştir. Dağıtılan uygulamanın fresh-install kontrolünde 92 kontrol geçmiş, 0 kontrol başarısız olmuştur; buna Hands'in imzalı arka uç bağlantısını kabul etmesi ve Bridge öz denetimi de dahildir.
Ondan önceki iki sürüm: 0.1.61, main dalından fb6d7230'dan çıkarılmıştır (main dalındaki CI run 38489348597, etiket CI'ı run 38498094635, yayın run 38498094628; 54 platform senaryosu; arka uçta 8.466 test geçmiş ve 124 test atlanmıştır; fresh install 89/0). 0.1.62 ise release/0.1.62 dalında a4fca23b'den çıkarılmıştır (dal CI'ı run 39112567104, etiket CI'ı run 39114206598, yayın run 39114206588; 55 platform senaryosu; arka uçta 8.747 test geçmiş ve 125 test atlanmıştır; fresh install 89/0). Her biri ilk denemede geçmiş, noter onayından geçmiş, staple edilmiş ve Gatekeeper tarafından kabul edilmiştir.
Doğrulanan çıktılar farklıdır ve kayıtlar bunu ayrıca belirtir. 0.1.63'ün yayımlanan notları, bir yayın adayında kısa bir kontrol listesinin elle gözden geçirildiğini ve bunlardan ikisinin geçmediğini söyler (istenenden fazlasını değiştiren üçüncü bir takip düzenlemesi ve uzun bir dosyada terminal üzerinden yapılan tek satırlık bir değişiklik); notlar tam olarak 0.1.63 DMG'sinin elle kurulup baştan sona kullanıldığını ya da dağıtılan uygulamayla iPhone'dan Mac'e tam bir akışın yürütüldüğünü söylemez, bu belge de söylemez. 0.1.61 ve 0.1.62 notlarında, bu belgenin dayandığı, gerçek bir Mac'te elle yapılmış bir deneme yer almaz. Karşılaştırma için, 0.1.53'ün Verification bölümü gerçek bir Mac'te yapılmış bir denemeyi kaydeder: Hands, Notes'ta bir not oluşturup geri okumuş, bir onay 36 saniye bekletilmiştir. Ancak bu deneme nihai DMG'de değil, 43751254 kaynaklı build-only pakette yapılmıştır. Otomatik paket kabulü, önceki derlemede yapılan işlev denemesi ve tam dağıtım paketinin elle kabulü ayrı belirtilmeli; birbirlerinin yerine kullanılmamalıdır.
12 / Test ve doğrulamaBir görevin doğru yapıldığı nasıl anlaşılır?
Bir görevin bitmesi, bir dosyanın açılabilmesi ve bir raporun içeriğinin doğru olması üç farklı değerlendirmedir. Arslan, ne olduğunu çalışma kayıtlarıyla açıklar; kesin olarak denetlenebilen bölümleri çıktı ve sözleşme kontrolleriyle doğrular; model davranışını ise gerçek görev değerlendirmeleriyle gözlemler. Bir katmanın geçmesi, diğerlerinin yerini tutmaz.
Önce “tamamlandı” ifadesini denetlenebilir kanıtlara ayırmak
Yürütme gerçekleşti mi?
Araç çağrısı döndü mü? Çıkış kodu neydi? Eylem sonucu açıkça başarılı mı, başarısız mı, yoksa bilinmiyor mu? Modelin “tamamlandı” yazması araç kanıtının yerine geçmez. Etkisi bilinmeyen bir eylem de güvenle tekrarlanabilir sayılmaz.
Çıktı geçerli mi?
Dosya var mı, bu göreve mi ait, bayt sayısı ve hash eşleşiyor mu, biçimi ayrıştırılabiliyor mu? Bir tablonun açılması verilerin doğruluğunu; görsel boyutlarının doğru olması da düzenin uygunluğunu kanıtlamaz.
Görev gereksinimleri karşılandı mı?
On geçerli sonuç istenmişse altı sonuç yeterli değildir. Kaynaklar sonuçlarla örtüşmelidir; bir web sayfasını okumak, belirli bir iddiayı desteklediğini kanıtlamaz. Bu katmanda göreve özgü doğrulama ve insan değerlendirmesi hâlâ gereklidir.
Görev kabul sistemi kural denetimini, model değerlendirmesini ve insan incelemesini ayrı tutar. Metin, JSON, dosya bütünlüğü, görsel boyutları ve gerçek yürütme sonuçları deterministik biçimde denetlenebilir. Model değerlendirmesi yalnızca modelin değerlendirmeye uygun olduğu kısımları kapsar; çalıştırılmamış bir kontrolü başarılıya çeviremez. Çıktının ayrıştırılabilmesi yapısal olarak okunabildiğini, kaynak okuma kaydı sistemin içeriği aldığını gösterir. İkisi de olgusal veya görsel kaliteyi kendiliğinden kanıtlamaz.
Kabul kurallarının ve çıktı kontrollerinin sınırları; 0.1.53: Tamamlanmamış görevlerin açıkça Not done gösterilmesi.
Test katmanları: Her katman farklı bir soruyu yanıtlar
| Kanıt katmanı | Kontrol edilenler ve örnekler | Buradan çıkarılamayacak sonuçlar |
|---|---|---|
| Birim ve sözleşme | Parametre doğrulama, durum geçişleri, hata sınıflandırma, serileştirme, izin kararları; geçerli girdiler ile kurcalama ve yeniden oynatma gibi olumsuz örnekler | Gerçek modelin mutlaka doğru aracı seçeceği veya tüm üçüncü taraf hizmetlerin daima uyumlu kalacağı |
| Hizmet bütünleşmesi | Veritabanı, çalışma kayıtları, iptal, çıktı dışa aktarma, kurtarma ve izin geri çağrılarının gerçekten bağlanması; model yerine deterministik bir test ikamesi kullanılabilir. | İkameyle çalışan akışın, doğal dildeki görevin gerçek modelle tamamlandığını gösterdiği |
| Platform çalışması | macOS korumalı alanı ve sistem arayüzlerinin belirlenen ortamda gerçekten çalışması; eksik bağımlılık veya atlama başarı sayılamaz. | Tüm sistem sürümlerinin, izin birleşimlerinin ve uygulamaların uyumlu olduğu |
| Nihai kurulum paketi | Paketlenmiş bağımlılıklar, ön uç kaynakları, kimlik doğrulama, gerçek WebSocket el sıkışması ve yardımcıların paketle teslimi | Tüm gerçek görevlerin tamamlanma oranı ve etkileşim kalitesinin doğrulandığı |
| Gerçek görev değerlendirmesi | Sabit model, görev, izin ve kontrol kurallarıyla tekrarlı çalışmalar; başarıların ve başarısızlıkların saklanması | Küçük örneklemin genel başarı oranını temsil ettiği veya diğer ürünlerden genel olarak üstün olunduğu |
| Kesin çıktının gerçek cihazda kabulü | Belirli dağıtım paketinin gerçek cihaz, izin durumu ve hizmetlerle tüm akışı tamamlaması | Yakın bir derlemenin veya simülatörün geçmesinin, bu dağıtım paketinin tüm gerçek cihaz kontrollerinin yerine geçebileceği |
Örneğin Eylül 2026 güvenilirlik çalışması, dış model ücreti gerektirmeyen 30 sabit sözleşme testi sundu. Depolama, iptal, çıktılar, yedekleme ve izin kodları gerçekten çalıştırıldı; ancak deterministik provider ikameleri kullanıldı. Bu, mühendislik sözleşmesi kanıtıdır; gerçek modelle yapılmış 30 uçtan uca görev değildir. Sonraki ücretli değerlendirmeler başka bir kanıt katmanıdır; ikisi tek bir başarı oranında birleştirilemez.
Testlerin gerçekten çalıştığını da kanıtlamak gerekir. v0.1.63 macOS CI'ı JUnit raporunu ayrıştırır ve belirlenmiş 60 platform testinin gerçekten, hiç atlanmadan çalışmasını zorunlu tutar. Hands'in Python ve Rust tarafları ortak sözleşme örnekleri, Bridge'in iki tarafı ortak protokol vektörleri kullanır. Kritik korumalarda mutasyon kontrolleri, kuralları geçici olarak bozup testlerin başarısız olduğunu doğrular; böylece davranışı sınırlamadan yalnızca uygulamanın görünüşünü kontrol eden testler bulunabilir.
Mühendislik sözleşmesi ile model kalitesinin ayrımı; Platform testi sayısı ve atlama engeli; Kaynak incelemesinin regresyon ve mutasyon kontrolleri.
Yayın doğrulaması kaynak koda ve çıktıya bağlanmalıdır
Tüm geçmişte kimlik bilgisi taraması
O commit için başarılı CI
Uygulama ve kurulum paketi
Yalıtılmış yapılandırmayla gerçek başlatma
Güncelleme çıktısının imzası
Fresh-install kontrolü, uygulamayı yalıtılmış yeni bir HOME ile başlatır. Kimlik doğrulamayı, gerçek WebSocket 101 el sıkışmasını, ön uç kaynaklarını, OCR'ı ve yardımcıları kapsar. Yalnızca sağlık uç noktasının 200 dönmesini kontrol etmek yetmez: eski bir kurulum paketinde HTTP hizmeti çalışırken sohbet bağlantısı hiç kurulamıyordu.
v0.1.63 yayını 9bbb6ad6 commit'ine aittir: main dalındaki CI ilk denemede geçmiştir (run 40502155919; etiketi göndermek kendi başına bir CI çalıştırması başlatmamıştır); yayın akışının (run 40505601007) kaynak doğrulama, derleme ve Release adımları başarılıdır; DMG noter onayından geçmiş ve staple edilmiş, Gatekeeper kabul etmiştir. Yayımlanan uygulamanın fresh-install sonucu 92 başarılı, 0 başarısız kontroldür; buna Hands başlatma ve Bridge öz denetimi dahildir. (0.1.61 ve 0.1.62'nin her biri 89 üzerinden 89 ile geçti: run 38498094628 ve run 39114206588. 0.1.53, sıralamaya bağlı bir kararsızlık nedeniyle ikinci bir CI denemesine ihtiyaç duymuştu; 0.1.54 bunun nedenini, yani testlerin paylaşılan bir veritabanı oturumunu sızdırmasını düzeltti ve bunu yapan her testi başarısız kılan bir koruma ekledi.)
Gerçek cihaz etkileşimi kanıtı, açıkça tanımlanmış başka bir derlemeden gelir. Notes testinde arka plan görevi Hands üzerinden not oluşturup geri okumuştur; ilk onay kartı 36 saniye bekledikten sonra devam edebilmiştir. Dosya yeniden adlandırma görevinde mv kullanılmış, Finder penceresinde işlem yapılmamıştır. Bu testler daha eski, 43751254 commit'li build-only pakette yapılmıştır. Resmi yayın commit'inden farkı sürüm numarası ve açıklama belgeleridir. Nihai yayınla aynı SHA değildir. 0.1.60'ın sürüm notları da, yayın öncesinde nihai DMG'nin elle kurulup tüm işlemlerin bir kez daha yürütülmediğini de açıkça belirtmişti. Kurulum kontrolleri ve önceki derlemenin Notes saha testi ayrı ifade edilmelidir.
0.1.63'ün kendi yayın öncesi testi iki eşiği kaçırdı ve notlar bunu söylüyor. DeepSeek ve Claude üzerinde, “Ask only for risky commands” açıkken, her biri üç çalıştırma olmak üzere dokuz görev: “reddedilen bir silmeden sonra başka bir yol bul” görevi Claude'da 3 üzerinden 0 geçti (0.1.62'de 3 üzerinden 3), çünkü çalışma klasörüne geçtikten sonra ada göre yapılan bir silme, “Bu turu geri al” dosyaları geri getirebildiği için bilerek kartsız çalıştı; “tek bir belgede üç takip düzenlemesi” görevi DeepSeek'te 3 üzerinden 1, Claude'da 3 üzerinden 0 geçti, çünkü denetleyici bir bölümün uzunluğunun %60'ın altına kesilmesini istiyor, görev ise yalnızca kısaltmasını istiyor (denetleyici korundu). Gönderilen varsayılan, yani her yeni komuttan önce sormak, bu turların çalıştırdığı şey değildir. Bu türden sonuçlar zayıf noktaları bulur; bir sıralama değildir.
0.1.63 sürüm notları; Yayın iş akışı; Kurulum kontrolü; Paketleme ve imzalama.
Gerçek görev verileri: Karşılaştırmaları ve eksikleri birlikte korumak
3 Ekim 2026 tarihli 0.1.51 değerlendirmesinde deepseek-v4-pro kullanıldı ve aynı turdaki Hermes ile karşılaştırıldı. Dört görev türünün her biri üçer kez çalıştırıldı. “Kabulden geçti”, checker score=3 demektir; çalışma durumunun done olmasıyla aynı değildir. Maliyet ve süreler, başarısız sonuçlar dahil her türdeki üç çalışmanın ortalamasıdır; maliyet o turdaki düşük yoğunluk fiyatıyla hesaplanmıştır. Süre, ilk model isteğinin başlaması ile son isteğin bitmesi arasındaki aralıktır. Ne görevin uçtan uca toplam süresi ne de yalnızca modelin çıkarım süresidir.
| Görev | Arslan kabulden geçen / 3 | Hermes kabulden geçen / 3 | Ortalama maliyet ve model çağrısı aralığı: Arslan / Hermes | Bu kanıtın gösterdiği |
|---|---|---|---|---|
| Anımsatıcılar | 3/3 | 2/3 | $0.025, 76 s / $0.058, 142 s | Bu turdaki sonuç daha iyi; örneklem yine çok küçük. |
| İş ilanı araştırma tablosu | 1/3 | 3/3 | $0.167, 313 s / $0.093, 160 s | Sonuç sayısı ve araştırmanın eksiksizliği bakımından açıklar sürüyor. |
| Apple finans tablosu | 3/3 | 3/3 | $0.041, 77 s / $0.026, 36 s | İkisi de geçti; karşılaştırılan sistemin istek aralığı daha kısa ve maliyeti daha düşük. |
| İndirilenler dizinini düzenleme | 3/3 | 3/3 | $0.053, 113 s / $0.046, 100 s | Kabulden geçen çalışma sayısı aynı. |
Bu deneyler iyileştirme alanlarını bulmaya uygundur; genel ürün sıralaması oluşturmak için uygun değildir. Model, görev, ortam ve onay politikası sonuçları etkiler. Bu turda bakiye tükenmiş ve çalışma sonradan sürdürülmüştür. Sıfır maliyetli dört başarısız istek, süre hesabında kullanılan usage log'dan çıkarılmış; özgün günlük korunmuştur. Yayımlanan deney kaydı bu koşulları da içerir ve özet okunurken dikkate alınmalıdır.
Sürüm karşılaştırmaları da sınırlı yorumlanmalıdır: Anımsatıcılar örneklemi 0.1.49'da 1/3 iken 0.1.50'de 3/3 olmuştur; bu dönemde kurtarma yolları ve bağlam durumu geliştirilmiştir. Ancak sürümler arasında birden çok değişiklik olduğundan farkın tamamı tek bir isteme veya modüle kesin biçimde bağlanamaz.
0.1.51 deney yöntemi ve süreci; Dört görev özeti; Kurtarma yollarının ara değerlendirmesi.
Modelin incelemesi de incelenmelidir
0.1.41 kaynak incelemesi kalibrasyonunda 13 rapor için 14 uyarı üretildi: 1 doğru, 2 sınırda, 11 yanlış. Ayrıca önceden kaydedilmiş iki bilinen hata kaçırıldı. Bu nedenle özellik varsayılan olarak kapalı kaldı. Başka bir modeli çağırmak kendiliğinden güvenilir bir doğruluk denetçisi sağlamaz. Biçimin geçerli ve dayanak noktasının mevcut olması da eleştirinin doğru olduğunu garanti etmez.
0.1.52'nin deneyim öğrenme doğrulaması başka bir sınır gösterdi. Bir AppleScript isteği reddedildikten sonra deneyim saklandı, geri çağrıldı ve sonraki denemede doğrudan EventKit seçildi. Bu, deneyimin yürütmeyi etkileyebildiğini kanıtladı. Ancak sonraki betik düzenleme ve kontrol işlemleri daha fazla çağrı üretti; hızlanma ölçülmedi. Deneyimin kendisinin verimliliği artırıp artırmadığını anlamak için aynı görevde deneyim bulunan ve bulunmayan koşullarda eşlenmiş, tekrarlı deneyler gerekir. Dönemin kaydı, bu adil hız karşılaştırmasının henüz yapılmadığını açıkça belirtir.
Daha güçlü kalite sonuçları için görevler, çıktılar ve kontrol ölçütleri önceden sabitlenmeli; model ve yapılandırma, çağrı izleri, gerçek maliyet ve hata nedenleri kaydedilmelidir. Model puanları bağımsız insan etiketleriyle kalibre edilmelidir. Geçersiz biçimli puanlar, çalıştırılmamış kontroller ve erişilemeyen kanıtlar kendi durumlarıyla korunmalı; özet iyi görünsün diye başarılı sayılmamalıdır.
Kaynak incelemesinin yayımlanan kalibrasyon sonuçları; Deneyim öğrenmede geçen ve kanıtlanmayan maddeler; Daha güçlü kalite sonuçları için değerlendirme koşulları.
13 / Mühendislik yönelimleriMevcut yeteneklerden daha güvenilir teslimata
Arslan; yürütme, süreklilik gerektiren görevler ve bellek olmak üzere üç temel oluşturdu. Bir sonraki aşamada, bu yeteneklerin daha karmaşık koşullarda doğru durumu koruyup güvenilir sonuçlar üretirken kontrolü kullanıcıda tutup tutamadığı sınanmalı. Aşağıdaki şema mevcut uygulamaları, doğrulanması gereken noktaları ve olası mühendislik yönelimlerini birbirinden ayırır. Bu, teknik bir değerlendirmedir; tarih verilmiş bir yayın taahhüdü değildir. Bu bölüm v0.1.63'ü yansıtır; 0.1.64 için planlananlar yapılmış değil, planlanmış olarak işaretlenmiştir.
0.1.64 için planlananlar (yalnızca plan, yapılmadı; onaylanmış 0.1.64 planından): önce komutlar, Python ve kurulu araçlar için varsayılan olarak reddeden bir korumalı alan. Ardından “Ask only for risky commands” geri gelir. Sonra isteğe bağlı bir “auto” modu gelir: bir inceleme modeli kartların bir kısmını yanıtlar; varsayılan olarak kapalıdır, yalnızca önceden belirlenmiş geçme eşiklerini karşılarsa yayımlanır ve korumalı alanın dışına çıkan, dışarıya bir şey gönderen ya da ağa giden hiçbir şeyi asla onaylamaz. Her konuşma için giriş kutusunun yanından seçilen beş mod olacak: plan, her adımda sor, otomatik düzenleme, tam erişim ve “auto”; Ayarlar'da yalnızca yeni konuşmalar için varsayılan mod kalır. Zamanlanmış görevler salt okunur komutları yeniden çalıştırabilecek. O zamana kadar her yeni komut önce sorar ve zamanlanmış görevler komut çalıştırmaz. Hatırlanan yanıtları listeleyen ve geri alan bir sayfa ile izin verilen klasörler ayarı değerlendirme aşamasındadır; planda yer almaz. 0.1.63 notları ayrıca bilinen sınırlar için iki düzeltme listeler: aynı komutta klasör değiştirdikten sonra yapılan bir silme yanlışlıkla çalışma klasörünün içinde sayılıyor ve uzun bir dosyadaki tek satırlık bir değişiklik düzenleme aracı yerine terminalden geçiyor.
Şekil 4 · Yetenekler yol haritası. Metinle: mevcut yürütme, sürekli görev ve bellek temelleri → cihazlar arası çalışma ve güvenilirlik kabulü → gerçek tamamlanma oranı, kurtarma sözleşmeleri ve kontrollü öğrenme deneyleri için öncelik önerileri. Öneriler, özelliğin kullanıma sunulduğu anlamına gelmez.
Gerçek görevlerde sonuçlar
Sabit görev kümesi; aramanın eksiksizliğini, atıflarla sonuçların uyumunu, dosyaların açılabilmesini, sistem işlemlerinin gerçekten hedeflenen etkiyi oluşturmasını ve başarısızlıkların dürüstçe sonuçlandırılmasını kapsamalıdır. Mevcut karşılaştırmalar araştırma görevlerindeki eksikleri ortaya koydu ve 0.1.63 yayın öncesi çalıştırması (DeepSeek ve Claude üzerinde, her biri üç çalıştırma olan dokuz görev) kendi eşiklerinden ikisini kaçırdı: reddedilen bir silmeden sonra başka bir yol bulmak (Claude 3 üzerinden 0, çünkü çalışma klasörünün içindeki bir silme “Ask only for risky commands” altında kartsız çalışıyor) ve tek bir belgede üç takip düzenlemesi (DeepSeek 3 üzerinden 1, Claude 3 üzerinden 0). Araç listesini genişletmeden önce “bulamadı, tamamını okumadı, doğrulamadı, doğru teslim etmedi” sorunlarının hangi adımda ortaya çıktığını belirlemek, tamamlanma oranını artırmaya daha çok yardımcı olur.
Kurtarma ve cihazlar arası tutarlılık
Ağ isteğinin yeniden denenmesi, yinelenen mesajlar, uygulamanın yeniden başlaması ve kullanıcının iptali aynı anda gerçekleşebilir. Sonraki doğrulamalar; sabit iş kimliklerine, eski mesajların nihai durumun üzerine yazamamasına, onay iptal edildikten sonraki davranışa ve etkisi bilinmeyen eylemlerin nasıl kontrol edileceğine odaklanabilir. Çökme enjeksiyonu ve olumsuz protokol testleriyle hangi durumların otomatik ele alınabileceği, hangilerinin kullanıcı onayına dönmesi gerektiği belirlenmelidir. Bir parça yayımlandı: 0.1.63'ten itibaren bir tur çalışma klasörünü ilk kez değiştirmeden önce bir kontrol noktası kaydedilir ve “Bu turu geri al” dosyaları geri koyar ve turu kaldırır. Sınırlıdır: yalnızca en fazla 20.000 dosya ve 5 GB'lık bir klasörü kaydeder (Python ortamları, node_modules, derleme çıktıları ve Python önbellekleri sayılmaz), aksi hâlde “Not saved” der; yalnızca çalışma klasörünü kapsar, onun dışındaki etkileri kapsamaz.
Öğrenmenin ölçülebilir yararı
Deneyimin kaydedilmesi yalnızca başlangıçtır. Aynı görev ve model koşullarında, deneyim varken ve yokken tamamlanma oranı, çağrı maliyeti, süre ve hatalı davranışlar tekrar tekrar karşılaştırılmalıdır. Güncelliğini yitirmiş deneyimlerin düzeltilip düzeltilmediği, dış metinlerin deneyimi bozup bozamayacağı ve silinen deneyimlerin hâlâ geri çağrılıp çağrılmadığı da sınanmalıdır.
Platform ve genişletmenin maliyeti
Tauri, farklı platformlarda çalışabilen bir uygulama temeli sunar; ancak Seatbelt, Vision, Accessibility, Apple Events ve CloudKit platforma özgü özelliklere sahiptir. Diğer masaüstü sistemlerine açılmak için bu yeteneklerin karşılıkları geliştirilip doğrulanmalıdır. Başka bir platform için derleme yapılması, ürün işlevlerinin de taşındığını kanıtlamaz. Daha fazla dış araç, daha fazla kimlik bilgisi, izin ve hata olasılığı da getirir.
Bu mühendislik yönelimleri mevcut uygulamaya ve test sonuçlarına dayanır. Kesin öncelikler ve takvim için sonraki resmi sürüm notları esas alınmalıdır.
14 / Terimler sözlüğüTerimlerden somut uygulamaya
Terimler, farklı mekanizmaları ayırt etmeyi sağlar. Aşağıdaki tablolar kısa tanımlar verir ve her kavramı Arslan'daki uygulamasıyla ilişkilendirir. Geçmişte kullanılan mekanizmalar ayrıca belirtilmiştir.
AI ve bağlam
| Terim | Sade açıklama | Arslan'da kullanımı |
|---|---|---|
| LLM | Dili anlayan ve üreten büyük model | Kullanıcının yapılandırdığı sağlayıcıdan gelir; uygulama ve yürütme sistemini Arslan sağlar |
| Agent | Sonuçlara göre bir sonraki adıma karar veren yürütme süreci | Modeli çağırır, araçları çalıştırır, sonuçları değerlendirir, devam eder veya sonuçlandırır |
| Orchestrator | Farklı yetenekleri bir araya getiren koordinatör | Modeli, bağlamı, araçları, izinleri ve görev durumunu koordine eder |
| Tool calling | Modelin yapılandırılmış biçimde bir araç istemesi | Araç adı ve JSON parametreleri doğrulandıktan sonra yürütülür |
| Native tool protocol | Sağlayıcının resmen tanımladığı araç mesajı biçiminin kullanılması | Araç çağrısı kimliği, sonuç ve akıl yürütmenin devamı arasındaki ilişkiyi korur |
| Trajectory | Model ve araç etkileşimlerinin yapılandırılmış izi | OpenAI uyumlu yolda native history kullanılır; diğer Provider'lar kendi yollarını korur |
| Context window | Modelin tek seferde görebileceği bilgi kapsamı | Tüm geçmiş, tüm bellek ve uzun çıktıların tamamı sınırsızca eklenemez |
| Compaction | Eski bağlamın boyutu sınırlı bir özete sıkıştırılması | İstek boyutunu sınırlar, yakın içeriği korur; asıl konuşmayı silmek değildir |
| RAG | Önce ilgili kaynakları bulup sonra modelden yanıt istemek | İçe aktarılan bilgilerden ilgili parçaları kaynaklarıyla birlikte getirir |
| FTS5 | SQLite'ın tam metin araması | Sözcük eşleştirmede etkilidir; vektör olmadan da kaynak aranabilir |
| Embedding | Metnin anlamını sayısal vektöre dönüştürmek | Farklı sözcüklerle anlatılan ancak anlamı yakın olan içeriği bulmaya yardımcı olur |
| Cosine similarity | Vektörlerin yönlerinin ne kadar yakın olduğunu karşılaştırmak | Anlamsal aramada kullanılan benzerlik hesaplama yöntemlerinden biri |
| RRF | Farklı arama sonuçlarını sıralarına göre birleştirmek | Farklı birimlerdeki puanları doğrudan karıştırmadan FTS ve vektör sıralamalarını birleştirir |
| Skill | Yeniden kullanılabilen “nasıl yapılır” yönergeleri | SKILL.md, isteğe bağlı betikler ve başvuru kaynakları; ayrı bir model değildir |
| MCP | Agent ile dış araçlar arasında standart arayüz | Dış yetenekleri stdio veya HTTP üzerinden bağlar; yetkilendirme uygulamanın kontrolünde kalır. 0.1.63'ten itibaren sunucusunun salt okunur diye işaretlediği bir araç kartsız çalışır, yıkıcı diye işaretlediği her seferinde sorar, geri kalanlar konuşma başına bir kez sorar |
| İhtiyaç anında araçlar | Her istekle gönderilmeyen, gerektiğinde aranan araçlar | 0.1.63'ten itibaren seyrek kullanılan araçlar ve MCP araçları her istekte yer almaz; model onları bulur (find_tools) ve aynı onaylarla gerçek adlarıyla çağırır (use_tool) |
| Akış (streaming) | Bir yanıtı model yazdıkça göstermek | 0.1.63'ten itibaren OpenAI-compatible sağlayıcılarda, Claude'da ve Gemini'de; bir akış yarıda kesilirse gördüğün korunur ve yanıt kesildi olarak işaretlenir. Eskiden yanıtı tutan denetimler artık ardından bir düzeltme ekler |
| Yönlendirme (steering) | Çalışmakta olan bir görevin yönünü değiştirmek | 0.1.63'ten itibaren bir yanıt sürerken yazılan mesaj ona bir sonraki adımında ulaşır; nihai yanıt yazılırken gönderilen mesaj hemen ardından çalışır |
| Görev başına dolar sınırı | Tek bir görev için model harcamasına konan tavan | 0.1.63'ten itibaren varsayılan olarak açık: sohbet yanıtı ya da arka plan görevi başına 2 $, yaklaşık üçte ikisinde toparlanmaya başlar; yalnızca fiyatı bilinen modeller sayılır; Ayarlar › Arka plan'dan değiştirilir |
| BYOK | Kullanıcının kendi model API anahtarını sağlaması | Sağlayıcıyı kullanıcı seçer ve ilgili model çağrılarının ücretini karşılar |
| Prompt injection | Web sayfası veya araç içeriğinin Agent'a verilmiş yeni bir talimat gibi gösterilmesi | Dış içerik veri olarak ele alınır; doğrulanmamış dış etkiler içeren deneyimler genellikle öneriye dönüşür. Bu, tam bağışıklık kanıtı değildir |
| Learned practice | Düzeltmelerden veya başarılı alternatif yollardan kaydedilen yöntem | “Bu makinede AppleScript çalışmıyor, EventKit'i dene”; model ağırlıklarını değiştirmez |
| Shadow mode | Kararı kaydetmek, ancak henüz gerçek davranışı değiştirmesine izin vermemek | Karar katmanı küçük kararlar için defterini tutar; komut kartlarının shadow onay önerisi 0.1.63'te kaldırıldı ve her kart yine tıklamanı bekler |
| Held-out evaluation | İstemleri iyileştirirken kullanılmayan sorularla değerlendirme yapmak | İlk dönem uzman evriminin tarihsel tasarımıdır; güncel konuşmanın her turunda zorunlu bir adım değildir |
Yazılım mimarisi, durum ve güvenilirlik
| Terim | Sade açıklama | Arslan'da kullanımı |
|---|---|---|
| SPA | Tek bir web uygulamasında sayfalar ve durumlar arasında geçiş | React çalışma arayüzünün statik kaynaklarını yerel hizmet sunar |
| Sidecar | Ana uygulamayla birlikte başlatılan yardımcı süreç | Tauri'nin yanında çalışan yerel Python arka ucu |
| IPC | Aynı bilgisayardaki süreçler arasında iletişim | Boru hatları ve Unix socket; bütün modüller bulut üzerinden haberleşmez |
| REST / HTTP | Bir istekle bir kaynağı almak veya değiştirmek | Ayarlar, geçmiş, görevler ve dosya yönetimi arayüzleri |
| WebSocket | Bilgiyi sürekli iletmek için çift yönlü bağlantıyı açık tutmak | Yanıt akışı, araç durumu, onay ve ilerleme olayları |
| Async I/O | I/O beklerken olay döngüsünü diğer görevlerin ilerlemesi için serbest bırakmak | Python asyncio, asenkron API ve veritabanı erişimi; CPU işlerinin sınırsız paralel çalışması demek değildir |
| Schema / Contract | Girdileri, çıktıları ve geçerli durumları açıkça tanımlayan sözleşme | Pydantic, araç parametreleri ve görev kabul sözleşmeleri |
| State machine | Bir sürecin hangi aşamada olduğunu sonlu durumlarla tanımlamak | queued, running, waiting_user, verifying, succeeded gibi durumlar |
| Checkpoint | Nereye gelindiğini, yapılanları ve kalanları kaydetmek | Görev kurtarma; başvuruları, kanıtları ve bütçeyi kullanır, etkisi bilinmeyen eylemleri körlemesine tekrarlamaz. 0.1.63'ten itibaren ikinci bir tür: bir tur çalışma klasörünü ilk kez değiştirmeden önce alınan, “Bu turu geri al”ın geri yüklediği kayıtlı bir klasör kopyası (yalnızca en fazla 20.000 dosya ve 5 GB'lık bir klasör için; aksi hâlde geri alma penceresi “Not saved” der) |
| Attempt | Bir görevin tek bir yürütme denemesi | Kurtarma yeni bir deneme oluşturur; eski asenkron sonuçlar yeni turun durumunun üzerine yazamaz |
| Optimistic concurrency | Yazmadan önce verinin hâlâ az önce okunan sürümde olduğunu doğrulamak | row version ve attempt ID, eski sonuçların iptal veya güncellemelerin üzerine yazmasını önler |
| Idempotency | Yinelenen isteklerin beklenmedik tekrar işlemleri oluşturmaması | Mesaj/görev ID'leri tekrarları önler; bilinmeyen dış etkiler ayrıca kontrol edilmelidir |
| ACK | Alıcının “bu paketi aldım” demesi | Görevin tamamlandığı veya onayın yürürlüğe girdiği anlamına gelmez |
| Single-flight | Önceki yürütme bitmeden aynı işi yeniden başlatmamak | Zamanlanmış görevlerde yinelenen yürütmelerin üst üste birikmesini önler |
| Backoff | Başarısızlık sonrası yeniden deneme aralıklarını kademeli uzatmak | Hız sınırı/hizmet hatalarında bekleme uygular, Retry-After'a uyar; kimlik doğrulama hatasını körlemesine yeniden denemez |
| WAL | SQLite'ın önce günlüğe yazarak okuma ve yazmanın birlikte yürütülmesini iyileştirmesi | Yerel veri kalıcılığı sağlar; eşzamanlı yazmanın yine sınırları vardır |
| Migration | Eski veritabanı yapısını güvenle yeni yapıya yükseltmek | Açık sürüm runner'ı, yükseltme öncesi yedek ve bilinmeyen şemayı reddetme |
| Provenance | Bir bilginin nereden geldiği | Belge kaynakları, bellek kaynakları ve gerçek yürütme izleri |
| Observability | Sorun olduğunda ne yaşandığını görebilmek | Run/Step, Activity, usage, hata ve çıktıların ilişkilendirilmesi |
İşletim sistemi, güvenlik ve teslimat
| Terim | Sade açıklama | Arslan'da kullanımı |
|---|---|---|
| Sandbox / Seatbelt | İşletim sisteminin bir sürecin erişebileceği kaynakları sınırlaması | Hesaplama ve komut korumalı alanlarının kuralları farklıdır; ağ ve koruma kullanılamadığındaki davranış ayrı açıklanır |
| Fail-closed | Koruma katmanı kullanılamıyorsa yürütmeyi reddetmek | Varsayılan Python korumalı alanı ve çevrimdışı sonuçlandırma yolu için geçerlidir; tüm sıradan komutlara genellenemez |
| Accessibility tree | Sistemin sunduğu pencere, düğme ve metin gibi öğelerin yapısı | Hands, ekran görüntüsündeki pikselleri tanımaya gerek duymadan denetimleri okur ve bulur |
| TCC | macOS'un gizlilik izinlerini yöneten sistemi | Erişilebilirlik, mikrofon ve Apple Events izinleri uygulamadaki bir anahtarı açmakla verilmiş olmaz |
| SSRF | Hizmeti erişmemesi gereken iç adreslere erişmeye yönlendirmek | Web içeriği çıkarılırken ve dış URL'ler kullanılırken hedefler, yönlendirmeler ve ağ sınırları doğrulanmalıdır |
| AEAD | İçeriğin gizliliğini ve bütünlüğünü birlikte koruyan şifreleme yöntemi | Bridge, ChaCha20-Poly1305 kullanır; değiştirilmiş içerik doğrulamadan geçmez |
| Key agreement / Signature | İlki şifreleme malzemesi üzerinde anlaşmayı, ikincisi gönderenin kimliğini doğrulamayı sağlar | X25519 ve Ed25519'un görevleri farklıdır; birbirine karıştırılmamalıdır |
| Replay protection | Saldırganın eski mesajları tekrar gönderip yeniden işleme koymasını önlemek | İmza, alıcı kontrolü, kayan sıra numarası penceresi ve kalıcı tekrar önleme birlikte çalışır |
| CI / CD | Derleme, kontrol ve dağıtım süreçlerini otomatikleştirmek | Başarılı CI, yayımlanacak SHA'ya ait olmalıdır; nihai çıktı da kontrol edilmelidir |
| Contract test | Bir sınırın iki tarafının aynı protokole uyduğunu doğrulamak | Python/Rust ve Mac/iPhone tarafları geçerli ve geçersiz ortak test vektörlerini kullanır |
| Mutation testing | Koruma mantığını bilerek bozup testlerin bunu yakalayıp yakalamadığını görmek | Belirli doğrulamaların hatayı ayırt edebildiğini kanıtlar; sıradan birim testinin başka adı değildir |
| Code signing | Yazılımın kaynağını ve çıktının değiştirilmediğini doğrulamak | App ve içindeki yardımcılar doğru biçimde imzalanmalıdır |
| Notarization / Staple | Apple'ın dağıtım paketini kontrol etmesi ve biletin pakete eklenmesi | İmzalamadan farklıdır; sonuç ayrıca Gatekeeper ile doğrulanmalıdır |
| Fresh-install acceptance | Geliştirme ortamı ve eski verileri olmayan yeni bir kullanıcıyı canlandırmak | Gerçek kurulum paketinin kimlik doğrulamasını, WebSocket'ini, kaynaklarını ve yardımcılarını doğrular |
Mevcut sistem ağırlıklı olarak yerel, katmanlı bir monolit ve bağımsız yardımcılardan oluşur. SQLite ve süreç içi asenkron zamanlama, kişisel masaüstü ürününün kurulum ve çalışma biçimine uygundur. İlgili terimler bu dağıtım ölçeğinde anlaşılmalıdır.
15 / Sık sorulan sorularArslan'ı kullanırken hangi noktalar karıştırılabilir?
Arslan'ın, modelin web sitesinde doğrudan sohbet etmekten farkı nedir?
Arslan; modelin çevresinde yerel dosyalar, araçlar, görev durumu, bellek, yetkilendirme ve masaüstü bütünleşmesi sağlar. Model karar verir ve içerik üretir; uygulama araç isteklerini kontrollü işlemlere dönüştürür ve sonuçları kaydeder. Sağladığı yarar, bu sürecin somut bir görevi tamamlayabilmesine bağlıdır.
Proje tek kişi tarafından AI ile mi geliştiriliyor?
Evet. Arslan, geliştiricisi tarafından AI desteğiyle, yani vibe coding yöntemiyle, bağımsız olarak geliştirilmekte ve sürekli iyileştirilmektedir. Ürün açık kaynaklı çerçeveler, üçüncü taraf bileşenler ve dış modeller kullanır. İlgili kaynaklar ve lisanslar proje belgelerinde ayrı ayrı kayıtlıdır.
Her şey bilgisayarımda mı kalıyor?
Ana veri depolama ve yürütme koordinasyonu yereldir. Bulut modeli, arama veya uzak MCP gibi yetenekler kullanıldığında ilgili istekler bu hizmetlere gönderilir. Belleğin bulutta kullanımına ilişkin ayrıca izin ve hassasiyet kuralları vardır. Yerel öncelik, tüm sürecin ağ bağlantısı olmadan yürüdüğü anlamına gelmez. 0.1.63'ten itibaren Anthropic'in kendi API'sindeki bir Claude konuşması Anthropic'in kendi web aramasıyla arar. Yerel bir modeldeki konuşma sorgularını asla bir sağlayıcının kendi aramasına göndermez; Ayarlar'da seçilen Tavily ya da SearXNG tek arama ya da yedek olabilir ve bilinçli bir seçim yoksa en iyi çabayla yapılan bir DuckDuckGo taraması en sona kalır.
Model değiştirebilir veya yerel bir model bağlayabilir miyim?
Desteklenen sağlayıcılar ve OpenAI uyumlu yerel hizmetler dahil uyumlu uç noktalar yapılandırılabilir. Bir uç noktaya bağlanabilmek yalnızca iletişimin çalıştığını gösterir. Araç çağırma, görsel işleme, akıl yürütmeyi sürdürme ve bağlam uzunluğu da modelin ve kullanılan uyarlama yolunun yetenekleriyle uyumlu olmalıdır.
Eski belgelerde pek çok uzman varken neden artık yalnızca bir Arslan var?
Ürünün yapısı zamanla sadeleştirildi. 0.1.44'te uzman oluşturma ve görevlendirme durduruldu; 0.1.46'da eski otomatik evrim döngüsü kapatıldı; 0.1.48'de ön yönlendirme kaldırıldı. 0.1.63 ise hiçbir yanıtın artık ulaşamadığı uzman dönemi kodunu (uzman oluşturma, şablonları ve motoru, evrim ve düzenleme mekanizması, araştırma incelemesi ve sohbet menüsündeki “Damıt”) sildi; eski uzmanların başlattığı görevler devam ettirildiğinde Arslan tarafından sürdürülür. Eski yöntemler Skill'e dönüştürülebilir ve geçmiş verilerle uyumluluk korunur. Sınırlı, salt okunur worker'lar bağımsız araştırmalar için kullanılmaya devam eder.
Bellek, bilgi tabanı ve sohbet geçmişi aynı şey mi?
Hayır. Sohbet geçmişi konuşmaları kaydeder; çalışma bağlamı yakın içerikleri ve özetleri seçer. Kişisel bellek, kaynağı ve izinleri tanımlanmış tercihleri, olguları ve kuralları saklar. Bilgi arama ise içe aktarılan kaynaklardan ilgili parçaları getirir. Bu üç yapının saklama, geri çağırma ve silme davranışları farklıdır.
“Deneyim öğrenme” modeli eğitir veya kendiliğinden daha fazla yetki kazandırır mı?
Hayır. Mevcut öğrenme sistemi yeniden kullanılabilen yöntemleri kaydeder ve sonraki görevlerde geri çağırır; temel modelin ağırlıklarını veya yürütme izinlerini değiştirmez. Kayıtlar, deneyimin yakalanabildiğini, geri çağrılabildiğini ve uygulanabildiğini gösteriyor. Genel hız artışı veya maliyet tasarrufu için daha fazla kontrollü karşılaştırma gerekiyor.
Tüm komutlar ağ erişimi kapalı bir korumalı alanda mı çalışır?
Hayır. Varsayılan Python hesaplama korumalı alanı ağ erişimini reddeder. Sıradan terminalin çalışma alanı koruması ise genellikle ağ erişimini korur ve koruma kullanılamadığında ayrı bir davranış izler. Araç izinleri, komut politikası, sistem izinleri ve korumalı alan farklı katmanlardır. Ayrıntılı farklar güvenlik bölümünde açıklanır. 0.1.63'ten itibaren her yeni terminal komutu varsayılan olarak önce bir kart gösterir (“Ask only for risky commands” neyi kaçırdığını söyleyen açık bir seçimdir) ve zamanlanmış görevler hiç komut çalıştırmaz: böyle bir adım atlanır ve Inbox'ta listelenir.
Sohbet penceresini kapatırsam görev ne olur?
Bağlantı ve görev ayrı yönetilir. Uygulama hizmeti çalıştığı sürece arka plan job'ları yürütülebilir; pencerenin kapanması doğrudan sürecin sona ermesi demek değildir. 0.1.63'ten itibaren uzun iş otomatik olarak arka plana taşınmak yerine sohbette kalır ve on dakika sonra yanıt, hâlâ çalıştığını söyler. Hizmet kapanır veya Mac uykuya geçerse görev yerel yürütmeye dayanarak devam edemez. Yeniden başlatıldığında kayıtlardan kesinti durumu kontrol edilir ve desteklenen yollarla açıkça devam ettirilir.
Kurtarma, önceki tüm eylemleri otomatik olarak yeniden çalıştırır mı?
Hayır. Kurtarma sırasında mevcut adımlar ve dış etkiler kontrol edilmelidir; bilinmeyen yan etkiler önce doğrulanır. Görev denemeleri, eylem durumları, kontrol noktaları ve sürüm kısıtları eski sonuçların yeni durumun üzerine yazmasını önlemeye yardımcı olur. Ancak tüm dış sistemlerde tam olarak bir kez yürütme garantisi sağlayamazlar.
Hands her Mac uygulamasını kullanabilir mi?
Uyumluluk, uygulamanın sunduğu Accessibility yapısına, sistem izinlerine ve Arslan'ın eylem kurallarına bağlıdır. Denetimleri okuyabilmek, tüm işlemlerin güvenle tamamlanabileceği anlamına gelmez. Hassas düğmeler ve tuşlar daha ayrıntılı onay gerektirir. Bazı uygulamalar veya denetimler yine de desteklenmeyebilir. 0.1.61'den itibaren Hands bir uygulamaya bakmak ve onda eylem yapmak için bir kez sorar (önce bu görev için); silme, gönderme, ödeme ve gönderim yine her seferinde sorar, Hands'in AppleScript aracı da öyle.
iPhone, Mac kapalıyken onun yerine görevleri tamamlayabilir mi?
Mac Bridge yolunda işlemleri yine Mac yürütür. Mac kullanılamıyorsa mesajlar iCloud'da bekler. v0.1.53, Mac tarafındaki Bridge'i yayımladı; v0.1.54 ise onu iPhone uygulamasına hazırladı, 0.1.61 ise Mac tarafına telefondan dosyalar ve canlı konuşmalar ekledi; sürüm notları Arslan for iPhone 1.0'ı hâlâ yakında App Store'da olacak diye anlatır, bu da orada olduğu anlamına gelmez. Telefonun mesajın alındığını göstermesi de görevin tamamlandığı anlamına gelmez.
Arslan'ın dosyalarıma yaptıklarını geri alabilir miyim?
Kısmen. 0.1.63'ten itibaren Arslan, bir tur çalışma klasörünü ilk kez değiştirmeden önce bir kontrol noktası kaydeder ve “Bu turu geri al” (yanıttaki ⋯ altında) dosyaları yerine koyar ve turu konuşmadan çıkarır. Klasörü yalnızca en fazla 20.000 dosya ve 5 GB içeriyorsa kaydeder (ortamlar, node_modules, derleme çıktıları ve önbellekler sayılmaz) ve kaydedemediğinde geri alma penceresi “Not saved” der. Çalışma klasörünü kapsar; gönderilmiş mesajlar gibi başka yerlerdeki etkileri kapsamaz.
Bir görevin çok fazla harcamasını engelleyebilir miyim?
0.1.63'ten itibaren her sohbet yanıtı ve her arka plan görevi varsayılan olarak $2 tutarındaki model harcamasında durur, yaklaşık üçte ikisinde toparlanmaya başlar. Ayarlar › Arka plan › Görev başına dolar sınırı'ndan değiştirebilirsin. Yalnızca fiyatı bilinen modeller buna sayılır.
Arslan çalışırken rotayı değiştirebilir miyim?
Evet, 0.1.63'ten itibaren. Mac penceresinde, iPhone'da ya da basılı tutarak konuşmayla yazılan bir mesaj çalışan yanıta bir sonraki adımında ulaşır ve henüz başlamamış adımlar atlanır. Yanıt zaten nihai yanıtını yazıyorsa mesajın hemen ardından çalışır.
Tüm testlerin geçmesi, her gerçek görevin tamamlanabileceği anlamına gelir mi?
Testler yalnızca kendi koşullarını kapsar. Birim testleri yerel mantığı, protokol testleri sınırlar arasındaki tutarlılığı, kurulum kabulü dağıtım çıktısını, gerçek görev karşılaştırmaları ise belirli modeller ve görevlerdeki sonuçları sınar. Model, web sayfaları, sistem izinleri ve dış uygulamalar sonucu değiştirebilir.
Sürüm numarası neden hâlâ 0.1.x?
Proje, v1 öncesi sürekli geliştirme aşamasındadır. Elliyi aşkın sürüm numarası bu gelişim sürecini yansıtır. Olgunluk değerlendirilirken somut yetenekler, hata yönetimi, test kapsamı ve yayın durumu birlikte ele alınmalıdır. Bu belgenin eksiksiz sürüm eki bu ayrımları korur.
16 / Sürüm eki0.1.0'dan 0.1.63'e eksiksiz değişiklik kaydı
Bu ek, v0.1.0–v0.1.63 arasındaki kararlı sürüm biçiminde 64 etiketi, 0.1.40'ın önizleme dalını ve 0.1.59'un betalarını kapsar. 27 Ekim 2026'da doğrulanan kamuya açık yayın kayıtlarına göre GitHub'da şu anda 63 resmi Release ve 6 ön sürüm Release olmak üzere toplam 69 yayın görünür. v0.1.39'un sürüm etiketi vardır, ancak şu anda karşılık gelen kamuya açık bir Release yoktur.
En yeni resmi sürüm v0.1.63, Pekin saatiyle 27 Ekim 2026 22:26:31 tarihinde yayımlandı (UTC ile 27 Ekim 14:26:31). Aşağıdaki tabloda tüm tarihler Pekin saatine göredir. Açıkça belirtilen v0.1.39 etiket tarihi dışında tarihler, Release'in published_at alanından alınmıştır; yayın tarihi yerine commit tarihi kullanılmamıştır.
sürüm · yükseklik = önceki etiketten bu yana commit sayısı (logaritmik)ön sürümyalnızca etiket, yayımlanmış sürüm yoken son
Sürüm, tarih ve commit sayısı için bir çizginin üzerine gelin; tıklayınca sürüm açılır.
| Sürüm | Pekin tarihi | Yayın durumu | Başlıca değişiklikler |
|---|---|---|---|
| v0.1.63 | 2026-10-27 | Resmi yayın | Yanıt sürerken rota değiştirme, yanıtlar yazıldıkça akıyor, bir turu geri alma Her yeni terminal komutu varsayılan olarak önce soruyor ve zamanlanmış görevler hiç komut çalıştırmıyor; yanıt sürerken yazılan mesaj ona bir sonraki adımında ulaşıyor; yanıtlar yazıldıkça akıyor (OpenAI uyumlu sağlayıcılar, Claude, Gemini); art arda gelen en fazla dört okuma aynı anda çalışıyor; “Bu turu geri al” çalışma klasörünü bir kontrol noktasından geri koyuyor; dosyalar ek olarak geri geliyor, iPhone'da da; önce modelin kendi araması; her istekte daha az araç; MCP araçları ne yaptıklarına göre soruluyor; görev başına $2 sınırı; masaüstü uygulamasının sunucusu sıkılaştırıldı; uzman dönemi kodu kaldırıldı (0.1.62'den 12.514 ürün satırı daha az). Notlar, 0.1.64'e neyin kaydırıldığını ve kaçırılan iki yayın öncesi eşiği listeliyor. |
| v0.1.62 | 2026-10-18 | Resmi yayın | Uzun komutlar bitiyor, daha az “kontrol etmeniz gerek”, MCP araçları bir sohbeti bozamıyor Bir düzeltme sürümü. Bir terminal komutu istediği süre kadar çalışıyor (varsayılan 2 dakika, en fazla 10) ve bir süre sınırı yazdığı çıktıyı koruyor; “kontrol etmeniz gerek” yalnızca bir eylem Mac'in dışında bir iz bırakmış olabilirse ve Arslan bunu ayırt edemiyorsa çıkıyor; MCP araç açıklamaları Anthropic, OpenAI uyumlu sağlayıcılar ve Gemini için yeniden biçimlendiriliyor ve bir sağlayıcının yine de reddettiği araç, yanıtı başarısız kılmak yerine dışarıda bırakılıyor; osascript ve shortcuts run yaygın terminal yazımlarında her seferinde soruyor; bir dosya yazmak çalışma klasörünün dışına çıkan bir bağlantıyı asla izlemiyor. 0.1.61 notlarının iki satırını düzeltiyor. |
| v0.1.61 | 2026-10-14 | Resmi yayın | Her yerde tek onay kartı, kendiliğinden başlayan MCP sunucuları, Claude yeniden çalışıyor Claude Opus 4.7 ve sonrası modeller, reddettikleri bir temperature ayarı için artık 400 hatası almıyor (ayar yalnızca onu kabul eden modellere gönderiliyor; bir sağlayıcı isteğe bağlı bir ayarı kabul etmeyi bıraktığında ayar kaldırılıp hatırlanıyor); açtığınız her MCP sunucusu arka planda başlıyor (aynı anda en fazla dört) ve Yetenekler sayfasının ile modelin ikisinin de okuduğu tek bir duruma sahip; sohbette, Inbox'ta, island'da ve iPhone'da aynı onay kartı: Once ya da For this task, In this conversation, Always ve not içeren No…, yanıt için 30 dakika ve sürenin dolması bir ret değil; iPhone dosyaları Mac'te Inbox/iPhone altına kaydediliyor ve canlı konuşmalar telefonda; sahte IP'li bir vekil sunucunun arkasında okunabilen web sayfaları, kendilerini tanıtan sayfa okumalarıyla. |
| v0.1.60 | 2026-10-11 | Resmi yayın | Hands v2: Mac uygulamalarınızı daha çok sizin gibi kullanıyor Hands'in üzerinde çalıştığı tek pencerenin görüntüsü (asla ekranın tamamı değil, asla kaydedilmiyor); toplu adımlar, doğrudan menü seçimleri ve arka planda açılan uygulamalar; birkaç uygulama için tek kart ve güvenilen uygulamalara kalıcı izin; silme, gönderme, ödeme ve gönderimi tamamlama ise yine her seferinde izin istiyor; ön planı yaklaşık bir saniyeliğine ödünç almak ve başka bir masaüstüne gitmek (ikisi de kapatılabilir), ekranı 30 dakikaya kadar devralmak ise yalnızca sizin onayınızla; yeni bir ilk çalıştırma deneyimi; iPhone'da eşleştirmeyi kaldırmak onu Mac'ten de kaldırıyor. |
| v0.1.59 | 2026-10-11 | Resmi yayın | Kopmayan sohbet, sizin dilinizde yanıt, bitmiş sayılan iş Uzun bir yanıt artık “Interrupted” olmuyor ve ikinci bir mesaj sırasını bekliyor; Arslan sizin yazdığınız dilde yanıt veriyor; işi yapmış arka plan görevleri tamamlanmış sayılıyor (klasörler diskte kontrol ediliyor, okunan dosyalar sayılıyor); “Desktop, Documents, Downloads: Off” bu klasörleri komutlara da kapatıyor; Arslan önde değilken istenen bir onay turu başarısız kılmak yerine bekliyor. Öncesinde dört beta vardı. |
| v0.1.58 | 2026-10-09 | Resmi yayın | Okunabilen yanıtlar, açılabilen dosyalar, istediğiniz model Arslan'ın yaptıkları, yanıtın altında açıldığında sade cümlelere dönüşen tek ve sakin bir satırda gösteriliyor; yazdığı dosyalar kart olarak geri geliyor; metin, tablo, görsel, PDF ve korumalı alanda HTML için okuyucusu olan tek bir çalışma paneli (Task, Files, Browser); her konuşmada herhangi bir sağlayıcının herhangi bir modeli, Set as default seçeneği ve bir bağlam halkasıyla birlikte; açık kontrol noktaları varken bir seviye artık geçilmiş sayılmıyor. |
| v0.1.57 | 2026-10-09 | Resmi yayın | Büyüyen yetenekler Bir adım Arslan'ın yapamadığı bir şey gerektirdiğinde MCP Registry'de, GitHub'da ve incelenmiş Skill kitaplıklarında arama yapıyor, bir kartla izin istiyor, adayı kurulum sırasında kod çalıştırmadan sabitlenmiş olarak kuruyor, tarıyor, varsayılan olarak reddeden bir korumalı alanda çalıştırıyor, bir kez test ediyor ve adımı yeniden deniyor. Capabilities sayfasında Discover, “Arslan found” ve her yetenek için bir dosya; GitHub Skill'leri bir commit'e sabitleniyor. |
| v0.1.56 | 2026-10-09 | Resmi yayın | İki katmanlı projeler Her proje için bir pano (Idea, Shaping, Doing, Done) ve her projeye, proje türünden model kullanılmadan taslağı çıkarılan seviyeler. Arslan kontrol noktalarını dosyalara, söylediklerinize ve tamamlanan çalıştırmalara göre işaretliyor; bir seviyeyi geçmek bir öneri olarak sunuluyor, Done ve Dropped kararı ise size ait. Hands her isteği en fazla bir kez yürütüyor ve “sent, not confirmed” durumunu dürüstçe bildiriyor. |
| v0.1.55 | 2026-10-08 | Resmi yayın | Onay isteyen her şey için tek görünüm Tüm kartlar, iletişim kutuları ve bildirimler tek bir tasarımı paylaşıyor; kartlar tek bir kuyrukta bekliyor; ⌘⏎ izin veriyor, Esc reddediyor. Island v2 kartları yanıtlıyor; riskli adımlar ise Arslan'da açılıyor. Inbox, kararınızı bekleyenleri topluyor; Settings yedi bölüme ayrıldı; Memory tek bir sayfa oldu; Capabilities anahtarlar olarak listeleniyor; Arslan kendi sürümünü biliyor. |
| v0.1.54 | 2026-10-08 | Resmi yayın | Arslan for iPhone'a hazırlık ve daha sıkı terminal kapısı Touch ID onayları geçerli sayılıyor; aynı iPhone yeniden eşleştiğinde eski kaydının yerini alıyor; bir telefonu kaldırmak, iCloud'da onu bekleyen mesajları siliyor; Settings ekranında Connecting…/Connected gösteriliyor. Terminal kapısı zincirdeki her komutu denetliyor, “bir daha sorma” yanıtının eşleşen her kuralı kapsamasını şart koşuyor, erişim token'ını yalnızca onu zaten sunan çağırana veriyor ve arka plan görevlerini korumalı alanda tutuyor. iPhone uygulaması hâlâ App Store'a gelmek üzere olarak belirtiliyor. |
| v0.1.53 | 2026-10-06 | Resmi yayın | Arslan Hands ve iPhone bağlantısının Mac tarafı Bağımsız macOS yardımcısı Accessibility iznini tutuyor, AX ağacını okuyor ve Mac uygulamalarını kullanıyor. Uygulama bazında izin, her hassas eylemde onay, durdurma ve izleme destekleniyor. Mac tarafındaki Bridge dahil edildi; iPhone App için yakında yayımlanacağı belirtildi. |
| v0.1.52 | 2026-10-03 | Resmi yayın | Bellek gerçekten modele ulaşıyor “Hakkınızda” ve “Arslan'ın bu Mac hakkındaki notları” bağlamda sürekli tutuluyor; geçmiş konuşmalarda arama yapılabiliyor. Düzeltmeler ve başarılı alternatif yollar geri alınabilir learned practices oluşturuyor. Sıradan korumalı alan betikleri daha az izin sorusu çıkarıyor. |
| v0.1.51 | 2026-10-03 | Resmi yayın | Ekran çentiği adası ve komut korumalı alanı Island görevleri ve ilerlemeyi çentikte gösteriyor, üzerine gelindiğinde planı gösteriyor, onay gerektiğinde açılıyor ve işin bittiğini veya durdurulduğunu bildiriyor. run_command varsayılan olarak yazmayı çalışma/geçici/önbellek dizinleriyle sınırlandırıyor ve anahtar dosyalarını koruyor. Sınır dışı erişim kullanıcı izni gerektiriyor. |
| v0.1.50 | 2026-10-03 | Resmi yayın | Bağlam ve teslimatın sonuçlandırılması agent_status, update_plan, başarısızlıkta alternatif yollar, yetenek iddialarının gerçeğe uygunluğu, bağlantı doğrulama ve daha güvenilir dosya kaydı eklendi. Activity istatistikleri yeniden düzenlendi. |
| v0.1.49 | 2026-10-02 | Resmi yayın | Sağlayıcının araç protokolüne dayalı yürütme katmanı OpenAI-compatible, native tool calling ve standart araç geçmişini kullanmaya başladı. Akıl yürütme korundu; kesilmeler, beklemeli yeniden denemeler ve akış watchdog'u ele alındı. Uzun çıktılar eksiksiz kaydedildi ve arama düzeltildi. |
| v0.1.48 | 2026-10-01 | Resmi yayın | Ortak Agent döngüsü Ön router ve uzman yürütme zinciri kaldırıldı; her mesaj doğrudan agent'a gidiyor. Varsayılan çalışma dizini ~/Arslan, terminal, tarayıcının otomatik hazırlanması, Activity ve görev çalışma alanı birleştirildi. |
| v0.1.47 | 2026-09-30 | Resmi yayın | Proaktif gelen kutusu Tamamlanmamış görevler, başarısız zamanlamalar ve web sayfası ya da dizin değişiklikleri deterministik olarak algılanıp kanıtlı Inbox önerilerine dönüştürüldü. Arka plan işi ancak kullanıcı öneriyi yapmayı seçtiğinde başlıyor. |
| v0.1.46 | 2026-09-30 | Resmi yayın | Daha düzenli ayarlar ve gereksiz harcamaların durdurulması Settings yan çubuğu sabitlendi; sağ taraf bağımsız kaydırılabiliyor. Kullanımdan kaldırılan uzmanların arka plandaki kendi kendine evrim tüketimi durduruldu. |
| v0.1.45 | 2026-09-30 | Resmi yayın | Tarayıcı ve Mac eylemleri Uygulamanın kendi tarayıcı eylemleri, Shortcuts ve AppleScript eklendi. Eylemler arka planda çalışıyor; web siteleri ve kestirmeler her biri ilk seferde izin soruyor, AppleScript ise her seferinde soruyor. |
| v0.1.44 | 2026-09-30 | Resmi yayın | One Arslan Uzman oluşturma ve görevlendirme durduruldu. Eski uzmanlar Skill'e dönüştürülebiliyor; zamanlanmış görevlerin tamamı Arslan tarafından yürütülüyor. Salt okunur işlem hataları artık tüm turu bitirmiyor; etkisi bilinmeyen eylemler yinelenmiyor. |
| v0.1.43 | 2026-09-30 | Resmi yayın | Bütçe sınırında önce sonuçlandırma Arka plan görevlerine ayrı bütçe verildi. Esnek sınıra ulaşıldığında arama sona erdirilip mevcut sonuçlar sunuluyor; kesin durdurma ancak tüketim gerçekten kontrolden çıktığında uygulanıyor. |
| v0.1.42 | 2026-09-28 | Resmi yayın | Arka plan işleri ve kesintisiz sohbet Uzun işler arka plan job'larına taşındı; sohbet devam edebiliyor. Tamamlanma ölçütleri, ilerleme ve Stop gösterildi; aynı anda en fazla 3 job desteklendi. Yeniden başlatmada kesinti açıkça işaretlendi. |
| v0.1.41 | 2026-09-27 | Resmi yayın | Menü çubuğunda sürekli çalışma Pencereyi kapatma, gizleyip çalışmayı sürdürmeye dönüştü. Masaüstü bildirimleri ve çalışırken otomatik uykuyu önleme eklendi. Kaynak incelemesi, varsayılan olarak kapalı olan kayıt sonrası öneriye dönüştü. |
| v0.1.40 | 2026-09-26 | Resmi yayın | Günlük araştırma asistanının kararlı sürümü Proje belleği, görev sürekliliği, belge kaynak kanıtları ve çalışma alanı kararlı sürümde birleştirildi. Veritabanı geçişinden önce otomatik yedek doğrulama ve yerel arayüzle elle yedekleme sağlandı. |
| v0.1.39 | 2026-09-14 (etiket tarihi) | Etiketi var; şu anda kamuya açık Release yok | Odaklanmış masaüstü ayarları (tag) Masaüstü Settings düzeni, yan gezinme ve API anahtarı gösterimi iyileştirildi. Sürüm etiketi mevcut, ancak sürüm şu anda kamuya açık Release listesinde yer almıyor; belirtilen tarih etiket tarihidir. |
| v0.1.38 | 2026-09-14 | Resmi yayın | Güvenilirliğin temelleri Varsayılan olarak erişimi reddeden Python korumalı alanı, bağımsız hesaplama çalışma zamanı, kalıcı Runs/kontrol noktaları/çıktılar, ortak yürütme bütçesi, recipes ve kurtarma güçlendirildi. Yerel Gemini araç çağrısı eklendi; loopback dışı HTTP/WebSocket kimlik doğrulama korumaları ve kısıtlı MCP ortamları eklendi. |
| v0.1.37 | 2026-09-03 | Resmi yayın | Yarı çift yönlü sesli sohbet Konuşma bittiğinde otomatik gönderen sesli sohbet eklendi. Mikrofon izni ve sesli okuma dili seçimi düzeltildi. |
| v0.1.36 | 2026-09-02 | Resmi yayın | Basılı tutarak konuşma Basılı tutarken ses kaydeden konuşma girdisi eklendi. |
| v0.1.35 | 2026-09-02 | Resmi yayın | Kurulu uygulamada proxy algılama Paketlenmiş uygulamanın sistem proxy'sini bulma yolu düzeltildi. |
| v0.1.34 | 2026-09-01 | Resmi yayın | Veritabanı geçişi düzeltmesi Başarılı kaydedildiği halde gerçekte tamamlanmamış olan geçiş düzeltildi. |
| v0.1.33 | 2026-09-01 | Resmi yayın | Bağlantı durumu gerçek teste dayanıyor Sağlayıcı bağlantı durumları birleştirildi ve açılışta kontrol edildi; yeşil durum gerçekten kullanılabilirliği temsil etmeye başladı. |
| v0.1.32 | 2026-08-31 | Resmi yayın | Sesli çıktı Yanıtların sesli okunması sağlandı. |
| v0.1.31 | 2026-08-31 | Resmi yayın | Yaygın klasörlere varsayılan okuma erişimi Varsayılan salt okunur kapsam Desktop, Documents ve Downloads klasörlerine genişletildi. |
| v0.1.30 | 2026-08-31 | Resmi yayın | Model hizmetinin ret gerekçeleri Üç sağlayıcı türünün ret yanıtları anlaşılır gerekçelere dönüştürüldü. |
| v0.1.29 | 2026-08-23 | Resmi yayın | Mevcut içerikte arama Mevcut kaynaklarda arama eklendi. Bellek gelen kutusu klavyeyle işlenebilir hale geldi ve yanlışlıkla silme önlendi. Doğrulamaya dayanarak FastAPI/Starlette sürüm üst sınırı kaldırıldı. |
| v0.1.28 | 2026-08-23 | Resmi yayın | Yetenek ekleme ekranında kısıt açıklamaları Sağlayıcının araç çağıramaması, yetenek ekleme girişinde açıklandı. Birden çok sayfa başlığında i18n anahtarlarının görünmesi düzeltildi. |
| v0.1.27 | 2026-08-21 | Resmi yayın | Ağ keşfi ve SSH Ağ keşfi, uzak makine kayıtları ve SSH yürütme eklendi. Her uzak yürütmede izin soruldu; aiosqlite eşzamanlılık hatalarının yanlış işleme bağlanması düzeltildi. |
| v0.1.26 | 2026-08-21 | Resmi yayın | Doğal dille zamanlanmış işler Arslan zamanlanmış görev oluşturabiliyor, oluşturduğu görevleri listeleyebiliyor ve belirli aralıklarla yeniden okuduğu bir kontrol listesi tutabiliyor (varsayılan olarak kapalı). Zamanlama izin kartı, çıktı bütçesi ve hata açıklamaları eklendi. |
| v0.1.25 | 2026-08-20 | Resmi yayın | Yerel çalışma alanını okuma ve yazma Çalışma alanı okunabilir hale geldi; yazma işlemleri oturum izni verildikten sonra yürütüldü. Discover sonuç açıklamaları iyileştirildi. |
| v0.1.24 | 2026-08-20 | Resmi yayın | Eklenti bildirimi ve etkin yeteneklerin görünürlüğü arslan.plugin.json tanındı. Yetenek ekleme MCP server düzeyinde onaylandı; eklenti geliştiricisinin sağladığı yapılandırma gösterildi ve Arslan'ın gerçekten sahip olduğu yetenekleri bilmesi sağlandı. |
| v0.1.23 | 2026-08-17 | Resmi yayın | Sohbet değişse de yürütme sürüyor turn journal ve yeniden bağlanmada olayların tekrar sunulması sayesinde devam eden yanıt turları korundu. Paketlenmiş uygulamanın npx'i bulması sağlandı. |
| v0.1.22 | 2026-08-16 | Resmi yayın | OAuth ve ilk kullanım rehberi Uzak MCP OAuth, OpenRouter oturumu ve dört adımlı ilk kullanım rehberi tamamlandı. Güncelleme kontrolü durumu görünür oldu; masaüstü kabuğu her push'ta derlenmeye başladı. |
| v0.1.21 | 2026-08-13 | Resmi yayın | Model yuvaları arayüzü ve bağlantı düzeltmeleri Göreve göre model yuvaları için kullanılabilir arayüz sağlandı. Anthropic araç şeması aktarımı düzeltildi ve SSRF sınırlarına tabi, kendi sunucusunda barındırılan SearXNG desteklendi. |
| v0.1.20 | 2026-08-09 | Resmi yayın | Anahtarların üç durumu, arama ve model görevleri Yapılandırılmamış, çözülebilen ve çözülemeyen anahtar durumları ayrıldı; veritabanı salt geçişi kararlı hale getirildi. Anahtarsız arama yedeği, arama kaynakları ve hataları, göreve göre model yuvaları ve yanıtı üreten modelin gösterimi eklendi. |
| v0.1.19 | 2026-08-04 | Resmi yayın | Başlangıç animasyonu ve yeni oturum Arka uç yüklenirken başlangıç animasyonu gösterildi. Açılış yeni oturumla başladı; kullanılmayan boş oturumlar temizlendi; başlangıç videosunun WebKit'te oynatılmaması blob URL ile çözüldü ve bir paketleme kontrolü düzeltildi. |
| v0.1.18 | 2026-08-03 | Resmi yayın | Arayüz regresyonları ve ayar iyileştirmeleri Açılır katmanların kendiliğinden kaybolması düzeltildi. LLM düzeni, sistem teması, OCR seçimi ve ilgili açıklamalar iyileştirildi. |
| v0.1.17 | 2026-08-03 | Resmi yayın | Eski uzman deneme oturumlarında süreklilik Ana sohbete dönmek artık uzman deneme oturumunu silmiyor. Eski uzmanlar ana sohbetin son turunu salt okunur arka plan bilgisi olarak okuyabiliyor. |
| v0.1.16 | 2026-08-03 | Resmi yayın | Açılır katmanlarda tutarlı etkileşim Menülerin ekran dışına taşması ve kapanma davranışı düzeltildi. Düzenleme penceresindeki değişikliklerin sessizce kaybolması önlendi ve port algılama düzeltildi. |
| v0.1.15 | 2026-08-02 | Resmi yayın | Yeniden başlatma sonrası oturum kurtarma Oturumların yeniden başlatma sonrasında korunması sağlandı. Açıklama sorusuna yanıt verildikten sonra eski uzman davet durumu korunmaya devam etti. |
| v0.1.14 | 2026-08-01 | Resmi yayın | Ayarların yeniden düzenlenmesi Settings yeniden gruplandı ve kaynak tüketimi denetimleri tek yerde toplandı. |
| v0.1.13 | 2026-08-01 | Resmi yayın | Boş durumlar, uluslararasılaştırma, bütçe ve kesilme düzeltmeleri Skill eklenirken oluşan kesilme ve eşzamanlı evrim denemelerinin birbirinin bütçesini iade etmesi sorunları düzeltildi. Boş durum ekranları ve arka uç uluslararasılaştırması tamamlandı. |
| v0.1.12 | 2026-07-31 | Resmi yayın | Yetenek ve arayüz eksiklerinin tamamlanması Yetenek uyumluluk matrisi, Brain araması, OCR dili seçimi ve Playwright MCP ön ayarı eklendi. Evrim değerlendirmesinin kaynak tüketimi sınırlandı ve paketlenmiş uygulamanın çalışırlık kontrolü eklendi. |
| v0.1.11 | 2026-07-29 | Resmi yayın | Yedek yol olarak sistem OCR'ı Görsel model okuyamadığında macOS Vision OCR devreye girdi. Sistem dili filtreleme ve paket kabulü tamamlandı. |
| v0.1.10 | 2026-07-28 | Resmi yayın | Model hata ayrıntılarının korunması Genel bir başarısızlık mesajıyla yetinmek yerine sağlayıcının özgün hata gövdesi istisnaya aktarıldı. |
| v0.1.9 | 2026-07-28 | Resmi yayın | Görseller ve taranmış PDF'ler Görseller girdi, üç sağlayıcı türü, sohbet ve eski uzman akışında uçtan uca desteklendi. Taranmış PDF'ler, görsel modellerin okuyabilmesi için sınırlı sayıda sayfa görüntüsüne dönüştürüldü. |
| v0.1.8 | 2026-07-28 | Resmi yayın | Sohbet ve pencere regresyonları Boş sohbet, çalışmayan sürükle bırak alanı ve sürüklenemeyen pencere olmak üzere üç regresyon düzeltildi. |
| v0.1.7 | 2026-07-28 | Resmi yayın | Paketlenmiş WebSocket için acil düzeltme Kurulu sürümde WebSocket bağlantısının kurulamayıp sohbeti kullanılamaz hale getirmesi düzeltildi. Dosya gerçekten kaydedilmediğinde içe aktarım artık başarılı gösterilmiyor. |
| v0.1.6 | 2026-07-27 | Resmi yayın | Düzen ve erişilebilirlik Skills taşmaları, yinelenen başlıklar, etkileşim adları ve düzen ayrıntıları düzeltildi. |
| v0.1.5 | 2026-07-27 | Resmi yayın | İşi bölmeyen güncelleme bildirimi Engelleyici iletişim kutusu yerine köşede bir güncelleme kapsülü eklendi; güncelleme kontrolü öncesindeki durum düzeltildi. |
| v0.1.4 | 2026-07-27 | Resmi yayın | Masaüstü önceliği ve uluslararasılaştırma Kurulum açıklamaları masaüstünü önceliklendirecek şekilde değiştirildi. Arka uç kararlı çeviri anahtarları üretmeye başladı; kalan sabit Çince metinler temizlendi ve regresyon kısıtları eklendi. |
| v0.1.3 | 2026-07-27 | Resmi yayın | Kurulum ve yüzen pencere DMG'den doğrudan çalıştırma engellendi; yüzen pencerenin başlık çubuğu ve sürükleme izinleri düzeltildi. |
| v0.1.2 | 2026-07-27 | Resmi yayın | Güncellemeler gerçekten kontrol ediliyor Eksik güncelleme kontrolü çağrısı eklendi. Güncelleme altyapısı daha önce vardı, ancak gerçekten kontrol başlatılmıyordu. |
| v0.1.1 | 2026-07-27 | Resmi yayın | İlk açılışta sohbet ve taslaklar İlk açılışta mesaj gönderme düzeltildi, sohbet taslakları korundu, Settings düzeni toparlandı ve Brain/Diagnostics yerelleştirmesi tamamlandı. |
| v0.1.0 | 2026-07-27 | Resmi yayın | İlk masaüstü kurulum sürümü Önceki Meta-Agent, bellek, araç ve araştırma yeteneklerini bir Tauri masaüstü uygulamasında birleştirdi. Python arka ucu, PyInstaller sidecar olarak uygulamayla dağıtıldı; imzalama, noter onayı, kurulum kabulü ve otomatik güncelleme çıktıları oluşturuldu. |
0.1.40 önizleme dalı: numaranın olması, yayımlandığı anlamına gelmez
Kamuya açık ön sürümler beta.3, beta.5 ve beta.6'dır. beta.1 ve beta.2'nin aday etiketleri ile ilgili kayıtları korunmuştur. beta.4 ayrı yayımlanmadı; değişiklikleri beta.5'e dahil edildi. Altı numara, kullanıcılara sunulmuş altı ayrı ön sürüm olarak yorumlanmamalıdır.
| Önizleme sürümü | Pekin tarihi | Kanıt durumu | Değişiklikler ve kapsam |
|---|---|---|---|
| v0.1.40-beta.1 kaydı | — (kamuya açık yayın tarihi yok) | Yayımlanmamış aday; etiketi korunuyor | personal companion önizleme adayı Proje/bellek/görev çalışma alanı, ayarlanabilir yan panel, herkese açık web sayfalarında salt okunur gezinme ve sınırlı dosya girdisi. beta.2 belgesi, beta.1'in yayımlanmadığını ve bulut derlemesinin AnyIO duyurusu nedeniyle iptal edildiğini açıkça belirtir; tag korunmuştur. |
| v0.1.40-beta.2 kaydı | — (kamuya açık yayın tarihi yok) | Yayımlanmamış aday; etiketi korunuyor | Güvenlik yaması adayı; CI yayını engelledi AnyIO'nun sabitlenmiş sürümü düzeltildi. İmzalı derleme/65 fresh-install kontrolü geçti, ancak aynı tag için CI geçmedi; belgede açıkça DO NOT PUBLISH yazıyor. Başarılı paketleme, aynı commit'in CI sonucunun yerini tutmaz. |
| v0.1.40-beta.3 | 2026-09-20 | Kamuya açık ön sürüm | Şu anda görünen ilk kamuya açık önizleme Çalışma alanı, salt okunur gezinme, dosya kaynakları, altı dilin kaynakları ve güvenlik düzeltmeleri birleştirildi. Yayında, imzalamadan önce exact-source CI'ın geçmesi zorunlu tutulmaya başladı. companion v1.2 yine de tamamlanmış değildi. |
| v0.1.40-beta.4 kaydı | — (kamuya açık yayın tarihi yok) | Ayrı yayımlanmadı; açıklama belgesi var | Ayrı yayımlanmayan kimlik ve güven açıklamaları Ayarlar gerçekten çalışan istemci sürümünü ve kararlı/önizleme kanalını gösteriyor; kısa kimlik özeti kopyalanabiliyor. beta.5, yayımlanmamış beta.4 değişikliklerini içerdiğini ve ayrı kurulum gerekmediğini açıkça belirtir. |
| v0.1.40-beta.5 | 2026-09-23 | Kamuya açık ön sürüm | Araştırma kanıtları ve süreklilik Okundu/okunmadı/kısmen okundu etiketleri, sınırlı kaynak bağlantıları, Word'ün güncel metninin çıkarılması ve revizyon bilgisinin açıklanması, bozuk izlere hata toleransı. Sınırlı model pilotu yapıldı, ancak 12/12 eksiksiz başarı elde edilmedi. |
| v0.1.40-beta.6 | 2026-09-23 | Kamuya açık ön sürüm | Görünüm ve uygulama kimliği iyileştirmeleri Simge güncellendi; buzlu turuncu/tek renk seçenekleri eklendi. WebKit başlangıç köşe yuvarlatması ve tipografi düzeltildi. Önizleme elle kuruluyor; kararlı otomatik güncelleme kanalı değişmedi. |
beta.2, yayın durumunun neden ayrıca kaydedilmesi gerektiğini gösterir: imzalı derleme ve kurulum kontrolleri başarılıydı, ancak etiketin CI'ı geçmediği için belgede açıkça yayımlanmaması istendi. beta.3, ardından “yayımlanacak commit için başarılı CI zorunludur” koşulunu ekledi. beta.5 ise yayımlanmamış beta.4 değişikliklerini içerdiğini ve önce beta.4 kurmanın gerekmediğini açıkça belirtti.
Bir değişiklik nasıl izlenir?
Resmi yayın satırları ilgili Release'e, v0.1.39 ise sürüm etiketine bağlanır. Değişiklik özetleri resmi sürüm notları ve komşu etiketler arasındaki commit'lerden derlenmiştir; yalnızca plan belgelerinde bulunan özellikler teslim edilmiş gibi sunulmaz. Somut uygulama incelenirken ilgili sürüm etiketi veya yayın commit'i sabitlenmeli; geçmiş sürümler sürekli değişen main üzerinden açıklanmamalıdır.
Depodaki bazı yayın belgelerinde derleme öncesinden kalan HOLD veya taslak açıklamaları vardır. Bu dosyalar o dönemin yayın sürecini açıklar, ancak mevcut kamuya açık yayın durumunu belirlemek için tek başına kullanılmamalıdır. Kamuya açık Release durumu ve nihai doğrulama kayıtları birlikte kontrol edilmelidir. Buradaki “şu anda kamuya açık Release yok” ifadesi, bu incelemede görülen durumu tanımlar; yayın belgeleri, v0.1.39 ve beta.2 için bir zamanlar yayımlanmamış Release taslakları bulunduğunu gösterir. Bu taslaklar artık Release listesinde yer almaz.
Tüm kamuya açık Releases; Sürüm etiketleri; beta.3 için aynı commit'in CI doğrulaması; beta.5'in yayımlanmamış beta.4 açıklaması; Güncel resmi sürüm.
17 / Sürüm temeli ve kaynak kod girişleriBelgedeki sonuçları kanıtlarıyla ilişkilendirmek
Bu belge, uygulamayı sabit bir sürüm üzerinden açıklar; kamuya açık sürüm kayıtlarını, Git etiketleri ve geçmişini, yayın commit'inin kaynak kodunu, mimari kararları ve kamuya açık kabul kayıtlarını karşılaştırarak doğrular. Önceki tasarımlar gelişimi açıklamak için kullanılır. Sonraki kodla değiştirilmiş davranışlar tarihsel olarak işaretlenir. Geliştiricinin bağımsız AI destekli çalışma biçimi, kendi açıklamasına dayanır.
| Konu | Esas alınan temel |
|---|---|
| Resmi sürüm | v0.1.63 · 9bbb6ad653b48f8c1e63c649b6f7217f074d6dad |
| Yayın zamanı | Pekin saati (UTC+8) 2026-10-27 22:26:31; UTC 2026-10-27 14:26:31 |
| Doğrulama tarihi | 2026-10-27. Tarihler aksi belirtilmedikçe Pekin saatidir. Git'teki uygulama aşamaları ile Release yayın tarihleri ayrı belirtilir. |
| Yayın sonrası geliştirme | main dalında 9bbb6ad6 sonrasında yapılan değişiklikler, bir resmi sürümle yayımlanana kadar v0.1.63'ın parçası sayılmaz. |
| Sürüm kapsamı | v0.1.0–v0.1.63 arasında kesintisiz 64 etiket; halen kamuya açık 63 resmi Release. 0.1.39 yalnızca etiketi bulunan sürüm olarak ayrıca belirtilmiştir. 0.1.40'ın altı beta numarası ve 0.1.59'un dört betası da farklı yayın durumlarıyla birlikte ayrı listelenir. |
Sorudan ilgili uygulamaya ulaşmak
- Proje nasıl gelişti: Kamuya açık Release kayıtları; İzlenebilen en eski commit; One Arslan; Ortak döngü.
- Program nasıl çalışmaya başlar: Masaüstü yaşam döngüsü; Yerel hizmet giriş noktası; Agent giriş noktası; Araç döngüsü.
- Modeller nasıl bağlanır: Uyarlayıcı; Araç etkileşim izi; Yürütme bütçesi.
- Görevler nasıl kaydedilir ve kurtarılır: Görev sözleşmeleri; Durum, kalıcılık, deneme ayrımı ve kontrol noktaları; Kabul; Yedekten geri yükleme sonrası onayların geçersizleştirilmesi ve görevlerin karantinaya alınması.
- Bellek nasıl kullanılır ve temizlenir: Kişisel bağlam; Kaynak arama; Deneyim; Bellek kalıcılığı; Sürümlü veritabanı geçişleri.
- Yetenekler nasıl genişletilir: Yerleşik yürütücüler; Eklenti bildirimi; MCP; Salt okunur worker'lar.
- İzinleri hangi bileşen uygular: Terminal politikası; Komut korumalı alanı; Yürütme ve koruma kullanılamadığındaki davranış; Hands yardımcısı.
- Telefon nasıl bağlanır: Bridge protokolü; Bridge yaşam döngüsü; Olay ve onay eşlemesi.
- Değerlendirme ve yayın nasıl yapılır: 0.1.51 gerçek görev karşılaştırması; 0.1.52 kabulü; Kurulum kabulü; Yayın iş akışı.
- Açık kaynak atıfları ve geri bildirim: Lisans; Üçüncü taraf atıfları; Güvenlik bildirim politikası; Proje Issues sayfası.
Bu belge, belirli bir sürümü ve doğrulanabilir sınırlarını açıklar. Sonraki sürümler için ilgili Release kaydı ile kaynak kod birlikte okunmalıdır. Mimari yönelimler, tasarım amacı, test kapsamı ve resmi teslimat ayrı ayrı açıklanarak okuyucunun her sonucun nerede geçerli olduğunu değerlendirmesi sağlanır.
Arslan teknik belgeleri · v0.1.63 sürümüne göre (kaynak 9bbb6ad653b4), kontrol tarihi 2026-10-27. Her sürümle güncellenir; kaynak dosyalar deponun docs-site/ klasöründedir.