Rollback
Versi otomatis file workspace selama task AI. Eksplorasi saran AI dengan aman, eksperimen dengan perubahan, dan pulihkan dengan mudah dari perubahan yang tidak diinginkan.
Apa itu rollback
Rollback memungkinkanmu untuk:
- Bereksperimen dengan aman dengan perubahan yang disarankan AI
- Memulihkan dengan mudah dari modifikasi yang tidak diinginkan
- Membandingkan pendekatan implementasi yang berbeda
- Kembali ke kondisi proyek sebelumnya tanpa kehilangan pekerjaan
Cara kerja rollback
Bob mengambil snapshot file selama eksekusi task, terpisah dari sistem kontrol versi utamamu. Snapshot ini dibuat secara otomatis sebelum modifikasi file terjadi, memastikan kamu selalu dapat membatalkan perubahan yang tidak diinginkan.
Snapshot direkam saat task dimulai dan sebelum modifikasi file.
Bekerja dengan rollback
Rollback terintegrasi langsung ke dalam workflowmu melalui antarmuka chat dan muncul langsung di riwayat chatmu. Snapshot dibuat sebelum modifikasi file, memungkinkan pembatalan perubahan apa pun dengan mudah.
Setiap snapshot menyediakan dua fungsi utama yang selalu tersedia di riwayat chat maupun menu rollback:
Melihat perbedaan
Untuk melihat file apa yang berubah dalam sebuah task:
- Setelah Bob mengedit file, tampilan File yang diubah akan muncul dalam keadaan terlipat.
- Kamu dapat mengklik untuk meluaskan.
- Tinjau perbedaan dalam tampilan:
- Gunakan Tampilkan semua untuk melihat semua file yang diubah dalam sebuah task
- Kamu dapat mengklik file tertentu untuk melihat perubahannya
Memulihkan snapshot
Opsi pemulihan selalu terlihat di tombol dan dialog rollback, terlepas dari apakah perubahan terdeteksi. Ini memastikan kamu selalu dapat kembali ke kondisi mana pun.
Untuk memulihkan proyek ke kondisi sebelumnya:
- Arahkan kursor ke pesan pengguna mana pun dan gunakan tombol rollback, yang akan memulihkan file yang diubah ke kondisi sebelum pesan tersebut.
- Klik tombol rollback pada file individual dalam tampilan File yang diubah. Ini akan memberi tahu Bob bahwa kamu telah mengembalikan sebuah file.
Keterbatasan
- Cakupan: Rollback hanya menangkap perubahan yang dibuat selama task Bob aktif.
- Perubahan eksternal: Modifikasi yang dilakukan di luar task (pengeditan manual, alat lain) tidak termasuk.
- File besar: File biner yang sangat besar dapat memengaruhi performa.
- Pekerjaan yang belum disimpan: Pemulihan menimpa perubahan yang belum disimpan di workspacemu.
- Waktu: Snapshot dibuat sebelum perubahan diterapkan, memberikan jaring pengaman untuk semua modifikasi.
- Penggunaan memori: Snapshot terakumulasi seiring waktu dan dapat mengonsumsi memori yang signifikan, terutama untuk proyek besar atau task yang berjalan lama. Jika kamu memiliki banyak task lama dengan snapshot, pertimbangkan untuk membersihkannya secara berkala untuk membebaskan memori. Kamu dapat melakukan ini dengan menghapus percakapan task lama, yang akan menghapus snapshot terkaitnya.
Implementasi teknis
Arsitektur rollback
Sistem rollback terdiri dari:
- Layanan rollback: Menangani operasi file dan manajemen kondisi melalui:
- Pembuatan dan penyimpanan snapshot
- Komputasi diff
- Pemulihan kondisi
- Komponen UI: Elemen antarmuka yang ditampilkan di chat yang memungkinkan interaksi dengan rollback.
Proses pemulihan
Saat pemulihan berjalan, Bob:
- Menyelesaikan reset ke waktu yang ditentukan dalam task tertentu.
- Memperbarui kondisi pelacakan rollback internal.
Jenis penyimpanan
Rollback bercakupan task, artinya setiap snapshot spesifik untuk satu task.
Komputasi diff
Perbandingan rollback menggunakan kemampuan diff dasar Git untuk menghasilkan perbedaan file terstruktur:
- File yang dimodifikasi menampilkan perubahan baris per baris.
- File biner terdeteksi dan ditangani dengan benar.
- Deteksi penggantian nama mungkin terbatas; diff berfokus pada perubahan konten file antar snapshot.
- Pembuatan dan penghapusan file teridentifikasi dengan jelas.
Pengecualian file dan pola abaikan
Sistem rollback menggunakan pengecualian file cerdas untuk hanya melacak file yang relevan.
Pengecualian bawaan
Sistem memiliki pola pengecualian bawaan yang secara otomatis mengabaikan:
- Artefak build dan direktori dependensi (
node_modules/,dist/,build/). - File media dan aset biner (gambar, video, audio).
- File cache dan sementara (
.cache/,.tmp/,.bak). - File konfigurasi dengan informasi sensitif (
.env). - File data besar (arsip, file yang dapat dieksekusi, biner).
- File database dan log.
Dukungan .gitignore
Sistem rollback menghormati pola .gitignore di workspacemu:
- File yang dikecualikan oleh
.gitignoretidak memicu pembuatan snapshot. - File yang dikecualikan tidak muncul dalam diff rollback.
- Aturan abaikan Git standar berlaku saat staging perubahan file.
Perilaku .bobignore
File .bobignore (yang mengontrol akses AI ke file) terpisah dari pelacakan rollback:
- File yang dikecualikan oleh
.bobignoretetapi tidak oleh.gitignoremasih ditangkap oleh rollback. - Perubahan pada file yang tidak dapat diakses AI masih dapat dipulihkan melalui rollback.
Pemisahan ini disengaja. .bobignore membatasi file mana yang dapat diakses AI, bukan file mana yang harus dilacak untuk riwayat versi.
Bob tips
Bob tips mendeteksi masalah kualitas kode secara real-time dengan saran refactoring bertenaga AI untuk fungsi yang kompleks. Kurangi technical debt saat kamu coding.
Code actions
Akses code actions bertenaga AI dari Bob yang menyediakan quick fix, refactoring, dan penjelasan kode langsung di Bob IDE melalui ikon lightbulb dan context menu.