feat: add issue discovery view for managing discovery sessions and findings

- Implemented main render function for the issue discovery view.
- Added data loading functions to fetch discoveries, details, findings, and progress.
- Created rendering functions for discovery list and detail sections.
- Introduced filtering and searching capabilities for findings.
- Implemented actions for exporting and dismissing findings.
- Added polling mechanism to track discovery progress.
- Included utility functions for HTML escaping and cleanup.
This commit is contained in:
catlog22
2025-12-28 17:21:07 +08:00
parent a2c88ba885
commit 7aa1cda367
28 changed files with 7730 additions and 2 deletions

View File

@@ -1726,7 +1726,62 @@ const i18n = {
// Issue Manager
'nav.issues': 'Issues',
'nav.issueManager': 'Manager',
'nav.issueDiscovery': 'Discovery',
'title.issueManager': 'Issue Manager',
'title.issueDiscovery': 'Issue Discovery',
// Issue Discovery
'discovery.title': 'Issue Discovery',
'discovery.description': 'Discover potential issues from multiple perspectives',
'discovery.noSessions': 'No discovery sessions',
'discovery.runHint': 'Run /issue:discover to start discovering issues',
'discovery.sessions': 'Sessions',
'discovery.findings': 'Findings',
'discovery.phase': 'Phase',
'discovery.perspectives': 'Perspectives',
'discovery.progress': 'Progress',
'discovery.total': 'Total',
'discovery.exported': 'Exported',
'discovery.dismissed': 'Dismissed',
'discovery.pending': 'Pending',
'discovery.external': 'External Research',
'discovery.selectAll': 'Select All',
'discovery.deselectAll': 'Deselect All',
'discovery.exportSelected': 'Export Selected',
'discovery.dismissSelected': 'Dismiss Selected',
'discovery.exportAsIssue': 'Export as Issue',
'discovery.dismiss': 'Dismiss',
'discovery.keep': 'Keep',
'discovery.priority.critical': 'Critical',
'discovery.priority.high': 'High',
'discovery.priority.medium': 'Medium',
'discovery.priority.low': 'Low',
'discovery.perspective.bug': 'Bug',
'discovery.perspective.ux': 'UX',
'discovery.perspective.test': 'Test',
'discovery.perspective.quality': 'Quality',
'discovery.perspective.security': 'Security',
'discovery.perspective.performance': 'Performance',
'discovery.perspective.maintainability': 'Maintainability',
'discovery.perspective.best-practices': 'Best Practices',
'discovery.file': 'File',
'discovery.line': 'Line',
'discovery.confidence': 'Confidence',
'discovery.suggestedIssue': 'Suggested Issue',
'discovery.externalRef': 'External Reference',
'discovery.noFindings': 'No findings in this session',
'discovery.filterPerspective': 'Filter by Perspective',
'discovery.filterPriority': 'Filter by Priority',
'discovery.filterAll': 'All',
'discovery.deleteSession': 'Delete Session',
'discovery.confirmDelete': 'Are you sure you want to delete this discovery session?',
'discovery.deleted': 'Discovery session deleted',
'discovery.exportSuccess': 'Findings exported as issues',
'discovery.dismissSuccess': 'Findings dismissed',
'discovery.backToList': 'Back to Sessions',
'discovery.viewDetails': 'View Details',
'discovery.inProgress': 'In Progress',
'discovery.completed': 'Completed',
// issues.* keys (used by issue-manager.js)
'issues.title': 'Issue Manager',
'issues.description': 'Manage issues, solutions, and execution queue',
@@ -3586,7 +3641,62 @@ const i18n = {
// Issue Manager
'nav.issues': '议题',
'nav.issueManager': '管理器',
'nav.issueDiscovery': '发现',
'title.issueManager': '议题管理器',
'title.issueDiscovery': '议题发现',
// Issue Discovery
'discovery.title': '议题发现',
'discovery.description': '从多个视角发现潜在问题',
'discovery.noSessions': '暂无发现会话',
'discovery.runHint': '运行 /issue:discover 开始发现问题',
'discovery.sessions': '会话',
'discovery.findings': '发现',
'discovery.phase': '阶段',
'discovery.perspectives': '视角',
'discovery.progress': '进度',
'discovery.total': '总计',
'discovery.exported': '已导出',
'discovery.dismissed': '已忽略',
'discovery.pending': '待处理',
'discovery.external': '外部研究',
'discovery.selectAll': '全选',
'discovery.deselectAll': '取消全选',
'discovery.exportSelected': '导出选中',
'discovery.dismissSelected': '忽略选中',
'discovery.exportAsIssue': '导出为议题',
'discovery.dismiss': '忽略',
'discovery.keep': '保留',
'discovery.priority.critical': '紧急',
'discovery.priority.high': '高',
'discovery.priority.medium': '中',
'discovery.priority.low': '低',
'discovery.perspective.bug': 'Bug',
'discovery.perspective.ux': '用户体验',
'discovery.perspective.test': '测试',
'discovery.perspective.quality': '代码质量',
'discovery.perspective.security': '安全',
'discovery.perspective.performance': '性能',
'discovery.perspective.maintainability': '可维护性',
'discovery.perspective.best-practices': '最佳实践',
'discovery.file': '文件',
'discovery.line': '行号',
'discovery.confidence': '置信度',
'discovery.suggestedIssue': '建议议题',
'discovery.externalRef': '外部参考',
'discovery.noFindings': '此会话暂无发现',
'discovery.filterPerspective': '按视角筛选',
'discovery.filterPriority': '按优先级筛选',
'discovery.filterAll': '全部',
'discovery.deleteSession': '删除会话',
'discovery.confirmDelete': '确定要删除此发现会话吗?',
'discovery.deleted': '发现会话已删除',
'discovery.exportSuccess': '发现已导出为议题',
'discovery.dismissSuccess': '发现已忽略',
'discovery.backToList': '返回列表',
'discovery.viewDetails': '查看详情',
'discovery.inProgress': '进行中',
'discovery.completed': '已完成',
// issues.* keys (used by issue-manager.js)
'issues.title': '议题管理器',
'issues.description': '管理议题、解决方案和执行队列',