Skip to content

1.0.9 — khung chat chạy hook của bạn

Choose a tag to compare

@TranHuyQn TranHuyQn released this 14 Aug 08:24
· 88 commits to claude/claude-code-chrome-extension-q9a5sg since this release

Sửa trong 1.0.9

Khung chat giờ chạy hook của chính bạn. Trước đây panel bị cách ly hoàn toàn khỏi ~/.claude/settings.json, nên hook theo dõi usage hay thông báo của bạn không bắn lần nào — chat trong panel không được tính vào thống kê.

Giờ bridge đọc phần hooks trong cấu hình cá nhân của bạn ngay lúc spawn, ghi ra một file tạm 0600 và truyền qua --settings. Không kèm enabledPlugins — plugin mới là thứ cần chặn (một SessionStart hook của plugin từng bơm memory chéo project vào mọi lượt chat, làm nút "Phiên mới" trông như hỏng). Không ai phải tạo file gì trên máy mình: cài xong là chạy.

SessionStartSessionEnd bị bỏ có chủ đích — panel spawn một tiến trình mỗi LƯỢT, nên chuyển tiếp hai sự kiện đó sẽ ghi nhận nguyên một "phiên" cho mỗi tin nhắn bạn gõ. Với công cụ đếm usage thì đó không phải sai số nhỏ, mà là dữ liệu rác.

Đo trước khi làm, không đoán: hook chạy dưới claude -p, --settings ghép được với --setting-sources project, và payload của Stop mang transcript_path đọc được — đúng thứ công cụ đếm usage cần để tính token của lượt vừa xong. Nên bỏ SessionStart không mất dữ liệu usage.

Sửa hook rồi thì lượt chat kế tiếp đã có hiệu lực, không cần cài lại.

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 quyền admin)

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"

Hai dòng, không phải irm … | iex: script bắt đầu bằng BOM UTF-8 (Windows PowerShell 5.1 cần nó để đọc đúng tiếng Việt), mà | iex lại đưa BOM vào parser như ký tự thường và chết ngay với The term '#' is not recognized.

Sau khi script chạy xong còn hai việc phải tự làm trong Chrome — script in ra đúng đường dẫn và URL cần dán: Load unpacked thư mục ~/.cc-chrome-bridge/extension, rồi dán ws://127.0.0.1:8787/ws?token=… vào popup của extension.

Sửa trong 1.0.8

Không còn để lại token đã thu hồi trên đĩa. Mỗi phiên khung chat sinh một file .mcp-config-<id>.json trong ~/.cc-chrome-bridge/panel/, và mỗi file chứa một bản sao token Bearer của bridge. Không có gì dọn chúng — đo được 40 file trên một máy dùng vài ngày — còn gỡ cài đặt thì giữ nguyên tất cả, vì cả thư mục panel/ được xếp vào nhóm "dữ liệu người dùng".

Giờ phiên chat tự xoá file của nó khi đóng, và uninstall quét nốt những file còn sót (trường hợp bridge bị kill đột ngột), không đụng tới bất cứ thứ gì khác trong panel/.

Và nói đúng sự thật. Uninstall trước đây gọi panel/"lịch sử hội thoại của khung chat" — nhưng lịch sử nằm ở ~/.claude/projects/; panel/ chỉ là thư mục làm việc của các tiến trình claude mà khung chat sinh ra. Giờ nó gọi đúng tên, và chỉ nhắc khi thật sự còn gì trong đó.

Có gì trong dòng 1.0.x

Chạy hoàn toàn trên máy bạn. Bridge nghe ở 127.0.0.1, chạy như một dịch vụ nền của riêng tài khoản bạn và tự lên khi đăng nhập — LaunchAgent (macOS), systemd --user (Linux), scheduled task (Windows). Không có server dùng chung, không tên miền, không pairing secret. Không dữ liệu nào rời khỏi máy bạn.

Không tool nào cướp focus của bạn. Không handler nào activate tab hay kéo cửa sổ Chrome lên trước ứng dụng bạn đang dùng — kể cả switch_tab, giờ chỉ đổi tab bên trong cửa sổ của nó. Đây là khác biệt có chủ đích so với extension Claude in Chrome chính chủ, vốn kéo cửa sổ lên ở gần như mọi lời gọi tool (#39696, #39707). Một bài test quét toàn bộ handler canh điều này, và nó đọc danh sách handler trực tiếp từ code nên thêm handler mới mà quên là fail ngay.

Cách ly theo tab group. Claude chỉ thao tác được trên tab nằm trong nhóm của phiên đó. Kéo một tab vào nhóm chính là cách bạn cấp quyền cho nó.

Khung chat ngay trong Chrome (side panel), spawn claude trên máy bạn, tách biệt hoàn toàn khỏi plugin/hook/memory ở cấu hình cá nhân.

Trạng thái nghiệm thu

macOS và Windows đã chạy thật trên máy thật, trọn vòng đời: cài không cần quyền admin/root, dịch vụ tự lên, extension nối được, tool trình duyệt chạy, khung chat trả lời, khởi động lại máy thì dịch vụ tự lên, và gỡ cài đặt sạch trong một lần chạy.

Linux chưa có ai cài trên máy thật. Đường Linux có test tự động chạy mỗi lần push (CI trên ubuntu-latest) và hai lỗi riêng của nó đã được sửa, nhưng người đầu tiên cài thật sẽ là lần nghiệm thu — nếu là bạn, chạy systemctl --user status ccchrome-bridge sau khi cài và báo lại giúp.

⚠️ Nâng cấp thì phải Reload extension. Script ghi đè ~/.cc-chrome-bridge/extension trên đĩa, nhưng Chrome vẫn chạy code cũ cho tới khi bạn vào chrome://extensions bấm Reload.

🔒 Bridge chỉ nghe trên 127.0.0.1. Đọc mục "Lưu ý bảo mật" trong README để biết chính xác Origin check bảo vệ được gì và không bảo vệ được gì.