mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-01 11:13:25 +08:00
feat: add Terminal Dashboard components and state management
- Implement TerminalTabBar for session tab management with status indicators and alert badges. - Create TerminalWorkbench to combine TerminalTabBar and TerminalInstance for terminal session display. - Add localization support for terminal dashboard in English and Chinese. - Develop TerminalDashboardPage for the main layout of the terminal dashboard with a three-column structure. - Introduce Zustand stores for session management and issue/queue integration, handling session groups, terminal metadata, and alert management. - Create a monitor web worker for off-main-thread output analysis, detecting errors and stalls in terminal sessions. - Define TypeScript types for terminal dashboard state management and integration.
This commit is contained in:
@@ -39,6 +39,7 @@ import workspace from './workspace.json';
|
||||
import help from './help.json';
|
||||
import cliViewer from './cli-viewer.json';
|
||||
import team from './team.json';
|
||||
import terminalDashboard from './terminal-dashboard.json';
|
||||
|
||||
/**
|
||||
* Flattens nested JSON object to dot-separated keys
|
||||
@@ -101,4 +102,5 @@ export default {
|
||||
...flattenMessages(help, 'help'),
|
||||
...flattenMessages(cliViewer, 'cliViewer'),
|
||||
...flattenMessages(team, 'team'),
|
||||
...flattenMessages(terminalDashboard, 'terminalDashboard'),
|
||||
} as Record<string, string>;
|
||||
|
||||
@@ -35,7 +35,8 @@
|
||||
"rules": "Rules",
|
||||
"explorer": "File Explorer",
|
||||
"graph": "Graph Explorer",
|
||||
"teams": "Team Execution"
|
||||
"teams": "Team Execution",
|
||||
"terminalDashboard": "Terminal Dashboard"
|
||||
},
|
||||
"sidebar": {
|
||||
"collapse": "Collapse",
|
||||
|
||||
81
ccw/frontend/src/locales/en/terminal-dashboard.json
Normal file
81
ccw/frontend/src/locales/en/terminal-dashboard.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"page": {
|
||||
"title": "Terminal Dashboard"
|
||||
},
|
||||
"columns": {
|
||||
"sessions": "Sessions",
|
||||
"workflow": "Workflow",
|
||||
"terminal": "Terminal Workbench"
|
||||
},
|
||||
"kpi": {
|
||||
"title": "Dashboard KPI",
|
||||
"activeSessions": "Active Sessions",
|
||||
"queueSize": "Queue Size",
|
||||
"alertCount": "Alerts",
|
||||
"errorCount": "Errors",
|
||||
"idleCount": "Idle"
|
||||
},
|
||||
"inspector": {
|
||||
"title": "Inspector",
|
||||
"noSelection": "Select an item to view details",
|
||||
"associationChain": "Association Chain"
|
||||
},
|
||||
"sessionTree": {
|
||||
"createGroup": "New Group",
|
||||
"groupNamePrompt": "Enter group name",
|
||||
"defaultGroupName": "Untitled Group",
|
||||
"emptyGroup": "No sessions in this group",
|
||||
"noGroups": "No session groups yet",
|
||||
"sessionCount": "{count} sessions",
|
||||
"dragHint": "Drag sessions between groups"
|
||||
},
|
||||
"agentList": {
|
||||
"title": "Agents",
|
||||
"noAgents": "No active agents",
|
||||
"stepLabel": "Step {current}/{total}",
|
||||
"statusRunning": "Running",
|
||||
"statusCompleted": "Completed",
|
||||
"statusFailed": "Failed",
|
||||
"statusPaused": "Paused",
|
||||
"statusPending": "Pending"
|
||||
},
|
||||
"issuePanel": {
|
||||
"title": "Issues",
|
||||
"sendToQueue": "Send to Queue",
|
||||
"noIssues": "No issues found",
|
||||
"noIssuesDesc": "Issues will appear here when discovered",
|
||||
"error": "Failed to load issues"
|
||||
},
|
||||
"queuePanel": {
|
||||
"title": "Queue",
|
||||
"noItems": "Queue is empty",
|
||||
"noItemsDesc": "Send issues to queue to start workflow",
|
||||
"error": "Failed to load queue",
|
||||
"order": "#{order}",
|
||||
"dependsOn": "Depends on: {deps}",
|
||||
"status": {
|
||||
"pending": "Pending",
|
||||
"ready": "Ready",
|
||||
"executing": "Executing",
|
||||
"completed": "Completed",
|
||||
"failed": "Failed",
|
||||
"blocked": "Blocked"
|
||||
}
|
||||
},
|
||||
"tabBar": {
|
||||
"noTabs": "No terminal sessions"
|
||||
},
|
||||
"workbench": {
|
||||
"noTerminal": "No terminal selected",
|
||||
"noTerminalHint": "Select a session from the tab bar or create a new one"
|
||||
},
|
||||
"placeholder": {
|
||||
"sessionTree": "Session groups will appear here",
|
||||
"agentList": "Agent list will appear here",
|
||||
"issuePanel": "Issue panel will appear here",
|
||||
"queuePanel": "Queue panel will appear here",
|
||||
"terminalWorkbench": "Terminal workbench will appear here",
|
||||
"kpiBar": "KPI metrics will appear here",
|
||||
"inspector": "Inspector details will appear here"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user