mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-28 09:23:08 +08:00
feat: Add CodexLens Manager Page with tabbed interface for managing CodexLens features
feat: Implement ConflictTab component to display conflict resolution decisions in session detail feat: Create ImplPlanTab component to show implementation plan with modal viewer in session detail feat: Develop ReviewTab component to display review findings by dimension in session detail test: Add end-to-end tests for CodexLens Manager functionality including navigation, tab switching, and settings validation
This commit is contained in:
@@ -66,6 +66,10 @@
|
||||
"automation": "Automation"
|
||||
},
|
||||
"templates": {
|
||||
"ccw-status-tracker": {
|
||||
"name": "CCW Status Tracker",
|
||||
"description": "Parse CCW status.json and display current/next command"
|
||||
},
|
||||
"ccw-notify": {
|
||||
"name": "CCW Dashboard Notify",
|
||||
"description": "Send notifications to CCW dashboard when files are written"
|
||||
|
||||
178
ccw/frontend/src/locales/en/codexlens.json
Normal file
178
ccw/frontend/src/locales/en/codexlens.json
Normal file
@@ -0,0 +1,178 @@
|
||||
{
|
||||
"title": "CodexLens",
|
||||
"description": "Semantic code search engine",
|
||||
"bootstrap": "Bootstrap",
|
||||
"bootstrapping": "Bootstrapping...",
|
||||
"uninstall": "Uninstall",
|
||||
"uninstalling": "Uninstalling...",
|
||||
"confirmUninstall": "Are you sure you want to uninstall CodexLens? This action cannot be undone.",
|
||||
"confirmUninstallTitle": "Confirm Uninstall",
|
||||
"notInstalled": "CodexLens is not installed",
|
||||
"comingSoon": "Coming Soon",
|
||||
"tabs": {
|
||||
"overview": "Overview",
|
||||
"settings": "Settings",
|
||||
"models": "Models",
|
||||
"advanced": "Advanced"
|
||||
},
|
||||
"overview": {
|
||||
"status": {
|
||||
"installation": "Installation Status",
|
||||
"ready": "Ready",
|
||||
"notReady": "Not Ready",
|
||||
"version": "Version",
|
||||
"indexPath": "Index Path",
|
||||
"indexCount": "Index Count"
|
||||
},
|
||||
"notInstalled": {
|
||||
"title": "CodexLens Not Installed",
|
||||
"message": "Please install CodexLens to use semantic code search features."
|
||||
},
|
||||
"actions": {
|
||||
"title": "Quick Actions",
|
||||
"ftsFull": "FTS Full",
|
||||
"ftsFullDesc": "Rebuild full-text index",
|
||||
"ftsIncremental": "FTS Incremental",
|
||||
"ftsIncrementalDesc": "Incremental update full-text index",
|
||||
"vectorFull": "Vector Full",
|
||||
"vectorFullDesc": "Rebuild vector index",
|
||||
"vectorIncremental": "Vector Incremental",
|
||||
"vectorIncrementalDesc": "Incremental update vector index"
|
||||
},
|
||||
"venv": {
|
||||
"title": "Python Virtual Environment Details",
|
||||
"pythonVersion": "Python Version",
|
||||
"venvPath": "Virtual Environment Path",
|
||||
"lastCheck": "Last Check Time"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"currentCount": "Current Index Count",
|
||||
"currentWorkers": "Current Workers",
|
||||
"currentBatchSize": "Current Batch Size",
|
||||
"configTitle": "Basic Configuration",
|
||||
"indexDir": {
|
||||
"label": "Index Directory",
|
||||
"placeholder": "~/.codexlens/indexes",
|
||||
"hint": "Directory path for storing code indexes"
|
||||
},
|
||||
"maxWorkers": {
|
||||
"label": "Max Workers",
|
||||
"hint": "API concurrent processing threads (1-32)"
|
||||
},
|
||||
"batchSize": {
|
||||
"label": "Batch Size",
|
||||
"hint": "Number of files processed per batch (1-64)"
|
||||
},
|
||||
"validation": {
|
||||
"indexDirRequired": "Index directory is required",
|
||||
"maxWorkersRange": "Workers must be between 1 and 32",
|
||||
"batchSizeRange": "Batch size must be between 1 and 64"
|
||||
},
|
||||
"save": "Save",
|
||||
"saving": "Saving...",
|
||||
"reset": "Reset",
|
||||
"saveSuccess": "Configuration saved",
|
||||
"saveFailed": "Save failed",
|
||||
"configUpdated": "Configuration updated successfully",
|
||||
"saveError": "Error saving configuration",
|
||||
"unknownError": "An unknown error occurred"
|
||||
},
|
||||
"gpu": {
|
||||
"title": "GPU Settings",
|
||||
"status": "GPU Status",
|
||||
"enabled": "Enabled",
|
||||
"available": "Available",
|
||||
"unavailable": "Unavailable",
|
||||
"supported": "Your system supports GPU acceleration",
|
||||
"notSupported": "Your system does not support GPU acceleration",
|
||||
"detect": "Detect",
|
||||
"detectSuccess": "GPU detection completed",
|
||||
"detectFailed": "GPU detection failed",
|
||||
"detectComplete": "Detected {count} GPU devices",
|
||||
"detectError": "Error detecting GPU",
|
||||
"select": "Select",
|
||||
"selected": "Selected",
|
||||
"active": "Current",
|
||||
"selectSuccess": "GPU selected",
|
||||
"selectFailed": "GPU selection failed",
|
||||
"gpuSelected": "GPU device enabled",
|
||||
"selectError": "Error selecting GPU",
|
||||
"reset": "Reset",
|
||||
"resetSuccess": "GPU reset",
|
||||
"resetFailed": "GPU reset failed",
|
||||
"gpuReset": "GPU disabled, will use CPU",
|
||||
"resetError": "Error resetting GPU",
|
||||
"unknownError": "An unknown error occurred",
|
||||
"noDevices": "No GPU devices detected",
|
||||
"notAvailable": "GPU functionality not available",
|
||||
"unknownDevice": "Unknown device",
|
||||
"type": "Type",
|
||||
"driver": "Driver Version",
|
||||
"memory": "Memory"
|
||||
},
|
||||
"advanced": {
|
||||
"warningTitle": "Sensitive Operations Warning",
|
||||
"warningMessage": "Modifying environment variables may affect CodexLens operation. Ensure you understand each variable's purpose.",
|
||||
"currentVars": "Current Environment Variables",
|
||||
"settingsVars": "Settings Variables",
|
||||
"customVars": "Custom Variables",
|
||||
"envEditor": "Environment Variable Editor",
|
||||
"envFile": "File",
|
||||
"envContent": "Environment Variable Content",
|
||||
"envPlaceholder": "# Comment lines start with #\nKEY=value\nANOTHER_KEY=\"another value\"",
|
||||
"envHint": "One variable per line, format: KEY=value. Comment lines start with #",
|
||||
"save": "Save",
|
||||
"saving": "Saving...",
|
||||
"reset": "Reset",
|
||||
"saveSuccess": "Environment variables saved",
|
||||
"saveFailed": "Save failed",
|
||||
"envUpdated": "Environment variables updated, restart service to take effect",
|
||||
"saveError": "Error saving environment variables",
|
||||
"unknownError": "An unknown error occurred",
|
||||
"validation": {
|
||||
"invalidKeys": "Invalid variable names: {keys}"
|
||||
},
|
||||
"helpTitle": "Format Help",
|
||||
"helpComment": "Comment lines start with #",
|
||||
"helpFormat": "Variable format: KEY=value",
|
||||
"helpQuotes": "Values with spaces should use quotes",
|
||||
"helpRestart": "Restart service after changes to take effect"
|
||||
},
|
||||
"models": {
|
||||
"title": "Model Management",
|
||||
"searchPlaceholder": "Search models...",
|
||||
"downloading": "Downloading...",
|
||||
"status": {
|
||||
"downloaded": "Downloaded",
|
||||
"available": "Available"
|
||||
},
|
||||
"types": {
|
||||
"embedding": "Embedding Models",
|
||||
"reranker": "Reranker Models"
|
||||
},
|
||||
"filters": {
|
||||
"label": "Filter",
|
||||
"all": "All"
|
||||
},
|
||||
"actions": {
|
||||
"download": "Download",
|
||||
"delete": "Delete",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"custom": {
|
||||
"title": "Custom Model",
|
||||
"placeholder": "HuggingFace model name (e.g., BAAI/bge-small-zh-v1.5)",
|
||||
"description": "Download custom models from HuggingFace. Ensure the model name is correct."
|
||||
},
|
||||
"deleteConfirm": "Are you sure you want to delete model {modelName}?",
|
||||
"notInstalled": {
|
||||
"title": "CodexLens Not Installed",
|
||||
"description": "Please install CodexLens to use model management features."
|
||||
},
|
||||
"empty": {
|
||||
"title": "No models found",
|
||||
"description": "Try adjusting your search or filter criteria"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,7 @@ import skills from './skills.json';
|
||||
import cliManager from './cli-manager.json';
|
||||
import cliMonitor from './cli-monitor.json';
|
||||
import mcpManager from './mcp-manager.json';
|
||||
import codexlens from './codexlens.json';
|
||||
import theme from './theme.json';
|
||||
import executionMonitor from './execution-monitor.json';
|
||||
import cliHooks from './cli-hooks.json';
|
||||
@@ -77,9 +78,10 @@ export default {
|
||||
...flattenMessages(reviewSession, 'reviewSession'),
|
||||
...flattenMessages(sessionDetail, 'sessionDetail'),
|
||||
...flattenMessages(skills, 'skills'),
|
||||
...flattenMessages(cliManager), // No prefix - has cliEndpoints, cliInstallations, etc. as top-level keys
|
||||
...flattenMessages(cliManager, 'cli-manager'),
|
||||
...flattenMessages(cliMonitor, 'cliMonitor'),
|
||||
...flattenMessages(mcpManager, 'mcp'),
|
||||
...flattenMessages(codexlens, 'codexlens'),
|
||||
...flattenMessages(theme, 'theme'),
|
||||
...flattenMessages(cliHooks, 'cliHooks'),
|
||||
...flattenMessages(executionMonitor, 'executionMonitor'),
|
||||
|
||||
@@ -97,6 +97,23 @@
|
||||
"noSessions": "No sessions found",
|
||||
"noSessionsDescription": "Start a new discovery session to begin",
|
||||
"findingsDetail": "Findings Detail",
|
||||
"selectSession": "Select a session to view findings",
|
||||
"sessionId": "Session ID",
|
||||
"name": "Name",
|
||||
"status": "Status",
|
||||
"createdAt": "Created At",
|
||||
"completedAt": "Completed At",
|
||||
"progress": "Progress",
|
||||
"findingsCount": "Findings Count",
|
||||
"export": "Export JSON",
|
||||
"exportSelected": "Export Selected ({count})",
|
||||
"exporting": "Exporting...",
|
||||
"exportAsIssues": "Export as Issues",
|
||||
"severityBreakdown": "Severity Breakdown",
|
||||
"typeBreakdown": "Type Breakdown",
|
||||
"tabFindings": "Findings",
|
||||
"tabProgress": "Progress",
|
||||
"tabInfo": "Session Info",
|
||||
"stats": {
|
||||
"totalSessions": "Total Sessions",
|
||||
"completed": "Completed",
|
||||
@@ -129,8 +146,31 @@
|
||||
"type": {
|
||||
"all": "All Types"
|
||||
},
|
||||
"exportedStatus": {
|
||||
"all": "All Export Status",
|
||||
"exported": "Exported",
|
||||
"notExported": "Not Exported"
|
||||
},
|
||||
"issueStatus": {
|
||||
"all": "All Issue Status",
|
||||
"hasIssue": "Has Issue",
|
||||
"noIssue": "No Issue"
|
||||
},
|
||||
"noFindings": "No findings found",
|
||||
"export": "Export"
|
||||
"noFindingsDescription": "No matching findings found",
|
||||
"searchPlaceholder": "Search findings...",
|
||||
"filterBySeverity": "Filter by severity",
|
||||
"filterByType": "Filter by type",
|
||||
"filterByExported": "Filter by export status",
|
||||
"filterByIssue": "Filter by issue link",
|
||||
"allSeverities": "All severities",
|
||||
"allTypes": "All types",
|
||||
"showingCount": "Showing {count} findings",
|
||||
"exported": "Exported",
|
||||
"hasIssue": "Linked",
|
||||
"export": "Export",
|
||||
"selectAll": "Select All",
|
||||
"deselectAll": "Deselect All"
|
||||
},
|
||||
"tabs": {
|
||||
"findings": "Findings",
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
"prompts": "Prompt History",
|
||||
"settings": "Settings",
|
||||
"mcp": "MCP Servers",
|
||||
"codexlens": "CodexLens",
|
||||
"endpoints": "CLI Endpoints",
|
||||
"installations": "Installations",
|
||||
"help": "Help",
|
||||
|
||||
@@ -6,13 +6,25 @@
|
||||
"tabs": {
|
||||
"tasks": "Tasks",
|
||||
"context": "Context",
|
||||
"summary": "Summary"
|
||||
"summary": "Summary",
|
||||
"implPlan": "IMPL Plan",
|
||||
"conflict": "Conflict",
|
||||
"review": "Review"
|
||||
},
|
||||
"tasks": {
|
||||
"completed": "completed",
|
||||
"inProgress": "in progress",
|
||||
"pending": "pending",
|
||||
"blocked": "blocked",
|
||||
"quickActions": {
|
||||
"markAllPending": "All Pending",
|
||||
"markAllInProgress": "All In Progress",
|
||||
"markAllCompleted": "All Completed"
|
||||
},
|
||||
"statusUpdate": {
|
||||
"success": "Task status updated successfully",
|
||||
"error": "Failed to update task status"
|
||||
},
|
||||
"status": {
|
||||
"pending": "Pending",
|
||||
"inProgress": "In Progress",
|
||||
@@ -36,15 +48,114 @@
|
||||
"empty": {
|
||||
"title": "No Context Available",
|
||||
"message": "This session has no context information."
|
||||
},
|
||||
"explorations": {
|
||||
"title": "Explorations",
|
||||
"angles": "angles",
|
||||
"projectStructure": "Project Structure",
|
||||
"relevantFiles": "Relevant Files",
|
||||
"patterns": "Patterns",
|
||||
"dependencies": "Dependencies",
|
||||
"integrationPoints": "Integration Points",
|
||||
"testing": "Testing"
|
||||
},
|
||||
"categories": {
|
||||
"documentation": "Documentation",
|
||||
"sourceCode": "Source Code",
|
||||
"tests": "Tests"
|
||||
},
|
||||
"assets": {
|
||||
"title": "Assets",
|
||||
"noData": "No assets found",
|
||||
"scope": "Scope",
|
||||
"contains": "Contains"
|
||||
},
|
||||
"dependencies": {
|
||||
"title": "Dependencies",
|
||||
"internal": "Internal",
|
||||
"external": "External",
|
||||
"from": "From",
|
||||
"to": "To",
|
||||
"type": "Type"
|
||||
},
|
||||
"testContext": {
|
||||
"title": "Test Context",
|
||||
"tests": "tests",
|
||||
"existingTests": "existing tests",
|
||||
"markers": "markers",
|
||||
"coverage": "Coverage Configuration",
|
||||
"backend": "Backend",
|
||||
"frontend": "Frontend",
|
||||
"framework": "Framework"
|
||||
},
|
||||
"conflictDetection": {
|
||||
"title": "Conflict Detection",
|
||||
"riskLevel": {
|
||||
"low": "Low Risk",
|
||||
"medium": "Medium Risk",
|
||||
"high": "High Risk",
|
||||
"critical": "Critical Risk"
|
||||
},
|
||||
"mitigation": "Mitigation Strategy",
|
||||
"riskFactors": "Risk Factors",
|
||||
"testGaps": "Test Gaps",
|
||||
"existingImplementations": "Existing Implementations",
|
||||
"affectedModules": "Affected Modules"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"default": "Summary",
|
||||
"title": "Session Summary",
|
||||
"lines": "lines",
|
||||
"empty": {
|
||||
"title": "No Summary Available",
|
||||
"message": "This session has no summary yet."
|
||||
}
|
||||
},
|
||||
"implPlan": {
|
||||
"title": "Implementation Plan",
|
||||
"empty": {
|
||||
"title": "No IMPL Plan Available",
|
||||
"message": "This session has no implementation plan yet."
|
||||
},
|
||||
"viewFull": "View Full Plan ({count} lines)"
|
||||
},
|
||||
"conflict": {
|
||||
"title": "Conflict Resolution",
|
||||
"comingSoon": "Conflict Resolution (Coming Soon)",
|
||||
"comingSoonMessage": "This tab will display conflict resolution decisions and user choices.",
|
||||
"empty": {
|
||||
"title": "No Conflict Resolution Data",
|
||||
"message": "This session has no conflict resolution information."
|
||||
},
|
||||
"resolvedAt": "Resolved",
|
||||
"userDecisions": "User Decisions",
|
||||
"description": "Description",
|
||||
"implications": "Implications",
|
||||
"resolvedConflicts": "Resolved Conflicts",
|
||||
"strategy": "Strategy"
|
||||
},
|
||||
"review": {
|
||||
"title": "Code Review",
|
||||
"comingSoon": "Code Review (Coming Soon)",
|
||||
"comingSoonMessage": "This tab will display review findings and recommendations.",
|
||||
"empty": {
|
||||
"title": "No Review Data",
|
||||
"message": "This session has no review information."
|
||||
},
|
||||
"noFindings": {
|
||||
"title": "No Findings Found",
|
||||
"message": "No findings match the current severity filter."
|
||||
},
|
||||
"filterBySeverity": "Filter by Severity",
|
||||
"severity": {
|
||||
"all": "All Severities",
|
||||
"critical": "Critical",
|
||||
"high": "High",
|
||||
"medium": "Medium",
|
||||
"low": "Low"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"created": "Created",
|
||||
"updated": "Updated",
|
||||
|
||||
Reference in New Issue
Block a user