Saat file watcher Mac melewatkan pengeditan, pertama-tama tentukan apakah perubahan tersebut mencapai folder yang dipantau, apakah aplikasi melihat peristiwa sistem berkas, dan apakah aplikasi memfilter atau gagal memprosesnya. Reproduksi satu perubahan yang terlewat dalam file kecil yang sudah diketahui, lalu bandingkan hasil tersebut dengan file di proyek besar. Urutan ini membantu memisahkan konfigurasi proyek dari pengiriman peristiwa dan pemrosesan aplikasi.
1. Konfirmasikan jalur dan perubahan yang tepat
Di aplikasi yang terpengaruh, periksa folder mana yang dibuka sebagai ruang kerja (workspace) dan konfirmasikan bahwa file yang diedit berada di dalam folder tersebut. Suatu file dapat muncul di editor meskipun berada di luar root yang dipantau; tautan simbolik (symbolic links) mungkin juga berperilaku berbeda dari folder bertingkat biasa. Misalnya, dokumentasi VS Code menyatakan bahwa watcher macOS-nya menggunakan FSEvents, tautan simbolik tidak diikuti secara otomatis, dan pengaturan pengecualian watcher-nya dapat mengabaikan jalur tertentu. Detail tersebut berlaku untuk VS Code, bukan setiap aplikasi Mac, jadi periksa pengaturan ruang kerja dan pengecualian yang setara di alat Anda sendiri. VS Code: File Watcher Issues
Simpan pengeditan sederhana pada file langsung di dalam proyek, lalu periksa apakah aplikasi bereaksi. Jika hanya jalur yang dihasilkan (generated), diabaikan, ditautkan, atau bertingkat dalam yang gagal, selidiki penyertaan jalur tersebut dan hubungannya dengan root ruang kerja sebelum menganggapnya sebagai masalah di seluruh macOS. Jika proyek berada di drive jaringan yang dipetakan atau menggunakan sistem berkas pihak ketiga, uji salinannya di disk lokal Mac. VS Code memperingatkan bahwa sistem berkas tersebut tidak dijamin menghasilkan peristiwa; itu adalah alasan untuk membandingkan lingkungan, bukan bukti bahwa setiap volume semacam itu gagal.
2. Periksa apakah aplikasi menerima peristiwa
Pemberitahuan sistem berkas bukanlah jaminan adanya satu callback yang tepat untuk setiap pengeditan individual. Dokumentasi FSEvents Apple menyatakan bahwa peristiwa dapat digabungkan (coalesced); ketika flag MustScanSubDirs disetel, klien harus memindai ulang direktori yang ditunjukkan secara rekursif. Flag peristiwa yang dihentikan (dropped-event) menunjukkan masalah buffering dan memerlukan pemindaian penuh terhadap direktori yang dipantau. Ini berarti watcher yang berperilaku baik perlu mencocokkan konten direktori saat ini, daripada hanya mengandalkan urutan pemberitahuan yang sempurna. Apple: Using the File System Events API, Apple: FSEventStreamEventFlags
Cari log atau diagnostik watcher di aplikasi yang melewatkan perubahan. Untuk VS Code, dokumentasinya menjelaskan cara mengaktifkan pencatatan log file-watcher verbose dan memeriksa output log yang relevan. Aplikasi lain mungkin menampilkan diagnostik yang berbeda atau tidak sama sekali. Jika log melaporkan peristiwa yang terputus (dropped events), pengecualian, root yang basi (stale), atau kesalahan watcher, simpan pesan tersebut dan ikuti langkah pemulihan dari aplikasi itu sendiri; memulai ulang watcher atau aplikasi dapat menjadi perbandingan terkontrol yang berguna, tetapi tidak serta-merta mengidentifikasi penyebab mendasarnya.
3. Gunakan fs_usage untuk memeriksa aktivitas sistem berkas
macOS menyertakan fs_usage, yang menampilkan aktivitas panggilan sistem (system-call) terkait sistem berkas yang sedang berlangsung. Ini dapat membantu memastikan apakah aplikasi terkait menyentuh file selama reproduksi masalah, tetapi ini bukan penampil peristiwa FSEvents dan tidak dapat membuktikan bahwa watcher telah menerima atau memproses pemberitahuan. Apple mencatat bahwa kontrol akses berlaku dan akses root mungkin diperlukan. Apple: Examining File-System Usage
Di Terminal, reproduksi masalah sambil mengamati aplikasi yang disebutkan. Ganti YourApp dengan nama proses sebenarnya (misalnya, nama proses aplikasi mungkin berbeda dari nama tampilannya):
sudo fs_usage -w YourApp
Hentikan tampilan langsung dengan Control-C setelah reproduksi singkat. Output-nya bisa sangat padat, jadi fokuslah pada waktu pengeditan dan jalur yang relevan. Jika nama proses tidak pasti, baca dokumentasi aplikasi atau buka Activity Monitor; jangan berasumsi bahwa memfilter berdasarkan nama tebakan akan menampilkan proses yang tepat. fs_usage adalah alat bantu diagnostik untuk aktivitas file, bukan perintah untuk mereset atau memperbaiki watcher.
4. Bandingkan skala dan kondisi akses
Ulangi pengeditan yang sama di folder pengujian lokal berukuran kecil yang dapat dipantau oleh aplikasi. Jika itu berhasil sementara proyek besar gagal, bandingkan pengecualian khusus proyek, symlink, direktori yang dihasilkan, dan jalur apa pun yang berbasis remote atau penyedia eksternal. Struktur direktori yang besar menghasilkan lebih banyak pekerjaan untuk penanganan peristiwa dan pemindaian ulang; panduan Apple memperjelas bahwa pemberitahuan mungkin memerlukan pemindaian rekursif, sementara aplikasi yang menentukan cara menangani pekerjaan tersebut. Korelasi ukuran saja tidak serta-merta membuktikan adanya batas antrean peristiwa pada sistem operasi.
Periksa apakah aplikasi yang terpengaruh dapat mengakses lokasi proyek. Kontrol privasi macOS dan aturan App Sandbox dapat membatasi akses ke folder, dan Apple mendokumentasikan bahwa akses ke lokasi yang dilindungi mungkin memerlukan otorisasi pengguna di Pengaturan Sistem. Tinjau status izin aplikasi di Pengaturan Sistem > Privasi & Keamanan, dan berikan hanya akses yang diperlukan untuk tugas tersebut. Masalah izin dapat menghalangi akses file yang berguna meskipun jalurnya muncul di aplikasi. Apple: Accessing Files from the macOS App Sandbox
5. Pilih langkah berikutnya berdasarkan bukti
Jika folder lokal kecil berfungsi, kirimkan reproduksi minimal kepada pengembang aplikasi beserta jenis lokasi proyek, pola jalur yang terpengaruh, log watcher yang relevan, dan apakah symlink atau pengecualian terlibat. Jika folder lokal kecil maupun besar sama-sama gagal, perbarui aplikasi dan periksa pelacak masalah (issue tracker) atau panduan dukungan khusus untuk versi macOS tersebut; laporkan versi macOS dan versi aplikasi. Hindari menghapus data proyek atau mengubah pengaturan keamanan sistem sebagai perbaikan spekulatif. Diagnosis yang berguna adalah kondisi paling sempit yang dapat direproduksi: satu aplikasi, satu jalur, satu pengeditan, dan satu kegagalan yang dapat diamati.
Sumber
Using the File System Events API — Apple Developer
FSEventStreamEventFlags — Apple Developer
Examining File-System Usage — Apple Developer
Accessing Files from the macOS App Sandbox — Apple Developer
File Watcher Issues — Microsoft GitHub