Biarkan OpenCode membaiki pepijat sementara anda terus bekerja pada worktree sendiri
OpenCode 2.2.6 boleh memulakan larian skrip dalam Git worktree baharu. Ketahui cara menyemak hasil dan mengawal perkara yang boleh dicapai ejen.
Anda sedang menyiapkan perubahan dalam salinan kerja apabila seseorang melaporkan kegagalan penghurai tarikh. Anda mahu terus menyunting fail sendiri dan memberikan tugas berasingan kepada ejen pengaturcaraan. Sebaik sahaja kedua-duanya menyunting direktori yang sama, cadangan pembaikan sekecil mana pun sukar dipisahkan daripada kerja yang masih berlangsung.
Pada 6 November, OpenCode 2.2.6 menambah pilihan worktree kepada larian skrip baris perintah. OpenCode ialah ejen pengaturcaraan sumber terbuka dengan antara muka terminal interaktif dan arahan berasingan untuk menjalankan permintaan daripada skrip. Pilihan baharu membolehkan skrip memulakan OpenCode dalam Git worktree lain, memberinya nama jika perlu dan membiarkan direktori kerja asal tersedia. Keluaran sama turut menambah pilihan untuk berkongsi sambungan Model Context Protocol (MCP) yang sepadan. Dua soalan patut dijawab sebelum larian bermula. Fail manakah yang boleh diubah oleh ejen, dan perkhidmatan manakah yang boleh digunakannya? Keluaran OpenCode v2.2.6 · Dokumentasi CLI OpenCode
Persediaan yang berguna menggabungkan satu tugas kecil, titik mula yang boleh dijangka, tempat menyemak perubahan dan kebenaran yang jelas untuk apa-apa tindakan di luar projek.

Tangkap layar terminal projek OpenCode menunjukkan tampalan dan sesi dalam antara muka. Aset jenama pada tag keluaran menggambarkan pengalaman terminal. Notis lesen MIT disertakan dengan imej. Telli.sh mengubah saiz tangkap layar dan menambah ruang di tepinya.
Direktori berasingan memberi perbezaan yang mudah disemak
Git worktree memberi setiap tugas fail kerja dan indeksnya sendiri. Ilustrasi asal Telli.sh.
Git worktree menyambungkan lebih daripada satu direktori kerja kepada satu repositori. Setiap worktree mempunyai fail kerja, indeks dan kedudukan checkout sendiri. Kebanyakan data repositori dikongsi. Worktree membolehkan anda menyemak tampalan ejen secara berasingan sementara suntingan asal kekal di tempatnya. Ia juga mengubah sumber yang dilihat ejen. Perubahan yang belum dikomit dalam direktori pertama tidak muncul di salinan kerja kedua hanya kerana kedua-duanya berkongsi repositori. Dokumentasi Git worktree
Keluaran OpenCode pada 6 November mendokumenkan tiga cara. Gunakan opencode run -w atau opencode run --worktree untuk worktree baharu, dan --worktree=<name> untuk menamakannya. Pilihan worktree tidak boleh digabungkan dengan --continue atau --session. Larian baharu memerlukan konteks permulaan baharu. Jika laporan pepijat sudah mempunyai perbualan panjang, masukkan langkah menghasilkan semula masalah dan hasil jangkaan yang berkaitan ke dalam arahan baharu. Keluaran OpenCode v2.2.6 · Pelaksanaan worktree dan contoh
Gunakan direktori berasingan sebagai tempat semakan. Sebelum bermula, catat cabang dan komit yang sepatutnya digunakan ejen. Selepas bermula, semak komit dan status worktree yang terhasil. Jika ujian bergantung pada lekapan yang belum dijejak atau perubahan yang hanya wujud dalam penyunting pembangun, perbezaan titik mula itu boleh menjelaskan keputusan yang tidak sepadan. Tampalan boleh tepat untuk versi kod lama dan masih tidak sesuai untuk cabang yang bakal diterbitkan.
Cuba satu perubahan kecil sebelum menyerahkan tugas lebih besar
Mulakan dengan repositori milik anda dan tugas yang khusus. Ujian tarikh tahun lompat yang gagal lebih sesuai daripada naik taraf luas kerana hasilnya mudah disahkan. Contoh lain ialah membaiki pautan navigasi lapuk melalui satu ujian laluan. Untuk kedua-duanya, nyatakan tingkah laku yang patut berubah dan cara anda akan menyemaknya.
-
Catat keadaan permulaan. Dalam direktori semasa, gunakan
git status --shortdangit rev-parse HEAD. Simpan hasil bersama laporan pepijat. Jika keadaan awal sudah lulus ujian, catat cara mengulanginya. Gunakanopencode --versionuntuk mengesahkan keluaran anda menyokong pilihan baharu. Keluaran OpenCode v2.2.6 -
Berikan satu tugas dalam worktree bernama. Masukkan langkah ulangan dan ujian sasaran ke dalam arahan. Contoh berikut menggunakan penghurai tarikh rekaan dan mengandaikan repositori sudah mempunyai ujian khusus. Meminta supaya perubahan tidak dikomit memudahkan semakan. Gunakan kebenaran dan persekitaran pelaksanaan yang dipilih untuk menetapkan sempadan yang lebih kuat.
ShellJalankan dalam Terminalopencode run --worktree=date-parser "Reproduce the leap-day parsing bug in the date parser tests. Fix the narrow cause, run the targeted tests, and leave the changes uncommitted for review." -
Cari direktori baharu sebelum memeriksa hasilnya. Jalankan
git worktree listdaripada repositori asal dan gunakan laluan yang dipaparkan. Dalam direktori baharu, semakgit status --short,git diffdangit diff --cached. Arahan terakhir penting jika ejen sudah menyediakan perubahan untuk dikomit. Semak fail yang belum dijejak secara berasingan. Ulang ujian khusus daripada direktori ejen dan pastikan ujian meliputi 29 Februari pada tahun lompat serta tahun apabila tarikh itu tidak sah. Dokumentasi Git worktree -
Bawa pulang hanya kerja yang sudah disemak. Kekalkan cadangan perubahan secara berasingan sehingga anda boleh menggunakan komit atau tampalan yang disemak pada cabang sasaran. Semak semula status direktori asal. Simpan worktree ejen sehingga semua yang diperlukan direkodkan dan tiada perubahan tertunda yang mahu dikekalkan. Senarai worktree Git memudahkan pengecaman direktori setiap tugas. Dokumentasi Git worktree
Kaedah sama membantu apabila dua isu yang tidak berkaitan muncul serentak. Tetapkan skop kecil kepada setiap isu dan bandingkan dua set perubahan sebelum menggabungkannya. Pemisahan worktree mengelakkan perubahan ujian yang belum dimasukkan ke indeks daripada muncul di direktori lain. Kedua-dua pembaikan masih boleh bercanggah apabila masuk ke cabang yang sama, terutama jika melibatkan fungsi bantuan yang dikongsi. Penyepaduan cabang dan ujian regresi akhir masih melalui proses semakan biasa.
Tentukan siapa boleh melakukan apa di luar repositori
Dua worktree boleh dijalankan dengan akaun sistem pengendalian yang sama. Kedua-duanya mungkin boleh mencapai persekitaran, pembantu kelayakan dan rangkaian yang sama. Pilihan worktree baharu menentukan tempat larian bermula dan memisahkan perubahan rutin. Tetapkan had akaun atau persekitaran pelaksanaan yang berasingan apabila tugas memerlukan sempadan lebih kuat. Permintaan kelulusan mengawal alat yang mematuhinya, manakala sistem pengendalian atau persekitaran pelaksanaan menentukan apa yang akhirnya boleh dicapai oleh proses.
Asingkan tempat perubahan daripada kelulusan alat dan capaian persekitaran pelaksanaan. Ilustrasi asal Telli.sh.
Dokumentasi kebenaran OpenCode V2 menerangkan aturan tersusun untuk tindakan individu. Kesannya termasuk allow, ask dan deny, dengan aturan terakhir yang sepadan digunakan. Satu contoh rasmi meminta kelulusan untuk arahan shell, kemudian membenarkan arahan semakan biasa dan menyekat push. Jika larian dibuat tanpa orang yang boleh meluluskan, uji tingkah laku aturan ask dalam aliran tersebut sebelum menjadikannya tugas berulang. Tetapkan larangan yang jelas dalam konfigurasi dan gunakan kelayakan jangka pendek berskop kecil bagi perkhidmatan yang diperlukan. Dokumentasi kebenaran OpenCode
| Keputusan | Perkara yang boleh diperiksa dalam rintis |
|---|---|
| Tempat perubahan dibuat | Komit permulaan, worktree ejen, perubahan dalam dan luar indeks, hasil ujian |
| Perkara yang boleh dipanggil ejen | Aturan fail dan shell berkuat kuasa, alat MCP, tingkah laku jika alat disekat |
| Perkara yang boleh dicapai proses | Kebenaran akaun, direktori terpasang, kelayakan dan destinasi rangkaian |
| Perkara yang diterima ke dalam projek | Tampalan yang disemak manusia dan semakan penyepaduan yang lulus |
Tugas dokumentasi sahaja menyediakan cara mudah menguji lapisan ini. Benarkan ejen mengubah satu bahagian dalam projek contoh. Berikan penyedia yang dibenarkan tanpa kelayakan produksi. Jalankan skrip dan sahkan tampalan hanya menyentuh fail jangkaan. Jika automasi kemudian memerlukan repositori jauh atau alat tiket, tetapkan tujuan bagi setiap keupayaan dan sahkan kebenarannya secara berasingan.
Perkongsian sambungan sesuai apabila sempadan akses projek sepadan
MCP membolehkan ejen menggunakan alat daripada program lain, seperti perkhidmatan carian dokumentasi atau penjejak isu. Dalam keluaran 6 November, pool: true membolehkan direktori yang dilayani satu pelayan OpenCode menggunakan semula sambungan apabila konfigurasi yang berkaitan sepadan. Dokumentasi V2 rasmi menyatakan bahawa perkongsian ini terpakai pada semakan protokol 2026-07-28. Jika pelayan merundingkan semakan lebih lama, sambungan kekal berasingan. Alamat sama sahaja tidak mencukupi. Tetapan jauh dan akaun yang disahkan perlu sepadan. Bagi pelayan setempat, padanan meliputi arahan, persekitaran dan direktori kerja. Keluaran OpenCode v2.2.6 · Dokumentasi perkongsian sambungan MCP OpenCode
Bayangkan dua worktree menggunakan perkhidmatan dokumentasi dalaman yang sama melalui akaun sama. Perkongsian boleh mengurangkan kerja menyediakan sambungan pendua jika perkhidmatan menyokong semakan tersebut. Sahkan dahulu kedua-dua direktori memang dibenarkan mencapai bahan yang sama dan penyepaduan hanya menawarkan keupayaan diperlukan. Jika satu worktree hanya perlu dokumen awam dan satu lagi boleh membuka tiket dalaman, sambungan berasingan memudahkan semakan sempadan.
Pelayan setempat boleh bergantung pada direktori kerjanya. Satu proses yang dilancarkan dalam setiap folder projek mungkin mendapat konteks yang berbeza walaupun teks arahannya sama. Dokumentasi OpenCode menyatakan bahawa direktori kerja tetap diperlukan untuk berkongsi sambungan setempat merentas projek, dan sambungan yang dikongsi tidak mempunyai roots. Mulakan dengan perkhidmatan baca sahaja yang menjelaskan skop sumbernya. Jika tingkah laku alat bergantung pada repositori pemanggil, ukur perubahan sebelum menggunakan sambungan berkongsi. Dokumentasi perkongsian sambungan MCP OpenCode
Larian skrip masih memerlukan pengakhiran
OpenCode 2.2.6 turut menambah --archived supaya sesi skrip atau CI bermula dalam keadaan diarkibkan dan tidak muncul dalam senarai sesi biasa. Ini mengubah cara sesi dipersembahkan. Simpan hasil tugas, laluan worktree dan keputusan ujian di tempat yang boleh dicari oleh penyemak. Gunakan pilihan itu setelah ada cara yang boleh dipercayai untuk menjumpai tampalan walaupun senarai biasa kosong. Nota 6 November menyatakan bahawa --continue melangkau sesi diarkibkan. Keluaran OpenCode v2.2.6
Keluaran sama mengubah kitar hayat larian skrip. Proses menunggu arahan latar, subejen dan tugas imej yang dimulakan oleh permintaan sebelum keluar. Nota keluaran menyatakan tiada had masa dalaman untuk tempoh menunggu itu. Pelayan pembangunan atau pemantau fail boleh menyebabkan larian terus terbuka. Bagi ujian automatik, gunakan arahan yang keluar selepas semakan tamat dan tetapkan had masa langkah CI. Bezakan larian dibatalkan, ujian gagal dan ejen yang melaporkan kejayaan. Jika masa tamat, semak keadaan perubahan yang dicadangkan sebelum memulakan semula atau menggabungkannya. Keluaran OpenCode v2.2.6
Setelah rintis berfungsi, nilai penjimatan masa melalui lebih daripada mesej selesai daripada ejen. Berapa lama untuk menyediakan larian baharu? Berapa lama penyemak memahami dan mengesahkan perubahan? Berapa kerap seseorang perlu membaiki suntingan di luar skop atau menyiasat alat yang tersekat? Bandingkan beberapa tugas bersaiz serupa dan masukkan masa persediaan serta semakan. Worktree berasingan paling bernilai apabila tampalan cukup kecil untuk dimiliki dan difahami oleh seseorang.
Salinan kerja yang bersih menjelaskan tanggungjawab
Kelebihan pilihan worktree ialah penyemak mempunyai titik mula yang jelas. Mereka boleh melihat keadaan awal, memeriksa perubahan dan mengulang ujian sementara pembangun lain terus bekerja. Nyatakan perkongsian sambungan dan kebenaran pelaksanaan dengan jelas juga. Serah tugas yang baik ialah tampalan kecil yang menunjukkan tempat ia bermula, perkara yang berubah dan bukti ia sedia disepadukan.
Sumber
Untuk menyimpan rekod keputusan dan eksperimen yang mudah dicari, cipta akaun Telli.sh.