1.1.0 — timeline hoạt động trong khung chat, và nút tự cập nhật
Có gì mới
Timeline hoạt động trong khung chat. Trước đây gửi prompt xong là ngồi nhìn màn hình
đứng yên, không biết agent đang nghĩ hay đã lỗi. Giờ panel hiện từng bước: đang suy nghĩ,
đang gọi công cụ nào, kết quả ra sao, mất bao lâu. Mở lại panel thì lịch sử được dựng lại
từ nhật ký của chính nó, không còn khung trống cho một hội thoại mà server vẫn nhớ.
Nút tự cập nhật. Khi có bản mới, panel hiện nút; bấm là bridge tự tải, đối chiếu
SHA256, sao lưu bản đang chạy, cài đè, rồi kiểm tra bản mới có sống dậy không. Không lên
được thì tự khôi phục bản cũ và tự bật lại dịch vụ nền.
Cập nhật chỉ kích hoạt được từ khung chat qua cổng /panel — không phải MCP tool, nên
Claude không thể tự cập nhật cái máy nó đang chạy trên đó, kể cả khi được yêu cầu.
Cài đặt
macOS / Linux:
curl -fsSL https://github.com/TranHuyQn/cc-chrome-extension/releases/latest/download/install.sh | bash
Windows (PowerShell thường, không cần "Run as administrator") — hai dòng, không phải | iex:
irm https://github.com/TranHuyQn/cc-chrome-extension/releases/latest/download/install.ps1 -OutFile "$env:TEMP\install.ps1"
powershell -ExecutionPolicy Bypass -File "$env:TEMP\install.ps1"
install.ps1 bắt đầu bằng BOM UTF-8, vì PowerShell 5.1 không có BOM thì đọc file theo
bảng mã ANSI và làm hỏng mọi chuỗi tiếng Việt. Nhưng | iex lại đưa chính BOM đó vào
parser như ký tự thường (The term '#' is not recognized), và irm còn giải mã asset
của GitHub theo ISO-8859-1 nên chữ có dấu vỡ hết. -OutFile ghi nguyên byte, -File đọc
đúng — đó cũng là đường CI kiểm mỗi lần push.
Sau khi cài, làm nốt hai việc trong Chrome mà trình cài in ra: Load unpacked thư mục
extension, và dán URL kèm token vào popup.
Đã đo trên phần cứng thật
Trình cập nhật không được là con cháu của dịch vụ, vì việc đầu tiên trình cài làm là dừng
dịch vụ đó. Mỗi nền tảng một cơ chế, và cả ba đều đã đo chứ không suy luận:
- macOS —
launchctl bootoutkhông giết tiến trình con tách rời, nên vẫn spawn thẳng. - Windows — đo trên máy thật, hai lần (cắm sạc và chạy pin, kết quả giống nhau): runner
do Task Scheduler khởi động sống sóttaskkill /TmàStop-CcTaskdùng để giết bridge.
Đăng ký task không cần quyền admin. - Linux — đo trong CI mỗi lần push, có in cgroup thật của từng nhánh: con detached
thường chết,systemd-run --user --collect --unit=sống.
Đường cập nhật đã chạy thật
Toàn bộ đường cập nhật — tải, đối chiếu checksum, giải nén, bàn giao tiến trình, cài,
kiểm tra bridge mới sống lại — đã chạy thành công end-to-end trên macOS và Windows,
bằng đúng thao tác người dùng làm: bấm nút trong khung chat.
Không có test tự động nào đi qua đường này, và đó là cố ý: làm vậy nghĩa là npm test sẽ
cài đè lên bridge của chính người đang phát triển. Nó được bảo đảm bằng lần chạy thật ở
trên, cộng với các phép đo từng phần đã nêu.
Riêng Linux chưa được chạy thử end-to-end — không có máy Linux. Phần đã đo trên Linux
là cơ chế bàn giao tiến trình, do CI kiểm mỗi lần push, chứ không phải một lần cập nhật
hoàn chỉnh.