Cogu gelistirici bu kaliplara hic ihtiyac duymaz. Ancak CI entegrasyonlari olusturuyorsaniz veya eszamanli Claude orneklerini yonetiyorsaniz, bu kalipler gizli oturum bozulma hatalarini onler.
Cok adimli boru hattiniz sirasiyla calisiyor ama 20 dakika suruyor. Oturumu forklayarak paralelletstirmeye calisiyorsunuz — ve forklanan oturumlarin baslangic baglamini paylastigini ama kardes forklardan gelen sonraki guncellemeleri paylasmadiqini kesfediyorsunuz. Gelismis oturum kaliplari, hangi durumun aktarildigini ve hangisinin aktarilmadigini anlamayi gerektirir.
Bu bolum gelismis oturum kaliplarini kapsar. Oturum temelleri (olusturma, devam etme, surdurme) icin Oturumlarla Calismak bolumine bakin.
—fork-session ile Dallanma
--fork-session bayragi, konusma gecmisinin bir kopyasiyla yeni bir oturum olusturur. Orijinal oturum degistirilmeden kalir:
claude -p "Bunun yerine B yaklasimini dene" \ --resume "$SESSION" --fork-session --output-format jsonBu size temiz bir dallanma noktasi verir. Forklanan oturum kendi UUID’sine ve kendi gelecegine sahiptir; orijinal ise --resume icin kullanilabilir olmaya devam eder. Kullanim alanlari sunlardir:
- A/B yaklasim testi — ayni karar noktasinda forklayip sonuclari karsilastirin
- Alternatifleri kesfetme — ana akisi kaybetmeden riskli bir yeniden duzenleme deneyin
- Zincirleme forklar — agac seklinde bir arastirma olusturmak icin bir forku forklayabilirsiniz (her fork yeni bir UUID alir)
Yeni oturum kimligini gosteren gercek bir fork yaniti:
Orijinal oturum (4b8101c6-...) devam ettirildiginde hala “BASE_MESSAGE” dondurur — forklama tamamen yikici olmayan bir islemdir.
Bir oturumu forklayip baglam izolasyonunu test edin:
SID=$(claude -p “Hatirla: kod 42” —output-format json | jq -r ‘.session_id’)
claude -p “Kod nedir?” —resume “$SID” —output-format json | jq ‘.result’
claude -p “Kodu 99 olarak degistir. Kod simdi nedir?” —resume “$SID” —output-format json | jq ‘.result’
Ikinci devam ettirme birincinin degisikligini goruyor mu, yoksa her fork orijinal durumu mu aliyor?
Eszamanli Oturumlar
Birden fazla claude -p cagrisi ayni dizinde catisma olmadan paralel olarak calisabilir. Her biri benzersiz bir oturum kimligi ve bagimsiz baglam alir:
# Her ikisi de ayni anda calisir, kilitleme yokclaude -p "Auth modulunu incele" --output-format json > review_auth.json &claude -p "Veritabani modulunu incele" --output-format json > review_db.json &waitHerhangi bir oturum kilitleme mekanizmasi yoktur. Paralel cagrilar birbirini etkilemez.
—continue Hangisini Secer?
Bir dizinde birden fazla oturum bulundugunda, --continue en son olusturulani secer. En son degistirilen veya en uzun calisani secmez.
--continue Cozumleme Kurallari
| Senaryo | Sonuc |
|---|---|
| Dizinde tek oturum | O oturumu secer |
| Dizinde birden fazla oturum | En son olusturulani secer |
| Ust dizin ve alt klasorde oturumlar | Yalnizca mevcut dizindeki oturumlari gorur |
| Mevcut dizinde oturum yok | Hata: devam edilecek oturum yok |
Oturumlar ~/.claude/projects/<kodlanmis-dizin-yolu>/ konumunda saklanir, bu nedenle --continue dizin kapsamlidir. Dizinden bagimsiz olarak belirli bir oturumu hedeflemek istediginizde --resume SESSION_ID kullanin.
Daha sonra belirli oturumlari devam ettirmeniz gereken paralel is akislari icin, her JSON yanitindan session_id degerini kaydedin ve —continue yerine —resume kullanin. Bu, hangi oturumun devam ettirildigi konusundaki belirsizligi ortadan kaldirir.
Deterministik Oturum Kimlikleri
--session-id bayragi yeni bir oturuma belirli bir UUID atar ve CI korelasyonu icin deterministik adlandirmayi mumkun kilar.
Kullanim alani: CI izlenebilirlik. Ayni PR numarasi her zaman ayni oturum kimligini uretir, bu da loglari boru hatti calistirmalari arasinda aranabilir kilar:
# CI izlenebilirlik icin deterministik bir oturum kimligi ataPR_UUID=$(echo "pr-$PR_NUMBER" | uuidgen --sha1 --namespace @url)claude -p "Linting calistir" \ --session-id "$PR_UUID" \ --output-format jsonOnemli davranislar:
- Dondurilen
session_id, sagladiginiz UUID’nin tamamiyla aynisidir — onek veya sonek eklenmez - Deger gecerli bir UUID olmalidir (8-4-4-4-12 hex formati). Uyumsuz dizeler sessizce bos cikti uretir
- Zaten aktif olan bir oturum kimligini yeniden kullanmak su hataya yol acar:
Error: Session ID <uuid> is already in use --session-idyalnizca atama icindir — devam ettirmez. Bunun icin--resumekullanin--resumeile--session-idbirlesimi--fork-sessiongerektirir (yeni-kimlige-fork semantigi)
# Bir oturumu yeni bir deterministik kimlige forklaclaude -p "B yaklasimi ile devam et" \ --resume "$OLD_SESSION" \ --session-id "$NEW_UUID" \ --fork-sessionInteraktif mod oturumlarinda dosya kilitleme YOKTUR. Ayni oturumu degistiren iki terminal penceresi onu BOZACAKTIR. Bu sekilde tum konusma gecmislerini kaybettik.
Eszamanli claude -p oturumlari guvenli olsa da (her biri benzersiz bir oturum kimligi ve bagimsiz baglam alir), interaktif oturumlar birden fazla ornek ayni anda degistirdiginde .claude.json durum dosyalarini bozabilir.
Bozulma soyle gorunur: Ayristirma hatalari, eksik turlar veya claude’un devam ettirememesi. Kurtarma mekanizmasi yoktur — dosyayi silip bastan baslayin.
Guvenli kalipler: Basliksiz (-p) mod, oturumlari oturum basina izolasyonla ~/.claude/projects/ konumunda saklar. Interaktif oturumlar icin ayni proje dizininde birden fazla ornek calistirmaktan kacinin.
—resume + —fork-session kombinasyonunun uc dallanma stratejisiyle gercek bir tartisma sistemini nasil destekledigini gorun: MR Inceleyici Olusturun, Bolum 4: Tartismalar Icin Oturum Forklama.
Bir oturumu forklayın: bir oturum kimligi yakalayip, onu farkli promptlarla iki kez devam ettirin. Her forkin orijinal baglami aldigini ama diger forkin degisikliklerini gormedigini dogrulayin. Bu, paralel gorev yurutme kalıbidir — ortak bir plandan dallanin, bagimsiz olarak yurutun.