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:
catlog22
2026-02-01 17:45:38 +08:00
parent 8dc115a894
commit d46406df4a
79 changed files with 11819 additions and 2455 deletions

View File

@@ -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"

View 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"
}
}
}

View File

@@ -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'),

View File

@@ -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",

View File

@@ -16,6 +16,7 @@
"prompts": "Prompt History",
"settings": "Settings",
"mcp": "MCP Servers",
"codexlens": "CodexLens",
"endpoints": "CLI Endpoints",
"installations": "Installations",
"help": "Help",

View File

@@ -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",

View File

@@ -66,6 +66,10 @@
"automation": "自动化"
},
"templates": {
"ccw-status-tracker": {
"name": "CCW 状态追踪器",
"description": "解析 CCW status.json 并显示当前/下一个命令"
},
"ccw-notify": {
"name": "CCW 面板通知",
"description": "当文件被写入时向 CCW 面板发送通知"

View File

@@ -0,0 +1,178 @@
{
"title": "CodexLens",
"description": "语义代码搜索引擎",
"bootstrap": "引导安装",
"bootstrapping": "安装中...",
"uninstall": "卸载",
"uninstalling": "卸载中...",
"confirmUninstall": "确定要卸载 CodexLens 吗?此操作无法撤销。",
"confirmUninstallTitle": "确认卸载",
"notInstalled": "CodexLens 尚未安装",
"comingSoon": "即将推出",
"tabs": {
"overview": "概览",
"settings": "设置",
"models": "模型",
"advanced": "高级"
},
"overview": {
"status": {
"installation": "安装状态",
"ready": "就绪",
"notReady": "未就绪",
"version": "版本",
"indexPath": "索引路径",
"indexCount": "索引数量"
},
"notInstalled": {
"title": "CodexLens 未安装",
"message": "请先安装 CodexLens 以使用语义代码搜索功能。"
},
"actions": {
"title": "快速操作",
"ftsFull": "FTS 全量",
"ftsFullDesc": "重建全文索引",
"ftsIncremental": "FTS 增量",
"ftsIncrementalDesc": "增量更新全文索引",
"vectorFull": "向量全量",
"vectorFullDesc": "重建向量索引",
"vectorIncremental": "向量增量",
"vectorIncrementalDesc": "增量更新向量索引"
},
"venv": {
"title": "Python 虚拟环境详情",
"pythonVersion": "Python 版本",
"venvPath": "虚拟环境路径",
"lastCheck": "最后检查时间"
}
},
"settings": {
"currentCount": "当前索引数量",
"currentWorkers": "当前工作线程",
"currentBatchSize": "当前批次大小",
"configTitle": "基本配置",
"indexDir": {
"label": "索引目录",
"placeholder": "~/.codexlens/indexes",
"hint": "存储代码索引的目录路径"
},
"maxWorkers": {
"label": "最大工作线程",
"hint": "API 并发处理线程数 (1-32)"
},
"batchSize": {
"label": "批次大小",
"hint": "每次批量处理的文件数量 (1-64)"
},
"validation": {
"indexDirRequired": "索引目录不能为空",
"maxWorkersRange": "工作线程数必须在 1-32 之间",
"batchSizeRange": "批次大小必须在 1-64 之间"
},
"save": "保存",
"saving": "保存中...",
"reset": "重置",
"saveSuccess": "配置已保存",
"saveFailed": "保存失败",
"configUpdated": "配置更新成功",
"saveError": "保存配置时出错",
"unknownError": "发生未知错误"
},
"gpu": {
"title": "GPU 设置",
"status": "GPU 状态",
"enabled": "已启用",
"available": "可用",
"unavailable": "不可用",
"supported": "您的系统支持 GPU 加速",
"notSupported": "您的系统不支持 GPU 加速",
"detect": "检测",
"detectSuccess": "GPU 检测完成",
"detectFailed": "GPU 检测失败",
"detectComplete": "检测到 {count} 个 GPU 设备",
"detectError": "检测 GPU 时出错",
"select": "选择",
"selected": "已选择",
"active": "当前",
"selectSuccess": "GPU 已选择",
"selectFailed": "GPU 选择失败",
"gpuSelected": "GPU 设备已启用",
"selectError": "选择 GPU 时出错",
"reset": "重置",
"resetSuccess": "GPU 已重置",
"resetFailed": "GPU 重置失败",
"gpuReset": "GPU 已禁用,将使用 CPU",
"resetError": "重置 GPU 时出错",
"unknownError": "发生未知错误",
"noDevices": "未检测到 GPU 设备",
"notAvailable": "GPU 功能不可用",
"unknownDevice": "未知设备",
"type": "类型",
"driver": "驱动版本",
"memory": "显存"
},
"advanced": {
"warningTitle": "敏感操作警告",
"warningMessage": "修改环境变量可能影响 CodexLens 的正常运行。请确保您了解每个变量的作用。",
"currentVars": "当前环境变量",
"settingsVars": "设置变量",
"customVars": "自定义变量",
"envEditor": "环境变量编辑器",
"envFile": "文件",
"envContent": "环境变量内容",
"envPlaceholder": "# 注释行以 # 开头\nKEY=value\nANOTHER_KEY=\"another value\"",
"envHint": "每行一个变量格式KEY=value。注释行以 # 开头",
"save": "保存",
"saving": "保存中...",
"reset": "重置",
"saveSuccess": "环境变量已保存",
"saveFailed": "保存失败",
"envUpdated": "环境变量更新成功,重启服务后生效",
"saveError": "保存环境变量时出错",
"unknownError": "发生未知错误",
"validation": {
"invalidKeys": "无效的变量名: {keys}"
},
"helpTitle": "格式说明",
"helpComment": "注释行以 # 开头",
"helpFormat": "变量格式KEY=value",
"helpQuotes": "包含空格的值建议使用引号",
"helpRestart": "修改后需要重启服务才能生效"
},
"models": {
"title": "模型管理",
"searchPlaceholder": "搜索模型...",
"downloading": "下载中...",
"status": {
"downloaded": "已下载",
"available": "可用"
},
"types": {
"embedding": "嵌入模型",
"reranker": "重排序模型"
},
"filters": {
"label": "筛选",
"all": "全部"
},
"actions": {
"download": "下载",
"delete": "删除",
"cancel": "取消"
},
"custom": {
"title": "自定义模型",
"placeholder": "HuggingFace 模型名称 (如: BAAI/bge-small-zh-v1.5)",
"description": "从 HuggingFace 下载自定义模型。请确保模型名称正确。"
},
"deleteConfirm": "确定要删除模型 {modelName} 吗?",
"notInstalled": {
"title": "CodexLens 未安装",
"description": "请先安装 CodexLens 以使用模型管理功能。"
},
"empty": {
"title": "没有找到模型",
"description": "尝试调整搜索或筛选条件"
}
}
}

View File

@@ -36,7 +36,10 @@
"submit": "提交",
"reset": "重置",
"resetDesc": "将所有用户偏好重置为默认值。此操作无法撤销。",
"saving": "Saving...",
"saving": "保存中...",
"deleting": "删除中...",
"merging": "合并中...",
"splitting": "拆分中...",
"resetConfirm": "确定要将所有设置重置为默认值吗?",
"resetToDefaults": "重置为默认值",
"enable": "启用",
@@ -51,7 +54,8 @@
"clearAll": "清除全部",
"select": "选择",
"selectAll": "全选",
"deselectAll": "取消全选"
"deselectAll": "取消全选",
"openMenu": "打开菜单"
},
"status": {
"active": "活跃",

View File

@@ -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'),

View File

@@ -61,29 +61,130 @@
"updatedAt": "更新时间",
"solutions": "{count, plural, one {解决方案} other {解决方案}}"
},
"detail": {
"title": "问题详情",
"tabs": {
"overview": "概览",
"solutions": "解决方案",
"history": "历史",
"json": "JSON"
},
"overview": {
"title": "标题",
"status": "状态",
"priority": "优先级",
"createdAt": "创建时间",
"updatedAt": "更新时间",
"context": "上下文",
"labels": "标签",
"assignee": "受理人"
},
"solutions": {
"title": "解决方案",
"empty": "暂无解决方案",
"addSolution": "添加解决方案",
"boundSolution": "已绑定解决方案"
},
"history": {
"title": "历史记录",
"empty": "暂无历史记录"
}
},
"queue": {
"title": "队列",
"pageTitle": "问题队列",
"description": "管理问题执行队列和执行组",
"status": {
"pending": "待处理",
"ready": "就绪",
"executing": "执行中",
"completed": "已完成",
"failed": "失败",
"blocked": "已阻塞",
"active": "活动",
"inactive": "非活动"
},
"stats": {
"totalItems": "总项目",
"groups": "执行组",
"tasks": "任务",
"solutions": "解决方案"
"solutions": "解决方案",
"items": "项目",
"executionGroups": "执行组"
},
"actions": {
"activate": "激活",
"deactivate": "停用",
"delete": "删除",
"merge": "合并",
"split": "拆分",
"confirmDelete": "确定要删除此队列吗?"
},
"executionGroup": "执行组",
"executionGroups": "执行组",
"parallelGroup": "并行组",
"sequentialGroup": "顺序组",
"items": "项目",
"itemCount": "{count} 项",
"groups": "组",
"parallel": "并行",
"sequential": "顺序",
"emptyState": "无队列数据",
"empty": "无数据",
"conflicts": "队列中检测到冲突",
"noQueueData": "无队列数据"
"noQueueData": "无队列数据",
"emptyState": {
"title": "暂无队列",
"description": "当前没有可用的执行队列"
},
"error": {
"title": "加载失败",
"message": "无法加载队列数据,请稍后重试"
},
"conflicts": {
"title": "队列冲突",
"description": "个冲突"
},
"deleteDialog": {
"title": "删除队列",
"description": "确定要删除此队列吗?此操作无法撤销。"
},
"mergeDialog": {
"title": "合并队列",
"targetQueueLabel": "目标队列ID",
"targetQueuePlaceholder": "输入要合并到的队列ID"
},
"splitDialog": {
"title": "拆分队列",
"selected": "已选择 {count}/{total} 项",
"selectAll": "全选",
"clearAll": "清空",
"noSelection": "请选择要拆分的项目",
"cannotSplitAll": "不能拆分所有项目,源队列至少需保留一项"
}
},
"solution": {
"issue": "问题",
"solution": "解决方案",
"shortIssue": "问题",
"shortSolution": "方案",
"tabs": {
"overview": "概览",
"tasks": "任务",
"json": "JSON"
},
"overview": {
"executionInfo": "执行信息",
"executionOrder": "执行顺序",
"semanticPriority": "语义优先级",
"group": "执行组",
"taskCount": "任务数量",
"dependencies": "依赖项",
"filesTouched": "涉及文件"
},
"tasks": {
"comingSoon": "任务列表即将推出"
}
},
"discovery": {
"title": "发现",
@@ -97,6 +198,23 @@
"noSessions": "未发现会话",
"noSessionsDescription": "启动新的问题发现会话以开始",
"findingsDetail": "发现详情",
"selectSession": "选择会话以查看发现",
"sessionId": "会话ID",
"name": "名称",
"status": "状态",
"createdAt": "创建时间",
"completedAt": "完成时间",
"progress": "进度",
"findingsCount": "发现数量",
"export": "导出JSON",
"exportSelected": "导出选中的 {count} 项",
"exporting": "导出中...",
"exportAsIssues": "导出为问题",
"severityBreakdown": "严重程度分布",
"typeBreakdown": "类型分布",
"tabFindings": "发现",
"tabProgress": "进度",
"tabInfo": "会话信息",
"stats": {
"totalSessions": "总会话数",
"completed": "已完成",
@@ -124,13 +242,37 @@
"critical": "严重",
"high": "高",
"medium": "中",
"low": "低"
"low": "低",
"unknown": "未知"
},
"type": {
"all": "全部类型"
},
"exportedStatus": {
"all": "全部导出状态",
"exported": "已导出",
"notExported": "未导出"
},
"issueStatus": {
"all": "全部问题状态",
"hasIssue": "已关联问题",
"noIssue": "未关联问题"
},
"noFindings": "未发现结果",
"export": "导出"
"noFindingsDescription": "没有找到匹配的发现结果",
"searchPlaceholder": "搜索发现...",
"filterBySeverity": "按严重程度筛选",
"filterByType": "按类型筛选",
"filterByExported": "按导出状态筛选",
"filterByIssue": "按关联问题筛选",
"allSeverities": "全部严重程度",
"allTypes": "全部类型",
"showingCount": "显示 {count} 条发现",
"exported": "已导出",
"hasIssue": "已关联",
"export": "导出",
"selectAll": "全选",
"deselectAll": "取消全选"
},
"tabs": {
"findings": "发现",

View File

@@ -16,6 +16,7 @@
"prompts": "提示历史",
"settings": "设置",
"mcp": "MCP 服务器",
"codexlens": "CodexLens",
"endpoints": "CLI 端点",
"installations": "安装",
"help": "帮助",

View File

@@ -6,13 +6,25 @@
"tabs": {
"tasks": "任务",
"context": "上下文",
"summary": "摘要"
"summary": "摘要",
"implPlan": "IMPL 计划",
"conflict": "冲突",
"review": "审查"
},
"tasks": {
"completed": "已完成",
"inProgress": "进行中",
"pending": "待处理",
"blocked": "已阻塞",
"quickActions": {
"markAllPending": "全部待处理",
"markAllInProgress": "全部进行中",
"markAllCompleted": "全部已完成"
},
"statusUpdate": {
"success": "任务状态更新成功",
"error": "更新任务状态失败"
},
"status": {
"pending": "待处理",
"inProgress": "进行中",
@@ -36,6 +48,59 @@
"empty": {
"title": "暂无上下文",
"message": "该会话暂无上下文信息。"
},
"explorations": {
"title": "探索结果",
"angles": "个角度",
"projectStructure": "项目结构",
"relevantFiles": "相关文件",
"patterns": "模式",
"dependencies": "依赖关系",
"integrationPoints": "集成点",
"testing": "测试"
},
"categories": {
"documentation": "文档",
"sourceCode": "源代码",
"tests": "测试"
},
"assets": {
"title": "资源",
"noData": "未找到资源",
"scope": "范围",
"contains": "包含"
},
"dependencies": {
"title": "依赖",
"internal": "内部依赖",
"external": "外部依赖",
"from": "来源",
"to": "目标",
"type": "类型"
},
"testContext": {
"title": "测试上下文",
"tests": "个测试",
"existingTests": "个现有测试",
"markers": "个标记",
"coverage": "覆盖率配置",
"backend": "后端",
"frontend": "前端",
"framework": "框架"
},
"conflictDetection": {
"title": "冲突检测",
"riskLevel": {
"low": "低风险",
"medium": "中等风险",
"high": "高风险",
"critical": "严重风险"
},
"mitigation": "缓解策略",
"riskFactors": "风险因素",
"testGaps": "测试缺失",
"existingImplementations": "现有实现",
"affectedModules": "受影响模块"
}
},
"summary": {
@@ -45,6 +110,50 @@
"message": "该会话暂无摘要。"
}
},
"implPlan": {
"title": "实现计划",
"empty": {
"title": "暂无 IMPL 计划",
"message": "该会话暂无实现计划。"
},
"viewFull": "查看完整计划({count} 行)"
},
"conflict": {
"title": "冲突解决",
"comingSoon": "冲突解决(即将推出)",
"comingSoonMessage": "此标签页将显示冲突解决决策和用户选择。",
"empty": {
"title": "暂无冲突解决数据",
"message": "该会话暂无冲突解决信息。"
},
"resolvedAt": "已解决",
"userDecisions": "用户决策",
"description": "描述",
"implications": "影响",
"resolvedConflicts": "已解决冲突",
"strategy": "策略"
},
"review": {
"title": "代码审查",
"comingSoon": "代码审查(即将推出)",
"comingSoonMessage": "此标签页将显示审查结果和建议。",
"empty": {
"title": "暂无审查数据",
"message": "该会话暂无审查信息。"
},
"noFindings": {
"title": "未发现审查结果",
"message": "没有匹配当前严重程度筛选器的审查结果。"
},
"filterBySeverity": "按严重程度筛选",
"severity": {
"all": "全部严重程度",
"critical": "严重",
"high": "高",
"medium": "中",
"low": "低"
}
},
"info": {
"created": "创建时间",
"updated": "更新时间",