MemoDocumentation
EN

Memo — Proje Dosya Haritası

Bu dosya, projedeki her kaynak dosyanın ne işe yaradığını kısaca açıklayan bir
referans ağaçtır. Elle güncel tutulur — büyük bir refactor sonrası tekrar
oluşturulması gerekebilir.

7 Kasım 2026'da v5.0.0'a göre güncellendi: mail, twin, autonomy, subagents, updater, components, telemetry, webchat ve küçük yardımcı paketler eklendi (iç paket sayısı 65). Aşağıdaki v4.5.0 notu önceki güncellemeyi anlatır.

v4.5.0'a göre güncellendi (2026-09-15): masaüstü maskotu, Code Mode
Plan/Auto/Build alt-modları, ve internal/livemode/, internal/openaiapi/,
internal/remoteauth/, internal/browserengine/, internal/cliproxy/,
internal/stt/ paketleri eklendi.


1. Go Backend

Kök dizin

main.go          — CLI giriş noktası: headless REST API sunucusu ya da interaktif terminal REPL'i başlatır
embed.go         — go:embed ile binaries/ placeholder'ı ve version dosyasını binary'ye gömer

cmd/

cmd/proactive-demo/
  main.go — sahte bir alışkanlık (habit) uydurup tüm proaktif öğrenme pipeline'ını çalıştıran CLI demo

internal/agent/ — Agent/tool çalıştırma motoru

internal/agent/
  executor.go        — Executor: registry, permissions, sandbox'ı birbirine bağlayan üst düzey orkestrasyon
  pipeline.go         — AgentEvent tipleri ve tool-calling döngüsünü event olarak akıtan pipeline (maxIters=40)
  execute_tool_call.go — Executor.ExecuteToolCall: tek bir tool çağrısının izin-kontrolü+çalıştırma+event-yayınlama akışı (pipeline.go'dan çıkarıldı)
  sandbox.go          — SandboxConfig: rate limit, timeout, korumalı yollar (tool güvenliği)
  permissions.go      — PermissionManager: tool+argüman bazlı izin politikalarını diske kaydeder
  permissions_test.go — izin politikası wildcard eşleşmesi ve tek seferlik reddin temizlenmesi testleri
  tools.go            — ToolDef/ToolRegistry ve DangerLevel sınıflandırması; NewRegistry()'de 40 yerleşik tool kayıtlı (v4.6.0: open_app + 7 browser_* eklendi; 4'ü WhatsApp) (bkz. Ajan Modu doc'undaki tam liste)
  backup.go           — BackupManager: agent dosya düzenlemelerinden önce anlık yedek alır, geri yükler
  backup_test.go      — BackupManager oluşturma/geri yükleme round-trip testleri

internal/agent/tools/  — yerleşik tool'ların implementasyonları (internal/agent/tools.go'daki registerBuiltins() kayıtlarının ExecuteFn'leri), aşağıdaki dosyalara dağılmış
  file.go             — read_file/write_file/delete_file/list_directory/get_file_info tool'ları: sandbox'lanmış taban yol içinde dosya G/Ç
  edit.go             — edit_file/insert_line/delete_lines tool'ları: mevcut dosyalara string/satır aralığı değişikliği uygular
  edit_test.go        — EditFile satır ve string-replace davranışı testleri
  changedir.go        — change_directory tool'u: ajanın sandbox tabanını sohbetin geri kalanı için değiştirir
  search.go           — search_files tool'u: proje dizininde desen/glob arama
  command.go          — run_command tool'u: 43 desenlik kara liste + timeout korumasıyla shell komutu çalıştırır; RunCapturingOutput (pipe değil geçici dosya ile çıktı yakalama — arkaplana atılan süreçler artık takılmıyor)
  sysproc_unix.go / sysproc_windows.go — platform-özel process-group kurulumu/öldürme (command.go'nun arkaplan süreç desteği için)
  websearch.go        — web_search tool'u: internal/websearch'ü agent'tan çağrılabilir hale getirir
  fetchpage.go        — fetch_page tool'u: bir URL'nin tam içeriğini Markdown'a çevirir
  fetchbudget.go       — WithFetchBudget: bir istekte fetch_page'in en fazla 5 farklı domain deneyebilmesini sınırlayan context bütçesi
  whatsapp.go         — whatsapp_send/search/latest/messages tool bağlamaları, enjekte edilen client arayüzü üzerinden (ayrı, kapsamlandırılmış registry'de)
  calendar.go         — get_calendar_events tool'u
  routine.go          — create_routine/list_routines/cancel_routine tool'ları
  provider.go         — configure_provider tool'u: agent'ın kendi sağlayıcı ayarlarını değiştirmesine izin verir
  selfclone.go        — self_clone tool'u: çalışan Memo binary'sini/projeyi başka dizine kopyalar
  selfclone_test.go   — SelfClone'un kendine/alt dizinine klonlamaya karşı korumalarının testi
  sendfile.go         — share_file tool'u: bir dosya/klasörü (klasörse zip'leyerek) bu konuşmaya geri gönderir
  plan.go             — save_code_plan tool'u: Code Mode Plan alt-modunun çıktısını data/plans/<proje-slug>/plan.md'ye yazar (write_file'ın proje-dizini sandbox'ından bağımsız, ayrı bir yol doğrulaması kullanır)
  plan_test.go        — save_code_plan'ın path-traversal korumasının testi
  openapp.go          — open_app tool'u (v4.6.0): adı verilen masaüstü uygulamasını ya da boş sekmeli varsayılan tarayıcıyı başlatır; Medium tehlike seviyesi
  applaunch.go / applaunch_unix.go / applaunch_windows.go — open_app'in Linux uygulama araması: görünen adı Desktop Entry kayıt defterinden (Flatpak/Snap dahil) çözer, startDetached ile başlatır
  browser.go          — browser_navigate/click/type/scroll/screenshot/get_text/close tool'ları (v4.6.0): etkileşimli tarayıcı oturumuna bağlanır; get_text tıklanabilir öğeleri gerçek seçicilerle listeler
  taskmd_tools.go     — create_task_md/edit_task_md tool'ları
  taskstatus.go       — get_task_status/pause_task/resume_task tool'ları
  selfdrivingtask.go  — start_self_driving_task tool'u
  sandboxctx.go        — WithSandboxSetter/SandboxSetterFromContext: change_directory'nin sandbox'ı çalışma zamanında değiştirebilmesi için context köprüsü
  l10n.go              — SetUILanguage/T: bu paketin kendi TR/EN metin yardımcıları (tools.go'nun `internal/app`'e bağımlı olmadan yerelleştirme yapabilmesi için)
  calendar_test.go, command_test.go, file_test.go, provider_test.go, readonly_allowlist_test.go — testler

internal/agentcli/ — Claude Code / Codex CLI'ı sohbet sağlayıcısına çeviren köprü (beta)

internal/agentcli/
  claude_code.go          — Claude Code CLI'ı provider.Provider arayüzüne saran, alt-süreç olarak çalıştıran implementasyon
  codex.go                — Codex CLI için aynı köprünün karşılığı
  commands.go              — CLI'ın kendi `/` komutlarını (.claude/commands, .codex/prompts, skill'ler) keşfeder
  commands_reported.go     — komut listesini Memo'nun `/` popup'ına raporlar (proje/kişisel/skill/yerleşik etiketiyle)
  commands_reported_test.go, commands_test.go, models_test.go, claude_code_test.go, codex_test.go — testler
  models.go                — CLI sağlayıcı için sahte/statik model listesi
  sysproc_unix.go/sysproc_windows.go — alt süreç grubu kurulumu (process-group kill için)

internal/provider'ın kendisi değil — bunlar HTTP çağrısı değil, dosya düzenleyebilen/komut çalıştırabilen durumlu (stateful) yerel süreçler, kendi oturum/auth modelleriyle.

internal/anthropicapi/ — Developer API Gateway (Sidebar → Developer)

internal/anthropicapi/
  anthropicapi.go          — Anthropic Messages API'sinin (ANTHROPIC_BASE_URL) sunucu tarafı implementasyonu; internal/provider/claude.go'nun (istemci tarafı) aynadaki karşılığı — Claude Code gibi araçların Memo'yu gerçek Anthropic API'si sanıp yerel modele/kendi API key'lerine yönlendirmesini sağlar
  anthropicapi_test.go     — testler

internal/routine/ — Rutinler (zamanlanmış otomasyonlar)

internal/routine/
  types.go        — Routine veri tipi ve zamanlama alanları
  extractor.go     — doğal dil açıklamasından bir Routine yapılandırması çıkarır (LLM tabanlı)
  loop.go          — zamanlanmış rutinleri tetikleyen arka plan döngüsü, cihaz saat dilimi ofsetiyle
  store.go         — data/routines/*.json — rutin başına bir dosya
  *_test.go        — testler

internal/stats/ — Kullanım İstatistikleri (Settings → Stats)

internal/stats/
  store.go       — her tamamlanan sohbet turunu (yerel/agent/orchestra/harici sağlayıcı) data/usage.db'ye kaydeder; incognito'da kayıt yok
  store_test.go  — testler

internal/swarm/ — Memo Swarm (beta)

internal/swarm/
  room.go       — Host/Join oda kodu, katılımcı listesi, pay (yüzde) yönetimi
  worker.go     — llama.cpp rpc-server ile bir makinenin işlem gücünü havuza katma
  *_test.go     — testler

macOS'ta henüz yok (yardımcı binary orada paketlenmiyor).

internal/taskloop/ — Self-Driving otonom çok-adımlı görev döngüsü motoru (v4.4.0'da büyük genişleme — bu bölüm o genişlemeyle güncellendi, önceki hâli sadece 3 dosya listeliyordu)

internal/taskloop/
  engine.go          — worker/review-chief döngüsü: processItem bir maddeyi çalıştırır (busy-chat/rate-limit/transient/auth hata sınıflandırmasıyla), chief'e onaylatır, sıradakine geçer; planlayıcı/uygulayıcı modunu da yönetir
  schema.go           — Task.md formatının tek insan/LLM-yüzlü tanımı: TaskMdSchemaDoc() (model+kullanıcıya gösterilen spec), TaskMdTemplate(), RenderTaskMd() — taskmd.go'daki parser'la schema_parse_sync_test.go üzerinden senkron tutulur
  taskmd.go           — ParseTaskMd: Task.md'yi header/intro/madde/not olarak ayrıştıran gerçek parser; NotifyLevel (# bildirim: header'ından)
  plan.go             — Plan: planlayıcı modunun çıktısı (küçük, tek tek doğrulanabilir adımlar + kabul kontrolleri + bağımlılık DAG'ı), Plan.md render/parse
  runtime.go           — RunningTaskInfo: `task_list` komutu ve GET /api/tasks/running için çalışan bir görevin canlı görünümü (store + engine'in bellek-içi durumu birleşimi)
  notify.go            — Notification: bir taskloop olayının kullanıcının bildirim kanallarına yönlendirilmesi (NotifyBus)
  retry.go             — RetryScheduler: "waiting-limit" durumundaki listeler için tek seferlik zamanlayıcılar (rate-limit sonrası aynı maddeden devam)
  provider_err.go      — providerFailKind: worker-turu hatasının en-iyi-çaba sınıflandırması (auth/rate-limit/transient) — döngünün bekle mi/sağlayıcı değiştir mi/vazgeç mi kararını besler; ErrChatBusy + IsChatBusyErr de burada
  subagent.go          — SubRole ve SubAgentOrchestrator.Spawn: büyük bir madde için 1 yazma-yetkili coder + paralel en fazla 3 salt-okunur analyzer/reviewer/test-runner alt-ajanı
  store.go            — görev listesi kalıcılığı (JSON store)
  *_test.go            — testler (engine_chatbusy/concurrency/mirror/planexec/planning/selfheal_test.go dahil, canlı senaryoları taklit eden geniş bir test seti)

internal/tts/ — Live Mode metin-konuşma (Piper + opsiyonel OpenAI TTS)

internal/tts/
  tts.go             — Piper binary'sini saran Synthesizer (yerel, çevrimdışı, varsayılan)
  openai.go           — opsiyonel harici OpenAI TTS sağlayıcısı
  router.go           — hangi TTS motorunun kullanılacağına karar verir, hata durumunda yerel Piper'a düşer
  filler.go            — cevap üretilirken çalan kısa "düşünme" sesi (hmm/mm/ah)
  voice_store.go       — Hugging Face'ten küçük, elle seçilmiş Piper ses koleksiyonunu indirip yöneten yerel katalog
  *_test.go            — testler

internal/shutdown/, internal/gguf/, internal/jsonutil/, internal/browseropen/ — küçük paylaşılan yardımcı paketler

internal/shutdown/shutdown.go     — main()'in seçtiği (select) süreç-geneli graceful-shutdown sinyali; eski os.Signal-tabanlı yöntemin Windows'ta sessiz no-op olması sorununu çözer
internal/gguf/gguf.go             — bir GGUF dosyasının sadece metadata bölümünü okuyup gerçek maksimum context ve tool-calling desteğini tespit eder (tensor verisine hiç dokunmaz)
internal/jsonutil/jsonutil.go     — paylaşılan JSON yardımcıları
internal/browseropen/browseropen.go — varsayılan tarayıcıda URL açma (CLI'ın --github/--bugreport/--docs bayrakları ve Tailscale giriş akışı tarafından kullanılır)

internal/api/ — LLM API istemcisi (OpenAI uyumlu)

internal/api/
  client.go     — OpenAI uyumlu chat completion API'si için HTTP Client (yerel/uzak)
  streaming.go  — SSE stream decoder ve <think> etiketi ayrıştırıcısı (reasoning/normal metin ayrımı)
  types.go      — Message/ContentPart/ImageURL istek-cevap tip tanımları
  api_test.go   — Message constructor'larının (metin ve multimodal) testleri

internal/app/ — Merkezi orkestratör (en büyük paket)

internal/app/
  app.go              — App struct'ının merkezi tanımı, Startup/Shutdown ile tüm alt sistemleri bağlar
  app_test.go         — App'in temel getter'larının (config, stiller, sistem promptu) testleri
  chat.go             — SendMessage(Stream) giriş noktaları, gizli mod, görsel/dosya ekli sohbet
  llm.go              — Sohbet çağrılarını agent/orchestra/provider/yerel LLM arasında yönlendirip akıtır
  llama.go            — Yerel llama.cpp sohbet modeli yaşam döngüsü: başlat/durdur/durum/config/kurulum
  embedding.go        — Ayrılmış embedding llama-server'ının başlat/durdur/durum yönetimi
  memory.go           — RAG hafıza kaydet/getir/birleştir, hafıza ayarları, elle hafıza içe/dışa aktarma
  models.go           — HuggingFace model arama/indirme ve yerel model yönetimi köprüsü
  providers.go        — Harici LLM sağlayıcıları için CRUD ve bağlantı testi
  orchestra.go        — Orchestra (çoklu-model şef) yapılandırmasını al/güncelle
  proactive.go        — Proaktif öğrenme motorunun Decider'ını ve öneri yayıcısını App'e bağlar
  learning.go         — Intent extractor ve takvim deposunu App'e bağlar (initLearning)
  sessions.go         — Sohbet oturumu yaşam döngüsü: yeni sohbet/agent sohbeti, session manager erişimi
  agent.go            — Agent modu aç/kapa ve izin-cevabı köprüsü (Executor'a)
  cliadmin.go         — `memo` terminal CLI wrapper'ını kurar/kaldırır (~/.memo, ~/.local/bin)
  cliadmin_test.go    — RemoveCLI'ın CLI giriş dosyalarını sildiğinin testi
  settings.go         — kimlik/mood/self-interest/web-search/sistem-yönetimi ayar get/set'leri
  skill.go            — Skill kurulum/liste/kaldırma ve aktif skill prompt enjeksiyonu
  skill_invoke.go     — skill çağrısı: mesajdan (/ad, "X skill", "gerekli skilleri") tespit, sohbete özel açma, akışta "skill_used" bildirimi, ajanın use_skill aracı
  stt.go              — whisper konuşma-metin sunucu kontrolü ve ses kayıt/transkripsiyon
  sync.go             — Google Drive bulut senkronizasyon auth, tetikleme, ayarlar, bağlantı kesme köprüsü
  remote.go           — Uzak erişim durumu/config: web sunucu portu, tokenlar, ngrok anahtarları
  remote_tailscale.go — Yerel web sunucusuna gömülü Tailscale tünelini başlatır/durdurur
  whatsapp.go         — WhatsApp eşleştirme, sohbet akışı, arama ve durum köprü metodları
  version.go          — Uygulama versiyonu getter'ı ve versiyon endpoint'ine karşı güncelleme kontrolü
  backup.go           — Tam veri dışa/içe aktarma (.memo zip), içe aktarma öncesi anlık görüntü, tüm veriyi silme
  helpers.go          — mesaj/context builder'ları, token bütçesi, dosya indirme/kopyalama yardımcıları
  helpers_test.go     — buildMessages'in mood-disabled sistem promptu temizleme testi
  shutdown_test.go    — Shutdown'ın zamanında biten temizlik için zorla çıkış yapmadığının testi
  file_mentions.go    — ListProjectFiles: sohbette `@dosya` anmak için proje dosyalarını arar
  install_id.go       — InstallID: kuruluma özel rastgele kimlik (BUG-ONB10 fix'i, data dizini silinince yok olur)
  onboarding.go       — GetOnboardingComplete: ilk-çalıştırma sihirbazının tamamlanıp tamamlanmadığı
  insight.go          — GenerateSelfInsight (`/insight`): ruh hali/hafıza geçmişinden gerçek bir örüntü varsa anlatır
  routine.go          — Rutinler alt sisteminin App'e bağlanması: initRoutines, Decider — bkz. internal/routine/
  proactive_ambient.go — Proaktif öneri (ambient nudge) penceresinin aktif olup olmadığı ve prompt'a eklenecek blok
  stats.go            — Kullanım istatistikleri alt sisteminin App'e bağlanması — bkz. internal/stats/
  telegram.go / telegram_l10n.go — Telegram bot köprüsü durum/mesajlaşma metodları + TR/EN şablon metinleri
  server_browse.go    — BrowseServerPath: sunucu tarafı dosya sistemi tarayıcısı (dosya seçme dialog'u için)
  sendfile.go         — share_file agent aracının arkası: bir indirme linki (outbox) üretip süreli olarak sunar
  swarm.go            — Memo Swarm (beta) alt sisteminin App'e bağlanması — bkz. internal/swarm/
  stt_providers.go / tts_providers.go — data/stt_providers.json + data/tts_providers.json'dan STT/TTS sağlayıcı listesini yükler
  tts.go / tts_voices.go — Piper synthesizer kurulumu (initTTS) + indirilebilir ses kataloğu (GetTTSVoiceCatalog)
  clients.go          — Bağlı istemcilerin (client_id) canlı/durgun takibi — bir istemci durgunlaşınca temizlenir
  remote_auth.go      — RemoteDeviceInfo: istemcilere gösterilen cihaz listesi DTO'su
  claudecodecli.go / cli_status.go / cli_stream.go — Claude Code/Codex CLI sağlayıcı köprüsü: bağlantı durumu, sohbet-bazlı CLI provider/workdir ayarları, CLI stream başlatma
  devgateway.go / devgatewaylog.go — Geliştirici API Ağ Geçidi (Sidebar → Developer) config'i + canlı istek/yanıt günlüğü
  agent_chat_context.go / selfchat_context.go / selfchat_permission.go — hangi ajan sohbetinin/self-chat yüzeyinin (WhatsApp/Telegram) şu an aktif turu işlediğini taşıyan context anahtarları + self-chat'e özel izin/yanıt akışı
  chat_locks.go       — Sohbet-bazlı stream kilidi: busyStreamChan, withChatLockWait — bir Self-Driving turu meşgul bir sohbeti kuyruğa alıp bekleyebilir; GetStreamingChatIDs (/api/chats/streaming) kenar çubuğunun "hâlâ çalışıyor" göstergesini besler
  stream_watchdog.go  — düz sohbet akışının zamanlaması (v4.6.0): 300 sn sessizlik (ilk kelime dahil) + 30 dk üst sınır; sabit toplam süre değil. Zaman aşımı ⏱️ olarak işaretlenir, gelen metin saklanır
  context_report.go   — bağlam göstergesi (v4.6.0): noteContextSnap (son kurulan istemin oluşumu), noteTurnUsage (sağlayıcının tur sonu sayısı), ContextReport (GET /api/context), contextLimits (Abonelik kota pencereleri); localContextWindow/currentContextWindow/agentToolTokens ortak yardımcıları
  conversation_compact.go — maybeCompactHistory: tüm istem pencerenin %90'ına (ya da sağlayıcının önceki sayısı oraya) ulaşınca en eski ~%60'ı özetler; tüm sağlayıcılarda aynı kural
  error_text.go       — FriendlyError: sağlayıcı/ağ hatalarını arayüz dilinde cümleye çevirir (SSE parçası + kaydedilen mesajda uygulanır; ham metin sınıflandırma için korunur ve günlüğe yazılır)
  quotasignal.go      — aktif modelin arkasındaki kullanım hakkı için quota_exhausted/quota_low sinyali: bitiş ve yenilenme zamanı (hata metninden, yoksa kota anlık görüntüsünden)
  browser_frame.go    — browser_frame SSE parçası: sayfayı değiştiren her tarayıcı aracından sonra panele canlı ekran görüntüsü (sohbet geçmişine girmez)
  subs.go             — Subscriptions sağlayıcısı: syncSubscriptions sidecar'ı başlatan ve "Subscriptions" custom sağlayıcısını yazan tek yer; SetProviderModel
  retry.go            — retryWithBackoff: genel amaçlı, anında+tekrarlı geri çağırma yardımcı fonksiyonu
  livemode.go / livemode_delegate.go / livemode_session.go / livemode_session_wrapper.go / livemode_voice.go — Live Mode v2 (native audio-to-audio): motor/mod/izin doğrulama, delegate sohbeti, gerçek livemode.Session kurulumu, sesli izin-onay sarmalayıcısı, motor bazlı sentezleme/transkripsiyon
  memory_import.go    — "Hafızayı İçe Aktar": başka bir AI'ın özetini atomik gerçeklere bölen JSON çıkarma yardımcıları
  code_submode.go     — Code Mode alt-mod durumu (Session.CodeSubMode/AwaitingPlanDecision), üç sistem promptu (plan/auto/build) ve codeSubModeDirective resolver'ı, classifyPlanDecisionReply
  plan_tool.go        — save_code_plan agent aracının arkası: projectSlug hesaplama + data/plans/ altına yazma
  activity.go         — uygulama-geneli "Memo şu an ne yapıyor" aktivite sinyali (maskot ve REPL spinner/renk çıktısının ortak kaynağı) — internal/models/activity.go'daki tipleri günceller/yayınlar

Self-Driving görev döngüsü — App köprü katmanı (internal/taskloop'u backend'e bağlayan dosyalar, v4.4.0'da eklendi):

internal/app/
  tasklist.go           — CreateTaskListFromTaskMd: bir Task.md dosyasını ayrıştırıp bir görev listesini tohumlar
  tasklist_run.go        — taskRunConfig: çalışan bir görev listesinin hangi sağlayıcı/model'i kullandığının özel görünümü
  tasklist_stepexec.go   — runPlanStep (planlayıcı modu adım çalıştırıcı) + emitToolActivity/toolVerbs (canlı görev kartı aktivite satırları)
  tasklist_stream.go     — streamIdleTimeout: bir worker turu için "bu kadar süre yeni token yok → bırak" bütçesi
  tasklist_planner.go    — planTask: "planlayıcı" modu için WithPlanner callback'i, Plan.md üretimi
  tasklist_planconfig.go — planTaskConfig: WithPlanConfig callback'i, liste başına bir kere self-configuration
  tasklist_roleconfig.go — roleModels: planlayıcı/kodlayıcı/doğrulayıcı rolleri için çözümlenmiş model
  tasklist_selfheal.go   — healTaskProvider: WithSelfHeal callback'i, sağlayıcı hatasına tepki (geçiş mi/bekle mi)
  tasklist_escalate.go   — escalateStep: WithEscalator callback'i, takılan bir adımın hedefli yeniden-planlanması
  tasklist_settings.go   — GetTaskLoopSettings: kalıcı task-loop config'i
  task_control.go        — taskSurface: bir kontrol mesajının hangi köprüden (chat/API) geldiğini tanımlar
  task_events.go         — taskChatEvent: bir Self-Driving olayının, güncel ilerleme bilgisiyle zenginleştirilmiş hâli
  task_notify.go         — taskNotifyQueueSize/taskNotifySendTimeout: bildirim pompasının sınırları (engine goroutine'ini bloklamaz)
  taskmd_tool.go         — taskMdEditorAdapter: create_task_md / edit_task_md agent araçlarının arkası
  taskstatus_tool.go     — taskStatusToolAdapter: get_task_status agent aracının arkası
  selfdriving_task_tool.go — selfDrivingTaskToolAdapter: start_self_driving_task agent aracının arkası
  subagent_runner.go     — appSubAgentRunner: taskloop.SubAgentRunner'ı uygular, her Run bir efemer alt-ajan turu

internal/calendar/

internal/calendar/
  event.go          — paket dokümantasyonu, Event struct'ı ve Source sabitleri (sohbet/whatsapp/elle)
  store.go          — SQLite tabanlı Store: takvim olayları için şema ve CRUD
  reminder.go       — ReminderLoop: yaklaşan olayları yoklar, süre öncesi bildirim üretir
  bridge.go         — AddFromIntent: bir intent.IntentResult'ı kalıcı bir takvim Event'ine çevirir
  calendar_test.go  — store kurulum/kapatma yardımcı fonksiyonu ve olay kalıcılığı testleri

internal/cloudsync/

internal/cloudsync/
  crypto.go            — Parola/donanım ID'sinden PBKDF2 ile AES-256-GCM şifreleme/çözme
  crypto_test.go       — şifrele/çöz round-trip doğruluğu testi
  drive.go             — Google Drive API istemcisi: appDataFolder'da yedek yükle/listele/budama
  sync_manager.go      — Manager: etkileşimleri sayar, her N mesajda zip+şifrele+yükle yapar
  sync_manager_test.go — SQLite WAL yardımcı dosyalarının arşive dahil edildiğinin testi

internal/config/

internal/config/
  config.go       — AppConfig struct'ı, YAML yükle/kaydet ve platforma duyarlı DataDir() çözümü
  config_test.go  — Default() config değerlerinin (API, hafıza, llama varsayılanları) testi

internal/database/

internal/database/
  sqlite.go          — DB wrapper: sqlite3 üzerinde yazmaları tek bir worker kanalından geçirerek serileştirir
  vec_register.go     — sqlite-vec eklentisi driver'ını vektör arama desteği için kaydeder
  sqlite_test.go      — Open'ın DB dosyası için eksik üst dizinleri oluşturduğunun testi

internal/fileutil/

internal/fileutil/
  atomic.go       — AtomicWrite: tmp dosya + rename ile çökmeye dayanıklı dosya yazma (Windows fallback'iyle)
  atomic_test.go  — AtomicWrite'ın doğru içerik yazıp geri okuduğunun testi

internal/identity/

internal/identity/
  identity.go       — Identity struct'ı: isim/stil/rol ve hafızalardan sistem promptunu inşa eder
  identity_test.go  — Identity'nin varsayılan ve özel-rol değerleriyle inşasının testi
  styles.go         — styleMap: hazır iletişim stili prompt metinleri (resmi, samimi, teknik, yaratıcı)

internal/intent/

internal/intent/
  result.go             — paket dokümantasyonu ve IntentResult struct'ı (takvim olayı vs alışkanlık vs yok)
  filter.go             — regex tabanlı, dile bağımsız zaman/tarih anahtar kelime ön-filtresi (MightHaveIntent)
  extractor.go          — Extractor: iki aşamalı pipeline (anahtar kelime filtresi sonra LLM), IntentResult üretir
  decider_factory.go    — BuildDecider: intent LLM çağrılarını Orchestra ya da tek model üzerinden yönlendirir
  intent_test.go        — MightHaveIntent'in Türkçe/İngilizce zaman ifadeleri üzerindeki testi

internal/llama/ — llama.cpp süreç yönetimi

internal/llama/
  llama.go             — Server: llama-server alt sürecinin yaşam döngüsünü ve durumunu yönetir
  installer.go         — Mevcut platform için llama-server binary release'ini indirir/açar
  gpu.go               — GPU üretici/VRAM tespiti (NVIDIA/AMD/Metal/CPU), katman-offload önerisi için
  llama_test.go        — GPU tipi sabitleri ve katman-önerisi mantığının testi
  process_unix.go      — unix süreç kontrolü: SIGTERM, canlılık kontrolü, süreç-grubu zorla öldürme
  process_windows.go   — Windows süreç kontrolü: Kill ve tasklist tabanlı canlılık kontrolü
  sysproc_darwin.go    — macOS SysProcAttr: alt süreç grubunu izole etmek için Setpgid
  sysproc_linux.go     — Linux SysProcAttr: alt süreç grubunu izole etmek için Setpgid
  sysproc_other.go     — diğer unix-benzeri platformlar için yedek SysProcAttr
  sysram_darwin.go     — macOS'ta sysctl hw.memsize ile toplam RAM tespiti
  sysram_linux.go      — Linux'ta /proc/meminfo ayrıştırarak toplam RAM tespiti
  sysram_other.go      — desteklenmeyen platformlarda 0 dönen RAM tespit stub'ı
  sysram_windows.go    — GlobalMemoryStatusEx Win32 API'siyle toplam RAM tespiti

internal/logx/

internal/logx/
  logx.go       — slog tabanlı yapılandırılmış logger; seviye kontrolü ve Printf uyumlu API, SetOutput ile yönlendirme
  logx_test.go  — seviye ayarlama, debug modu ve Debug/Info/Warn/Error çıktısı testleri

internal/lora/

internal/lora/  — .go dosyası yok; sadece önceden derlenmiş bir LoRA eğitim binary'si/CMake build dizini içeriyor

internal/memory/ — RAG vektör hafızası

internal/memory/
  store.go         — SQLite tabanlı vektör/FTS hafıza deposu: etkileşim kaydet, getir, birleştir (en büyük dosya, ~1800 satır)
  embedder.go      — api.Client.CreateEmbedding'i store için bir EmbeddingFunc'a sarar
  chunker.go       — uzun metni örtüşen kelime-tabanlı parçalara böler (embedding için)
  chunker_test.go  — chunkText'in kısa/uzun/örtüşme davranışı testleri
  store_test.go    — etkileşim kaydetme ve benzer bağlam getirme testleri

internal/project/ — Proje klasörleri (.memo/, Beta)

internal/project/
├── guard.go        # Hangi klasör proje kökü olabilir: ev + üstleri, ~/.memo kurulumu, sistem klasörleri reddedilir
├── project.go      # .memo/project.json (kind, kimlik, ayarlar); sembolik-bağ .memo "yabancı" sayılır
├── manager.go      # cihaz başına kayıt defteri (data/projects.json): bekleyen kimlik, taşıma/kopya algılama
├── scaffold.go     # gömülü şablonlarla başlangıç dosyaları; Status (arayüz için)
├── templates/      # İngilizce, teknolojiden bağımsız şablonlar (go:embed)
├── skills.go       # proje skill'lerini listele/oku/kaldır; GitHub'dan güvenli arşiv indirip kur
└── skillsource.go  # owner/repo, github URL ya da yapıştırılmış `npx skills add …` satırından kaynak çıkarır (npx asla çalışmaz)

internal/memory/scope.go: hafıza kapsamı (Scope, memories.project_id) ve göç öncesi yedek. internal/app/project_scope.go, project_setup.go, project_skills.go: uygulama bağları.

internal/models/

internal/models/
  memory.go   — paylaşılan Memory/MemoryResult/MemoryFileInfo/SearchParams veri tipleri
  activity.go — uygulama-geneli aktivite sinyalinin (maskot + REPL tüketir) paylaşılan tip tanımları

internal/livemode/ — Live Mode v2 (native audio-to-audio) motoru

internal/livemode/
  engine.go               — motor seçimi ve oturum yaşam döngüsü orkestrasyonu
  session.go               — Session arayüzü: bir canlı ses oturumunun ortak sözleşmesi
  reconnecting_session.go  — bağlantı koptuğunda otomatik yeniden bağlanan Session sarmalayıcısı
  echo_session.go          — hiçbir motor yapılandırılmadığında kullanılan basit yankı/test oturumu
  delegate_tool.go         — Live Mode'u mevcut bir sohbete devretme (delegate) mekanizması
  transcript.go            — oturum transkript biriktirme/hafızaya besleme
  config.go / models.go    — motor yapılandırması ve model listesi tipleri
  google/                  — Google Live motoru implementasyonu
  openai_realtime/         — OpenAI Realtime motoru implementasyonu
  *_test.go                — testler

internal/openaiapi/ — Developer Gateway'in OpenAI-uyumlu ikizi

internal/openaiapi/
  openaiapi.go       — POST /v1/chat/completions'ın sunucu tarafı implementasyonu (internal/anthropicapi'nin OpenAI-şekilli kardeşi)
  openaiapi_test.go  — testler

internal/remoteauth/ — uzak erişim kimlik doğrulama çekirdeği

internal/remoteauth/
  password.go    — argon2id parola hash'leme/doğrulama
  bruteforce.go  — parola girişleri için genel API rate limiter'dan bağımsız exponential-backoff kilitleme
  devices.go     — cihaz-başı token üretimi/hash'lenmesi/iptali
  jwt.go         — kısa ömürlü imzalı oturum tokenları
  *_test.go      — testler

internal/browserengine/ — opsiyonel headless tarayıcı

internal/browserengine/
  browserengine.go       — internal/websearch'ün JS-ağırlıklı sayfalar için kullandığı opsiyonel headless tarayıcının (gosearch/browser) yaşam döngüsü
  session.go             — etkileşimli Session (v4.6.0): ajanın ve canlı panelin sürdüğü yalıtılmış Chromium sekmesi; her ekran görüntüsü tam ViewportWidth×ViewportHeight; ölü oturum atılıp yenisi açılır
  session_test.go / session_real_test.go — oturum testleri (sahte ve gerçek Chromium)
  browserengine_test.go  — testler

internal/cliproxy/ — Subscriptions (CLIProxyAPI sidecar)

internal/cliproxy/
  cliproxy.go     — Manager: durum (loopback port + rastgele istemci anahtarı), sağlayıcı sabitleri
  locate.go       — gömülü binary'yi bulur, yanındaki SHA256 ile doğrular, çalıştırılabilir yapar
  run.go          — süreci başlatır/izler (sınırlı yeniden başlatma), sağlık bekler, Stop
  login.go        — -antigravity/-claude/-codex-login; yetkilendirme URL'sini yakalar
  accounts.go     — kimlik (e-posta/proje) listesi, Logout (token asla dışarı çıkmaz)
  models.go       — /v1/models (id + owned_by), boş cevabı önbelleğe almaz
  browser.go      — giriş sayfasını kullanıcının tarayıcısında açar; sidecar'ın askıda kalan xdg-open yoklaması yerine anında dönen bir xdg-open sunulur
  quota.go / quota_accounts.go — kalan hak yüzdesi: Antigravity (model başına), Codex (wham/usage) ve Claude (oauth/usage) hesap sayaçları; QuotaSet.For en sıkışık pencereyi o sağlayıcının tüm modellerine uygular; QuotaSnapshot engellemez, arka planda yeniler
  proc_unix.go / proc_windows.go — platform-özel süreç ayarı
  PINNED.txt      — sabitlenmiş CLIProxyAPI sürümü + arşiv ve binary SHA-256'ları
  testdata/fakecpa/ — testlerde binary'nin yerine geçen sahte sidecar

internal/stt/ — Live Mode konuşma-metin sağlayıcıları

internal/stt/
  provider.go   — STT sağlayıcı arayüzü
  router.go     — hangi STT motorunun kullanılacağına karar verir
  custom.go     — özel/harici STT endpoint desteği
  elevenlabs.go — ElevenLabs STT sağlayıcısı
  config.go     — sağlayıcı yapılandırması
  *_test.go     — testler

internal/modelstore/

internal/modelstore/
  modelstore.go       — Hugging Face model arama, GGUF indirme/içe aktarma/silme, yerel model listeleme
  modelstore_test.go  — isEmbeddingModel sezgiselinin ve sanitizePath/unsanitizePath testleri

internal/mood/

internal/mood/
  engine.go     — mood skorlama motoru: config, skor güncellemeleri, açma/kapama, stokastik gürültü
  scorer.go     — kullanıcı metninden çıplak sayısal skor üreten LLM tabanlı duygu skorlayıcı
  prompt.go     — mood etiketlerini sistem promptu için İngilizce davranışsal direktif metnine eşler
  store.go      — mevcut mood skoru ve geçmişi için SQLite şema/kalıcılık
  sysinfo.go    — self-interest özellikleri için sistem anlık görüntüsü (hostname, OS, uptime)
  mood_test.go  — motor kırpma, skorlama ve geçici DB üzerinden kalıcılık testleri

internal/ngrok/

internal/ngrok/
  installer.go     — mevcut OS/mimari için ngrok binary'sini indirir ve açar
  manager.go       — ngrok sürecini başlatır/durdurur, yerel API'den genel tünel URL'sini okur
  proc_unix.go     — ngrok alt süreci için Unix süreç-grubu kurulumu ve killProcessTree
  proc_windows.go  — Windows taskkill tabanlı süreç ağacı sonlandırma
  ngrok_test.go    — NewManager varsayılanları ve installer arşiv açma testleri

internal/observer/ — kullanım deseni öğrenme

internal/observer/
  store.go               — paket dokümantasyonu + ham kullanıcı-aktivite Observation'ları için SQLite deposu
  recorder.go            — Observation'ları arka planda, bloklamadan biriktirip yazan hook
  pattern.go             — TimePattern struct'ı, güven azalması (decay) ve JSON dosya PatternStore CRUD'u
  analyzer.go            — ham gözlemleri periyodik olarak azalan/ağırlıklı TimePattern'lere çevirir
  analyzer_test.go       — sentetik gözlem dizilerinden desen tespiti testi
  pattern_test.go        — PatternStore'un paralel erişim altında concurrency/race testi
  store_test.go          — Record'un türetilmiş gün/günün-saati alanlarını doğru doldurduğunun testi
  intent_record_test.go  — beyan edilen alışkanlık saatlerinin (mesaj gönderme zamanı değil) kaydedildiğinin testi

internal/orchestra/ — çoklu-model "şef" orkestrasyonu

internal/orchestra/
  conductor.go                 — "şef + roller" orkestrasyonu: planla, çalıştır, tekrar dene, sentezle
  roles.go                     — her orchestra rolü için yerleşik Türkçe sistem promptları (planlayıcı, frontend, …)
  types.go                     — ProgressUpdate/OrchestraTask/OrchestraConfig tipleri ve config Sanitize()
  types_test.go                — Sanitize'ın model id'lerindeki fazla boşlukları temizlediğinin regresyon testi
  conductor_config_test.go     — MergeRoles'un yerleşik rolleri koruduğu ve config yükle/kaydet testleri
  conductor_exec_test.go       — mock sağlayıcılara karşı sıralı görev çalıştırma testi
  conductor_helpers_test.go    — orchestra testleri için paylaşılan mockProvider/mockFactory yardımcıları
  conductor_plan_test.go       — extractJSON'ın plan cevaplarını (çıplak/kod-bloklu JSON) ayrıştırma testi
  conductor_retry_test.go      — retryTask başarı/tümü-başarısız tekrar deneme davranışı testi
  conductor_run_test.go        — RunWithProgress iptal ve ilerleme akışı testi
  conductor_synthesis_test.go  — synthesize()'ın görev sonuçlarını nihai cevaba birleştirme testi

internal/proactive/ — proaktif öneri motoru

internal/proactive/
  matcher.go            — paket dokümantasyonu + bir deseni "şimdi" ile Gaussian zaman-of-day skorlaması
  engine.go              — desenleri şimdiki zamanla eşleştiren ve Şef'e harekete geçilip geçilmeyeceğini soran ticker
  decision.go            — Şef LLM çıktısını bir Action/Decision'a ayrıştırır (yok/bildir/öner/otomatik)
  feedback.go            — kullanıcı cevap metnini Outcome ve güven-delta ayarına eşler
  pending.go             — tek seferlik PendingSuggestion ve TTL'i için JSON dosya deposu
  prompt.go              — ana modeli proaktif karar-verici yapan Türkçe sistem promptu
  proactive_test.go      — Match, feedback ayrıştırma ve karar ayrıştırma için birim testleri
  integration_test.go    — desen eşleştir → öner → kabul et pipeline'ının uçtan uca testi

internal/provider/ — harici LLM sağlayıcıları

internal/provider/
  provider.go       — ProviderType enum'u ve ortak Provider arayüzü/istek-cevap tipleri
  config.go         — sağlayıcı API anahtarlarını saklamak/yüklemek için şifrelenmiş ConfigManager
  router.go         — hata durumunda yedeğe geçen, yapılandırılmış sağlayıcılar arasında seçim yapan Router
  router_test.go    — Router sağlayıcı seçimi ve mock ChatCompletion davranışı testleri
  openai.go         — OpenAI API sağlayıcı implementasyonu, diğer OpenAI-uyumlularca paylaşılır/yeniden kullanılır
  claude.go         — Anthropic Claude API sağlayıcısı (sohbet + streaming)
  gemini.go         — Google Gemini API sağlayıcısı (sohbet + streaming)
  grok.go           — xAI Grok sağlayıcısı, OpenAI-uyumlu istemcinin ince sarmalayıcısı
  groq.go           — Groq sağlayıcısı, OpenAI-uyumlu istemcinin ince sarmalayıcısı
  ollama.go         — Ollama sağlayıcısı, OpenAI-uyumlu istemcinin ince sarmalayıcısı
  openrouter.go     — OpenRouter sağlayıcısı, OpenAI-uyumlu istemcinin ince sarmalayıcısı
  llamacpp.go       — OpenAI-uyumlu endpoint'i üzerinden yerel llama-server sağlayıcısı
  custom_anthropic.go — Özel (Anthropic uyumlu) sağlayıcı: *claudeProvider'ı saran ince sarmalayıcı, kullanıcının kendi Anthropic-şekilli proxy'si için (v4.4.0'da eklendi)
  opencode_zen.go / opencode_go.go — OpenCode Zen/Go sağlayıcıları, canlı model listeli gateway'ler
  kilo.go           — Kilo Code sağlayıcısı (app.kilo.ai), canlı model listeli gateway
  cline.go          — Cline sağlayıcısı (api.cline.bot, v4.6.0), OpenAI-uyumlu istemcinin ince sarmalayıcısı; model başına ücretsiz/ücretli katalog
  images.go         — ImageRequest: metinden-resim çağrısı, sohbet isteğinden bilerek ayrı tip
  openrouter_images.go — OpenRouter'ın görüntü-çıkışlı modelleri (POST {base}/images); hangi modelin görüntü modeli olduğu OpenRouter kataloğundan okunur
  openai_images.go  — OpenAI-uyumlu "custom" uç noktalar için görüntü üretimi/düzenleme (Subscriptions'ta Codex gpt-image-*); model, uç noktaya sorularak (prompt'suz yoklama) tanınır
  context_window.go — CachedContextWindow/WarmContextWindow + ContextWindower: bağlam penceresi sağlayıcının kendi API'sinden (Anthropic max_input_tokens, Gemini inputTokenLimit, /models alanları, Ollama /api/ps+show, llama-server /props), sonra models.dev; yoksa 0 = bilinmiyor (tahmin yok)
  effort.go         — GeminiThinkingBudgetForLevel + EffortLevelsFor*: "effort level" (minimal/low/medium/high/max) etiketlerinin vendor-özel parametrelere çevrimi (Gemini thinkingBudget, Claude adaptive thinking)

internal/replcli/ — terminal REPL (memo CLI)

internal/replcli/
  repl.go                  — ana interaktif terminal sohbet döngüsü (Run), backend REST API'sine bağlı
  repl_test.go             — Run()'ın senaryolu bir SSE test sunucusuna karşı uçtan uca testi
  client.go                — Memo REST API'sini saran minimal HTTP istemcisi
  client_test.go           — Client.Status ve diğer HTTP çağrılarının test sunucusuna karşı testleri
  models_client.go         — yerel model liste/durum endpoint'leri için REPL-tarafı istemci
  models_client_test.go    — ListLocalModels'ın mock sunucuya karşı testi
  download_client.go       — Hugging Face model arama/indirme endpoint'leri için REPL-tarafı istemci
  download_client_test.go  — SearchModels HTTP çağrısı ve cevap çözme testi
  sse.go                   — bir Server-Sent-Events satırını api.StreamChunk'a ayrıştırır
  sse_test.go              — ParseSSELine'ın içerik/bitiş/finish-reason durumları testi
  agent_event.go           — terminal REPL için agent_event SSE payload'larını çözen AgentEvent struct'ı
  agent_event_test.go      — AgentEvent JSON çözmenin tam payload testleri
  commands.go              — REPL slash komutlarını uygular (/help, /models, /model, /connect, /gui, /model-download …)
  commands_test.go         — slash komut handler'larının mock models/providers sunucusuna karşı testleri
  menu.go                  — ok tuşlarıyla gezilen interaktif terminal seçim menüsü
  color.go                 — bağımsız-kütüphanesiz ANSI renk/biçimlendirme yardımcıları, banner, progress bar
  color_test.go             — progressBar'ın çeşitli yüzdelerde render edilmesi testi
  spinner.go               — ilk cevap byte'ı beklenirken gösterilen animasyonlu "düşünüyor..." spinner'ı ve daktilo efekti
  spinner_test.go          — daktilo metin gösterimi ve spinner başlat/durdur testleri

internal/sessions/

internal/sessions/
  sessions.go       — sohbet oturumlarını/mesajları diske kalıcı kılan Manager, aktif-sohbet değiştirme
  sessions_test.go  — oturum oluşturma, kalıcılık ve diskten yeniden yükleme testleri

internal/skill/ — eklenti benzeri skill sistemi

internal/skill/
  types.go          — skill sistemi için SkillTool/SkillManifest/DangerLevel veri tipleri
  loader.go         — SKILL.md ön-madde (front-matter) bilgisini bir SkillDefinition'a ayrıştırır/yükler
  loader_test.go    — ParseSkill'in OpenCode formatlı SKILL.md içeriğine karşı testi
  manager.go        — diskte skill'leri keşfeder, aktive/deaktive eder, skill tool'larını kaydeder
  manager_test.go   — Manager'ın diskteki skill keşfi testi

internal/truncate/

internal/truncate/
  tokens.go       — kaba token tahmini ve mesaj listesini bir token bütçesine sığdırma
  tokens_test.go  — EstimateTokens ve TruncateMessages uç durum testleri

internal/tunnel/

internal/tunnel/
  tailscale.go       — paket dokümantasyonu + web sunucusunu uzaktan erişime açan gömülü tsnet Tailscale node'u
  tailscale_test.go  — NewTailscale varsayılanları (çalışmıyor, boş genel URL) testi

internal/websearch/

internal/websearch/
  ddg.go       — web_search tool'u için DuckDuckGo HTML arama sonuçlarını kazır (scrape)
  ddg_test.go  — DDG HTML sonuç ayrıştırmasının kaydedilmiş örnek sayfaya karşı testi

internal/webserver/ — REST API (260+ rota, /api/* ve /api/v1/* alias'lı)

internal/webserver/
  server.go                    — HTTP sunucu kurulumu, routing, self-signed TLS, CORS/rate-limit middleware, temel sohbet/oturum handler'ları
  bridge.go                    — FullBridge arayüzü: Flutter REST API'sinin ihtiyaç duyduğu tüm App metodları (Code Mode prompt get/set/reset dahil)
  handlers_flutter.go          — en büyük handler dosyası: sohbet streaming, hafıza, modeller, sağlayıcılar, orchestra, agent, WhatsApp, skill, Code Mode prompt endpoint'leri
  handlers_activity.go         — maskotun/REPL'in tükettiği uygulama-geneli aktivite sinyali için REST handler'ı
  handlers_auth.go             — uzak erişim kimlik doğrulama (token/parola/token+parola) handler'ları
  handlers_calendar.go         — takvim olayları, ayarlar ve öğrenme-sistemi ayarları için REST handler'ları
  handlers_clients.go          — bağlı istemci (client_id) canlı/durgun listesi handler'ı
  handlers_livemode_session.go — Live Mode v2 (native audio-to-audio) oturum başlat/durdur/durum handler'ları
  handlers_mood.go             — mood skoru ve mood/self-interest/sistem-yönetimi ayarları için REST handler'ları
  handlers_oauth.go            — OpenRouter OAuth bağlanma akışı ve model liste/anahtar doğrulama handler'ları
  handlers_outbox_test.go      — share_file aracının indirme-linki (outbox) handler'ı testi
  handlers_proactive.go        — proaktif ayarlar, bekleyen öneriler ve desenler için REST handler'ları
  handlers_routine.go          — Rutinler CRUD ve tetikleme handler'ları
  handlers_swarm.go            — Memo Swarm (beta) host/join/durum handler'ları
  handlers_tasks.go            — Self-Driving görev listesi CRUD + /api/tasks/running + pause/resume/cancel/skip/inject handler'ları
  devgateway_handlers.go       — Geliştirici API Ağ Geçidi (Sidebar → Developer) config + canlı istek/yanıt günlüğü handler'ları
  subscriptions_handlers.go    — Subscriptions (/api/subscriptions) ve model seçici (/api/providers/model) handler'ları; ?fresh=1 kota için en fazla 3 sn bekler
  handlers_browser_session.go  — canlı tarayıcı panelinin doğrudan uç noktaları (/api/browser/session/*): navigate/click/type/scroll/status/close; ajan izni ister
  (handlers_flutter.go içinde)   — Server.withQuotaSignals: /api/send/stream ve /api/send/file/stream'den geçen her parçaya quota_exhausted / quota_low işaretçilerini ekleyen tek yer
  openai_handlers.go           — Developer Gateway'in OpenAI-uyumlu ikizi: GET /v1/models, POST /v1/chat/completions (internal/openaiapi'yi sarar)
  mime.go                      — dosya yükleme MIME tespiti (istemci header'ına değil içeriğe göre)
  webapp.go                    — Flutter web build'inin (internal/webserver/webapp/) statik dosya servisi
  server_test.go               — temel webserver handler'larının bir mockBridge'e karşı testleri

internal/mail/ — Mail motoru (varsayılan kapalı)

internal/mail/
├── imap.go          # bağımlılıksız IMAP4rev1 istemcisi (TLS, XOAUTH2, MIME ayrıştırma)
├── smtp.go          # SMTP gönderimi (XOAUTH2 ya da PLAIN)
├── oauth.go         # Gmail/Outlook için herkese açık masaüstü OAuth2 profilleri
├── autodiscover.go  # hazır sağlayıcı ayarları + Thunderbird autoconfig veritabanı
├── vault.go         # hesap kimlik bilgileri AES-256-GCM ile şifreli saklanır
├── manager.go       # bağlı hesaplar, OAuth akışları, IMAP/SMTP işlemleri
├── gatekeeper.go    # 3 katmanlı sınıflandırma: yapısal veri + kişiler → RFC başlıkları → model (5 kategori)
├── watcher.go       # 60 sn'lik arka plan yoklama, yüksek-su-işareti (eski posta geriye okunmaz), güvenlik kancası
├── extractor.go     # gövdeden yapısal veri (OTP, uçuş, fatura) çıkarımı
├── ics.go           # RFC 5545 .ics davetleri
└── types.go         # Account, MessageDetail, SendRequest, TriageDecision girdileri

Bkz. DIGITAL_TWIN_AND_MAIL.md. Uygulama bağları: internal/app/mail*.go, internal/webserver/handlers_mail*.go.

internal/twin/ — Dijital İkiz deposu

internal/twin/
├── store.go          # twin.db: kişiler + takma adlar, kaynak tarihli mesajlar, tercihler, şema
├── actions.go        # hazırlanan eylemler ve otonomi ayarları
├── approval.go       # onay, geri al süresi, gönderim rezervasyonu
├── delivery.go       # onay köprüsü teslimi; kanal rızası
├── commitments.go    # "bekliyorum" (waiting_on_other) ve "sözüm var" (my_promise) kayıtları
├── contact_graph.go  # kişi bağlama/birleştirme (yalnız ada bakarak asla)
├── style_cloner.go   # son giden mesajlardan üslup özeti (eğitilmiş klon değil)
├── reply_model.go    # yanıt modeli seçimi (karar modelinden bağımsız)
└── briefing.go       # günlük brifing ayarları + kartlar + (brifing, kanal) teslim defteri (briefing_deliveries)

internal/autonomy/ — Güvenlik ve karar katmanı

internal/autonomy/
├── shield.go          # gelen injection kalkanı (EN/TR kurallar, rol ayırıcılar, base64), giden DLP, tek kullanımlık kod gözlemi
├── engine.go          # otonomi motoru: analiz → salt-okunur araştırma → yanıt → DLP → skor
├── readonly_tools.go  # dış bağlam yürütücüsünün dört salt-okunur aracı
├── evidence.go        # araştırma kanıtını model girdi sınırına sığdırır
├── approval_bridge.go # uygulama / WhatsApp / Telegram onayı (#onay, #iptal, #asla)
├── loop.go            # otomatik yanıt politikası (grup/CC, otomatik gönderici, hız sınırı)
├── followup.go        # takip radarı (yalnız incelemeye açık hatırlatma taslakları)
├── promises.go        # kendi tarihli sözlerini okuma
├── briefing.go        # sabah brifingi + toplantı öncesi not (bölümler, özel öğeler, isteğe bağlı model)
├── briefing_text.go   # brifingi TR/EN düz metne çevirir (dış kanallar için)
├── devwatch.go        # "nerede kalmıştım?" — projelerin yarım işleri
├── privacy.go         # takvim çıktısı yalnız maskeli aralıklar
└── voice.go           # sesli mesajı yerelde metne çevirme (sesi diske yazmaz)

internal/subagents/ — Sohbet alt ajanları

internal/subagents/
├── manager.go  # bağımsız, sürdürülebilir çocuk görevler; kalıcı sohbet-başı teslim kutusu
├── git.go      # paralel yazanlar için izole proje kopyası; yalnız doğrulanmış birleştirme kopyayı siler
└── status.go   # "şu an ne yapıyor, başarısız mı" — sınırlı özet

Bkz. CHAT_SUBAGENTS.md. Araç: internal/agent/tools/subagents.go.

internal/updater/ ve internal/components/ — Uygulama içi güncelleme

internal/updater/
├── manifest.go, sign.go, pubkey.go   # imzalı manifest (ed25519); anahtar uzaktan değiştirilemez
├── fetch.go, download.go, extract.go # bayt-bayt doğrulanan, sürdürülebilir indirme; güvenli açma
├── swap.go, apply.go, health.go      # yerinde değiştirme; yeni sürüm yanıt vermezse geri alma
├── failure.go                        # başarısız deneme bir sonraki açılışta gösterilir
├── components.go                     # motor bileşeni kurulumu (llama.cpp, whisper.cpp, sidecar)
└── installer_windows.go, launch_*.go, proc_*.go, space_*.go   # platforma özgü parçalar
internal/components/components.go     # bir motor klasöründe hangi sürüm kurulu (*_VERSION işaretleri)

Bkz. AUTO_UPDATE.md. Ek komutlar: cmd/memo-updater/ (her Linux/macOS sürümünün içinde gelen değiştirici), cmd/memo-sign/ (bakımcı imza aracı).

internal/telemetry/ — Anonim günlük özet

internal/telemetry/
├── schema.go, buckets.go, catalog.go  # rapor biçimi (izin listesi), aralıklar, katalog adları
├── collect.go                         # günlük raporu kullanım olaylarından kurar
├── state.go, manager.go               # rıza, rastgele kimlik, sayaçlar; resmî derleme varsayılanı
├── send.go, install.go                # günlük gönderici; kimliksiz kurulum sayımı
└── sanitize.go, notes.go              # çökme izi temizleyici; özellik/hata sayaçları

Bkz. TELEMETRY.md. CLI: memo telemetry status|preview|on|off|reset-id|delete.

internal/webchat/ — ChatGPT / claude.ai tarayıcı penceresiyle (Beta)

Gerçek, görünür bir Chromium penceresi ve Memo'ya ait bir profil (data/webchat/<site>); sağlayıcı türleri web-chatgpt / web-claude, yalnız metin. site.go seçici tabloları, driver.go + page.js sayfa sürücüsü, browser.go pencere yönetimi, consent.go bildirim onayı. Arka plan çağrıları (başlık, hafıza, yönlendirme) bu sağlayıcıya asla gitmez. Bkz. WEB_CHAT.md.

Küçük paketler

Paket Görevi
internal/telegram/ Telegram Bot API istemcisi (uzun yoklama, gönderme) ve sahip kilidi (store.go)
internal/beta/ Arka ucun "Beta özellikler açık mı?" diye sorduğu tek yer
internal/backupdata/ Yerel dışa aktarma ve şifreli bulut yedeğinin paylaştığı taşınabilir kullanıcı verisi envanteri (mail hesapları dahil değil)
internal/imgvault/ Diskteki resimleri şifreler (dosya başına anahtar; ana anahtar veri klasörünün dışında)
internal/modelcatalog/, internal/routecatalog/ Yayımlanmış model yetenekleri ve özellikleri (kullanılabilirliği değil)
internal/upstream/ Memo'nun bağlı olduğu, depo dışındaki şeylerin zamanlanmış izlenmesi
internal/skills/ go:embed ile gömülü yerleşik skill'ler (data/skills/'e açılır)
internal/e2e/ Gerçek uygulama + HTTP API + gerçek IMAP/SMTP istemcileriyle uçtan uca test donanımı

internal/whatsapp/

internal/whatsapp/
  client.go      — whatsmeow tabanlı WhatsApp istemcisi: bağlan, gönder/al, kişiler, yeniden bağlanma
  store.go       — WhatsApp mesajları ve sohbet metadata'sı için SQLite kalıcılığı
  store_test.go  — Store mesaj kalıcılığı ve getirme testleri
  util_test.go   — güvenli dosya sistemi/anahtar kullanımı için sanitizeJID yardımcısının testi

internal/whisper/

internal/whisper/
  whisper.go            — yerel whisper.cpp sunucu süreç yaşam döngüsünü ve ses transkripsiyonunu yönetir
  process_unix.go       — whisper.cpp sunucusu için Unix süreç sinyalleme/canlılık/zorla öldürme yardımcıları
  process_windows.go    — whisper.cpp sunucusu için Windows süreç sinyalleme/canlılık yardımcıları
  sysproc_darwin.go     — whisper sunucusunu başlatmak için macOS SysProcAttr (Setpgid)
  sysproc_linux.go      — whisper sunucusunu başlatmak için Linux SysProcAttr (Setpgid)
  sysproc_other.go      — diğer Unix-benzerleri için yedek SysProcAttr
  whisper_test.go       — NewServer varsayılanları ve çalışma-durumu kontrolleri testi

2. Flutter İstemcisi (frontend/)

frontend/lib/
  main.dart        — uygulama giriş noktası; SharedPreferences, ProviderScope, MaterialApp/tema/dil kurulumu
  mascot_main.dart — masaüstü maskotu için AYRI bir giriş noktası (desktop_multi_window ile aynı process içinde ikinci pencere olarak açılır, ayrı bir binary değil)

frontend/lib/core/
  api_client.dart — Go backend'in REST API'sini saran Dio tabanlı MemoApiClient
  l10n.dart        — Türkçe/İngilizce i18n anahtar-değer sözlüğü, dil değişikliği dinleyicileriyle
  theme.dart       — ThemeColors extension + MemoTheme: Pewter/Night/Glass Light renk temaları

frontend/lib/models/
  chat.dart             — ChatMessage, StreamChunk, ChatSession modelleri (Go sessions paketini yansıtır)
  agent.dart            — Agent tool-call event'leri ve izin istekleri için AgentEvent, AgentPermission modelleri
  activity_step.dart    — orchestra plan görevlerini ve agent tool çağrılarını tek bir zaman çizelgesinde birleştiren ActivityStep
  provider_config.dart  — harici LLM sağlayıcıları (OpenAI/Claude/Gemini/vb) için ProviderConfig modeli ve varsayılanlar
  local_model.dart      — diskteki ve HuggingFace'teki model verisi için LocalModel, HFModelResult, GGUFFile, DownloadProgress
  curated_models.dart   — Discover sekmesi için elle seçilmiş GGUF modelleri ve donanım-uygunluğu sezgiselleri
  gpu_info.dart         — donanım ve sunucu durumu için GPUInfo, ServerStatus, MemoryFileInfo/Stats/SearchResult
  orchestra_config.dart — çoklu-rol "orchestra" agent modu yapılandırması için OrchestraConfig/RoleConfig modelleri
  token_usage.dart      — üst barda gösterilen canlı tur-başı token sayımı için TokenUsage modeli
  whatsapp.dart         — WhatsApp entegrasyonu için WhatsAppMessage, WhatsAppChatSummary, WhatsAppStatus modelleri
  task_list.dart        — Self-Driving görev listesi modelleri: ChatTaskState (working/stalled eşikleri), görev/madde/plan durumları (v4.4.0)

frontend/lib/providers/ (Riverpod state)
  chat_provider.dart      — çekirdek sohbet durumu: API istemcisi, sohbet listesi, aktif sohbet, streaming içerik/durum
  agent_provider.dart     — agent modu anahtarı, izin listesi, agent event bus/stream durumu
  models_provider.dart    — yerel model listesi, model/embedding sunucu durumu, GPU bilgisi, indirme ilerlemesi, model arama
  provider_provider.dart  — harici sağlayıcı listesi, aktif sağlayıcı seçimi, sağlayıcı logo/ikon yardımcıları
  orchestra_provider.dart — orchestra modu yapılandırma durumunu yöneten OrchestraConfigNotifier
  settings_provider.dart  — SharedPreferences tabanlı ayarlar: hafıza/llama ayarları, kurulum/tur bayrakları, sistem promptu
  mood_provider.dart      — mood skorunu ve mood-takip bayrağını 10sn'de bir backend'den akıtır
  learning_provider.dart  — proaktif öğrenme ayarları ve öğrenilen desenler için LearnedPattern modeli + provider'lar
  whatsapp_provider.dart  — WhatsApp bağlantı durumu, sohbet listesi, mesajlar, arama, sohbet-modu anahtarı
  skill_provider.dart     — SkillDefinition modeli ve kurulu agent skill'lerini listeleyen SkillListNotifier
  version_provider.dart   — periyodik olarak yeni uygulama versiyonu olup olmadığını kontrol eden VersionCheckNotifier
  recording_provider.dart — sesli-metin girişi için mikrofon kayıt durumunu kontrol eden RecordingNotifier
  tasklist_provider.dart  — Self-Driving görev listelerinin durumu, SSE üzerinden canlı aktivite akışı (v4.4.0)
  mascot_provider.dart    — maskotun aç/kapa durumu, seçili cilt ve uygulama-geneli aktivite sinyalinden okunan canlı pose/durum akışı (v4.5.0)

frontend/lib/screens/
  app_shell.dart        — NavRail sekme değiştirici (sohbet/agent/model/whatsapp/takvim) ve global kısayollarla ana kabuk
  chat_screen.dart       — standart sohbet ekranı: kenar çubuğu, mesaj listesi, giriş, token sayacı, üst bar
  agent_screen.dart      — agent modu ekranı: agent sohbetleri kenar çubuğu, tool aktivitesiyle sohbet içeriği, izin dialogları
  model_store_screen.dart — Model Mağazası/Keşfet ekranı: seçilmiş model gezinme, yerel modeller, HF arama, donanım rozetleri (en büyük dart dosyası)
  whatsapp_screen.dart   — WhatsApp ekranı: sohbet listesi, mesaj görünümü, profil fotoğraflı avatarlar, gönder/ara arayüzü
  calendar_screen.dart   — /api/calendar/events'ten olayları çeken ve gösteren takvim ekranı
  task_detail_screen.dart — Self-Driving görev detay ekranı: canlı faz/ilerleme, plan onay kartı (_PlanApprovalSection), escalation banner'ı (v4.4.0)

frontend/lib/widgets/
  settings_dialog.dart      — settings/tabs/* içeriğine dikey sekme navigasyonuyla giden ayarlar dialog kabuğu
  chat_input.dart           — kompozitör widget'ı: metin girişi, model değiştirici dialog, OpenRouter model seçici, kayıt butonu
  chat_message_list.dart    — kaydırılabilir markdown mesaj listesi, streaming/düşünme balonu render'ıyla
  chat_sidebar.dart         — yeni-sohbet butonu, gizli mod anahtarı ve durum çubuğuyla sohbet listesi kenar çubuğu
  slash_menu.dart           — slash (/) menüsü: yüklü skill'ler + /remember, /forget, /model, /orchestra; cümle ortasında da açılır
  model_config_dialog.dart  — yerel bir modeli yapılandırıp başlatma dialog'u (context boyutu, GPU katmanları, port)
  provider_config_dialog.dart — harici sağlayıcı ekleme/düzenleme dialog'u (API anahtarı, model tarayıcı)
  orchestra_config_dialog.dart — orchestra modu rollerini, sistem promptlarını, rol-başı model seçimini yapılandırma dialog'u
  skill_config_dialog.dart  — agent skill'lerini listeleme, kurma, kaldırma dialog'u (açma/kapama yok: skill çağrılarak açılır)
  setup_wizard_view.dart    — donanım tanılaması ve ilk yapılandırmadan geçiren ilk-çalıştırma kurulum sihirbazı katmanı
  llama_installer_view.dart — llama.cpp binary kurulumu/indirme ilerlemesini yöneten katman ekranı
  launchpad_view.dart       — Memo'nun yeteneklerini tanıtan özellik kartlarıyla ilk-çalıştırma launchpad ekranı
  welcome_view.dart         — dokunulabilir sohbet başlatıcı önerileri gösteren boş-sohbet karşılama ekranı
  spotlight_tour.dart       — UI elemanlarını delik-açma efektiyle vurgulayan spotlight/onboarding turu widget'ı
  version_banner.dart       — yeni Memo versiyonu bildiren, kapatılabilir sağ-alt banner
  engine_strip.dart         — şu an çalışan sohbet/hafıza modelini durdur kontrolüyle gösteren alt durum şeridi
  gpu_badge.dart            — GPU tespit edildi mi yoksa sadece CPU mu olduğunu gösteren küçük rozet
  mood_gauge.dart           — özel painter'lı kompakt ve genişletilmiş mood göstergesi (nokta/emoji/bar)
  glass_surface.dart        — Glass Light teması için Apple-tarzı buzlu cam panelleri render eden GlassBlur/GlassSurface
  mascot_window.dart        — maskot penceresinin kendi kabuğu (şeffaf, çerçevesiz, her zaman üstte — Wayland'da XWayland zorlamasıyla)
  memo_mascot.dart          — maskot karakterinin animasyon/pose render'ı (iki cilt: sıcak el-çizimi yaratık / lacivert piksel-art robot), boşta sallanma/göz kırpma/nefes alma dahil

frontend/lib/widgets/agent/
  agent_mode_toggle.dart    — agent modunu aç/kapa anahtarı
  agent_chat_card.dart      — bir agent sohbeti girdisini özetleyen kart (agent kenar çubuğu listesinde kullanılır)
  activity_panel.dart       — orchestra görevlerini ve agent tool adımlarını canlı gösteren sağ taraf aktivite zaman çizelgesi
  permission_dialog.dart    — istenen bir agent tool iznini onayla/reddet dialog'u
  permission_history.dart   — geçmiş agent izin kararlarının liste görünümü
  task_activity_block.dart  — sohbet içi canlı Self-Driving görev kartı: tool/alt-ajan aktivite satırları, working/stalled durumları, "model üretiyor" göstergesi (v4.4.0)

frontend/lib/widgets/settings/tabs/
  general_tab.dart           — genel tercihler + CLI yeniden yükleme/kaldırma yönetimi sekmesi
  memory_tab.dart            — RAG hafıza yapılandırması sekmesi: istatistikler, benzerlik/top-k ayarları, hafıza dosyaları
  providers_tab.dart         — yapılandırılmış harici LLM sağlayıcılarını kart olarak listeleyen sekme
  orchestra_tab.dart         — orchestra (çoklu-rol agent) modunu yapılandırma sekmesi giriş noktası
  agent_permissions_tab.dart — agent tool izin kurallarını inceleme/yönetme sekmesi
  skills_tab.dart            — kurulu agent skill'lerini listeleme/yönetme sekmesi
  gpu_config_tab.dart        — GPU/model başlatma parametreleri sekmesi (context boyutu, GPU katmanları, slider'lar)
  learning_tab.dart          — proaktif öğrenme profili sekmesi: ayarlar, model yönlendirme, öğrenilen desen kartları
  mood_tab.dart              — onay dialogları ve doğrulama adımlarıyla mood-takip özelliği sekmesi
  system_prompt_tab.dart     — varsayılan sohbet sistem promptunu düzenleme sekmesi
  incognito_prompt_tab.dart  — gizli sohbet modunda kullanılan sistem promptunu düzenleme sekmesi
  remote_access_tab.dart     — backend'e uzak/ağ erişimini yapılandırma sekmesi
  backup_restore_tab.dart    — uygulama verisini yedekleme/geri yükleme sekmesi (bulut metin alanı config dahil)
  about_tab.dart             — uygulama versiyonu, emek verenler ve hakkında bilgisi sekmesi

frontend/lib/utils/
  tool_names.dart — agent tool çağrı tipleri için yerelleştirilmiş görünen isim/açıklama/ikon/tehlike etiketleri

3. Paketleme / Build / Kurulum Script'leri (scripts/)

Root'un kalabalıklaşmaması için .sh/.ps1/.bat script'lerinin çoğu
scripts/ altında toplandı (2026-08-09) — hiçbiri kendi dosya konumuna
göre cd yapmıyor, hepsi repo kökünden çalıştırılmayı varsayıyor. İstisna:
ana release betiği build_releases.sh repo kökünde (./build_releases.sh).
Ayrıntı ve kullanım örnekleri için scripts/README.md.

build_releases.sh    — (repo KÖKÜNDE) Linux release paketleme (.deb/.AppImage/.tar.gz) — Go backend + Flutter frontend
build_releases.bat   — build_releases.sh'in Windows karşılığı
build_releases_arm.sh — build_releases.sh'in arm64 (Raspberry Pi) karşılığı
package_linux.sh      — Go backend + Flutter frontend derler, bir Linux release paketi hazırlar
package_windows.sh    — Go backend'i Windows için çapraz derler, bir Windows release paketi hazırlar
macrelease.sh         — macOS'a özel paketleme (.app/.tar.gz/.dmg üretir, Xcode/cgo gerektirir)
download_binaries.sh  — bundle için llama.cpp llama-server binary'lerini indirir (Linux CPU/NVIDIA/AMD)
patch.sh              — birkaç App metodunun dönüş tipini interface{}'e çeviren tek seferlik sed patch'i
install.sh            — Linux kullanıcı-yerel yükleyici; paketi ~/.local/share'e kopyalar, masaüstü girdisi ekler
uninstall.sh          — Linux kullanıcı-yerel kurulumu kaldırır (uygulama dizini, masaüstü dosyası, ikon)
uninstall-arm.sh      — uninstall.sh'in arm64 karşılığı; hem native hem Docker kurulumlarını algılar
update.sh             — mevcut kurulumu veri/config'e dokunmadan günceller
run_memo.sh           — yerel geliştirme kısayolu (backend+frontend'i birlikte başlatır)
get-memo.sh           — Linux/macOS için tek satır curl yükleyicisi (stable); binary'leri + PATH wrapper'ını kurar
get-memo-beta.sh      — get-memo.sh'in beta kanalı (her main push'unda güncellenir)
get-memo.ps1          — Windows için tek satır yükleyici; Inno Setup yükleyicisini indirip çalıştırır
get-memo-beta.ps1     — get-memo.ps1'in beta kanalı
get_memo_arm.sh       — Linux arm64 (Raspberry Pi) için tam kurulum (CLI+backend+masaüstü)
get-memo-server.sh    — self-hosted, sadece sunucu kurulumu (masaüstü yok), stable kanal
get-memo-server-beta.sh — get-memo-server.sh'in beta kanalı

installer.iss (Windows Inno Setup script'i) bilinçli olarak kök dizinde
bırakıldı — build-windows.yml CI workflow'u onu sabit bir yoldan
referans alıyor, taşımak CI'a ek bir değişiklik gerektirirdi.

4. CI/CD (.github/workflows/)

ci.yml              — main'e her push/PR'da Go vet/test, Flutter analyze/test ve L10n / eski-alan-adı korumaları
build-linux.yml     — push/PR/dispatch/v* etiketinde Linux x86_64 (zip, tar.gz, AppImage) ve arm64 (zip) derler. Etikette GitHub Release'e ve R2'nin kararlı adlarına (memo.tar.gz, memo.AppImage, memo_arm.zip); main push'unda beta adlarına (memo_beta.tar.gz, memo_beta.AppImage, memo_arm_beta.zip) yükler
build-macos.yml     — macOS derlemesi; etikette GitHub Release + memo-mac.zip
build-windows.yml   — Windows derlemesi + Inno Setup kurulumcusu; etikette GitHub Release + memo.exe
build-android.yml   — imzalı APK (R2: memo.apk)
build-ios.yml       — imzasız IPA (R2: memo.ipa)
build-docker.yml    — yalnızca-backend Docker imajını derler ve yayınlar
upload-r2.yml       — elle tetiklenen beta R2 yüklemesi
upstream.yml        — her 6 saatte bir: sağlayıcı API/OAuth uç noktaları, CLIProxyAPI sürümü ve data.memocpp.com betikleri için kimlik bilgisiz yoklamalar; sapma `upstream-drift` issue'su açar
vendor-cliproxy.yml — elle: sabitlenmiş CLIProxyAPI sürümünü yeniden doğrular, istenirse R2'ye yayınlar
canary.yml          — dış bağımlılıklar için canary'ler (gosearch kazıması, WhatsApp el sıkışması)

5. Yapılandırma, Yardımcı Script'ler, Skill'ler

config/
  config.yaml          — yerel (gitignore'lu) canlı config: API endpoint, kimlik/persona, hafıza, uzak erişim
  config.yaml.example  — config.yaml için tüm ayarlanabilir anahtarları belgeleyen şablon

scripts/
  stt_server.py   — hafif, bellek-içi Vosk konuşma-metin HTTP sunucusu (tr/en modelleri)
  transcribe.py   — faster-whisper ile bir ses dosyasını metne çevirir, stdout'a yazdırır

skills/
  memo/SKILL.md          — "memo-rag-memory" skill'i: RAG/semantik hafıza alt sistemini güvenle değiştirme iş akışı
  memo-project/SKILL.md  — "memo-project" skill'i: mimari/konvansiyonlar için hızlı üst-düzey harita

6. Üst Düzey Dokümantasyon

AGENTS.md                 — AI kodlama ajanları için Memo'nun teknoloji yığını/mimarisi özeti (ana referans doküman)
BLUEPRINT.md               — v4.0.0'ı hedefleyen spekülatif ekosistem/iş planı (memo-proxy API iş modeli) — henüz uygulanmadı
BUG_REPORT.md              — aktif olarak bakımı yapılan açık bug takipçisi (bu yazının yazıldığı tarihte 0 açık madde, her seviyede)
GEMINI.md                  — proje genel bakış dokümanı ("Memory Shell" konsepti)
README.md / READmeTR.md    — ana proje README'si (EN) ve Türkçe çevirisi
roadmap.md                 — docs/ROADMAP.md (EN) ve docs/tr/ROADMAP.md'ye yönlendiren stub
handoff.md                 — oturum devir teslim notları, ters-kronolojik (en yeni en üstte)
plan.md                    — özellik kaybetmeden ilk-çalıştırma onboarding/UX iyileştirme planı
PLAN_learning_calendar.md  — v3.2 intent-tabanlı öğrenme + takvim + tek-model-modu planı (tamamlandı)
yapılacaklar.md            — Türkçe TODO listesi: stable-release engelleri + RAG hafıza yol haritası

docs/                — superpowers/specs (tasarım dokümanları) + superpowers/plans (uygulama planları),
                        learning-system/, task/, plans/, tr/ (API_REFERENCE, BILINEN_SORUNLAR,
                        TROUBLESHOOTING vb. Türkçe teknik dokümantasyon seti)
obsidian-doc/, obsidian-doc-en/ — Obsidian vault olarak dışa aktarılmış TR/EN kullanıcı/geliştirici dokümantasyonu
versinNote/           — sürüm notları (V1.0.0 → v3.3.3 yayınlandı, v3.3.4 geliştirmede) ve tr/ altında Türkçe çevirileri

7. Çalışma Zamanı / Üretilen Dizinler (kaynak kodu değil, açıklanmadı)

data/          — çalışma zamanı verisi: hafıza DB, sohbet oturumları, modeller, takvim, mood, WhatsApp, rutinler, kullanım istatistikleri (usage.db), Piper sesleri (tts/voices/), config anahtarları
binaries/      — platforma özel llama.cpp/vec0/whisper binary'leri (bundling için)
build/, build_output/ — derleme çıktıları ve paketleme sahne alanları
frontend/build/, frontend/.dart_tool/ — Flutter derleme önbellekleri
.git/, .github/, .claude/, .kimchi/, .mimocode/, .opencode/, .superpowers/ — VCS ve araç/ajan meta verisi

İstatistikler

2026-09-26'da yeniden sayıldı (find/wc ile) — mobile/'ın emekliye
ayrılıp frontend/'e Android/iOS hedeflerinin eklenmesinden sonra. Bir
önceki sayım 2026-09-01'den kalmıştı (v4.4.0 dönemi) — aşağıdaki sayılar da
bir sonraki büyük değişiklikte yine bayatlayacak, elle güncel tutulur.

Go (backend)

Metrik Değer (2026-09-01 → 2026-09-26)
Toplam .go dosyası (test hariç) 327 → 364
Test dosyası (_test.go) 276 → 329
internal/ alt paket sayısı 48 → 50
Kaynak kod satırı (test hariç) 79.180 → 90.072
Test kodu satırı 53.172 → 66.028
Toplam Go satırı 132.352 → 156.100
En büyük dosya internal/webserver/handlers_flutter.go (3.368 satır)
2. en büyük internal/memory/store.go (3.057 satır)
3. en büyük internal/app/llm.go (1.982 satır)
4. en büyük internal/taskloop/engine.go (1.759 satır)

Flutter (frontend/) — tüm platformlar

Metrik Değer (2026-09-01 → 2026-09-26)
Toplam .dart dosyası (lib/, test hariç) 133 → 152
Test dosyası 45 → 57
Kaynak kod satırı (lib/) 53.316 → 61.099
Test kodu satırı 7.130 → 9.040
En büyük dosya core/l10n.dart (4.543 satır)
2. en büyük core/api_client.dart (3.143 satır)
3. en büyük widgets/chat_input.dart (2.350 satır)
Platform hedefi linux, windows, macos, web, android, ios

model_store_screen.dart artık tek dev dosya değil — settings/tabs/'a paralel bir desenle bölündü (bkz. handoff.md, BUG-M1).

Genel Toplamlar

Metrik Değer
Toplam kaynak dosyası (Go + Dart, test dahil) 902
Toplam kaynak kodu satırı (Go + Dart, test dahil) 226.239
Shell/bat/ps1 script sayısı (kök dizin) 1 (build_releases.sh) — geri kalan 20 script scripts/'e taşınmış (3.633 satır)
Markdown doküman sayısı (repo genelinde) 238
.github/workflows/ sayısı 9
skills/ altındaki skill sayısı 2
Git commit sayısı 1.156

Son güncelleme: 2026-08-05 · v3.3.3 (yayınlandı) / v3.3.4 (geliştirmede)


Source document