# Coklu hesap aktifligi - ilerleme notlari

Hedef: Birden fazla fikoyt hesabi ayni bilgisayarda ayni anda etkin olsun.
Web'den gelen her istek token ile profili cozer; istek yalnizca kendi profilinin
verisine (izin, eklenti, eslesme) erisir.

## Asama 1 - Veri modeli ve baglam (TAMAMLANDI, yayinlanmadi)
- `etkin_hesaplar.go`: etkin hesap kumesi (etkin-hesaplar.json), `etkinMi`, `etkinHesapEkle/Cikar`,
  istek baglamina profil koyma (`profilBaglam`, `istekProfili`, `profilDe`).
- Giriste hesap etkin kumeye eklenir; cikarilinca kumeden cikar.

## Asama 2A - Eklenti cagirma yolu (TAMAMLANDI, yayinlanmadi)
- `kuruluSurumProfil`, `kuruluEklentiYoluProfil`, `klasorIzniAl(profil,..)`, `eklentiIzniAl(profil,..)`.
- `kuruluEklentiCagirHandler` profilDe(r) kullaniyor.

## Asama 2B - Web uclari
Tamamlanan:
- `izinlerHandler` (izin.go) -> izinOkuProfil(profilDe(r))
- `izinIsteHandler` (izinistek.go) -> profil parametreli (kuruluVarMiProfil, yetkiVerProfil, izinleriKaydetProfil)
- `izinKaldirHandler` (izinkaldir.go) -> yetkiGeriAlProfil, izinOkuProfil
- `izinleriKaydetProfil` (izin.go) eklendi.

Kalan (sirayla):
1. (TAMAM) `dosya_calistir.go` -> `kuruluEtkinMiProfil(profil, ..)`.
2. (TAMAM) `eklenti.go` (kapi, eklenti listesi) ve `eklenti_durum.go` (kurulu listesi) -> profilDe(r).
   `durum_sayfasi.go` yerel sayfa; aktif profil kalir (asama 3 ile birlikte).
3. (TAMAM) `eklenti_kur*.go`: eklentiKur / eklentiKurOnayli / kuruluAcilistaAyarla profil parametreli; socket surec isleyicisi (`surecIstegiIsle`) kurulu kontrolu ve ayarlari profil bazli.
4. Eklenti surec tablosu (`ekAktifAnahtar`, `eklentiCagirVarsayilan`) - SIRADA. Plan:
   a) (TAMAM) `eklenti_oturum.go`: profil parametreli karsiliklar (ekOturumAlProfil, ekOturumBaslatProfil,
      ekCagirProfil, ekOturumVarProfil, ekSurecBaslatProfil, ekEklentiDurdurProfil, ekSurecCalisiyorProfil,
      ekSurecTaraProfil, ekSurecAyarProfil). Eski isimler aktif profile yonlenen sarmalayici.
   b) (TAMAM) `eklentiCagri.Profil` alani; `eklentiCagirVarsayilan` onu kullanir (bos = aktif).
   c) (TAMAM) socket (`eklenti_socket.go`), `eklenti_cagir.go`, `dosya_calistir.go`, `everything_eklenti.go` Profil veriyor.
      (TAMAM) `eklenti_acilis.go`: etkin her hesap icin ayri ayri baslatilir (`kuruluAcilistaListesiProfil` kullanir).
   d) Her parcadan sonra testler; sonra korumali kapisi. Kapiyi acmadan once `cihaz.go` (cihaz kimligi) bitmeli.
5. (TAMAM) `cihaz.go`: senkron dongusu etkin her hesap icin calisir (`cihazSenkronProfil`); `senkronBirProfil`,
   `izinKaydetOnayProfil` profil parametreli. Tam test paketi (`go test .`) ve `go vet` temiz.
   Onay penceresi riski (cozuldu): onay basliklarina hesap adi eklendi (`hesap_baslik.go`, `hesapBaslik`).
   Kapsam: izin-iste, senkron izin onayi, eklenti kurulum/acilis onayi, eklenti etkinlestir/kaldir/baslat,
   klasor ve eklenti islem izinleri, dosya islem izinleri, surec onayi. Baslik: "<metin> — hesap: <kullanici>".
   Test: `izin_iste_coklu_test.go` (TestIzinIsteBaslikHesapAdi). Bilerek global kalanlar: eslesme (ilk
   eslestirme), guncelleme, yerel eklenti kaldirma.
Bitince: `korumali` -> `etkinMi(sahip)` (aktif kontrolu kalkar).
   6. (TAMAM) Koruma kapisi (`guvenlik.go` korumali) artik `etkinMi(sahip)` kullaniyor; aktif profil gerekmez.
      Istegin profili `profilDe(r)` ile belirlenir. Test: `korumali_coklu_test.go` (iki etkin hesap, her token
      yalnizca kendi izin verisini gorur; devre disi birakilan hesabin token'i 409). `profil_token_test.go`
      yeni modele gore guncellendi. `etkinTestKur` yardimcisi testten sonra global durumu geri yukler.
      Profil testleri (korumali zinciri): izinler, izin-kaldir (`izin_kaldir_coklu_test.go`), izin-iste
      (`izin_iste_coklu_test.go`; onay ekrani `onayBekle` degiskeni uzerinden taklit edilir), eklenti/kurulu
      (`eklenti_kurulu_coklu_test.go`), cihaz (`cihaz_kimlik_coklu_test.go`) dogrulandi.
      Kalan uclar icin profil testi henuz yok: eklenti/cagir, eklenti uclari (everything, catia).
      `healthHandler` korumali degil; bilerek aktif hesabin oturumunu raporlar.
      Test notu: izin durumu bellek ici onbellekte tutulur ve testler arasinda kalir; izin kullanan her test
      kendi izin durumunu `izinleriKaydetProfil` ile acikca kurmali. Guncelleme ve tray bilerek global.
   7. (TAMAM) Socket komut kapisi: `sokOlayIzinli(olay, profil)` artik etkinMi(profil) kullanir (aktif profil degil).
      Her hesabin komutu kendi soketinden gelir; etkin olmayan hesabin komutu yok sayilir. Test: socket_yetki_test.go.
   8. (TAMAM) Eklenti olay ve parca akisi profil bazli: `ekOturum.profil` alani; `eklentiOlayIlet(profil, anahtar, satir)`
      ve `eklentiParcaGonder(profil, params)` ilgili hesabin soketine yazar.
   9. (TAMAM) Eklenti komutlari (`eklenti_socket.go`): etkinlestir, devre-disi, kaldir, acilis-kapat, ara, calistir
      profil bazli. `eklenti_surec_baglanti.go`: baslat, durdur, tara, ayar profil bazli; `ayarKaydet` ve
      `ayarBirlestir` profil parametresi alir. `dosya_calistir.go`: kurulu yol ve ayar profil bazli.
   10. Kalan bilincli aktif kullanimlar: `sokAktifVeHazir` (guncelleme olaylari, `sokOlayGonder`; guncelleme
      tum bilgisayar icin tek islem), `eklentiKaldir` (eklenti_yerel.go, aktif) ve `ekOturumAl/ekCagir/...`
      sarmalayicilari (eski cagri noktalari icin; profil yollari profil versiyonlarini kullanir).
   Durum: `gofmt` temiz, `go vet .` temiz, `go test .` gecti (bu tur sonrasi).

Asama 2B-3 (TAMAM): dosya izinleri profil bazli. `dosyaIzinler[profil]`, dosya
`profiller/<anahtar>/bridge-dosya-izin.json`. Eski kok dosyasi (`bridge-dosya-izin.json`)
artik okunmuyor: mevcut dosya izinleri bir kerelik yeniden verilmeli.

## Asama 3 - Yerel ayar sayfasi (TAMAM, bu turda)
- `/ayarlar/hesap/<anahtar>` artik etkin hesaplar icin profil bazli veri okur: `izinOkuProfil`,
  `eslesmeleriOkuProfil` (`eslesme_profil.go`), `kuruluListesiKopya(anahtar)`.
- Etkin ama aktif olmayan hesap: salt okunur sayfa (`ayarlar_salt.go`, `hesapSayfaSaltOkunur`). Izin
  degistirme, eslesme kaldirma ve guncelleme kontrolleri yok; "Bu hesabi aktif yap" dugmesi var.
- Etkin degil ama kayitli hesap: eski "Bu hesabi kullan" sayfasi aynen kaldi.
- Degistirme uclari (`/ayarlar/izin`, `/ayarlar/eslesme-kaldir`) hala aktif hesaba yazar; salt okunur sayfa
  bunlari sunmadigi icin pasif hesap uzerinde degisiklik yapilamaz.
- Eklenti sayfasi (`/ayarlar/hesap/<a>/eklenti/<ad>`) bilerek yalniz aktif hesap icin (eylem uclari aktif
  profile bagli).
- Test: `ayarlar_salt_test.go` (pasif etkin salt okunur, aktif duzenlenebilir).

## Asama 4 - Tray ve arka plan
- `tray.go`, `guncelleme.go`, `olay.go`: global aktif profil kalabilir (varsayilan).

## Sonra (ayri konu)
- Ayar sayfasi sifre dogrulamasi (sunucuya giris, kisa sureli bellek ici acik kaydi).

## Bilinen riskler / notlar
- `profilKlasorTasi` etkin kumedeki eski anahtari temizlemiyor (token eslesmedigi icin guvenlik etkisi yok).
- `ayarlar.go` icinde kullanilmayan eski `ayarlarHandler`/`ayarlarSayfasi` duruyor.
- Testler gercek kullanici klasorunu kullaniyor (etkin dosya testlerde gecici yolda).


## Karar (yeni model) - "aktif hesap" kaldiriliyor
- Bridge tarafinda tum etkin hesaplar ayni anda aktif, arka planda calisir. Global "aktif profil" kavrami yok.
- "Son kullanici giris yapti" ifadesi istemci web sayfasini (fikoyt.com) kastediyor; bridge ayar sayfasi tek hesaba bagli degil.
- Cerez yaklasimi (fikoyt_profil) denendi ve geri alindi.
- Istek profili yalnizca token baglamindan gelir (`profilDe` = `istekProfili`).
- Yerel korumasiz uclarda (`oturumGerekli`) giris kontrolu: profil yoksa etkin hesaplardan birinde oturum var mi (`herhangiOturumVar`).
- Eski tek-hesap token yolu (`korumali` icindeki aktif bos kontrolu) kaldirildi: token bir etkin hesaba ait degilse 401.
- Tepsi "Oturumu kapat": tum etkin hesaplarin oturumunu kapatir.
- `/profiller/sec` ucu ve `profilSecHandler` route'u kaldirildi (fonksiyon govdesi hala dosyada, olu kod).

## Durum (bu tur sonu)
- gofmt, go vet temiz; go test -count=1 gecti.
- Hala aktif modele bagli: `profilListesi` (Aktif alani), `profilCikar` (aktifMi dali), `profilDegisti`,
  `aktifProfilAyarla/Anahtari/Degistir`, `aktifAnahtar`/`aktifMu`, yaklasik 60 sarmalayici cagrisi,
  `ayarlar_salt.go` ve "Bu hesabi aktif yap" dugmesi, `ekSurecDurdur` (aktif) cagrilari (eklenti_kur.go,
  eklenti_yerel.go; bu bir hata: eklentiKaldirProfil/kur profil parametresini kullanmali).

## Siradaki adimlar
1. `profilSecHandler` govdesini sil; `profilListesi`den Aktif alanini cikar.
2. `profilCikar` icindeki aktifMi dalini kaldir; cikarilan hesabin eklenti surecleri ve soketi kendi profiline gore kapat.
3. `profilDegisti`, `aktifProfilAyarla/Degistir/Anahtari`, `aktifAnahtar`/`aktifMu` kaldir.
4. Sarmalayicilari (ekOturum*, ekCagir, eklentiDurumGonder, izinDurumGonder, kurulu*, yetki*, cihaz*, socket) profil parametreli cagirilara cevir; acilis/senkron/tepsi icin etkin hesap dongusu.
5. `ayarlar_salt.go`, aktif yap dugmesi ve ilgili testleri kaldir.
6. Testleri (`profil_tasima_test.go`, `profil_oturum_test.go`, `ayarlar_salt_test.go`, eklenti testleri) profil surumlerine cevir.
7. Her adimdan sonra gofmt / go vet / go test -count=1.


## Ilerleme (aktif kaldirma turu 2)
- profil_http.go: profilSecHandler ve profilDegisti kaldirildi; profilBilgi.Aktif alani kaldirildi;
  profilCikar aktif dali yerine bu hesabin eklenti surecleri/soketi kapatilir, senkron tetiklenir.
- login.go: profilDegisti cagrisi kaldirildi (yeni hesap girisi digerlerini durdurmaz).
- ayarlar_arayuz.go: hesap sayfasi her etkin hesabi kendi verisiyle gosterir (izinOkuProfil,
  eslesmeleriOkuProfil). Eklenti sayfasi etkinMi ile kontrol eder. Ana sayfa "Aktif hesap" yerine "Etkin".
- ayarlar_salt.go ve ayarlar_salt_test.go silindi (salt-okunur/aktif-yap modeli kalktigi icin).
- Testler (ayar_arayuz_test, profil_oturum_test) yeni modele gore guncellendi.
- Durum: gofmt, go vet temiz; go test -count=1 gecti.

## Acik kalanlar (bu turda yapilmadi)
- Hesap sayfasinda etkin olmayan hesap icin "Bu hesabi kullan" dugmesi hala /profiller/sec'e POST ediyor
  (route kaldirildi -> dugme calismiyor). Yerine hesabi etkinlestiren bir uc gerekiyor (etkinHesapEkle).
- aktifProfilAyarla / aktifProfilAnahtari / aktifProfilDegistir / aktifAnahtar / aktifMu hala var.
- ~60 sarmalayici cagrisi (cihaz, eklenti, izin, kurulu, yetki, socket, login, main) hala aktif profile bakiyor.
- ekSurecDurdur (aktif) cagrilari: eklenti_kur.go, eklenti_yerel.go -> profil parametreli karsiligi.
- eklenti_acilis.go: eklentiDurumGonder() dongu sonunda tek seferlik global cagri.
- Testlerde sarmalayici kullanan dosyalar (eklenti_*_test.go) profil surumlerine cevrilecek.


## Yayin kaydi: bridge 0.6.2 (2026-10-17)
- Kod: aktif profil sarmalayici temizligi TAMAMLANMADI (yaklasik 60 cagri hala aktifProfilAnahtari kullaniyor).
  Bu surumde: "Bu hesabi kullan" -> /profiller/etkinle; eklenti kur/kaldir surec durdurma profil parametreli.
- Depo: docker\fikoyt-sunucu\eklenti-depo\bridge\0.6.2\bridge.exe
- Manifest: onceki manifest manifest.json.onceki-0.6.1 olarak yedeklendi. Yeni: surum 0.6.2, bicim v2, acilis false, url eklendi.
- sha256: 5ef55176ba5c60c973b2f0ee44becd48c5131a7a453f77dcfb79a5b80c61eed3
- Canli dogrulama: https://fikoyt.com:9000/bridge/manifest.json ve /bridge/0.6.2/bridge.exe ayni sha256.
- Temizlik: %TEMP% icindeki bridge-0.6.2.exe ve manifest gecici dosyalari silindi.
- Not: NOTLAR-mimari-ve-yayin.md'deki "bridge 0.5.8" satiri eskidi; guncel surum 0.6.2.


## Tur 3 (sarmalayici temizligi basladi)
- Hedef: non-test kodda aktifProfilAnahtari() kullanimlarini kaldirmak, sonra aktifProfilAyarla/Anahtari/Degistir ve aktifAnahtar/aktifMu tanimlarini silmek.
- Bu tur durum: bridge 0.6.2 canli (sha256 5ef55176...). Sonraki surum icin buradan devam.
- Siradaki: wrapper cagri listesini cikar, dosya dosya profil parametreli karsilik ile degistir, her adimdan sonra gofmt/vet/test.

## Tur 3 sonu (sarmalayici temizligi, ilk parca)
- Kaldirildi (hic cagrisi olmayan sarmalayicilar): cihazKimligi, fikoytCagri, izinDosyasi, kuruluSurum,
  kuruluEtkinMi, yetkiDosyasi, sokHazirAyarla, sokHazirMi.
- socket_hazir_test.go profil surumune cevrildi (soketAl("test-hazir")).
- gofmt, go vet, go test -count=1: temiz.
- Kalan aktif bagimliliklar (non-test): aktifProfilAyarla/Anahtari/Degistir/Yukle tanimlari,
  login.go (oturumYolu/Oku/Yaz/Sil sarmalayicilari, aktifProfilAyarla), main.go (aktifProfilYukle,
  dosyaIzinleriYukle(aktif)), socket.go (sokAktifBaglanti, sokAktifVeHazir, sokYenidenBaglan),
  izin.go, kurulu.go, yetki.go, eklenti_*.go, cihaz.go'daki *Profil cagri sarmalayicilari.
- Sonraki: login.go ve main.go'yu once temizle (aktifProfilYukle'nin artik anlami yok), sonra socket.go, sonra
  izin/kurulu/yetki/cihaz/eklenti sarmalayicilari.

## Tur 4
- main.go acilis: aktif tabanli dosyaIzinleriYukle/izinleriYukle/kuruluYukle kaldirildi; her etkin hesap icin
  dosyaIzinleriYukle(a), izinleriYukleProfil(a), kuruluYukleProfil(a) cagriliyor. yetkiYukle hala global (ayri is).
- Bilincli olarak ERTELENDI: aktifProfilAyarla / aktifProfilYukle / aktifAnahtar yazimi. Sebep: aktifProfilAnahtari
  hala ~50 sarmalayici tarafindan okunuyor; setter silinirse sarmalayicilar bos profile (kok) duser ve veri yanlis
  yere gider. Sira: once sarmalayicilarin cagri noktalari profil parametreli yapilacak, SONRA setter silinecek.
- gofmt, go vet, go test -count=1: temiz.
- Siradaki: login.go'da oturumOku/Yaz/Sil/Yolu sarmalayicilarinin cagri noktalari (ayarlar_arayuz.go, durum_sayfasi.go,
  main.go, tray.go, login.go) profil parametreli hale getirilecek; sonra sarmalayicilar silinecek.

## Tur 5 (basladi)
- Karar teyidi: aktif degiskeni silme islemi, sarmalayicilarin cagri noktalari profil parametreli olduktan sonra yapilacak.
  Sira: (1) cagri noktalari profil parametreli, (2) sarmalayicilar silinir, (3) aktifProfilAyarla/Yukle/aktifAnahtar kalkar.
- Bu turda: oturumOku/Yaz/Sil/Yolu cagri noktalari (ayarlar_arayuz.go, durum_sayfasi.go, tray.go, login.go, main.go).

## Tur 5 sonu
- oturumOku/Yaz/Sil/Yolu sarmalayicilari kaldirildi (login.go). Yerine:
  - ilkOturum(): etkin hesaplardan oturumu olan ilkinin kaydi (kok durum sayfasi, /health, tray adi icin).
  - herhangiOturumVar(): yerel sayfa kapilari ve tray durumu icin.
  - oturumlariSil(): cikis ve tepsi "oturumu kapat" icin tum etkin hesaplar.
  - Giris akisi: oturumYazProfil(anahtar, kayit), kuruluYukleProfil, izinleriYukleProfil.
- health_sayfa_test.go profil bazli yazildi (ahmet, etkinHesapEkle/Cikar).
- Kalan: aktifProfilAnahtari() 43 yerde (test haric). Cogu sarmalayici govdesi; kalan cagri noktalari:
  eslesmeleriOku (durum sayfasi), izin/kurulu/yetki/cihaz/eklenti/socket sarmalayicilari.
- gofmt, go vet, go test -count=1: temiz.

## Tur 6
- cihaz.go ve izin.go: "profil == aktif ise izinDurumGonder" -> izinDurumGonderProfil(profil) (her hesap kendi durumunu yayinlar).
- izinDurumGonder (aktif) silindi (cagri kalmadi).
- eklentiDurumGonder: artik etkin tum hesaplar icin eklentiDurumGonderProfil; aktif bagimli degil.
- Kalan aktifProfilAnahtari() cagrisi (test haric): 39. Basli baslica:
  - eklenti_istemci.go Cagir fallback (g.Profil bos ise aktif) - tum cagri noktalari Profil dolduruyorsa kaldirilacak.
  - eklenti_yerel.go kuruluEtkinAyarla (yerel UI uc, profil bilgisi yok): UI'a profil alani eklenmeli.
  - Sarmalayici govdeleri (izin/kurulu/yetki/cihaz/eklenti/socket/login/profil).
- gofmt, go vet, go test -count=1: temiz.

## Tur 7 (basladi)
- Hedef: eklenti_istemci.go Cagir yedegi (g.Profil bos -> aktif) ve eklenti_yerel.go uc profil bilgisi.
- Once: eklentiCagri{...} olusturan tum noktalarda Profil alaninin dolu olup olmadigi kontrol edilecek.

## Tur 7 sonu
- eklenti_istemci.go Cagir: g.Profil bos ise aktif yedegi KALDIRILDI; artik hata donuyor (5 uretim cagri noktasi zaten Profil dolduruyor).
- Yerel eklenti ucu (/eklenti/yerel): istek {profil, anahtar, islem} oldu; profil etkinMi ile dogrulanir;
  kuruluEtkinAyarlaProfil / eklentiKaldirProfil kullanilir. ayarlar_arayuz.go eklenti dugmeleri p.Anahtar gonderiyor.
- Olu sarmalayicilar silindi: eklentiKaldir, kuruluEtkinAyarla.
- gofmt, go vet, go test -count=1: temiz. Test-disi aktifProfilAnahtari() cagrisi: 36.
- Siradaki: kalan sarmalayici govdeleri ve cagri noktalari (izin/kurulu/yetki/cihaz/socket/login/profil).

## Tur 8 (basladi)
- Hedef: kalan ~36 aktifProfilAnahtari() cagrisini sarmalayicilar uzerinden kapatmak. Once liste.

## Tur 8 sonu
- Sifir cagrili (uretim ve test) 20 olu sarmalayici silindi: cihazKaydet, cihazGizliOku, cihazGizliOzet,
  kuruluEklentiYolu, ekOturumBaslat, ekOturumVar, ekSurecBaslat, ekSurecTara, ekSurecAyar, ayarDosyasi,
  kayitliAyar, izinKaydetOnay, kuruluAcilistaListesi, kuruluKaldir, kuruluAcilistaAyarla, fikoytIstekCerezleri,
  yetkiVer, yetkiGeriAl, eslesmeYetkileriniSil, sokYenidenBaglan.
- gofmt, go vet, go test -count=1: temiz. Test haric aktifProfilAnahtari() cagrisi: 16.
- Kalan gercek kullanimlar:
  - sokAktifVeHazir (guncelleme.go, socket.go): tum bilgisayar icin tek guncelleme islemi; notlara gore bilincli global.
  - sokAktifBaglanti (socket.go:116), izinleriYukle (1), kuruluYukle (1), yetkiYukle (2), eklentiDurumGonder (3),
    aktifProfilAyarla (login.go, 1).
  - Test-yalniz sarmalayicilar: ekOturumAl, ekCagir, kuruluEkle, yetkiGecerliMi, izinOku, izinleriKaydet, kuruluListeKopya,
    ekSurecDurdur, aktifProfilDegistir. Bunlarin testleri profil surumlerine cevrilmeli, sonra sarmalayicilar silinmeli.
- Siradaki: aktifProfilAyarla (login) -> etkinHesapEkle + profil hazirligi; izinleriYukle/kuruluYukle/yetkiYukle
  cagrilarini profil surumleriyle degistir; sonra aktif degiskeni kaldir.

## Tur 9 (basladi)
- Hedef: aktifProfilAyarla, izinleriYukle/kuruluYukle/yetkiYukle global cagrilari, sokAktifVeHazir/sokAktifBaglanti.
- Ilke: guncelleme (tum bilgisayar) soketi icin aktif yerine etkin hesaplardan hazir olan ilk soket kullanilacak.

## Tur 9 sonu
- Guncelleme/soket: sokAktifVeHazir -> sokHerhangiVeHazir (etkin hesaplardan hazir ilk soket). sokAktifBaglanti silindi.
- main.go: aktifProfilYukle cagrisi kaldirildi; yetkiYukle yerine her etkin hesap icin yetkiYukleProfil.
- login.go: aktifProfilAyarla -> profilHazirla (aktif yazmaz; etkinHesapEkle + profil klasoru + eski dosya tasima).
- profil.go: profilHazirla eklendi; aktifProfilAyarla eski yol olarak yalnizca testler icin duruyor.
- gofmt, go vet, go test -count=1: temiz.
- URETIM KODUNDA aktif kullanim KALMADI (sarmalayici govdeleri disinda). Kalanlar:
  - profil.go: aktifAnahtar degiskeni, aktifProfilAyarla/Anahtari/Degistir/Yukle tanimlari (sadece testler kullaniyor).
  - yetki.go yetkiYukle, kurulu.go kuruluYukle, izin.go izinleriYukle, eklenti_durum.go kuruluListeKopya,
    eklenti_oturum.go ekOturumAl/ekCagir, eklenti_tablo.go ekAktifAnahtar: test-yalniz sarmalayicilar.
- Siradaki (son fazlar):
  1. Testleri aktifProfilDegistir/aktifProfilAyarla/aktifProfilYukle yerine profil parametreli cagrilara cevir
     (profil_calisma_test, profil_cikar_test, profil_erisim_test, profil_oturum_test, profil_tasima_test,
     yetki_profil_test). Test icin etkinHesapEkle + profilHazirla kullan.
  2. Test-yalniz sarmalayicilari (ekOturumAl, ekCagir, kuruluListeKopya, kuruluYukle, izinleriYukle, yetkiYukle,
     izinOku, izinleriKaydet, yetkiGecerliMi, kuruluEkle, ekAktifAnahtar) profil surumleriyle degistir, sil.
  3. aktifAnahtar/aktifMu ve aktifProfilAnahtari tanimlarini kaldir. Derle, test et.

## Tur 10 (basladi)
- Hedef: aktifProfilDegistir/Ayarla/Yukle kullanan testleri profil parametreli yap; sonra test-yalniz sarmalayicilari kaldir.

## Tur 10 sonu
- yetki_profil_test.go: aktif baglam kaldirildi; iki test profil parametreli (izolasyon + ayni anda iki hesap).
- gofmt, go vet, go test -count=1: temiz.
- Kalan test dosyalari (aktif/sarmalayici kullanan, sayilar yaklasik):
  profil_tasima_test (28), profil_cikar_test (20), profil_calisma_test (12), eklenti_tablo_test (12),
  profil_oturum_test (10), profil_token_test (6), profil_erisim_test (4), profil_veri_test (3),
  cihaz_kimlik_*_test, eklenti_kurulu_coklu_test, izin_*_coklu_test, korumali_coklu_test, eslesme_test (3 her biri),
  eklenti_kur_test (2), eklenti_durum_test (1), eklenti_istemci_test (1).
- Siradaki: profil_*_test dosyalari (aktifProfilDegistir/Ayarla/Yukle yerine profilHazirla + etkinHesapEkle).

## Yayin kaydi: bridge 0.6.3 (2026-10-17)
- Kod: aktif hesap modeli uretimde kaldirildi (guncelleme/soket sokHerhangiVeHazir, giris profilHazirla,
  yerel eklenti ucu profil alanli, izin/eklenti durum yayini hesap bazli). Testlerin bir kismi hala aktif
  sarmalayicilari kullaniyor (profil_*_test vb.), yeni surum sadece uretim kodunu icerir.
- Depo: docker\fikoyt-sunucu\eklenti-depo\bridge\0.6.3\bridge.exe
- Onceki manifest: manifest.json.onceki-0.6.2
- sha256: 05483040e998c4f188da5acfa982285dc07fe335b14851a318a1c1cf9726854a
- Canli dogrulama: manifest ve exe ayni sha256.
- Temizlik: %TEMP% gecici exe ve manifest silindi.
- gofmt, go vet, go test -count=1: temiz.

## Tur 11 (basladi)
- Hedef: profil_erisim_test.go, profil_veri_test.go; sonra profil_token_test.go ve profil_oturum_test.go.
- Yayin: 0.6.3 canli (sha256 05483040...). Bu tur yalnizca test degisikligi, uretim kodu degismedi.

## Tur 11 sonu
- profil_erisim_test.go: aktif baglam kaldirildi; kuruluEkleProfil("ahmet", ...) kullaniliyor.
- profil_veri_test.go: aktif baglam kaldirildi (kok klasor kontrolu korundu).
- gofmt, go vet, go test -count=1: temiz.
- Siradaki: profil_token_test.go, profil_oturum_test.go, sonra profil_calisma/cikar/tasima testleri.

## Tur 12 sonu
- profil_token_test.go: iki testten aktif sifirlama blogu kaldirildi.
- profil_oturum_test.go: yeniden yazildi. TestProfilListesi (secim yok) ve TestProfilCikar (aktif yok).
- gofmt, go vet, go test -count=1: temiz.
- Kalan aktif bagimlilar (test): profil_calisma_test (12), profil_cikar_test (20), profil_tasima_test (28),
  eklenti_tablo_test (12), cihaz_kimlik_*, eklenti_kurulu_coklu_test, izin_*_coklu_test, korumali_coklu_test,
  eslesme_test, eklenti_kur_test, eklenti_durum_test, eklenti_istemci_test.
- Siradaki: profil_calisma_test.go, profil_cikar_test.go.

## Tur 13 sonu
- profil_calisma_test.go: yeniden yazildi. Iki test de acik profil parametreli (izinleriKaydetProfil/izinOkuProfil,
  kuruluEkleProfil/kuruluVarMiProfil). Aktif hesap degisimi yok.
- Ogrenim: izinler bellekte onbellekli; testler arasinda kalir. Izin kullanan test, once ilgili profilin
  izinlerini izinleriKaydetProfil ile acikca kurmali (ayse icin Izinler{} yazildi).
- gofmt, go vet, go test -count=1: temiz.
- Siradaki: profil_cikar_test.go (20), profil_tasima_test.go (28).

## Tur 14 sonu
- profil_cikar_test.go: aktif sifirlama, aktifProfilDegistir cagrilari ve "ahmet'i aktif yap" yorumu kaldirildi;
  izinleriKaydet -> izinleriKaydetProfil("ahmet", ...). Kalan aktif referansi: 0. Testler gecti.
- Yontem: regex ile toplu temizlik (satir sonlari LF), sonra gofmt/vet/test ve grep ile dogrulama.
- Siradaki: profil_tasima_test.go (en yogun, 28), sonra eklenti_tablo_test, cihaz/izin/korumali/eslesme/eklenti testleri.

## Tur 15 sonu
- profil_tasima_test.go: profilHazirla ile iki test (tasima ve ikinci profil). Aktif dosya kalicilik testi kaldirildi (model geregi).
- Tum test dosyalarindan aktif sifirlama blogu (aktifMu/aktifAnahtar) toplu kaldirildi: 7 dosya.
- gofmt, go vet, go test -count=1: temiz.
- Kalan aktif referanslar:
  - Test: eklenti_tablo_test.go (aktifAnahtar set + ekAktifAnahtar), eklenti_durum_test.go, eklenti_istemci_test.go,
    eklenti_kur_test.go (aktifProfilAnahtari).
  - Uretim sarmalayicilari: izin.go (izinleriYukle/izinleriKaydet/izinOku), kurulu.go (kuruluYukle/kuruluEkle/
    kuruluListeAl(aktif) loop), yetki.go (yetkiYukle/yetkiGecerliMi), eklenti_durum.go (kuruluListeKopya),
    eklenti_oturum.go (ekOturumAl/ekCagir/ekEklentiDurdur/ekOturumVar), eklenti_tablo.go (ekAktifAnahtar).
  - profil.go: aktifAnahtar degiskeni, aktifProfilAyarla/Anahtari/Degistir/Yukle, aktifProfilDosyasi.
- Siradaki: eklenti_tablo_test.go ve eklenti_*_test.go, sonra sarmalayicilarin silinmesi, sonra profil.go'daki aktif tanimlari.

## Tur 16 sonu
- eklenti_tablo_test.go: TestEkSurecProfilIzole profil parametreli yazildi (ekOturumAlProfil, ekSurecCalisiyorProfil, ekEklentiDurdurProfil). aktifMu/aktifAnahtar kullanimi kalmadi.
- eklenti_durum_test.go: testProfil ("ahmet") sabiti; kuruluEkleProfil, kuruluListeKopyaProfil, kuruluYukleProfil, eklentiIstegiIsle(profil) kullaniyor.
- eklenti_istemci_test.go: ekOturumAlProfil / ekCagirProfil / ekTabloAnahtari kullaniyor.
- eklenti_kur_test.go: eklentiKur("ahmet", ...) kullaniyor.
- Olu sarmalayicilar silindi: ekAktifAnahtar (eklenti_tablo.go), kuruluListeKopya (eklenti_durum.go).
- Dogrulama: go vet temiz, gofmt -l bos, go test -count=1 . gecti.
- Kalan test-yalniz sarmalayicilar: ekOturumAl, ekCagir, ekSurecDurdur, ekSurecCalisiyor (eklenti_oturum.go) -- sadece eklenti_oturum_test.go kullaniyor (test satirlari: 133-416). Bu dosya profil surumlerine cevrilince sarmalayicilar silinecek.
- Uretim kodunda hala aktif kullanim: kurulu.go:185 (kuruluListeAl(aktifProfilAnahtari())), izin.go/kurulu.go/yetki.go sarmalayicilari (profil.go yukleme yolu testlerde kullaniliyor).
- Siradaki: eklenti_oturum_test.go, sonra eklenti_oturum.go sarmalayicilari, kurulu.go:185 dongusu, en son profil.go aktif tanimlari.

## Tur 17 sonu (aktif kalintisi tamamen kaldirildi)
- eklenti_oturum_test.go: tum ekOturumAl/ekCagir/ekSurecCalisiyor/ekSurecDurdur cagrilari profil surumlerine cevrildi (testProfil).
- Silinen sarmalayicilar: ekOturumAl, ekCagir, ekSurecDurdur, ekSurecCalisiyor (eklenti_oturum.go); izinleriYukle, izinleriKaydet, izinOku (izin.go); kuruluYukle, kuruluEkle, kuruluVarMi (kurulu.go); yetkiYukle, yetkiGecerliMi (yetki.go); profilVeriYolu, aktifProfilAyarla, aktifProfilAnahtari, aktifProfilDegistir, aktifProfilYukle, aktifMu/aktifAnahtar, aktifProfilDosyasi (profil.go).
- profil.go yeniden yazildi: aktif hesap kavrami yok; profilHazirla / profilKlasoru / profilKlasorTasi / profilVarMi / eskiDosyalariTasi korunuyor.
- DAVRANIS DEGISIKLIGI (dikkat): eslesme.go eslesDosyasi artik profilVeriYolu yerine veriKlasoru (kok klasor) kullaniyor. Global eslesmeler.json kok klasorde tutulur; profil klasorundeki eslesmeler.json bu global yolu okumaz. Profil bazli okuma (eslesmeleriOkuProfil) profil klasorunden okumaya devam eder. Eski tek hesap kurulumlarinda eslesme dosyasinin nerede olmasi gerektigi netlestirilmeli.
- Kucuk temizlik notu: eklenti_oturum.go'da birkac wrapper'a ait eski yorum satiri ("ekOturumAl: anahtar icin ...", "ekCagir: ...") ust satirda kaldi; fonksiyon govdeleri dogru.
- Dogrulama: gofmt -l bos, go vet temiz, go test -count=1 . gecti.
- Kalan: aktif hesap kavrami kodda yok. Yerel eslesme dosyasi konusu (yukaridaki not) karar bekliyor.

## Tur 18 (temizle, derle; yayin BEKLIYOR)
- Yorum temizligi: eklenti_oturum.go'daki eski wrapper yorumlari kaldirildi.
- main.go: surum 0.6.3 -> 0.6.4.
- Dogrulama: gofmt -l bos, go vet temiz, go test -count=1 . gecti.
- Derleme: fikoyt-yerel-bridge\release\fikoyt-local-bridge-0.6.4.exe (11476992 bayt)
- sha256: 4377b19f3309c521bbe103aaa17f7f72c70e1949e6cba17df035f4735a1db3c0
- Imzasiz manifest taslagi: fikoyt-yerel-bridge\release\manifest-0.6.4-imzasiz.json (imza alani bos).
- Imzalama ve yayin YAPILMADI: Ed25519 imza anahtari cevrimdisi tutuluyor (paket.go yorumu), depoda yok. araclar\imzala yalnizca test anahtari uretir; uretim imzasi icin anahtar sahibinin imzalamasi gerekir.
- Imzadan sonra yapilacak: depo\bridge\0.6.4\bridge.exe kopyasi, manifest.json (onceki manifest manifest.json.onceki-0.6.3 olarak yedeklenir), canli dogrulama (manifest ve exe sha256).

## Tur 19 - bridge 0.6.4 YAYINLANDI (2026-10-17)
- DUZELTME: Tur 18'de anahtarin cevrimdisi oldugunu yazmistim; yanlisti. Anahtar bu bilgisayarda: C:\Users\FikoYT\fikoyt-imza-araci\anahtar\gizli-anahtar.txt (icerigi okunmadi, yalnizca -key ile verildi). Yayin prosedürü: NOTLAR-mimari-ve-yayin.md bolum 3b.
- Imzalandi: imzala-v2.exe -key <anahtar> -eklenti bridge -surum 0.6.4 -dosya depo\bridge\0.6.4\bridge.exe -cikti depo\bridge\manifest.json (acilis yok).
- Eski manifest: depo\bridge\manifest.json.onceki-0.6.3 olarak yedeklendi.
- url alani imzadan sonra eklendi (imzali degil).
- Yerel dogrulama: paketDogrula ile gecici test gecti, test dosyasi silindi.
- Canli dogrulama: https://fikoyt.com:9000/bridge/manifest.json surum 0.6.4, sha256 4377b19f3309c521bbe103aaa17f7f72c70e1949e6cba17df035f4735a1db3c0; indirilen exe ayni hash.
- Not: NOTLAR-mimari-ve-yayin.md bolum 7'deki 'bridge 0.5.8' satiri eski; depo manifesti 0.6.3'tu, simdi 0.6.4.

## Tur 20 - bridge 0.6.5 YAYINLANDI (2026-10-17)
- Turkce karakter duzeltmesi: login.go, cihaz.go, eklenti_cagir.go, eklenti_surec_baglanti.go, izin.go icindeki cift kodlu (Ã/Ä/Å) metinler duzeltildi. Giris ekrani artik dogru gorunur.
- Eklenti ayar formu: eklenti sayfasinda ayarlar bolumu (eklenti_ayar_sema.go, eklenti_ayar_form.go). Everything (sunucu, port, kimlik, kucuk resim, indirme), usb (takma/cikarma/etiket bildirimleri). dosya-yoneticisi ayarsiz.
- Yerel kayit ucu: POST /eklenti/yerel-ayar (eklenti_ayar_yerel.go, CSRF + yerel Origin). Bos parola gonderilmez, mevcut parola korunur.
- ayarBirlestir: kucukMaksDeneme (1-200), kucukSureSn (1-30), kucukToplamKb (50-500) sunucu tarafi sinir kontrolu eklendi.
- Testler: eklenti_ayar_yerel_test.go (sema, sinirlar, form). gofmt, vet, go test temiz.
- Surum 0.6.5. sha256 cd7a06ae6cea5999eb5b96de1c8d710d4f83cf989a42219841d02de684a48226. Depo: eklenti-depo\bridge\0.6.5; onceki manifest manifest.json.onceki-0.6.4.
- Imza: gizli-anahtar.txt ile imzala-v2 (acilis yok); url imzadan sonra eklendi. Yerel paketDogrula testi gecti, gecici test silindi.
- Canli dogrulama: manifest surum 0.6.5, exe sha256 eslesiyor.
- usb ayar etiketleri (Takilinca bildir vb.) alan adlarindan turetildi; web'deki usb ayar metinleriyle karsilastirilmali.

## Tur 21 - bridge 0.6.6 YAYINLANDI (2026-10-17)
- usb ayar etiketleri web metinleriyle eslestirildi (USB takildiginda bildir, USB cikarildiginda bildir, Surucu adini goster).
- Surum 0.6.6, sha256 aa3ddd611aa80a6df5391b51420d9d54234da89c654777d3dcadf07993f42b16. Onceki manifest manifest.json.onceki-0.6.5.
- Imza gizli-anahtar.txt ile imzala-v2 (acilis yok); url imzadan sonra eklendi. Yerel paketDogrula testi gecti.
- Canli dogrulama: manifest ve exe sha256 eslesiyor.
