Commit Graph

31 Commits

Author SHA1 Message Date
lintsinghua a43ebf1793 refactor(agent): update task completion fields and enhance status handling
- Rename 'finished_at' to 'completed_at' in AgentTaskResponse and related functions for clarity.
- Introduce 'RUNNING' status in AgentTaskStatus to better represent task states.
- Update task configuration handling in AgentRunner to improve initialization logic.
- Enhance UI to reflect new 'RUNNING' and 'REPORTING' statuses in the AgentAudit component.
2025-12-11 19:26:47 +08:00
lintsinghua 129112e4d7 refactor(agent): rename metadata fields and enhance task configuration
- Rename 'metadata' columns to 'event_metadata' and 'finding_metadata' for clarity in database schema.
- Update AgentRunner to construct task configuration from task fields, ensuring default values are applied.
- Improve UI to handle potential null values for progress percentage and security score, enhancing user experience.
2025-12-11 19:23:21 +08:00
lintsinghua 9bc114af1f feat(agent): implement Agent audit module with LangGraph integration
- Introduce new Agent audit functionality for autonomous code security analysis and vulnerability verification.
- Add API endpoints for managing Agent tasks and configurations.
- Implement UI components for Agent mode selection and embedding model configuration.
- Enhance the overall architecture with a focus on RAG (Retrieval-Augmented Generation) for improved code semantic search.
- Create a sandbox environment for secure execution of vulnerability tests.
- Update documentation to include details on the new Agent audit features and usage instructions.
2025-12-11 19:09:10 +08:00
lintsinghua ebfe9fa19d style(audit): simplify file selection dialog header layout
- Refactor DialogTitle structure to use flexbox gap instead of nested flex containers
- Consolidate icon, title, and badge into single flex row with improved spacing
- Add ml-auto to badge for automatic right alignment instead of justify-between
- Remove unnecessary nested div wrapper around icon and title text
- Add flex-shrink-0 to icon to prevent scaling in flex layout
- Add pr-8 padding to DialogTitle for better spacing with close button
- Improve code readability and reduce DOM nesting complexity
2025-12-10 19:22:54 +08:00
lintsinghua a995bef28c feat(audit): enhance file selection and exclude patterns UI
- Update demo data to mark running task as completed with audit results
- Add reset to defaults button for exclude patterns in CreateTaskDialog
- Implement quick-add buttons for common exclude patterns (.test., .spec., .min., coverage/, docs/, .md)
- Improve exclude patterns input with better placeholder text and visual feedback
- Refactor FileSelectionDialog with tree-based folder structure for better file organization
- Add file type icons (code files, config files, generic files) for improved visual distinction
- Implement folder expansion/collapse functionality with chevron indicators
- Add file filtering by extension and search capabilities
- Enhance UI with better spacing, visual hierarchy, and user guidance
- Improve accessibility with proper icon imports and component organization
2025-12-10 19:20:31 +08:00
lintsinghua b0861c1690 feat(file-selection): add custom exclude patterns for file filtering
- Add exclude_patterns parameter to get_project_files endpoint for custom file filtering
- Support JSON-formatted exclude patterns array in API requests
- Integrate custom exclude patterns into ZIP and repository file scanning workflows
- Update should_exclude and is_text_file functions to support user-defined patterns
- Pass exclude_patterns through scan configuration in both scan_zip and scan_stored_zip endpoints
- Add ScanRequest model field for exclude_patterns to support pattern specification
- Implement file filtering logic that respects both default and custom exclusion rules
- Add comprehensive unit and E2E tests for file selection and exclusion pattern functionality
- Enable users to customize which files are scanned by specifying glob patterns like ["node_modules/**", "*.log"]
2025-12-10 18:46:33 +08:00
lintsinghua d84f4074f8 feat(audit): auto-select default rule sets and prompt templates
- Auto-select default rule set on dialog load, fallback to first item if no default exists
- Auto-select default prompt template on dialog load, fallback to first item if no default exists
- Remove empty option from rule set and prompt template selectors
- Update placeholder text from "默认规则" to "选择规则集" and "默认提示词" to "选择提示词模板"
- Add visual indicator "(默认)" badge to default items in dropdown lists
- Update label text from "提示词" to "提示词模板" for clarity
- Add ruleSets and promptTemplates to useEffect dependency array to maintain default selections on dialog reopen
- Improve UX by ensuring users always have a valid selection without manual intervention
2025-12-09 23:27:53 +08:00
lintsinghua 11107ea455 feat(analysis): unify code analysis workflow with default template support
- Consolidate instant analysis to always use analyze_code_with_rules method
- Add use_default_template parameter to automatically select database default template when none specified
- Implement fallback logic to use hardcoded defaults only when no database template available
- Auto-select default prompt template on frontend page load
- Add visual labels for language and template selection dropdowns
- Improve template selector UX by removing empty default option and showing default indicator
- Simplifies analysis flow by removing conditional branching between analyze_code and analyze_code_with_rules
2025-12-09 23:13:06 +08:00
lintsinghua 4d71ed546a feat(prompts-scan): integrate prompt templates and audit rules into scan and analysis workflows
- Add user configuration retrieval with LLM API key decryption in prompt testing endpoint
- Support output language parameter in prompt template testing
- Integrate rule sets and prompt templates into ZIP file scanning process
- Add rule_set_id and prompt_template_id parameters to ScanRequest model
- Implement analyze_code_with_rules method for custom rule-based code analysis
- Add prompt_template_id support to instant analysis endpoint
- Update scan configuration to include rule set and prompt template selection
- Enhance error handling and logging in prompt testing with traceback output
- Extend InstantAnalysisRequest with optional prompt template ID parameter
- Add test code samples utility for prompt template validation
2025-12-09 23:03:08 +08:00
lintsinghua 357b9cc0a7 feat(prompts-rules): add prompt templates and audit rules management
- Add database migration (004) to create prompt_templates, audit_rule_sets, and audit_rules tables with proper indexes
- Create PromptTemplate and AuditRule models with relationships and validation
- Implement prompt template API endpoints for CRUD operations and testing
- Implement audit rules API endpoints for CRUD operations and rule set management
- Add prompt and rules schemas for request/response validation
- Create prompt template initialization service with default system templates
- Integrate LLM service with prompt template system for dynamic prompt selection
- Add frontend pages for PromptManager and AuditRules management
- Add API client utilities for prompts and rules endpoints
- Update API router to include new prompts and rules endpoints
- Update database initialization to seed default templates and rules
- Update sidebar navigation to include new management pages
- Update frontend routes to support new prompt and rules management pages
2025-12-09 21:42:00 +08:00
lintsinghua 14b7c8cccc fix: 修复时间显示问题,使用带时区的UTC时间
- 将所有 datetime.utcnow() 替换为 datetime.now(timezone.utc)
- 修复 completed_at, started_at, updated_at, resolved_at 等时间字段
- 修复 JWT token 过期时间计算
- 修复数据导出和ZIP上传时间戳
- 调整README中项目管理和审计报告图片显示比例
2025-12-09 17:47:34 +08:00
lintsinghua e856ad1a8d chore: rebrand XCodeReviewer to DeepAudit across all files
- Update project name from XCodeReviewer to DeepAudit in CI/CD workflows
- Replace Docker image names and release artifact naming conventions
- Update GitHub repository references in documentation files
- Modify database names and container names in setup instructions
- Update contributor badge and issue tracker links
- Rename frontend logo file from logo_deepaudit.png
- Update environment configuration examples and documentation
- Rebrand all references in CONTRIBUTING.md, DISCLAIMER.md, and README.md
- Update backend configuration and deployment documentation
- Ensure consistent naming across frontend and backend configurations
2025-12-08 21:35:09 +08:00
lintsinghua 07810b309c feat(audit): refactor task creation with file selection and advanced options
- Add FileSelectionDialog component for granular file selection in audit tasks
- Extract task form logic into useTaskForm and useZipFile custom hooks
- Create modular components: BasicConfig, AdvancedOptions, ExcludePatterns, ProjectSelector, ZipFileSection
- Add file listing endpoint GET /projects/{id}/files with branch support
- Add branch listing endpoint GET /projects/{id}/branches for repository projects
- Implement ScanRequest model with file_paths, exclude_patterns, and branch_name fields
- Update scan endpoint to accept selective file scanning and exclude patterns
- Add branch_name and exclude_patterns fields to AuditTask model
- Enhance scanner service with GitHub and GitLab file/branch retrieval functions
- Improve CreateTaskDialog with better UX for repository and ZIP file scanning
- Support per-scan configuration storage in audit tasks
- Refactor repository scan services to handle file selection and branch parameters
2025-12-06 20:47:28 +08:00
lintsinghua f982d6a5e6 feat: 添加演示账户和演示数据,完善项目文档
- 添加演示账户 demo@example.com / demo123
- 创建 6 个演示项目和 15 个审计任务
- 完善 DEPLOYMENT.md、CONFIGURATION.md、LLM_PROVIDERS.md、FAQ.md 文档
- 更新 CONTRIBUTING.md、SECURITY.md、DISCLAIMER.md
- 前端版本号自动从 package.json 读取
- 仪表盘项目概览显示 6 个项目
- 版本号更新为 2.0.0-beta.3
2025-12-05 15:09:39 +08:00
lintsinghua 6fd305eac9 fix: 修复多个问题
- 修复创建ZIP项目时缺少source_type字段的问题
- 修复LiteLLM模型名称被错误解析为effort参数的问题
- 修复登录/注册页面无法正确显示验证错误的问题
- 添加Windows导出PDF需要GTK依赖的说明文档
2025-12-04 16:54:15 +08:00
lintsinghua 3d908ad93e feat: update UI screenshots, add fonts, and improve terminal progress dialog 2025-11-28 22:55:32 +08:00
lintsinghua 9054f0d2c5 feat: v2.0.0-test release
Major changes:
- Backend: Add report generator service with comprehensive analysis
- Backend: Enhanced scan and task endpoints
- Frontend: Refactor instant analysis page and export dialog
- Frontend: Optimize report export service
- Infrastructure: Simplify Dockerfile and update docker-compose
- Docs: Streamline README documentation
- Assets: Add logo with transparent background
2025-11-28 20:34:15 +08:00
lintsinghua c54212a8c9 refactor: 清理IndexedDB相关代码,统一使用后端ZIP存储
- 移除前端废弃的loadZipFile/saveZipFile函数
- ProjectDetail使用scanStoredZipFile替代loadZipFile
- RecycleBin移除手动删除ZIP文件逻辑
- 后端permanently_delete_project自动清理ZIP文件
2025-11-28 18:01:43 +08:00
lintsinghua f640bfbaba feat: 添加敏感信息加密存储功能
- 新增 encryption.py 加密服务,使用 Fernet 对称加密
- API Key、Token 等敏感字段在数据库中加密存储
- 读取时自动解密,兼容未加密的旧数据
- 优化配置保存后自动更新前端状态
2025-11-28 17:51:17 +08:00
lintsinghua bfef3b35a6 feat(projects): add ZIP file upload support and source type tracking
- Add source_type field to projects model to distinguish between repository and ZIP sources
- Implement ZIP file storage service with save, load, delete, and metadata operations
- Add database migration to populate source_type for existing projects
- Create ZIP upload endpoint with file handling and metadata tracking
- Add ZIP download endpoint for project file retrieval
- Implement project ZIP info endpoint to check file status and metadata
- Update project creation to support both repository and ZIP source types
- Add project type constants and utility functions for source type handling
- Update database export/import to include source_type field
- Extend frontend components to support ZIP file uploads in project creation
- Add instant analysis page for direct ZIP file scanning without project creation
- Update .gitignore to exclude uploaded ZIP files and metadata
- Enhance project detail and task detail pages with ZIP file management UI
2025-11-28 17:38:12 +08:00
lintsinghua 7091f891d1 feat(llm): enhance LLM connection testing with improved error handling and adapter instantiation
- Bypass LLMFactory cache during connection tests to ensure fresh API calls with latest configuration
- Directly instantiate native adapters (Baidu, Minimax, Doubao) and LiteLLM adapter based on provider type
- Add comprehensive error handling in LiteLLM adapter with specific exception catching for authentication, rate limiting, and connection errors
- Implement user-friendly error messages for common failure scenarios (invalid API key, authentication failure, timeout, connection issues)
- Add response validation to detect and report empty API responses
- Disable LiteLLM internal caching to guarantee actual API calls during testing
- Update available models list with 2025 latest models across all providers (Gemini, OpenAI, Claude, Qwen, DeepSeek, etc.)
- Improve error message clarity and debugging information in config endpoint
2025-11-28 16:53:01 +08:00
lintsinghua 22c528acf1 refactor(llm): consolidate LLM adapters with LiteLLM unified layer
- Replace individual adapter implementations (OpenAI, Claude, Gemini, DeepSeek, Qwen, Zhipu, Moonshot, Ollama) with unified LiteLLM adapter
- Keep native adapters for providers with special API formats (Baidu, MiniMax, Doubao)
- Update LLM factory to route requests through LiteLLM for supported providers
- Add test-llm endpoint to validate LLM connections with configurable timeout and token limits
- Add get-llm-providers endpoint to retrieve supported providers and their configurations
- Update config.py to ignore extra environment variables (VITE_* frontend variables)
- Refactor Baidu adapter to use new complete() method signature and improve error handling
- Update pyproject.toml dependencies to include litellm package
- Update env.example with new configuration options
- Simplify adapter initialization and reduce code duplication across multiple provider implementations
2025-11-28 16:41:39 +08:00
lintsinghua 1fc0ecd14a refactor(frontend): modernize UI components with retro-futuristic styling
- Replace Card, Alert, and Separator components with retro-styled div elements
- Update DatabaseManager with retro-card styling and border-based design
- Refactor health status display to use styled Badge components instead of text
- Remove unused icon imports (Server, FileText) from DatabaseManager
- Clean up inline comments and unnecessary whitespace throughout components
- Simplify error handling by removing redundant console.error statements
- Update Sidebar, SystemConfig, Account, AdminDashboard, and other pages with consistent retro styling
- Apply uppercase font styling and monospace typography to match retro-futuristic theme
- Consolidate component structure across all pages for visual consistency
- Improve code readability by removing excessive blank lines and comments
2025-11-28 16:16:29 +08:00
lintsinghua 5676211b20 feat(users): add comprehensive user management with search, filtering, and admin controls
- Add paginated user list endpoint with search by email, name, and phone
- Implement role-based and status filtering for user queries
- Add total count to user list response for pagination UI
- Create new Account page component for user profile management
- Add PUT /me endpoint for users to update their own profile information
- Add GET /{user_id} endpoint to retrieve specific user details
- Add PUT /{user_id} endpoint for admin user updates with full control
- Add DELETE /{user_id} endpoint for admin user deletion with self-protection
- Add POST /{user_id}/toggle-status endpoint to enable/disable user accounts
- Implement admin-only access control on user creation and management endpoints
- Add phone field support to user schema and creation flow
- Update user list response schema with pagination metadata
- Improve query validation with min/max constraints on pagination parameters
- Add Chinese localization to user-facing error messages and docstrings
- Update frontend routes to include new Account page
- Update Sidebar navigation to support account management links
- Update Login page styling to match new UI design system
2025-11-28 01:06:01 +08:00
lintsinghua 7aa4ab89cb fix(projects): disable cancel button during file upload and remove duplicate button
- Add `disabled={uploading}` prop to cancel button to prevent interaction during upload
- Remove duplicate button group that was causing redundant UI elements
- Ensure consistent button state management during file upload operations
2025-11-28 00:51:58 +08:00
lintsinghua fafeec803d UI Update 2025-11-28 00:48:30 +08:00
lintsinghua a87259a2ee feat: update UI with new branding, logo, and modern terminal-inspired styling 2025-11-27 22:34:23 +08:00
lintsinghua 53c8c27ee7 feat: Implement retro-futuristic UI design across frontend pages and components. 2025-11-27 21:33:51 +08:00
lintsinghua 7315770a17 feat: add global Tailwind CSS styles and theme variables for light and dark modes. 2025-11-27 18:16:26 +08:00
lintsinghua 7d1925db66 feat: Refactor frontend layout with new sidebar and i18n, update backend LLM adapters, and adjust database models. 2025-11-27 18:01:57 +08:00
lintsinghua 6ce5b3c6c1 refactor: 重构项目结构,将前端和后端代码分离到独立目录
- 将前端代码移动到 frontend/ 目录
- 将后端代码移动到 backend/ 目录
- 更新 .gitignore 以包含 Python 和前端构建产物
- 修复 LLM JSON 解析问题,增强错误处理
- 修复前端配置默认值,改为从后端获取
- 删除 AdminDashboard 中的数据库信息和统计卡片
- 完善系统配置管理,支持从后端获取默认配置
2025-11-26 21:11:12 +08:00