# Changelog — [English](CHANGELOG_en.md)

## [4.0.5] — 2026-07-10

### Added
- `slides/slides_tr.toml`, `slides/slides_en.toml` — dil bazlı slayt içerik dosyaları (`[icons]` eşlemesi yerine doğrudan dosya yolu)
- `src/bin/slides_test.rs` — bağımsız slayt gösterisi test ikilisi (arg: `[desktop] [lang]`)
- `default-run = "yali-rs"` (`Cargo.toml`) — `cargo run` belirsizliği giderildi

### Changed
- Slayt görselleri `assets/*.png` → `slides/img/` altına taşındı
- `branding.toml` / `branding_tr.toml` / `branding_en.toml` içindeki `[slides]` bölümü kaldırıldı; içerik `slides/` dizinindeki dil dosyalarına taşındı
- `branding.rs::load_for_lang()` — slaytları `slides/slides_{lang}.toml`'den yükler (fallback: `slides/slides.toml`)
- `slideshow.rs` — `slide.icon` doğrudan dosya yolu içeriyorsa `file://` URI'sine çevirir (artık `[icons]` eşlemesi gerekmez)
- `CopyFilesJob` — rsync çıktı formatı `--info=progress2` → `--out-format=%n`, ilerleme `find` ile toplam dosya sayısı üzerinden hesaplanır
- Otomatik kurulum CLI çıktısına alt ilerleme ve dosya adı bilgisi eklendi

### Fixed
- Edit diyalog penceresinin her frame'de büyümesi (`default_size` + min/max genişlik)
- TextEdit alanı `available_width * 0.90` yerine `desired_width()` ile düzgün genişlik
- `cargo run -- --demo` belirsizliği (çift ikili)
- `locales/tr.toml` "Hoş Geldiniz12" yazım hatası

---

## [4.0.4] — 2026-06-25

### Added
- Kullanıcı adı doğrulama fonksiyonu `validate_username` (detaylı hata mesajları döndürür)
- Yasaklı sistem kullanıcı adları listesi (root, daemon, bin, sys, vb.)
- Türkçe karakter dönüşümleri büyük harfleri de kapsayacak şekilde genişletildi (Ş, Ğ, İ, Ö, Ü, Ç)
- Locale dosyalarına yeni kullanıcı adı doğrulama anahtarları (username_too_long, username_forbidden, username_invalid_start, username_invalid_chars)
- UsersStep struct'ına `autologin` alanı eklendi

### Changed
- Kullanıcı adı, şifre doğrulama ve hostname input'ları için check/fail iconları input'un yanına alındı
- Hata mesajları inputların altında gösteriliyor (username doğrulama, şifre eşleşme)
- Önyükleyici (bootloader) sayfası form düzeni users sayfasındaki gibi güncellendi (Frame, form_label, form_input_text/password)
- Display manager adımı adım listesinden kaldırıldı (ISO'lar tek masaüstü ile geliyor)
- Autologin özelliği display manager adımından users adımına taşındı
- Display manager yapılandırması otomatik hale getirildi (desktop_environment otomatik tespit ediliyor)
- SDDM/GDM yapılandırmasında masaüstü ortamı seçimi kullanılıyor (xfce.desktop, gnome.desktop vb.)
- Autologin varsayılan değeri false olarak değiştirildi

### Fixed
- Dark modda sidebar metin renginin kaybolması sorunu (SIDEBAR_TEXT beyaz olarak ayarlandı)
- derive_username fonksiyonunda yanlış karakter (ā → ğ) düzeltildi
- unused_mut warning (name değişkeni)
- unused variable warning (err değişkeni)
- unused import warning (DisplayManagerStep)

---

## [4.0.3] — 2026-06-23

### Added
- Aramalı klavye düzeni/varyant seçici: egui `TextEdit` + `Area` popup ile özel implementasyon
- `color_from_hex(hex: u32)` yardımcısı (`combobox_stil.rs`)
- `layout_buf`, `variant_buf` alanları (`KeyboardStep`)

### Changed
- `egui-dropdown` bağımlılığı kaldırıldı (artık kullanılmıyor)
- Düzen/Varyant seçiciler yan yana → alt alta, etiket genişliği en uzun etikete göre eşitlendi
- Popup öğe yüksekliği 28px → 32px, gradient arkaplan (`draw_gradient_bg`) ile `combobox.rs` stilinde
- `DROPDOWN_TEXT_COLOR` kırık beyaz → tam beyaz (`color_from_hex(0xFFFFFF)`)
- Tüm renk sabitleri hex formatına çevrildi (`color_from_hex`)

### Fixed
- Popup ilk açılışta eski seçim filtresiyle tüm öğelerin görünmemesi — odaklanınca tampon temizleniyor
- `t!()` dönüş tipi `Cow<str>` → `String` uyumsuzluğu (`keyboard.rs`)

### Changed
- Sürgü maksimum değeri artık diskteki kullanılabilir alan kadar (diğer bölümler hariç)
- Düzenleme modunda seçili bölümün kapasitesi sürgü aralığına dahil edildi
- `form_input_text` boyut alanı doğrudan `add_size_str`'e bağlandı, yanında formatlı MB gösterimi eklendi
- Boyut etiketi artık `"123 MB"` yerine `"123.456 MB"` formatında (parse edilebilen değerlerde)

### Fixed
- Boyut input alanına yazılan değer `add_size_str`'e geri yazılmıyordu — text edit salt okunur kalıyordu

---

## [4.0.1] — 2026-06-19

### Added
- `c_root_bg()` tema fonksiyonu
- `show_root_password`, `show_root_password_confirm` alanları (`UsersStep`)
- `form_input_text` / `form_input_password`'a `Frame` sarmalı ve `.frame(false)`

### Changed
- `form_input_text`: Frame içine alındı, stroke/fill/rounding eklendi, yükseklik 32→10
- `form_input_password`: SVG göz ikonları (emoji yerine), Frame sarmalı, `override_text_color`
- Disk grid seçim renkleri `theme::c_*()` → sabit `(237,237,224,1)`
- Disk listesi header ve sütun başlıkları: `Align::Center` → `Align::LEFT`, `vertical_centered` kaldırıldı
- Root şifre alanları raw `TextEdit` → `form_input_password` (göz ikonu + frame ile)
- Kullanıcı formu Frame rengi `theme::c_bg_widget()` → `(240,243,198)`
- Manuel disk listesinde marka/model etiketi sıralaması değiştirildi

### Fixed
- `users.rs:154` — `Color32` import hatası (missing `egui::` prefix)

---

## [4.0.0] — 2026-06-18

### Added
- `CHANGELOG.md`
- `src/ui/combobox.rs` — ComboBox yardımcıları (`show_combo_box`, `selectable_value`, `selectable_value_custom`, `draw_gradient_bg`)
- `src/ui/combobox_stil.rs` — ComboBox görsel sabitleri ve `apply_visuals()`
- `src/steps/location.rs` — Bölge/zaman dilimi seçimi adımı
- `src/steps/network.rs` — Ağ yapılandırma adımı
- `src/steps/rescue.rs` — Kurtarma modu
- `xkbcommon` bağımlılığı
- Klavye görseli: XKB keymap → egui çizim (`compile_layout`, `draw_layout`, `keysym_to_label`)
- ISO‑105 tuş pozisyon eşlemesi (function tuşları, numpad, navigasyon dahil)
- Her tuşta tek karakter gösterimi (büyük harf tercihli)

### Changed
- Klavye görseli: KLE JSON indirme/parse → xkbcommon ile doğrudan keymap derleme
- `Cargo.toml`: `ureq`, `serde_json` kaldırıldı; `xkbcommon` eklendi
- ComboBox stilleri `theme.rs` → `combobox_stil.rs` taşındı
- `secondary_button` gradient renklerine açıklama satırları eklendi
- `draw_gradient_bg` → `combobox_stil.rs` taşındı
- Tüm ComboBox kullanımları `theme::show_combo_box` / `theme::selectable_value` ile güncellendi
- Klavye adımı (`keyboard.rs`): `ScrollArea`+`selectable_label` → ComboBox
- `TextEdit::multiline` arka planı per-widget `Frame::group` ile yapıldı
- `locale/` dosyaları güncellendi
- Font boyutları büyütüldü (label 9→12, secondary 7→9)

### Removed
- `ureq`, `serde_json` bağımlılıkları
- `assets/keyboards/KLE_*.json` önbellek dosyaları
- `assets/keyboards/KB_*.svg` dosyaları
- Eski klavye SVG yükleme kodu
- KLE JSON download/cache mantığı
- Demo sayfasındaki eski buton örnekleri

### Fixed
- `set_style`/`set_visuals` sırası: `set_style` önce çağrılıyor
- Bölge/zaman dilimi etiketleri dikey hizalandı
- Klavye adımında `on_enter` ilk render'da çağrılmama sorunu — layout `show()` içinde de initialize edilir
- `xkbcommon::Keycode` iterasyonu (`raw()` ile dönüşüm)
- `None::<&str>` → `None::<String>` tip uyuşmazlığı

---

## [4.0.0] — 2026-06-06

### Added
- Kurtarma modu (rescue step)
- Ağ yapılandırma adımı (NetworkManager/Wicd)
- Netinstall adımı
- LVM ve LUKS şifreleme desteği
- Demo modu (`--demo`)
- Otomatik kurulum (`--auto-install answer.toml`)
- `rust-i18n` ile çoklu dil desteği (Türkçe, İngilizce)
- Gradient butonlar (`gradient_button`, `secondary_button`)
- Dil seçici (bayrak + etiket)
- SVG yükleme desteği (`egui_extras` + `image`)
- Slayt gösterisi (branding.toml ile yapılandırılabilir)
- Adım listesi sidebar'da (işlenen adımlar yeşil ✔️)
- Anlık kurulum dosyası takibi
- Gelişmiş bölümleme UI'ı (kullanım çubuğu, LUKS göstergesi, mount-point seçici)

### Changed
- `pspec.xml`/`actions.py` → Cargo tabanlı derleme
- `comar`/`mudur` çağrıları → `zbus` D-Bus ve doğrudan komut çalıştırma
- Shell tabanlı şifre yönetimi → güvenli stdin piping (LUKS/GRUB)
- Kullanıcı adı otomatik türetme (gerçek isim → sistem kullanıcı adı)
- Hostname doğrulama/sanitizasyon
- Temizlik işlemleri: kullanıcı silme, havuz yönetimi, önyükleme dizini temizliği
- Rsync komutu dinamik hariç tutma ile
- Versiyon 4.0.1 → 4.0.0 (Cargo.toml uyumu)

### Fixed
- GRUB şifre yazma güvenliği
- Dracut/Mkinitcpio LVM modülü ekleme
- EFI bölümü algılama ve mount etme
- Şifre gücü göstergesi renkleri
- Otomatik bölümleme (LVM/LUKS sıralaması)

---

## [0.1.0] — 2026-05-20

### Added
- İlk kararlı sürüm
- Proje iskeleti (egui + wgpu)
- Adım tabanlı kurulum sihirbazı
- Otomatik disk bölümleme (GPT/MBR)
- Kullanıcı oluşturma (şifre gücü kontrolü dahil)
- Bootloader yapılandırması (GRUB)
- Görüntü yöneticisi seçimi
- Özet ekranı
- Temel renk teması (açık/koyu)
- Özelleştirilebilir branding (branding.toml)
- Kurtarma amaçlı hata ekranı
- İşlem kuyruğu (JobQueue / async task yönetimi)
- YALI serileştirme (installer state save/load)
