Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Türkçe · English

CinarOS — AI'ların paylaştığı kalıcı hafıza

Claude Code, Codex ve Grok'un aynı diski okuyup yazdığı bir hafıza sistemi. Oturum kapanınca özeti diske düşer, yeni oturum açılınca hafıza modele otomatik enjekte edilir.

Tez: hafıza disiplin değil, mekanizma olmalı. "AI'a her seferinde notlarımı oku dersem çalışır" bir disiplindir ve unutulur. Burada kanca (hook) zorlar: model istese de istemese de hafıza gelir, oturum bitince de yazılır.


Ne yapar

Ajan Okur Yazar
Claude Code
Codex
Grok

Grok kancayı ateşliyor ama kanca çıktısını modele enjekte etmiyor — bu Grok'un kendi sınırı, ölçüldü. Onun kapısı farklı: Grok'un kendi hafıza dosyası ~/.grok/memory/MEMORY.md. grok-hafiza-yaz.ps1 CinarOS hafızasını oraya yazıyor, her flush sonrası tazeliyor.

İki tuzak var, ikisi de ölçüldü:

  • Grok'un hafızası varsayılan olarak kapalı. ~/.grok/config.toml içine [memory] enabled = true gerekiyor; olmadan dosya hiç okunmuyor.
  • Grok yalnızca ~2.100 karakter okuyor (9.6 KB yazıldı, model "kesilmiş" dedi). Bu yüzden Grok'a ayrı, sıkıştırılmış bir yük üretiliyor: şu an + kalıcı kısıtlar + açık iş başlıkları.

Not: GROK.md okunmuyor — bu isim 134 MB'lık ikilide sıfır kez geçiyor.

Akış:

oturum açılır  → SessionStart kancası → hafıza dosyaları okunur
                                       → modele enjekte edilir (~9.500 karakter)

oturum kapanır → SessionEnd kancası   → transcript'ten turlar çıkarılır
                                       → HAM kayıt diske yazılır (her koşulda)
                                       → özetlenir → Hafiza/Daily/ altına düşer

gün biter      → derleyici            → günlükten kavram/bağlantı grafiği üretir

Neden bu kadar çok kontrol var

Bu sistem 20 gün boyunca sessizce ölü kaldı ve kimse fark etmedi: bir betikte tek bir ASCII dışı karakter vardı, PowerShell 5.1 onu cp1252 sanıp dizgeyi kırıyordu. Hata vermiyordu, sadece çalışmıyordu.

O yüzden burada iki şey var:

beyin-doktor.ps1 — 22 kontrol. Kancalar gerçekten koşuyor mu, enjeksiyon bütçeyi aşıyor mu, transcript şeması ayrıştırıcıyla uyuşuyor mu, dosyalarda BOM veya kontrol karakteri var mı, yedek taze mi. Her kapı mutasyonla sınandı: korumayı kaldır, kırmızı veriyor mu diye bakıldı. Vermeyeni attık.

.claude/tests/regresyon.ps1 — 9 test, ~13 saniye, sıfır model çağrısı. Sahte CLI ile koşar, kendi "bedava" vaadini sayaçla kanıtlar. flush-worker.ps1'e dokunan herkes bunu koşturabilir.


Ölçülmüş dersler (kod yorumlarında da yazılı)

  • Kanca ateşlemesi işin yapıldığı anlamına gelmez. Codex 0.151 transcript şemasını değiştirdi; kanca ateşledi, işçi koştu, hata çıkmadı, sıfır tur ayrıştırıldı ve doktorun 17 satırı yeşil kaldı. Bu yüzden artık şema kontrolü var ve tur 0 kırmızıdır.
  • Çıkış kodu 0 başarı değildir. Bir arıza "OZET BASARISIZ" yazarken çıkış kodu boş döndü.
  • PS 5.1 BOM'suz UTF-8'i cp1252 sanır. Betikler saf ASCII, dosyalar .NET UTF8Encoding(false) ile yazılır. Set-Content -Encoding UTF8 BOM ekler, > yönlendirmesi UTF-16 üretir.
  • Directory.CreateDirectory kilit değildir — var olan klasörde hata vermez. Gerçek kilit File.Open(CreateNew, FileShare.None).
  • Hafıza geri beslemesi gerçek bir tehlikedir. Model enjekte edilen hafızayı tekrarlar, özetleyici onu "bu oturumda yapıldı" sanır, ertesi gün o satır hafıza olarak geri gelir. Kısıt konuşmacıya bakar: USER: turunda geçen gerçektir, yalnız ASSISTANT: turunda geçen eski hafıza tekrarıdır.

Kurulum

Gerekenler: Windows, PowerShell 5.1+, Claude Code CLI. Codex ve Grok isteğe bağlı.

git clone <bu-repo> cinaros
cd cinaros
powershell -NoProfile -ExecutionPolicy Bypass -File .\kur.ps1

kur.ps1 şunları yapar:

  1. Kasa klasörünü oluşturur (varsayılan %USERPROFILE%\Documents\CinarOS)
  2. ornek-vault/ iskeletini kopyalar — sen doldurursun
  3. Kancaları ve işçileri yerleştirir
  4. Claude Code settings.json'a kanca kaydını ekler
  5. Skill'leri kurar (/kaydet, /hatirla, /doktor)
  6. Doktoru koşturur ve sonucu gösterir

Kurulumdan sonra:

powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE\Documents\CinarOS\.claude\tests\regresyon.ps1"

9/9 görmelisin.

Codex ve Grok (isteğe bağlı)

Codex: kur.ps1 -Codex eklentiyi kurar. Codex'i açtığında bir kez "Trust all and continue" demen gerekir — güven verilmeden kancalar hiç koşmaz.

Grok: kur.ps1 -Grok ~/.grok/config.toml'a SessionEnd kancasını ekler.


Kasanın yapısı

Yükleyici bu dosyaları okur; adları önemlidir:

Dosya Ne Enjeksiyon tavanı
MAP.md Yönlendirme haritası 450
AI-OKU.md Okuma/yazma kuralları 500
Hafiza/Ben.md Kimlik + kalıcı kısıtlar 3.000
Hafiza/Durum.md Şu anki durum (ters kronolojik) 2.200
Hafiza/Acik-Isler.md ## Active bölümü 3.400
Arsenal/Elimdekiler.md Envanter 1.100

Toplam bütçe 9.500 karakter (Claude Code'un sınırı 10.000).

İki şeye dikkat:

  • Durum.md ters kronolojiktir ve yalnız ilk 2.200 karakteri enjekte edilir. Üste teknik tefrika yazarsan "şu an ne yapıyorum" özetini pencereden dışarı itersin. Bu bir kez oldu; mühendislik detayını Dersler/ altına taşı.
  • Acik-Isler.md'de #### [RAF] bir duraktır. Altındaki başlıklar tek satırla özetlenir, gövdeleri enjekte edilmez. Park edilmiş işleri oraya koy.

Ne yapmaz

  • Buluta bir şey göndermez. Her şey diskte, düz markdown.
  • Obsidian gerektirmez. İstersen kasayı Obsidian'da açarsın, ama sistem onsuz çalışır. Obsidian sadece bir okuyucu.
  • Compact sonrası aynı oturumda hafızayı geri getirdiği ÖLÇÜLMEDİ. SessionStart startup|resume|clear olaylarında ateşliyor; compact o listede yok. Yeni oturum açılışı ölçüldü ve çalışıyor; compact içi ölçülmedi.
  • Windows dışında denenmedi. Betikler PowerShell.

Dürüstlük notu

Buradaki her iddia ölçüldü ya da "ölçülmedi" diye işaretlendi. Bir kapının çalıştığını söylüyorsak, o kapıyı kırıp kırmızı verdiğini görmüşüz demektir. Doktorun bir satırı yeşilse, o satırın yanlış yeşil olmadığını sınamışız demektir — çünkü bir kez tam tersi oldu ve 22 saat kimse fark etmedi.

Aynısını sen de yap: bir şeyi "çalışıyor" diye eklemeden önce kırmayı dene.


Yayınlamadan önce: gizlilik taraması

Bu sistemin doğası gereği en tehlikeli hata, kendi kasanı yanlışlıkla yayınlamaktır. Kasada kimlik dosyan, müşteri işin, oturum günlüklerin var.

.\gizlilik-tarama.ps1
.\gizlilik-tarama.ps1 -Ekstra 'ProjeAdi','MusteriAdi'

12 desen arar: kullanıcı adı, mutlak yol, sk-/AIza/xai-/ghp_/AKIA anahtarları, özel anahtar blokları, gömülü parola, e-posta, TC kimlik no, IBAN. Bulgu varsa çıkış kodu 1 verir.

Kendi desenlerini -Ekstra ile ver — proje ve müşteri adların bilinen desenlerde yok, verilmezse taranmaz.

Belgende örnek bir anahtar göstermen gerekiyorsa yoksayma işaretçisi kullan:

# gizlilik-tarama:yoksay-basla
ornek: sk-buGercekDegil...
# gizlilik-tarama:yoksay-bitir

Araç kendi çalıştığını kanıtlar: her desen, taramadan önce bilinen bir örnekle sınanır. Bir desen kendi örneğini yakalayamıyorsa tarama başarısız sayılır ve sonuca güvenilmez. Bu, "bulgu yok" ile "arama bozuk"u ayırt eden tek şeydir — ikisi ekranda aynı görünür.

Lisans

MIT — bkz. LICENSE.

About

Claude Code, Codex ve Grok'un aynı diski okuyup yazdığı kalıcı hafıza sistemi. Hafıza disiplin değil, mekanizma.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages