Repository navigation
v2.2.1
v2.2.1 — pty_start chạy được trở lại
Bản 2.2.1 sửa một lỗi khiến tool pty_start hỏng trên mọi máy. Không có thay đổi nào khác.
Lỗi
open2 is not a function. (In 'open2({ command: args.command, cwd: args.cwd, env: args.env })',
'open2' is undefined)
pty_start đọc bunPty.open rồi gọi open({ command, cwd, env }). Nhưng bun-pty bỏ open(options) từ 0.4 và xuất spawn(file, args, options). Bản đang cài (0.5.1) chỉ có Terminal và spawn — nên lời gọi luôn ném lỗi, ở mọi bản bun-pty hiện hành.
Đây là lỗi nhỏ về import, nhưng hậu quả lớn hơn thế: agent thấy shell không khả dụng, thử pty_start và nhận TypeError, rồi báo "session này không có shell" — và từ đó từ chối chạy git init, git commit, git push, docker build. Thực tế shell chưa hề bị ảnh hưởng.
Đã sửa
- Chấp nhận cả hai kiểu API:
spawn(file, args, options)khi có,open(options)làm nhánh dự phòng cho bản cũ; build không có cái nào thì báo lỗi kèm đúng lệnhnpm i -g bun-pty@latestthay vì mộtTypeErrorkhông giải thích được gì. - Gọi đúng chữ ký: chạy qua
/bin/sh -c "<lệnh>"(cmd.exe /d /s /ctrên Windows), và gộpprocess.envvàoenvvì bun-pty thay thế môi trường chứ không cộng dồn. pty_readgiờ trả output thật. Trước đây nó chỉ báorunningkèm câu "output streaming requires bun-pty native module" — dù tiến trình đã chạy. Nay output được buffer (giới hạn 200k ký tự, giữ phần đuôi) và xả ra khi đọc;clear: trueđể xoá buffer.
Kiểm chứng
- Trên runtime thật (OpenCode 2.1.4, nạp bản build cục bộ): agent tự gọi
pty_start→pty_readvà nhận đúngpty-ok-42. - 678 test pass, trong đó 4 test mới pin cả hai kiểu API của bun-pty, để lần nâng dependency sau không âm thầm tái hiện lỗi này.
tsc --noEmitsạch, build ok.
Nâng cấp
npm i -g @hung319/opencode-hive@2.2.1
opencode plugin updateRồi khởi động lại OpenCode.
Nếu bạn đang ở 2.2.0 và cần dùng PTY ngay trước khi nâng: cài bun-pty@0.3.x (bản còn open) vào ~/.config/opencode/hive/packages/node_modules/bun-pty. Không cần cho bất cứ việc gì khác — shell vẫn hoạt động bình thường.