5fe5d51b1b
AI Proxy (was AI Router): - server/lib/ai-proxies.js, proxy-apply.js, routes/ai-proxies.js mounted at /api/ai-proxies and the old /api/ai-routers; `router` still accepted on the start routes; profiles move to <CLAUDE_HOME>/agenthub-proxies/ - dashboard_runs.router renamed in place to proxy: an older build on the same DB fails on that column, so dev and prod sharing one DB update together - a proxy's baseUrl stored as its root (a typed /v1 made /v1/v1/messages); Test probes Claude /v1/messages and Codex /v1/responses - Settings → AI Proxy (/settings/ai-router redirects), ProxyPicker Updates: - every tab reloads onto the new UI build when its WebSocket reconnects to a server of another version (lib/newBuildReload.ts, once per version) - Update now stops waiting on a plugin chain that failed or pulled nothing (the old server never goes down), and reloads as soon as a new version answers Also: - a pane whose command exits at once says so (EPANEEXITED) instead of "Command failed: tmux set-option … mouse on" - the pane drag preview draws where the pane actually lands
36 lines
3.0 KiB
JSON
36 lines
3.0 KiB
JSON
{
|
|
"title": "Có bản cập nhật cho bảng điều khiển",
|
|
"lead": "Đã có commit mới trên nhánh remote. Hãy sao chép lệnh bên dưới và chạy trong terminal - bảng điều khiển sẽ không tự cập nhật.",
|
|
"commitsBehind": "Chậm {{ref}} {{count}} commit",
|
|
"copy": "Sao chép lệnh",
|
|
"commandLabel": "Lệnh terminal để cập nhật bảng điều khiển",
|
|
"copied": "Đã sao chép",
|
|
"dismiss": "Bỏ qua",
|
|
"fetchError": "Không kết nối được remote git. Thử lại khi có mạng.",
|
|
"notGit": "Bản cài đặt này không phải bản git clone; hãy nâng cấp thủ công.",
|
|
"restartNote": "Sau khi chạy xong lệnh, hãy khởi động lại bảng điều khiển theo cách bạn đã dùng để chạy nó.",
|
|
"checkNow": "Kiểm tra ngay",
|
|
"checking": "Đang kiểm tra...",
|
|
"checkError": "Không thể kiểm tra cập nhật",
|
|
"updateNow": "Cập nhật ngay",
|
|
"updating": "Đang cập nhật...",
|
|
"restarting": "Đã build xong — đang khởi động lại bảng điều khiển...",
|
|
"applyError": "Không thể áp dụng cập nhật",
|
|
"reasonNotFastForwardable": "Nhánh hiện tại không phải nhánh mặc định được theo dõi — hãy chạy lệnh ở trên thủ công.",
|
|
"releaseTitle": "Đã có bản phát hành {{version}}",
|
|
"releaseSubtitle": "Bạn đang chạy {{current}}",
|
|
"releaseLead": "Repo vừa phát hành bản mới. Bấm \"Cập nhật ngay\" để fast-forward install này lên tag của bản phát hành, cài lại dependency, build lại và khởi động lại server.",
|
|
"viewRelease": "Ghi chú phát hành",
|
|
"reasonPluginManaged": "Bản cài này do plugin cache của Claude Code quản lý — hãy chạy /agenthub-update.",
|
|
"releaseUnavailable": "Không đọc được bản phát hành mới nhất từ repo ({{reason}}); đã quay về so sánh theo commit.",
|
|
"pluginAutoNote": "Dashboard này cài dạng plugin của Claude Code. Bấm \"Cập nhật ngay\" sẽ tự tải bản plugin mới, cài lại runtime và khởi động lại server — mất vài phút. Riêng skill và slash command mới thì session Claude Code đang mở chỉ thấy sau khi bạn chạy /reload-plugins ở đó.",
|
|
"pluginUpdating": "Đang tải bản plugin mới và cài lại runtime — mất vài phút, trang sẽ tự reload khi server mới lên...",
|
|
"pluginAlreadyCurrent": "Không có phiên bản plugin mới nào được tải về, nên dashboard đang chạy được giữ nguyên.",
|
|
"lastPluginUpdateFailed": "Lần cập nhật plugin trước thất bại ở bước \"{{step}}\": {{error}} — chạy /agenthub-update trong Claude Code để khắc phục.",
|
|
"restartingShort": "Đang khởi động lại…",
|
|
"installedTitle": "Đã cài bản {{version}} nhưng chưa chạy",
|
|
"later": "Để sau",
|
|
"skipVersion": "Bỏ qua phiên bản này",
|
|
"skipVersionHint": "Không hỏi lại về phiên bản này; phiên bản mới hơn vẫn sẽ được thông báo."
|
|
}
|