Để OpenCode sửa lỗi trong khi bạn giữ nguyên thư mục làm việc
OpenCode 2.2.6 có thể bắt đầu lượt chạy theo kịch bản trong Git worktree mới. Đây là cách rà soát kết quả và kiểm soát những gì tác tử có thể truy cập.
Bạn đang sửa dở một bản sao mã nguồn thì có người báo trình phân tích ngày tháng chạy sai. Bạn muốn tiếp tục sửa tệp của mình và giao việc riêng cho tác tử lập trình. Ngay khi cả hai sửa cùng thư mục, ngay cả bản vá nhỏ cũng khó tách khỏi phần đang làm.
Ngày 6 tháng 11, OpenCode 2.2.6 thêm tùy chọn worktree cho lượt chạy dòng lệnh theo kịch bản. OpenCode là tác tử lập trình mã nguồn mở có giao diện dòng lệnh tương tác và lệnh riêng để chạy lời nhắc từ tập lệnh. Với tùy chọn mới, tập lệnh có thể mở OpenCode trong Git worktree riêng, đặt tên nếu muốn và để thư mục gốc tiếp tục sử dụng. Bản phát hành cũng thêm chia sẻ tự chọn cho các kết nối Model Context Protocol (MCP) có cấu hình khớp. Trước khi chạy, nên hỏi hai điều: tác tử có thể đổi tệp nào, và dùng được dịch vụ nào? Bản phát hành OpenCode v2.2.6 · Tài liệu dòng lệnh OpenCode
Cấu hình hữu ích nhất ghép một việc hẹp với điểm bắt đầu dự đoán được, nơi kiểm tra thay đổi và quyền rõ ràng cho mọi thứ ra ngoài dự án.

Ảnh chụp dòng lệnh của dự án OpenCode cho thấy bản vá và phiên. Tư liệu thương hiệu tại bản phát hành minh họa trải nghiệm. Ảnh đi kèm thông báo giấy phép MIT. Telli.sh đã đổi kích thước và thêm lề.
Thư mục riêng giúp bản diff đáng tin hơn
Mỗi việc có tệp làm việc và vùng chỉ mục riêng trong Git worktree. Minh họa do Telli.sh thực hiện.
Git worktree gắn nhiều thư mục làm việc với cùng kho. Mỗi thư mục có tệp, chỉ mục và vị trí checkout riêng. Chúng dùng chung phần lớn dữ liệu kho. Worktree cho phép bạn xem bản vá của tác tử riêng trong khi chỉnh sửa gốc vẫn nguyên chỗ. Nó cũng thay đổi mã nguồn tác tử thấy. Các thay đổi chưa commit ở thư mục đầu không tự xuất hiện trong thư mục hai chỉ vì cùng thuộc một kho. Tài liệu Git worktree
Bản phát hành ngày 6 tháng 11 mô tả ba cách chọn. Dùng opencode run -w hoặc opencode run --worktree để tạo worktree mới, và --worktree=<name> nếu muốn đặt tên. Không kết hợp tùy chọn này với --continue hay --session. Lượt sạch cần ngữ cảnh bắt đầu mới. Với báo cáo lỗi đã có trao đổi dài, đưa các bước tái hiện và kết quả dự kiến vào lời nhắc mới. Bản phát hành OpenCode v2.2.6 · Triển khai và ví dụ worktree
Hãy coi thư mục riêng là nơi rà soát. Trước khi chạy, ghi nhánh và commit bạn dự kiến tác tử sử dụng. Sau đó, kiểm tra commit và trạng thái thực tế. Nếu bài kiểm tra phụ thuộc tệp mẫu chưa theo dõi hoặc thay đổi chỉ có trong trình soạn thảo của lập trình viên, khác biệt điểm xuất phát giải thích vì sao hai lượt cho kết quả khác. Bản vá có thể đúng với mã cũ nhưng không phù hợp với nhánh sắp phát hành.
Thử một thay đổi nhỏ trước khi giao việc lớn
Bắt đầu với kho bạn sở hữu và nhiệm vụ có trọng tâm. Một bài thử ngày nhuận đang lỗi dễ kiểm chứng hơn nâng cấp rộng. Ví dụ khác là sửa liên kết điều hướng cũ với một bài thử tuyến. Ở cả hai, mô tả rõ hành vi cần đổi và cách kiểm tra sau đó.
-
Ghi trạng thái ban đầu. Trong thư mục hiện tại, dùng
git status --shortvàgit rev-parse HEAD. Lưu đầu ra với báo cáo lỗi. Nếu đã có mốc kiểm tra đạt, ghi cách tái hiện. Dùngopencode --versionđể xác nhận bản có cờ mới. Bản phát hành OpenCode v2.2.6 -
Giao một việc với worktree có tên. Đưa cách tái hiện và bài thử đích vào lời nhắc. Ví dụ dùng trình phân tích ngày giả định và giả sử kho đã có bài thử riêng cho nó. Yêu cầu để thay đổi chưa commit giúp dễ xem. Dùng quyền và môi trường chạy để áp giới hạn chặt hơn.
ShellChạy trong 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." -
Tìm thư mục mới trước khi xem kết quả. Chạy
git worktree listtừ kho gốc và dùng đường dẫn trả về. Trong thư mục mới, xemgit status --short,git diffvàgit diff --cached. Lệnh cuối quan trọng nếu tác tử đã đưa tệp vào vùng chờ commit. Xem riêng tệp chưa được theo dõi. Tự chạy lại bài thử đích từ thư mục tác tử và xác nhận bài thử có cả ngày 29 tháng 2 trong năm nhuận lẫn năm mà ngày đó không hợp lệ. Tài liệu Git worktree -
Chỉ đưa về phần đã rà soát. Giữ đề xuất riêng tới khi có thể áp commit hay bản vá đã kiểm tra vào nhánh dự kiến. Kiểm tra lại trạng thái thư mục ban đầu. Giữ worktree của tác tử cho đến khi đã ghi mọi thứ cần thiết và chắc chắn không còn thay đổi đang chờ mà bạn muốn giữ. Danh sách worktree của Git giúp nhận ra thư mục thuộc việc nào. Tài liệu Git worktree
Cách này cũng giúp khi hai lỗi độc lập đến cùng lúc. Giao mỗi lỗi phạm vi nhỏ và so hai bản diff trước khi tích hợp. Tách worktree giúp thay đổi bài thử chưa đưa vào vùng chờ của tác tử này không xuất hiện ở thư mục kia. Hai bản sửa vẫn có thể xung đột trên cùng nhánh, nhất là nếu cùng chạm hàm dùng chung. Tích hợp nhánh và kiểm tra hồi quy cuối vẫn thuộc quy trình rà soát bình thường.
Quyết định quyền bên ngoài kho mã
Hai worktree có thể chạy dưới cùng tài khoản hệ điều hành. Chúng có thể thấy cùng môi trường, trình quản lý thông tin xác thực và mạng. Tùy chọn mới chọn nơi bắt đầu và tách các thay đổi thông thường. Đặt giới hạn môi trường chạy hoặc tài khoản riêng khi cần ranh giới mạnh hơn. Lời nhắc quyền chỉ kiểm soát công cụ tuân theo nó, còn hệ điều hành hoặc môi trường thực thi quyết định tiến trình rốt cuộc chạm được gì.
Tách vị trí thay đổi khỏi quyền công cụ và khả năng truy cập của môi trường chạy. Minh họa do Telli.sh thực hiện.
Tài liệu quyền V2 của OpenCode mô tả quy tắc có thứ tự cho từng hành động. Kết quả gồm allow, ask và deny, quy tắc khớp cuối được ưu tiên. Ví dụ chính thức hỏi trước lệnh shell, rồi cho phép các lệnh xem phổ biến và cấm đẩy mã. Nếu định chạy khi không có người duyệt, hãy thử hành vi của quy tắc ask trong luồng đó trước khi lên lịch lặp. Ghi lệnh cấm rõ trong cấu hình và dùng thông tin xác thực ngắn hạn, phạm vi hẹp cho các dịch vụ thật sự cần. Tài liệu quyền OpenCode
| Quyết định | Có thể kiểm tra gì trong đợt thử |
|---|---|
| Thay đổi đi đâu | Commit ban đầu, worktree của tác tử, diff đã và chưa đưa vào vùng chờ, đầu ra bài thử |
| Tác tử được gọi gì | Quy tắc tệp và shell có hiệu lực, công cụ MCP hiện có, hành vi khi bị từ chối |
| Tiến trình truy cập được gì | Quyền tài khoản, thư mục gắn, thông tin xác thực và đích mạng |
| Thứ gì được nhập vào dự án | Bản vá người đã xem và phép kiểm tra tích hợp đạt |
Việc chỉ sửa tài liệu là cách thử đơn giản. Cho tác tử sửa một mục trong dự án mẫu. Cấp nhà cung cấp nó được dùng, không cấp thông tin xác thực vận hành. Chạy tập lệnh và xem bản vá chỉ chạm tệp dự kiến. Nếu tự động hóa sau này cần kho từ xa hay công cụ phiếu, nêu lý do cho từng khả năng và xác minh quyền riêng.
Chia sẻ kết nối khi các dự án đã cùng ranh giới
MCP cho phép tác tử dùng công cụ từ chương trình khác như tìm tài liệu hoặc theo dõi vấn đề. Trong bản ngày 6 tháng 11, pool: true cho phép các thư mục do cùng một máy chủ OpenCode phục vụ dùng lại kết nối nếu cấu hình liên quan khớp. Tài liệu V2 nêu cơ chế này áp dụng cho phiên bản giao thức 2026-07-28. Nếu máy chủ thương lượng bản cũ hơn, các kết nối vẫn riêng. Khớp không chỉ là trỏ hai dự án vào cùng địa chỉ. Thiết lập từ xa và tài khoản xác thực phải giống. Với máy chủ cục bộ, lệnh, môi trường và thư mục làm việc cũng phải khớp. Bản phát hành OpenCode v2.2.6 · Tài liệu chia sẻ MCP của OpenCode
Ví dụ hai worktree cùng truy vấn dịch vụ tài liệu nội bộ bằng một tài khoản. Chia sẻ giảm việc thiết lập lặp nếu dịch vụ hỗ trợ bản giao thức liên quan. Trước hết, xác nhận các thư mục được phép xem cùng tài liệu và tích hợp chỉ cấp những khả năng cần thiết. Nếu worktree này chỉ cần tài liệu công khai, còn worktree kia được tạo phiếu nội bộ, giữ kết nối riêng để dễ kiểm tra ranh giới.
Máy chủ cục bộ có thể phụ thuộc thư mục làm việc hiện tại. Tiến trình khởi chạy từ mỗi dự án có thể có ngữ cảnh khác dù câu lệnh giống hệt. Theo tài liệu OpenCode, muốn gộp kết nối cục bộ qua dự án thì cần thư mục làm việc cố định, và kết nối chia sẻ không có roots. Vì vậy, bắt đầu với dịch vụ chỉ đọc có phạm vi tài nguyên rõ ràng. Nếu công cụ đổi hành vi tùy kho gọi, hãy đo khác biệt trước khi chia sẻ. Tài liệu chia sẻ MCP của OpenCode
Lượt chạy theo tập lệnh vẫn cần điểm kết thúc
OpenCode 2.2.6 cũng thêm --archived để phiên từ tập lệnh hoặc CI bắt đầu ở trạng thái lưu trữ, không xuất hiện trong danh sách phiên thường. Điều đó thay đổi cách hiển thị phiên. Lưu kết quả công việc, đường dẫn worktree và kết quả thử ở nơi người rà soát tìm được. Dùng cờ khi đã có cách tìm bản vá ngay cả khi danh sách thường trống. Ghi chú ngày 6 tháng 11 nói --continue bỏ qua phiên lưu trữ. Bản phát hành OpenCode v2.2.6
Bản phát hành cũng thay vòng đời lượt chạy tập lệnh. Nó đợi lệnh nền, tác tử con và tác vụ ảnh do lời nhắc khởi động trước khi thoát. Theo ghi chú, thời gian chờ nội bộ không giới hạn, nên máy chủ phát triển hay trình theo dõi tệp có thể giữ lượt chạy mở. Với thử tự động, ưu tiên lệnh thoát khi kiểm tra xong và đặt giới hạn thời gian cho bước CI bao ngoài. Phân biệt lượt bị hủy, bài thử không đạt và tác tử tự báo thành công. Nếu hết giờ, kiểm tra trạng thái thật của đề xuất trước khi chạy lại hay tích hợp. Bản phát hành OpenCode v2.2.6
Khi đợt thử hoạt động, hãy đánh giá thời gian tiết kiệm ngoài thông báo hoàn tất. Mất bao lâu để thiết lập lượt sạch? Người duyệt cần bao lâu để hiểu và xác minh? Bao lâu lại phải sửa thay đổi ngoài phạm vi hoặc xem công cụ bị treo? So vài việc cùng cỡ, tính cả thiết lập và rà soát. Worktree riêng đáng giá nhất khi giữ bản vá đủ nhỏ để một người chịu trách nhiệm.
Bản checkout sạch làm rõ trách nhiệm
Giá trị của cờ worktree là người kiểm tra có nơi bắt đầu rõ ràng. Họ thấy mốc gốc, đọc thay đổi và chạy lại bài thử trong khi người khác tiếp tục làm việc. Hãy làm rõ tương tự với chia sẻ kết nối và quyền thực thi. Bàn giao gọn nhất là bản vá nhỏ tự trả lời được nó bắt đầu ở đâu, đã đổi gì và bằng chứng nào cho thấy đủ sẵn sàng để tích hợp.
Nguồn
Để lưu và tìm lại các quyết định và thử nghiệm trong công việc, hãy tạo tài khoản Telli.sh.