feat: Claude Code Monitor — lanes, pipelines and a merged workspace

Internal SmartGift build of a Claude Code monitoring dashboard.

Lanes: a durable unit of parallel agent work, one per working directory,
tracked across session restarts. Managed lanes are git worktrees the
dashboard provisions and can reset or remove behind a three-check destroy
guard and a counted preflight; adopted lanes are directories you already
own and are never destroyable.

Pipelines: a lane moves through pipeline stages. A stage the agent declares
with evidence renders green; a stage inferred from the tool-event stream
renders dashed amber and never counts as done. Detection is forward-only
within a 30-minute window, and never writes the declared stage.

Workspace: one page at /run with a lane grid, the selected lane's pipeline,
and a full Claude console behind a disclosure.
This commit is contained in:
2026-07-29 17:07:45 +07:00
commit 57dc91585d
783 changed files with 221743 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
{
"activityFeed": "Luồng hoạt động",
"agentBoard": "Bảng Kanban",
"analytics": "Phân tích",
"avg": "TB",
"brand": "Bảng điều khiển Agent",
"brandSub": "Giám sát Claude Code",
"ccConfig": "Cấu hình Claude",
"checkFailed": "Kiểm tra cập nhật thất bại",
"checkForUpdates": "Kiểm tra cập nhật",
"checkingForUpdates": "Đang kiểm tra cập nhật...",
"close": "Đóng",
"collapse": "Thu gọn thanh bên",
"collapseShort": "Thu gọn",
"connection": "Kết nối",
"connectionDetails": "Chi tiết kết nối",
"connectionUptime": "Đã kết nối",
"dashboard": "Tổng quan",
"daysAgo": "{{count}} ngày trước",
"disconnected": "Mất kết nối",
"eventsLastMin": "60s qua",
"eventsReceived": "Sự kiện đã nhận",
"eventsTotal": "Tổng",
"expand": "Mở rộng thanh bên",
"hoursAgo": "{{count}} giờ trước",
"justNow": "vừa xong",
"language": "Ngôn ngữ",
"languageNames": {
"en": "English",
"vi": "Tiếng Việt"
},
"languageShort": {
"en": "EN",
"vi": "VI"
},
"lastEvent": "Sự kiện gần nhất",
"live": "Trực tiếp",
"minutesAgo": "{{count}} phút trước",
"noEventsYet": "Chưa có sự kiện",
"notConnected": "Chưa kết nối",
"notFound": "Không tìm thấy",
"peakRate": "Đỉnh",
"recentActivity": "Hoạt động gần đây",
"resetStats": "Đặt lại",
"scrollDown": "Cuộn danh mục xuống",
"scrollUp": "Cuộn danh mục lên",
"secondsAgo": "{{count}} giây trước",
"sessions": "Phiên",
"settings": "Cài đặt",
"skipToContent": "Bỏ qua đến nội dung",
"statsPersisted": "Số liệu được lưu sau khi tải lại",
"switchLanguage": "Chuyển sang {{language}}",
"throughput60s": "Lưu lượng · 60s qua",
"topEventTypes": "Loại sự kiện phổ biến",
"unitEvents": "sự kiện",
"unitPerSec": "sự kiện/s",
"upToDate": "Đã là mới nhất",
"updateAvailable": "Có bản cập nhật",
"website": "Website",
"workflows": "Quy trình",
"workspace": "Không gian làm việc",
"wsEndpoint": "WebSocket"
}