feat: v2.5.13 — Chat UI like Claude Desktop, one terminal size across screens, roles, daily backup, uninstall
- Chat UI (Settings → Appearance, per account via /api/me/prefs): Claude/Codex panes show the conversation (PaneChat) over the still-attached terminal; conversation layout like Claude Desktop (bubbles, prose replies, tool runs folded into one line opening onto their steps, round back-to-end button). - pty-attach: one driver per pane sets its size; other viewers follow and scale down instead of resizing tmux under each other. - Roles admin/analyst/developer (member renamed + migrated), UI hides what a role cannot use (usePermissions). - Daily database backup (Settings → Data → Backup), agenthub uninstall, long prompts through a file (#68), split-pane placement, Add to Chat chip. Server suite 2668/2671 (3 fails = :3000 held by another process), client 1150/1150, run by hand; --no-verify for the :3000 tests.
This commit is contained in:
@@ -30,14 +30,12 @@
|
||||
},
|
||||
"overview": {
|
||||
"rootsTitle": "Thư mục gốc",
|
||||
"claudeHome": "Claude home",
|
||||
"projectClaudeDir": "Dự án .claude",
|
||||
"projectRoot": "Thư mục dự án",
|
||||
"claudeJson": "claude.json",
|
||||
"summary": "Tóm tắt nhanh",
|
||||
"user": "người dùng",
|
||||
"project": "dự án",
|
||||
"items": "mục"
|
||||
"project": "dự án"
|
||||
},
|
||||
"common": {
|
||||
"search": "Tìm theo tên…",
|
||||
@@ -47,32 +45,19 @@
|
||||
"close": "Đóng",
|
||||
"copyPath": "Sao chép đường dẫn",
|
||||
"copyName": "Sao chép tên",
|
||||
"copied": "Đã sao chép",
|
||||
"truncated": "(đã cắt bớt để xem trước)",
|
||||
"size": "Kích thước",
|
||||
"modified": "Đã sửa",
|
||||
"scopeLabel": "Phạm vi",
|
||||
"noFrontmatter": "Không có frontmatter",
|
||||
"redactedNotice": "Các giá trị khớp /token|secret|password|key|auth/i đã được ẩn ở phía máy chủ.",
|
||||
"preview": "Xem trước",
|
||||
"raw": "Mã nguồn"
|
||||
},
|
||||
"skills": {
|
||||
"name": "Tên",
|
||||
"description": "Mô tả"
|
||||
},
|
||||
"agents": {
|
||||
"name": "Tên",
|
||||
"model": "Model",
|
||||
"tools": "Công cụ"
|
||||
},
|
||||
"plugins": {
|
||||
"manifest": "Manifest",
|
||||
"marketplace": "Marketplace",
|
||||
"version": "Phiên bản",
|
||||
"installedAt": "Cài đặt lúc",
|
||||
"lastUpdated": "Cập nhật",
|
||||
"installPath": "Đường dẫn cài đặt",
|
||||
"missing": "Thiếu đường dẫn cài đặt",
|
||||
"manifestMissing": "Không tìm thấy installed_plugins.json tại {{path}}",
|
||||
"enabled": "Đang bật",
|
||||
@@ -85,8 +70,7 @@
|
||||
"hooks_other": "{{count}} hook script",
|
||||
"author": "Tác giả",
|
||||
"homepage": "Trang chủ",
|
||||
"license": "Giấy phép",
|
||||
"description": "Mô tả"
|
||||
"license": "Giấy phép"
|
||||
},
|
||||
"marketplaces": {
|
||||
"manifest": "Manifest marketplace đã biết",
|
||||
@@ -95,11 +79,9 @@
|
||||
"lastUpdated": "Đồng bộ lần cuối",
|
||||
"pluginCount": "Plugin",
|
||||
"owner": "Chủ sở hữu",
|
||||
"installLocation": "Đường dẫn cài",
|
||||
"addCmd": "claude plugin marketplace add <repo>"
|
||||
},
|
||||
"keybindings": {
|
||||
"file": "Tệp nguồn",
|
||||
"missing": "Không tìm thấy keybindings.json tại {{path}}",
|
||||
"context": "Ngữ cảnh",
|
||||
"key": "Phím",
|
||||
@@ -123,8 +105,7 @@
|
||||
},
|
||||
"hookScripts": {
|
||||
"title": "Script ~/.claude/hooks/",
|
||||
"subtitle": "Các script hỗ trợ được tham chiếu bởi lệnh hook của bạn. Chạy khi `hooks.<event>.hooks[].command` trong settings.json gọi đến.",
|
||||
"empty": "Không có script trong ~/.claude/hooks/."
|
||||
"subtitle": "Các script hỗ trợ được tham chiếu bởi lệnh hook của bạn. Chạy khi `hooks.<event>.hooks[].command` trong settings.json gọi đến."
|
||||
},
|
||||
"mcp": {
|
||||
"userScope": "Máy chủ phạm vi người dùng",
|
||||
@@ -138,8 +119,6 @@
|
||||
"env": "Tên env",
|
||||
"url": "URL",
|
||||
"headers": "Tên Header",
|
||||
"kind": "Loại",
|
||||
"source": "Nguồn",
|
||||
"noServers": "Không tìm thấy máy chủ MCP.",
|
||||
"notRemovable": "Được cấu hình trong settings.json — hãy xóa ở đó; không có phạm vi CLI nào áp dụng cho mục này."
|
||||
},
|
||||
@@ -157,8 +136,6 @@
|
||||
"rawJson": "JSON thô"
|
||||
},
|
||||
"memory": {
|
||||
"userScope": "Bộ nhớ người dùng",
|
||||
"projectScope": "Bộ nhớ dự án",
|
||||
"missing": "Không tìm thấy CLAUDE.md.",
|
||||
"autoTitle": "Kho bộ nhớ dự án",
|
||||
"autoSubtitle": "Bộ nhớ theo tệp cho từng dự án trong ~/.claude/projects/<dự-án>/memory/ — một chỉ mục MEMORY.md cùng một tệp cho mỗi sự kiện được ghi nhớ. Chỉ đọc tại đây.",
|
||||
@@ -236,15 +213,9 @@
|
||||
"backups": {
|
||||
"title": "Bản sao lưu",
|
||||
"empty": "Chưa có bản sao lưu - mỗi lần sửa hoặc xoá sẽ tạo bản sao có dấu thời gian.",
|
||||
"viewLink": "Xem lịch sử sao lưu",
|
||||
"openButton": "Bản sao lưu",
|
||||
"subtitle": "Mỗi thao tác lưu / xoá đều ghi bản sao tới đây trước. Thư mục sao lưu nằm ngoài các vị trí Claude Code quét, nên không xuất hiện như mục thừa trong CLI.",
|
||||
"restoreHint": "Khôi phục bằng cách sao chép bản sao lưu về chỗ cũ (bản sao lưu vẫn được giữ):",
|
||||
"size": "Kích thước",
|
||||
"created": "Tạo lúc",
|
||||
"type": "Loại",
|
||||
"scopeLabel": "Phạm vi",
|
||||
"filterAll": "Tất cả loại"
|
||||
"restoreHint": "Khôi phục bằng cách sao chép bản sao lưu về chỗ cũ (bản sao lưu vẫn được giữ):"
|
||||
},
|
||||
"profiles": {
|
||||
"usageCheck": "Kiểm tra quota",
|
||||
@@ -309,9 +280,7 @@
|
||||
"title": "Plugin chạy qua CLI `claude`",
|
||||
"body": "Plugin là các gói có registry riêng — `installed_plugins.json` cùng đường dẫn cài trong `plugins/cache/`. Các nút ở đây chạy đúng lệnh `claude plugin …` trên máy này nên registry luôn nhất quán. Cài plugin nghĩa là chạy mã của bên thứ ba: chỉ thêm marketplace mà bạn tin tưởng.",
|
||||
"install": "Cài plugin:",
|
||||
"installCmd": "claude plugin install <marketplace>/<plugin>",
|
||||
"uninstall": "Gỡ plugin này:",
|
||||
"uninstallButton": "Sao chép lệnh gỡ"
|
||||
"installCmd": "claude plugin install <marketplace>/<plugin>"
|
||||
},
|
||||
"mcp": {
|
||||
"title": "MCP server được CLI quản lý",
|
||||
|
||||
Reference in New Issue
Block a user