Remana Agent Cluster
TEKNİK SUNUMPLATFORM · GÜVENLİK · OPERASYON

Remana
Agent Cluster

Kodlama ajanlarını kendi makinelerinizde çalıştıran kontrol düzlemi. İşler kuyruğa girer, sandbox profiliyle çalışır, onaydan geçer ve her adım denetim kaydına yazılır.

KURULUMself-hosted · compose
WORKERWindows · macOS · Linux
BAĞLANTIgiden WSS · TLS 1.3
RUNTIMEClaude Code · Codex · Pi · OpenCode
←/→ · boşluk · PageUp/PageDown · M liste · G git · F tam ekran01 / 25
SORUN

Ajanlar gerçek makinelerde, çoğu zaman kimse bakmıyorken çalışıyor

BUGÜN
REMANA'DA MEKANİZMA
Ajan, okuduğu depo metnini talimat sanar. Bir README satırı ona git push --force yazdırabilir.
Ajan çıktısı ve depo içeriği yetki vermez. Push, merge, deploy ve sır okuma platform tabanında; proje politikası bunları gevşetemez.
Sağlayıcı anahtarları ve abonelik girişleri ajanın erişebildiği ortamda durur.
Kimlik bilgileri tarayıcıda her worker'ın anahtarına mühürlenir; master yalnız şifreli metin görür. Abonelik girişine platform hiç dokunmaz.
Makine meşgulse ikinci iş düşer. Onay bekleyen iş slotu saatlerce tutar.
Geçici ret işi kuyrukta tutar. 60 dakika bekleyen onay işi duraklatır, slotu boşaltır, aynı makinede devam ettirir.
Hangi komut çalıştı, kim onayladı, sonradan kanıtlanamaz.
Her geçiş Postgres'te tek işlemle yazılır; denetim kaydı SHA-256 ile zincirlenir.
Ajan "bitti" der, sonuç doğrulanmadan yayına çıkar.
Doğrulama kapısı yayını alıkoyar; yayından sonra sağlık kontrolü ve isteğe bağlı geri alma.
kaynak: docs/security/threat-model.md (T-INJ, T-SBX)02 / 25
REMANA NEDİR

Tek kontrol düzlemi, makinelerde ajanlar

Master işleri sıraya koyar, politika ve onaylardan geçirir, kendi makinelerinizdeki worker'lara dağıtır. Worker ajanı seçilen sandbox profilinde çalıştırır ve sonucu geri yollar.

  • Master sizin işlettiğiniz bir host'ta docker compose ile çalışır: API, zamanlayıcı, Postgres, Redis, backup servisi. Veri ve sırlar kendi altyapınızda kalır.
  • Worker Windows, macOS ve Linux'ta işletim sistemi servisidir; master'a yalnız giden WSS bağlantısı açar. Makinede dinleyen port açılmaz.
  • Runtime olarak Claude Code, Codex, Pi ve OpenCode. Sürümler pinli; runtime politikası canary'den stable'a yükseltir.
  • Çıktılar master'da toplanır: dosyalar, siteler (Cloudflare Pages, Coolify), önizleme tünelleri.
animasyon · 14 sn · mimari
kaynak: ARCHITECTURE.md, docs/ops/cicd.md, docs/ops/worker-install.md03 / 25
BİLEŞENLER

Beş parça, her birinin tek bir işi var

kendi host'unuz · docker compose

Master

Fastify API; her route'ta yetki kontrolü, varsayılan ret. Zamanlayıcı ve yerleştirme. Postgres doğruluk kaynağı: her durum geçişi bir outbox satırıyla aynı işlemde yazılır.

Redis / BullMQ yalnız teslim ipucu taşır (jobId, attemptId, fencingEpoch). Redis kaybolursa durum Postgres'ten uzlaştırılır.

Kasa yalnız şifreli metin tutar. Denetim kaydı append-only ve hash zincirli.

tarayıcı · PWA

Web konsol

Chat, Jobs, Outputs, Uptime, Machines, Usage, Audit. Katı CSP: script-src 'self', inline script yok. Telefona uygulama olarak kurulur, Web Push alır.

Windows · macOS · Linux servisi

Worker daemon

Windows 10/11'de NT SERVICE\RemanaWorker, macOS'ta (Apple silicon, Intel) LaunchDaemon, Linux'ta (x64, arm64, Raspberry Pi OS) systemd. Ed25519 cihaz anahtarı; lease ve imleçleri yerelde saklar, yeniden başlatmada kaldığı yerden sürer.

worker içinde adaptör

Runtime adaptörleri

Claude Code (Agent SDK), Codex (app-server), Pi (RPC), OpenCode (loopback sunucu). Yetenekler doğru bildirilir; desteklenmeyen özellik varmış gibi sunulmaz.

compose içinde

Backup servisi

Gece yedeği, kurtarma sırlarının owner anahtarlarına şifrelenmesi, isteğe bağlı S3/R2 kopyası, haftalık geri yükleme tatbikatı. Durumu Settings → Backups'ta.

kaynak: ADR-0003, ADR-0008, ADR-0016, docs/design/p10-backup-restore.md04 / 25
PROTOKOL VE KİMLİK

Worker'ın kimliği bir anahtar, işi imzalı bir lease

  • Tek giden WSS (TLS 1.3) wss://<master>/v1/worker. NAT ve kurumsal güvenlik duvarı arkasında çalışır; VPN ya da gelen port gerekmez.
  • Eşleştirme: 10 dakikalık tek kullanımlık kod ve Ed25519 parmak izi; admin step-up ile onaylar.
  • Oturum: her bağlantıda sunucu nonce'u cihaz anahtarıyla imzalanır; en çok 15 dakikalık oturum tokeni. Uzun ömürlü bearer sır yok. İptal canlı soketi hemen kapatır.
  • Lease: master'ın Ed25519 ile imzaladığı kısa ömürlü token ve iş başına artan fencing epoch. Eski epoch'lu her yazma reddedilir ve denetlenir.
  • Sürümleme: Zod şemalı zarf, MAJOR.MINOR; bilinmeyen alanlar atılır, master mevcut ve önceki major'ı birlikte konuşur.
// worker → master · her mesaj
{
  "protocolVersion": "1.0",
  "type": "EVENT",
  "messageId": "…",      // tekrar → yeniden işlenmez
  "workerId": "…",
  "jobId": "…",
  "seq": 1842,            // monoton
  "ts": "…",
  "correlationId": "…",
  "payload": { "epoch": 3, … } // eski epoch → ret
}
Teslim en az bir kez. Tüketiciler idempotent; git dalı rac/<jobId>/<attempt> ve commit trailer'ı denemeyi taşır, eski bir deneme yenisinin üstüne yazamaz.
kaynak: ADR-0003, ADR-0004, ADR-0005, ADR-001105 / 25
İŞ YAŞAM DÖNGÜSÜ

Taslaktan hafızaya, her adım ayrı bir kapı

animasyon · 19 sn · iş yaşam döngüsü
DRAFT→QUEUED→RESERVED→STARTING→RUNNING→VERIFYING→AWAITING_APPROVAL→SUCCEEDED
PAUSEDRETRY_WAITLOSTBLOCKEDCANCELLEDFAILED
  • Geçişler açık bir geçiş tablosuna göre doğrulanır; geçersiz geçiş reddedilir ve denetlenir.
  • Worker kesilirse iş körlemesine yeniden çalışmaz: lease süresi dolan iş LOST olur ve uzlaştırılır. Yalnız idempotent adımlar otomatik tekrar edilir.
  • PAUSED: deneme açık, lease yok, slot boş. Devam aynı denemede, epoch + 1.
kaynak: ADR-0003, ADR-0004, ADR-0036, docs/design/p4-job-state-machine.md06 / 25
CHAT · OPS ASİSTANI

Asistan okur ve taslak hazırlar, çalıştıran insandır

  • Asistan sunucuda değil, seçilen bir worker'da Claude Code ile çalışır. Master hiçbir model anahtarı tutmaz.
  • Kabuğu, dosya ve web erişimi yok. Yalnız panel araçlarını kullanır ve bu araçlar kullanıcının kendi yetkisiyle çalışır.
  • Değişiklik bir taslak kartıdır. Confirm authenticator kodu ister, iş normal yoldan gider (onay kuralları, kotalar aynı). Kart 24 saatte düşer.
  • "Haber ver" izlemeleri: iş, onay, deploy, makine. Olunca sohbete not düşer ve bildirim gelir; yalnız isteyen kişiye.
  • Sabitleme, gruplar, etiketler, yıldızlı mesajlar, Details paneli, okunmamış sayacı, bildirim sesi, Web Push. Hepsi kişiye özel.
gerçek panel"The assistant only drafts; nothing runs until you confirm."
kaynak: ADR-0018, docs/canvas/chat.md07 / 25
İŞLER VE KUYRUK

Meşgul makine işi düşürmez, bekletir

  • Sınıflar: Acil +50 · Normal 0 · Arka plan −50. Dağıtım sınıf sırasıyla; sınıf içinde yaşlanma (her 60 sn +1) ve projeler arası ağırlıklı adil pay. Yaşlanma sınıfı değiştirmez.
  • Acil rezervi: makine başına 0/1/2 slot (varsayılan 1), en az iki paralel slot varsa uygulanır.
  • Geçici ret (declineKind: transient) işi kuyrukta tutar. Yalnız kalıcı ret o makineyi iş için dışlar.
  • Profil başına slot: worker her profil için kapasitesini bildirir; master ret beklemeden bekletir ve sebebini gösterir.
  • Abonelik girişleri giriş deposu başına tek tek çalışır; API anahtarlı işler paralel. Sohbetten gelen iş Normal'dir; Acil'i yalnız kullanıcının kendi mesajı yaptırır.
animasyon · 17 sn · kavramsal örnek
kaynak: ADR-0033, docs/canvas/kuyruk-plani.md08 / 25
MAKİNELER VE KAPASİTE

Kapasite tahminle değil, ölçümle

  • Öneri ölçülen değerlerden çıkar. Örnek kart (4 CPU, 7.9 GB RAM'li bir Windows makinesi): Recommended: 1 parallel job — Claude Code peaks ~2.8 GB, o makinedeki 12 işin ölçümüyle.
  • Panel yapılandırması öneriden fazla isterse liste ve makine sayfası uyarır (above recommended 1). Kapasite modu: manuel, öneri ya da sınırlar içinde otomatik.
  • Worker yapılandırması panelden yönetilir: imzalı, nesil numaralı, hash'li. Makinedeki yerel tavan panelden geleni her zaman sınırlar.
  • Liste: durum, yük, slotlar (3 slots (unconfined: 1), 1 kept for Acil), hazır runtime'lar.
gerçek panelWindows x64 worker · makine adı maskelendi
kaynak: ADR-0015, docs/design/p8-capacity-auto.md09 / 25
SANDBOX PROFİLLERİ

Her işletim sistemine kendi kafesi, zayıfa düşüş yok

PROFİLNEREDEİZOLASYON
containerLinux, rootless Docker/Podmansalt-okunur kök, düşürülmüş yetenekler, seccomp, egress allowlist proxy
runtime-sandboxCodex (Linux, Windows), Claude Code (Linux)runtime'ın kendi sandbox'ı + host kısıtları
host-restrictedWindows, macOS, Linux/Pi hostözel düşük yetkili hesap; Windows Job Object, macOS Seatbelt
unconfinedyalnız izin verilen makine + projedosya/ağ sınırı yok; kaynak limitleri ve kimlik kuralı sürer
  • Politika bir profil isterse ve worker veremiyorsa iş reddedilir; daha zayıf profile kendiliğinden geçilmez.
  • Prepare panelden imzalı bir komuttur; SYSTEM/root yardımcısı imzayı kendisi doğrular ve yalnız imzalı pakete gömülü sabit adımları çalıştırır.
  • unconfined için makine anahtarı, proje opt-in'i ve taze TOTP gerekir; makine sahibi yerel config ile tamamen yasaklayabilir.
gerçek panelPrepare succeeded · runtime-sandbox, host-restricted, unconfined ready
kaynak: ADR-0007, ADR-0019, docs/canvas/sandbox.md10 / 25
WINDOWS · İŞ BAŞINA HESAP

Paralel host işleri, birbirinin klasörünü göremeden

  • Her eşzamanlı host denemesi kendi yerel hesabında çalışır: remana-job-1…N (havuz 1–16, varsayılan max(maxParallelJobs, 4)).
  • Hesaplar yalnız batch logon alır; interaktif, RDP, ağ ve servis girişi kapalı, oturum ekranında gizli. Rastgele parolalar yalnız DPAPI LocalMachine blob olarak saklanır.
  • Runner hesabı LOGON32_LOGON_BATCH ile açar, runtime'ı CreateProcessAsUser ile worker'ın Job Object'i içinde başlatır.
  • Deneme klasörlerine korumalı DACL. İş bitince izinler geri alınır; temizlik başarısızsa hesap karantinaya girer.
  • Paralellik ancak makinede çapraz erişim öz-testi geçince açılır. Abonelik girişli işler bu hesaplara verilmez: paylaşılan OAuth yenilemesi paralel çalışmada girişi bozduğu için tek tek çalışırlar.
Panel kartı: Parallel: up to 3 for API-key runtimes; subscription logins run one at a time (each API-key attempt runs as its own Windows account)
Kalan ortak yüzey: localhost portları, süreç listesi, egress proxy (Windows'ta işletim sistemi zorlamaz). macOS host denemeleri Seatbelt ile ayrışır ve paralel; Linux/Pi host profilleri şimdilik tek tek.
kaynak: ADR-0034 (ekler 1–2), threat model T-SBX-411 / 25
ONAYLAR VE GÜVENLİ KOMUTLAR

Zararsız komut beklemez, çünkü iki taraf ayrı ayrı kanıtlar

  • Platform tabanı projeden gevşetilemez: korumalı dala push ve merge, force push, deploy, workspace dışı silme, sır okuma, bütçe artışı.
  • Worker runtime'ın çalıştıracağı komutu ayrıştırır, yolları diskte çözer (symlink, hard link, .git) ve bir iddia ekler.
  • Master komutu kendisi yeniden sınıflandırır. Kararlar eşitse onaylar ve approval.auto_safe denetim kaydı yazar; değilse istek insana gider.
  • Ayrıştırıcı regex değil: bash/sh/zsh, PowerShell ve cmd için dar alt kümeler. Değişken, glob, script bloğu, bilinmeyen alias: hepsi sorulur.
  • Full access (unconfined + "Never ask") proje opt-in'i, makine izni ve güvenilir kaynak ister; her anahtar taze TOTP, denetim ve sahiplere bildirimdir.
gerçek panelSafe commands · varsayılan: Read-only commands
kaynak: ADR-0010, ADR-0020, docs/design/p6-safe-auto-approve.md12 / 25
ONAY BEKLEME · PAUSE / RESUME

Onay bekleyen iş düşmez: duraklar, sonra kaldığı yerden sürer

  • Çalışma içi istek süresi dolup işi düşürmez. 15 dk sonra stale: hatırlatma bildirimi, sohbete bir not.
  • 60 dk sonra fenced PAUSE_JOB: runtime nazikçe durur, lease bırakılır, slot boşalır. Workspace, sandbox klasörü ve oturum 7 güne kadar saklanır.
  • Karar gelince aynı deneme, aynı makine, epoch + 1. Öncesinde politika, onaylayanın rolü ve makine yeniden kontrol edilir.
  • Karar eylemin parmak izine bağlıdır (eylem + özet için sha256). Ajan başka bir komut isterse yine insana sorulur.
  • Devam edemeyen iş başka makineye taşınmaz; konsol Restart from scratch ya da Cancel önerir. Duraklama süresi iş süresinden düşmez.
gerçek panelüst: 26 dk duraklama → devam → Succeeded · alt: workspace kayıp, Restart/Cancel bekliyor
kaynak: ADR-0036, docs/canvas/onay-bekleme.md13 / 25
ORKESTRASYON · ALT İŞLER

Ajan işin bir parçasını başka bir runtime'a devreder

  • Ajan request_subtask, wait_subtask, cancel_subtask araçlarını kullanır (Claude Code'da süreç içi MCP). Her çağrı canlı lease'e fenced bir SUBTASK_REQUEST olur.
  • Alt iş sıradan bir iştir: aynı kuyruk, kota, bütçe, onay ve denetim. İkinci bir zamanlayıcı yok.
  • Spec ajandan değil ana işin kayıtlı spec'inden türetilir. Sandbox ve kaynak güveni aynı, onay politikası aynı ya da daha sıkı; sır, deploy ve fallback aktarılmaz; bütçe ana işten kesilir.
  • Sınırlar: derinlik ≤ 2, iş başına ≤ 8 (aynı anda ≤ 4), aile başına ≤ 16. Proje başına varsayılan kapalı; açmak taze TOTP ister.
  • Abonelik girişli Claude ana iş ile Codex alt işi ayrı giriş depolarındadır; aile istisnasıyla aynı makinede birlikte çalışır.
Üretimde gözlendi: Claude koordinatör ve Codex alt işi aynı anda çalıştı; Codex görseli üretip teslim etti. Ekrandaki deneme makineyle bağlantı kopunca needs human review ile durdu: lease'i kaybolan iş körlemesine yeniden çalıştırılmaz.
kaynak: ADR-0031, ADR-0034 ek 2, docs/canvas/orkestrasyon.md14 / 25
ÇIKTILAR VE ÖNİZLEME TÜNELLERİ

Ne üretildiyse tek yerde, ne açıldıysa tek porttan

  • Outputs: canlı siteler, out/ dosyaları, notlar. Önizleme (Markdown, CSV, JSON, PDF, diff), SHA-256, saklama süresi, pin, klasörler, 100 dosya / 50 MiB ZIP ve MANIFEST.txt.
  • Site HTML'i script çalışmayan sandbox'lı çerçevede gösterilir; secret taramasının işaretlediği paket hiç gösterilmez.
  • Önizleme tüneli: master her önizleme için tek ingress kurallı bir Cloudflare Tunnel kurar. Worker'a yalnız o tünelin connector token'ı gider: 0600 dosyada, komut satırında değil.
  • Yalnız işin kendi süreç ağacının dinlediği port açılır; SSH, RDP, veritabanı ve worker'ın kendi portları reddedilir. Varsayılan 4 saat, en çok 24 saat; tahmin edilemez hostname.
gerçek panelOutputs · Cluster test / General / Machines klasörleri
kaynak: ADR-0032, docs/canvas/ciktilar.md, docs/canvas/onizleme-tunelleri.md15 / 25
DOĞRULAMA · DEPLOY · UPTIME

Yayın onayı iş açılırken verilir, kapı sonucu görene kadar bekler

  • Deploy on success: onay iş oluşturulurken alınır (politikaya göre taze TOTP). Tek kullanımlık, 8 gün geçerli kayıt; tekrar çalıştırma devralmaz. Production proje bazında ayrıca açılır.
  • Verify when done: off · report · gate. Master sitenin linklerini kendisi kontrol eder; doğrulayıcı iş build/test çalıştırır, Playwright ile 1280×800 ve 390×844 ekran görüntüsü, konsol hataları, kırık linkler.
  • Kapı yalnız alıkoyar: doğrulayıcının "geçti" demesi yetki vermez. Override proje admini ve taze kod ister, denetlenir.
  • Deploy sonrası sağlık: SSRF korumalı prob ve aynı-köken tarama; isteğe bağlı otomatik geri alma (production için ikinci anahtar).
  • Uptime: HTTP/TCP, Cloudflare Pages, Coolify. Metadata adresi, localhost, özel ağlar reddedilir; her yönlendirme yeniden kontrol edilir.
gerçek panelCloudflare Pages + HTTP monitörü · 24 sa / 7 g / 30 g
Doğrulayıcı ve deploy sonrası sağlık kontrolü entegrasyon testleriyle kapsanıyor; gerçek Pages/Coolify deploy'larıyla saha doğrulaması yol haritasında.
kaynak: ADR-0028, ADR-0030, ADR-0035, docs/canvas/uptime.md16 / 25
HAFIZA · BEDROCK

İnsan onaylar, bilgi birikir, sohbet anlamca bulur

animasyon · 14 sn · hafıza ve anlamsal arama
  • Biten işlerin özetleri ve projeye bağlı sohbetler kurallarla okunur (MEMORY:, KARAR:, paket yöneticisi, marka rengi…). Operator kabul etmeden hiçbir şey context'e girmez.
  • Embedding: AWS Bedrock cohere.embed-multilingual-v3, 1024 boyut. Anahtar panelden girilir, master'da şifreli durur, worker'a gitmez.
  • Gönderilen yalnız izinli projelerin doküman, iş özeti ve sohbet metni. Prompt, log, araç çıktısı ve sırlar gönderilmez.
  • Her mesajda en çok 6 parça (~6 KB), kullanıcının okuyabildiği kaynaklardan, "veri, talimat değil" bloğunda. Başkasının özel sohbeti hiç kullanılmaz.
kaynak: docs/design/p10-semantic-memory.md, docs/canvas/proje-hafizasi.md17 / 25
HAFIZA · PANELDE

Öneri kutusu ve kaynaklı cevap, panelde

gerçek panelMemory · "duplicates are found by meaning"
gerçek panel"Used 6 related items · found by meaning" · cevap içeriği maskelendi
Anlamsal arama açıkken sohbet ilgili işleri ve kararları anlamca bulur, yinelenen öneriler de anlamca ayıklanır. Bedrock yapılandırılmazsa aynı akış anahtar kelimeyle çalışır ve dışarı hiçbir şey gitmez.
kaynak: docs/design/p10-semantic-memory.md, docs/canvas/proje-hafizasi.md18 / 25
KULLANIM VE MALİYET

Harcanan para ile tahmin ayrı satırda

  • API harcaması gerçek dolardır. Abonelik kullanımı token, tur ve saat olarak gösterilir; yanında "API-equivalent ≈ $X (estimate)". Bilinmeyen maliyet sıfır sayılmaz, "≥" alt sınır olarak yazılır.
  • Kırılım: proje, runtime, model, makine, otomasyon; en pahalı ve en yavaş işler; CSV.
  • Bütçeler gün/hafta/ay, saat dilimiyle. %50/%80/%100 eşikleri. %100'de: yalnız uyar, yeni işleri beklet ya da yalnız otomasyonları durdur. Override sebep ve TOTP ister.
  • API-equivalent tahmin, Usage → Prices'a girilen sürümlü fiyat tablosundan hesaplanır; fiyat yoksa "unknown — price missing" yazar.
  • Öneriler sabit kurallarla ve kanıtıyla gelir; hiçbiri kendiliğinden uygulanmaz. Haftalık rapor her Pazartesi 08:00, kişinin saat diliminde.
örnek veri · gösterim amaçlıtahmin örnek fiyatlarla: Claude $3 / $15, Codex $1.25 / $10 (1M girdi / çıktı token)
kaynak: ADR-0014 §5, docs/canvas/maliyet-verimlilik.md19 / 25
GÜVENLİK MODELİ

Ajan çekirdekte, her halka ayrı bir kapı

animasyon · 14 sn · güvenlik katmanları
  • İnsan: scrypt parola + zorunlu TOTP. Oturum çerezi HttpOnly, Secure, SameSite=Strict; CSRF çift gönderim. Step-up penceresi 10 dk; hesap güvenliği işlemleri her seferinde taze kod.
  • Roller: owner, admin global; operator, viewer proje bazında. Başka projenin kaynağı 404 döner.
  • Güvenilmeyen içerik: depo metni ve ajan çıktısı hiçbir şeyi yetkilendirmez. Fork PR'lar unconfined, auto-approve ve deploy alamaz.
  • Denetim: append-only, SHA-256 hash zinciri, aralık doğrulama; dışa aktarım step-up ister.
kaynak: ADR-0009, ADR-0010, docs/design/p5-rbac.md, docs/design/p5-search-audit.md20 / 25
SIRLAR VE KİMLİK BİLGİLERİ

Master anahtarları taşır ama açamaz

1 · TARAYICIAdmin değeri girer

Değer her seçili worker'ın X25519 anahtarına ayrı ayrı mühürlenir: HKDF-SHA256 + AES-256-GCM, yalnız WebCrypto.

açık metin yalnız burada
2 · MASTERYalnız şifreli metin

Metadata ve worker başına şifreli metin saklar; hiçbir route değeri kabul etmez, döndürmez, loglamaz. Yazma: admin + taze step-up + CSRF.

açamaz
3 · İLETİMİmzalı APPLY_CREDENTIAL

Lease anahtarıyla imzalı; worker, kimlik bilgisi, sürüm ve şifreli metin özetine bağlı. Eski ya da çelişen sürüm reddedilir.

şifreli
4 · WORKERAçar, kendi deposuna yazar

Kendi anahtarıyla açar, yerel sır deposuna koyar, yalnız id + sürüm bildirir. İş başına ortam değişkeni olarak enjekte edilir.

açık metin yalnız burada
  • Vault anahtarı worker'ın Ed25519 cihaz anahtarıyla imzalanıp duyurulur; master eşleştirmede pinlediği anahtarla doğrular. Anahtar değişirse kayda geçer ve bildirilir.
  • Yazma-yalnız: döndürülür, kaldırılır, iptal edilir; asla geri gösterilmez.
  • Abonelik girişi (Claude, ChatGPT): platform okumaz, kopyalamaz, iletmez. Tarayıcı ve worker sk-ant-oat… token'larını reddeder; durum yalnız authenticated: yes | no | unknown.
  • Master'ın tuttuğu entegrasyon sırları AES-256-GCM ile, HKDF alt anahtarlarıyla saklanır; worker'a ve sohbet asistanına gitmez. Log redaksiyonu hem worker'da hem master'da.
kaynak: ADR-0006, ADR-0014, ADR-0016, ADR-002821 / 25
YEDEKLEME VE GERİ YÜKLEME

Yedek, geri yüklenene kadar yedek sayılmaz

  • Her gece 02:30 UTC; REPEATABLE READ anlık görüntüsüyle tutarlı dump. Manifest: şema sürümü, tüm tabloların satır sayıları, parmak izleri, SHA-256, denetim zinciri başı.
  • Kurtarma sırları age ile owner'ların açık anahtarlarına şifrelenir. Sunucuda açacak anahtar yok; yedek panelden indirilemez.
  • Saklama 7 günlük, 4 haftalık, 3 aylık. Haftalık tatbikat ağsız, geçici bir Postgres'e geri yükler ve her şeyi yeniden kontrol eder.
gerçek paneltatbikat PASSED · bütünlük, şema, migration, satır sayıları
Sunucu dışı kopya: S3 uyumlu hedef (AWS S3, Cloudflare R2), kimlik bilgileri sizin; dump ve sır arşivi age ile şifreli yüklenir. Yapılandırılmazsa yedekler host'ta kalır ve panel bunu açıkça uyarır. Varsayılan RPO 24 saat.
kaynak: docs/design/p10-backup-restore.md, docs/canvas/yedekleme.md22 / 25
OPERASYON

Her sürüm imzalı, her deploy kapılı

  • Master deploy tek komut: image'lar host'ta build edilir, image ID'leri Ed25519 imzalı bir release kaydına yazılır ve rollout'tan hemen önce yeniden doğrulanır.
  • Deploy öncesi yedek, ileri yönlü migration, ardından sağlık kapısı. Uygulama deploy'u Postgres ve Redis'i yeniden yaratmaz.
  • Worker sürümleri çevrimdışı release anahtarıyla imzalanır. Master yalnız saklar ve sunar; worker ve root güncelleyici imzayı ayrı ayrı doğrular. Geçiş atomik; yeni sürüm ayağa kalkmazsa güncelleyici geri döner, sürüm düşürme reddedilir.
  • Kanallar stable ve canary, yüzdeyle rollout: önce canary makineler, sonra stable %10–25, sonra %100. Yükleme step-up ister; kabul de ret de denetime yazılır.
  • Protokol uyumu: master önceki major'ı da konuşur; eski worker'lar yeni özellikleri almaz ama çalışmaya devam eder.
ADIMMASTER DEPLOY · NE OLUR
preflighttemiz ağaç, commit'ten sürüm etiketi, imza anahtarı kontrolü
ship · buildgit archive (yalnız izlenen dosyalar, sır yok) → host'ta docker build
imzaimage ID'leri → imzalı release kaydı; rollout öncesi yeniden doğrulama
yedek · migratedeploy öncesi yedek, ardından ileri yönlü migration
sağlık kapısı~60 sn: container'lar healthy, imzalı image ID'leri çalışıyor, smoke istekleri geçiyor
keep · prunekapı geçmezse ve şema değişmediyse önceki sürüme otomatik dönüş; son sağlıklı sürümler tutulur, gerisi temizlenir
Şema ilerlediyse otomatik geri dönüş yapılmaz, çünkü eski master yeni şemayı reddeder: ileri düzeltme ya da deploy öncesi yedekten geri yükleme. Staging'de çalışan image ID'leri production'a aynen terfi eder.
kaynak: docs/ops/cicd.md, docs/ops/worker-updates.md, ADR-001123 / 25
OLGUNLUK VE YOL HARİTASI

Neler üretimde kanıtlı, neler yolda

ÜRETİMDE ÇALIŞIYOR

  • Windows iş başına hesaplar: çapraz erişim öz-testi geçince API anahtarlı host işleri paralel.
  • Onay → stale → pause (slot boşalır) → onay → aynı makinede devam → Succeeded.
  • Alt işler: Claude koordinatör ve Codex alt işi eşzamanlı; çıktı ana işe teslim.
  • Anlamsal hafıza: Bedrock Cohere ile dizinleme, sohbette kaynaklı cevap.
  • Yedek ve tatbikat: gece yedeği, haftalık otomatik geri yükleme tatbikatı.
  • Sürüm hattı: imzalı worker sürümleri kanal ve yüzdeyle; master deploy'u sağlık kapısıyla.
  • Uptime: HTTP ve Cloudflare Pages monitörleri.

YOLDA / BİLİNEN SINIRLAR

  • macOS ve Linux worker'lar otomatik uçtan uca filo testinde doğrulanıyor (eşleştirme, heartbeat, yeniden bağlanma, drain, iptal); saha kullanımı en olgun hâliyle Windows'ta.
  • Linux/Pi host profilleri şimdilik tek tek çalışır; iş başına izolasyon sıradaki iş.
  • Playwright doğrulayıcısı ve deploy sonrası sağlık kontrolü testlerle kapsanıyor; gerçek deploy'larla saha doğrulaması sürüyor.
  • Önizleme tünelleri gerçek bir Cloudflare hesabıyla uçtan uca doğrulama bekliyor.
  • Runtime oturumunun birebir sürmesi garanti değil; Claude Code ve Codex özetle yeni oturumda devam edebilir.
  • Image build'i bugün kontrol düzlemi host'unda; CI build, registry ve provenance imzası planlı.
  • Web Push'un mobil cihaz doğrulaması ve sandbox kaçış testleri planlı.
kaynak: ADR'lerin "UNVERIFIED" notları, docs/ops/cicd.md §7, docs/ops/local-fleet-test.md24 / 25
ÖZET

Ajanları başıboş bırakmadan,
kendi makinelerinizde çalıştırın.

KONTROL

Kuyruk sınıfları, profil başına slot, geçici ret. Meşgul makine işi düşürmez.

KAFES

İşletim sistemine göre sandbox, Windows'ta iş başına hesap, iki taraflı kanıtla güvenli komut.

KANIT

İmzalı lease ve sürümler, hash zincirli denetim, her hafta geri yüklenen yedek.

Kontrol düzlemi kendi host'unuzda docker compose ile; worker'lar Windows, macOS ve Linux makinelerinizde.

Remana Agent Cluster · Ekim 202625 / 25