Lỗi tích hợp: Antigravity Browser bị định tuyến nhầm sang Kiro
Khi kích hoạt Antigravity MITM trên 9Router, các request từ Browser Subagent bị nhận diện nhầm và định tuyến sang provider Kiro thay vì Gemini Flash, gây lỗi kết nối khi không có cấu hình Kiro.
🤖 Prompt để nhờ AI fix cho lẹ
Bạn chỉ cần bấm Copy prompt này rồi dán vào bất kỳ AI Code Assistant nào (như Claude 3.7 / GPT-4o / Codex / Antigravity) để AI tự động fix code trong repo 9Router:
Môi trường thử nghiệm
- Hệ điều hành: Windows
- Phiên bản 9Router: 0.5.50
- Cấu hình MITM: Đã bật (Port 443)
- Trạng thái Kiro: Không có tài khoản/credentials trong db.json (đã xóa)
- Trạng thái Antigravity: Có tài khoản hoạt động bình thường
Cách tái hiện (Reproduction Steps)
- Cài đặt 9Router v0.5.50 sạch hoặc xóa toàn bộ credentials của provider Kiro trong db.json.
- Bật Antigravity MITM (kiểm tra hosts file đã chuyển hướng generativelanguage.googleapis.com về localhost/127.0.0.1).
- Sử dụng Antigravity IDE gọi Browser Subagent mở bất kỳ website nào (ví dụ: lumentree.pages.dev).
- Quan sát lỗi trả về trong console hoặc logs.
Kết quả mong muốn (Expected)
Request từ Browser Subagent của Antigravity được giải mã/định tuyến chính xác sang tài khoản Antigravity hoạt động (sử dụng model gemini-3-flash hoặc gemini-3-flash-agent).
Kết quả thực tế (Actual)
9Router phân loại request thành provider kiro. Do không tìm thấy credentials Kiro đang hoạt động, router chặn request và báo lỗi: No active credentials for provider: kiro.
Bằng chứng kỹ thuật (Technical Evidence)
No active credentials for provider: kiro
request failed with empty body (code 500)
HTTP/1.1 200 OK
{
"id": "chatcmpl-...",
"model": "gemini-3-flash",
"choices": [...]
}
Phân tích nguyên nhân (Root Cause Analysis)
Khi request đi qua MITM của 9Router, việc phân loại model (model/provider alias resolution) diễn ra trước bước lấy thông tin xác thực. Bằng cách nào đó, 9Router hiểu nhầm model identifier từ Browser của Antigravity thành một model thuộc provider kiro. Khi DB không có connection nào của Kiro, router trả về lỗi 404/403 trước khi request kịp chuyển tiếp.
Bản vá Workaround đã xác minh
Chúng tôi đã vá trực tiếp file bundle server của 9Router tại app/.next-cli-build/server/chunks/112.js. Bằng cách ép chuẩn hóa (normalize) model sang ag/gemini-3-flash ngay từ đầu hàm định tuyến nếu provider được nhận diện nhầm là Kiro:
async function x(a,b,c=null,d=null,e=null){
if((await (0,h.mA)(b)).provider === "kiro"){
s.warn("FALLBACK", "Normalizing Kiro to ag/gemini-3-flash");
b = "ag/gemini-3-flash";
}
let p = await (0,h.mA)(b);
...
}
Sau khi áp dụng bản vá này và restart 9Router, Browser Subagent của Antigravity đã kết nối thành công và tải trang hoàn tất.