
Memo, yerel-öncelikli ve gizliliğe saygılı bir güvenlik mimarisi ile tasarlanmıştır.
Tüm sağlayıcı API anahtarları (OpenAI, Anthropic, Google vb.) bekleme durumunda AES-256-GCM ile şifrelenir. Anahtarlar, mümkün olduğunda işletim sistemi anahtar kasasında saklanan makineye özel bir sırdan türetilir; bunun mümkün olmadığı durumlarda kısıtlı izinlere sahip dosya tabanlı bir sırra başvurulur. Anahtarlar hiçbir zaman günlüğe kaydedilmez, dışa aktarılmaz veya düz metin olarak iletilmez.
API sunucusunda IP başına hız sınırlaması için token bucket algoritması uygulanır:
| Uç Nokta | Hız |
|---|---|
/api/chat |
30 istek / dakika |
/api/embeddings |
60 istek / dakika |
| Diğer tüm uç noktalar | 120 istek / dakika |
Patlama kapasitesi sürekli hızın 2 katıdır. API yanıtlarında hız sınırı başlıkları (X-RateLimit-*) bulunur.
filepath.Clean ile temizlenir.413 Request Entity Too Large yanıtı alır.config.yaml, memo.db) 0600 izinleriyle (yalnızca sahibin okuma/yazma) oluşturulur.~/.memo/) 0700 izinleriyle oluşturulur.os.CreateTemp kullanır ve süreç sonlandığında temizlenir.Senkron verileri uçtan uca şifrelidir:
Bir ajan araçları çalıştırdığında:
Uzaktan erişim (LAN veya ngrok) açıldığında, her istek Ayarlar'da gösterilen erişim token'ını sunmak zorundadır (v3.3.3). Daha önce, o adrese ulaşabilen herkes (aynı Wi-Fi'daki biri, ya da ngrok linkine sahip biri) hiçbir kimlik doğrulaması olmadan sağlayıcı API anahtarlarını okuyabiliyor, veri silebiliyor veya makinede komut çalıştırabiliyordu. Mobil uygulama bu token'ı zaten gönderiyor; yalnızca yerel kullanım (uzaktan erişim kapalıyken, varsayılan durum) bundan etkilenmez.
govulncheck'in işaretlediği golang.org/x/text (WhatsApp entegrasyonunun profil fotoğrafı sorgusu üzerinden erişilebilen bir sonsuz döngü açığı) ve ilişkili golang.org/x/net bulguları, her iki bağımlılık güncellenerek yamalandı.WhatsApp köprüsü, aynı konuşmadan eş zamanlı mesaj işlemeyi önlemek için bir mutex kullanır; böylece oturum durumunda yarış koşulları engellenir. Mesajlar kuyruğa alınır ve sohbet başına sıralı olarak işlenir.