Fitur

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:

  1. Setelah Bob mengedit file, tampilan File yang diubah akan muncul dalam keadaan terlipat.
  2. Kamu dapat mengklik untuk meluaskan.
  3. 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:

  1. Arahkan kursor ke pesan pengguna mana pun dan gunakan tombol rollback, yang akan memulihkan file yang diubah ke kondisi sebelum pesan tersebut.
  2. 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:

  1. Layanan rollback: Menangani operasi file dan manajemen kondisi melalui:
    • Pembuatan dan penyimpanan snapshot
    • Komputasi diff
    • Pemulihan kondisi
  2. 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 .gitignore tidak 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 .bobignore tetapi tidak oleh .gitignore masih 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.

Bagaimana topik ini?