# 🔄 Cara Update KentutAI dari 9Router (Upstream)

Setiap kali 9Router rilis versi baru, ikuti langkah-langkah berikut.

---

## 📋 Prasyarat

- **Git** sudah terinstall di komputer
- Sudah punya akses ke repo **KentutAI** (`https://github.com/faisalrizqon/KentutAI`)
- Folder kerja ada di: `C:\Users\Faisal\AppData\Local\Temp\opencode\kentutai-rebased`

---

## 🚀 Langkah Update (3 Perintah)

Buka terminal (PowerShell / Command Prompt) di folder `kentutai-rebased`, lalu jalankan:

### 1. Ambil update terbaru dari 9Router

```powershell
git fetch upstream
```

Ini cuma "mengunduh" perubahan dari 9Router, belum diterapkan ke kode kita.

### 2. Gabungkan perubahan 9Router ke KentutAI

```powershell
git merge upstream/master
```

Akan muncul salah satu dari dua skenario:

---

### ✅ Skenario A: Tidak Ada Konflik (Langsung Berhasil)

Kalau muncul tulisan seperti:
```
Merge made by the 'ort' strategy.
...
```

Artinya **berhasil otomatis**. Lanjut ke langkah 3.

---

### ⚠️ Skenario B: Ada Konflik (Perlu Resolve Manual)

Kalau muncul tulisan:
```
CONFLICT (content): Merge conflict in [nama-file]
Automatic merge failed; fix conflicts and then commit the result.
```

Artinya 9Router mengubah file yang **sama** dengan yang kita ubah. Cara mengatasinya:

1. **Cek file mana yang konflik:**
   ```powershell
   git status
   ```
   File yang konflik ditandai `both modified`.

2. **Buka file tersebut di editor** (VS Code, Notepad, dll). Cari bagian yang ada tanda ini:
   ```
   <<<<<<< HEAD
   (versi KentutAI - yang kita punya)
   =======
   (versi 9Router - yang baru)
   >>>>>>> upstream/master
   ```

3. **Pilih mana yang dipakai.** Biasanya:
   - Kalau barisnya cuma soal **branding/nama** → pakai versi KentutAI (HEAD)
   - Kalau barisnya soal **logic/fitur baru** → pakai versi 9Router (upstream)
   - Kadang perlu gabungin keduanya

4. **Hapus tanda `<<<<<<<`, `=======`, `>>>>>>>`** setelah memutuskan.

5. **Setelah semua file konflik selesai:**
   ```powershell
   git add -A
   git commit -m "Merge upstream: vX.X.X ke KentutAI"
   ```

---

### 3. Upload ke GitHub

```powershell
git push origin master
```

Selesai. KentutAI sudah terupdate di GitHub.

---

## 🔁 Cara Update di Komputer Lain (Setelah Push)

Kalau di komputer lain belum punya folder kerjanya:

```powershell
git clone https://github.com/faisalrizqon/KentutAI.git
cd KentutAI
git remote add upstream https://github.com/decolua/9router.git
```

Setelah itu, update-nya sama seperti di atas (fetch → merge → push).

---

## 📊 Struktur Remote (Jangan Diubah)

```
origin   → https://github.com/faisalrizqon/KentutAI.git   (repo KITA)
upstream → https://github.com/decolua/9router.git          (repo ASLI)
```

Cek kapan saja dengan:
```powershell
git remote -v
```

---

## 🧠 Ilustrasi Cara Kerjanya

```
[commit 9Router #1] → [commit 9Router #2] → [commit 9Router #3] → [commit 9Router #4]
                                                                    ↑
                                                    [commit KENTUTAI: rebrand + custom]

Saat 9Router rilis #5:
  git fetch upstream          → ambil #5
  git merge upstream/master   → tempel #5 di atas punya kita (konflik hanya di file yang kita ubah)
  git push origin master      → upload
```

Perubahan kita (branding, custom) tetap aman. Perubahan 9Router (fitur baru, bugfix) ikut masuk.

---

## ❓ FAQ

**Q: Gimana cara tau 9Router sudah update?**
A: Cek https://github.com/decolua/9router — lihat kapan commit terakhir. Atau jalankan `git fetch upstream` lalu `git log upstream/master --oneline -5`.

**Q: Takut konflik?**
A: Konflik hanya terjadi kalau 9Router mengubah file yang sama persis dengan yang kita ubah. Itu jarang terjadi karena kita cuma ubah nama/label. Sebagian besar file gak akan konflik.

**Q: Bisa rollback kalau gagal?**
A: Sebelum merge, selalu bisa balik: `git merge --abort`. Setelah merge sukses, bisa revert: `git revert HEAD`.

**Q: Gimana kalau merge-nya bikin aplikasi rusak?**
A: Selalu tes dulu setelah merge: `npm install` lalu `npm run dev`. Kalau ada error, jangan push dulu — perbaiki dulu.
