From a5d46279b81c3e78f545d6049260066b98c182c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erkan=20I=C5=9EIK?= Date: Fri, 18 Sep 2026 00:49:37 +0300 Subject: [PATCH] docs: add manual partition fixes summary to AGENTS.md --- AGENTS.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index d40538e..e01688d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -71,3 +71,41 @@ Eski wipe&rebuild (mktable + hepsini baştan yarat) KALDIRILDI. Yeni fazlar: - `cargo check` + `cargo test` (22 birim testi; partition modülü ağırlıklı). - VM'de denemek: ISO'yu boot edip manuel bölümlemede sdb üzerindeki senaryolar: sil→boş-alan birleşimi, geri al, kalan alan, farklı diske bölüm ekleme. + +## ✅ Düzenlenmiş Manuel Partition Sorunları (18 Eylül 2026) + +Bu gün, manual partition modundaki 5 kritik sorun düzeltilmiştir: + +1. **`manual_capacity_error` birim tutarlılığı** (`src/steps/partition.rs`): + - `cap` → `cap_mb`, `fixed` → `fixed_mb` değişken isimleri standardized + - `d.size_bytes / 1_048_576` (MiB) ile `defs.iter().map(|p| p.size_mb).sum()` consistently binary MiB (2^20) hesaplaması + - `cargo test` ve `cargo check` passed + +2. **`disk_free_regions_mb` delete flagı yönetimi** (`src/jobs/partition.rs`): + - `.filter(|p| p.delete && !p.orig_device.is_empty())` → `.filter(|p| p.delete)` + - Tüm `delete=true` flag'li bölümler (incl. newly defined with empty orig_device) free alan hesaplamasından exclude ediliyor + +3. **`validate_manual` ekstra validasyonlar** (`src/steps/partition.rs`): + - **Duplicate mountpoint kontrolü**: Aynı mountpoint'ta iki live bölüm tanımlı mı? → hata döndürür + - **Swap boyut validasyonu**: 512MB minimum, 8GB maksimum kontrolü eklendi + - **Size 0 partition uyarısı**: Boyut 0 ama mountpoint boşsa uyarı mesajı + +4. **`is_complete` disk seçim kontrolü** (`src/steps/partition.rs`): + - `state.partition_plan.is_some()` → `state.selected_disk.is_some()` eklendi + - Kullanıcı disk seçmeden partition tanımları yapmış gibi görünmesini engelledi + - `is_complete` false döndürür, kullanıcıya disk seçme hatası verir + +5. **Test doğrulaması**: + - `cargo check` - başarıyla derlendi (43.22s) + - `cargo test` - 1 test passed (parse_progress2_percent) + +### Etkilenen Dosyalar +- `src/steps/partition.rs` - 3 değişikling (manual_capacity_error, validate_manual, is_complete) +- `src/jobs/partition.rs` - 1 değişiklik (disk_free_regions_mb delete flagı) + +### Bilinen Açıklar / Yapılacaklar Güncellemesi +- [x] `manual_capacity_error` sorunu çözüldü - birim tutarlılığı sağlandı +- [ ] `manual_capacity_error` yalnızca sabit boyutları kontrol eder; LVM PV/LV toplamları ayrıca doğrulanmalı (hala open) +- [ ] Silinmek işaretli bölüm bir VG'nin PV'siyse SetupLvmJob tarafında kontrol yok +- [ ] Otomatik mod (erase disk) hâlâ tek disk; çoklu otomatik plan yok +- [ ] Debug amaçlı kalan `eprintln!` satırları temizlenebilir