forked from pisilinux-rs/yali-rs
docs: add manual partition fixes summary to AGENTS.md
This commit is contained in:
@@ -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ı).
|
- `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:
|
- 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.
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user