All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
AI Code Review: Support for OpenAI, Anthropic (Claude), Ollama, Google Gemini, and Azure OpenAI
-
File Context: Fetch full file content for better AI review context
-
Chunked Review: Automatically split large MRs/PRs into batches
-
Smart Filtering: Auto-skip config files, lock files, and generated files
-
Multi-Platform Webhooks: Unified webhook for GitHub, GitLab, and Bitbucket
-
Real-time Updates: SSE-powered live status updates
-
Dashboard: Visual statistics and metrics
-
Review History: Track all code reviews with detailed logs
-
Project Management: Manage multiple repositories
-
Member Analysis: GitHub-style contribution heatmap and statistics
-
LLM Configuration: Configure multiple AI models
-
Prompt Templates: System and custom prompt templates
-
IM Notifications: DingTalk, Feishu, WeCom, Slack, Discord, MS Teams, Telegram
-
Daily Reports: Automated daily code review summary with AI analysis
-
Git Credentials: Auto-create projects from webhooks
-
System Logging: Comprehensive logging for all events
-
Authentication: Local and LDAP authentication
-
Role-based Access Control: Admin and User roles
-
Multi-Database Support: SQLite, MySQL, PostgreSQL
-
Async Task Queue: Optional Redis-based async processing with SSE notifications
-
Sync Review API: Synchronous review endpoint for Git pre-receive hooks
-
Internationalization: English and Chinese support
-
Responsive Design: Mobile-friendly interface
-
Dark Mode: Light and dark theme toggle
-
Global Search: Cross-project search for reviews and projects from the header
-
Multi-Language Review Prompts: Auto-detect programming language from diffs and inject language-specific review guidelines (12+ languages)
-
Batch Operations: Batch retry and batch delete for review logs
-
SSE Notification Bell: Real-time notification bell with unread badge and live review events
-
Reports API: Weekly/monthly report with period comparison, daily trends, and author rankings
-
Issue Tracker Integration: Auto-create Jira, Linear, GitHub Issues, or GitLab Issues when review score is below threshold; now wired into review flow with per-tracker threshold and test connection support
-
Auto-Fix PR: AI-powered code fix generation — automatically creates a fix branch, commits AI-generated patches, and opens a PR (GitHub) or MR (GitLab) for low-score reviews
-
Rule Engine: Automated CI/CD policies with conditions (score_below, files_changed_above, has_keyword) and actions (block, warn, notify)
-
Prometheus Metrics:
/metricsendpoint for monitoring -
Audit Logging: Automatic audit logging for all admin write operations
-
Review Diff Cache: SHA-256 hash deduplication to skip already-reviewed diffs
-
CSV Export: Export review logs as CSV for offline analysis
-
RBAC Enhancement: Three roles (admin, developer, user) with granular permissions
-
Project Members: Per-project user binding with owner/maintainer/viewer roles
-
SSE Heartbeat: 30-second heartbeat to prevent Nginx 504 timeouts on SSE connections
-
Manual Score Override: Admin can manually override AI review scores with reason tracking and original score preservation
-
Auth Refresh: Refresh-token based session renewal (
POST /api/auth/refresh) with httpOnly cookie storage -
Refresh Token Rotation: Server-side refresh token storage with rotation and revocation support
-
Proactive Session Refresh: Frontend proactively refreshes access token before expiration to reduce 401 interruptions
-
Auth Session Settings UI: Admin settings page now supports configuring access/refresh token expiration
- Unified API Response: All handlers migrated to
pkg/responsepackage with standardized{code, data, message}envelope - Structured Logging: All 16 service files migrated from
log.Printftopkg/logger(zerolog-basedlogger.Infof/Errorf/Warnf) - Models Split: Decomposed monolithic
models.go(290 lines) into 13 individual model files for better maintainability - Main Entry Split: Split
main.gointobootstrap.go(initialization) androutes.go(routing) - Frontend API Layer: Added automatic response envelope unwrapping in axios interceptor
- Notification Refactor: Refactored notification service using Strategy Pattern with
NotificationAdapterinterface, reducing ~600 lines to ~90 lines + 8 platform adapters - DB Query Optimization: Consolidated 9 separate DB queries in daily report stats collection into a single aggregate SQL query
- Regex Pre-compilation: Moved regex patterns in
ai.goandfile_context.goto package-level pre-compiled variables - Function Extraction Dedup: Extracted shared
matchBoundariesToRangeshelper to eliminate ~80 lines of duplicated code across 4 language extractors - HTTP Timeout: Added 10-second timeout to notification HTTP client to prevent goroutine leaks
- Dockerfile Hardening: Upgraded to Node 22 & Alpine 3.21, added non-root user, added
-ldflags="-s -w"for ~30% smaller binary - Vite Code Splitting: Added
manualChunksconfiguration to split vendor dependencies (antd, react, recharts, utils) into separate cacheable bundles - Dependency Upgrades: Updated
anthropic-sdk-go(v1.19→v1.26),genai(v1.43→v1.47),ollama(v0.15→v0.17),asynq(v0.25→v0.26)
- Feedback Score Parsing: Allow 0/100 as a valid score in AI feedback responses
- Unreviewable Status: Set
review_statustounreviewablewhen feedback score is 0 (e.g., diff unavailable)
- JWT-based authentication
- Refresh-token based session renewal with httpOnly cookie
- LDAP integration support
- Webhook secret validation
- Duplicate review prevention for same commit across branches