Releases: rostilos/CodeCrow
1.3.0
What's Changed
- feat: Add IssueCategory support to QualityGateCondition and related DTOs by @rostilos in #78
- 1.2.1-rc by @rostilos in #77
- fix: Improve error handling in WebhookAsyncProcessor and refactor res… by @rostilos in #79
- 1.2.1 rc by @rostilos in #80
- feat: Implement reconnect URL for VCS connections and enhance OAuth s… by @rostilos in #82
- 1.2.1 rc by @rostilos in #83
- feat: Enhance AST metadata extraction for improved code analysis and … by @rostilos in #84
- 1.2.1 rc by @rostilos in #85
- fix: Correctly format metadata output in MultiStageReviewOrchestrator by @rostilos in #86
- Epic/ca 7 pr review process flow by @rostilos in #114
- feat: Enhance ReviewService with concurrency control and timeout hand… by @rostilos in #116
- feat: Implement diff fingerprint caching for pull request analysis by @rostilos in #118
- 1.3.0 rc by @rostilos in #115
Full Changelog: 1.2.0...1.3.0
1.2.0
What's Changed
- Delta indexes by @rostilos in #64
- Unit test suite. 80% coverage for a java-ecosystem libs packages by @rostilos in #67
- Bugfix/branch list pagination and search by @rostilos in #66
- Multi branch indexes by @rostilos in #68
- feat: Enhance OpenRouterEmbedding with debug logging and batch size h… by @rostilos in #69
- feat: Add VCS author to analysis by @rostilos in #70
- feat: Add New Relic observability support with configuration and Dock… by @rostilos in #71
- feat: Prevent duplicate analysis for already processed commits in BranchAnalysisProcessor by @rostilos in #72
- New relic observability implementation + new tools & structure refactoring by @rostilos in #73
- feat: Add production build scripts for New Relic observability by @rostilos in #74
- feat: Implement LLM model synchronization and management services by @rostilos in #75
- feat: Add database migrations for LLM models pricing, workspace owner… by @rostilos in #76
- 1.2.0 rc by @rostilos in #65
Full Changelog: 1.1.0...1.2.0
1.1.0
What's Changed
- [FIX] Rag pipeline memory leak at indexing by @rostilos in #41
- feat: Add INFO severity level to issue severity options across multip… by @rostilos in #53
- Add prompt constants for code review instructions and guidelines by @rostilos in #56
- Chunk based pr review by @rostilos in #58
- feat: Remove unused prompt templates and add method for additional in… by @rostilos in #60
- feat: Update IssueDTO to include new fields for improved issue tracki… by @rostilos in #61
- refactor: Simplify prompt building by removing legacy methods and unu… by @rostilos in #62
- feat: Implement connection pooling in RagClient and add budget valida… by @rostilos in #63
- 1.1.0 rc by @rostilos in #59
Full Changelog: 1.0.0...1.1.0
1.0.0
What's Changed
- feat: Add AST-based code chunking support with new splitter and confi… by @rostilos in #23
- feat: Enhance branch reconciliation by restoring missing diffs from p… by @rostilos in #24
- Enhanced Filtering and Query Capabilities, Issues API improvements by @rostilos in #25
- feat: Add GitLab support with configuration, client, and API actions by @rostilos in #26
- feat: Implement webhook management and VCS connection change functionalyty + bugfix by @rostilos in #27
- 0.2.0 rc by @rostilos in #28
- feat: Enhance webhook setup for REPOSITORY_TOKEN connections with ful… by @rostilos in #30
- feat: Add GitLab support to VcsMcpClientFactory for client creation by @rostilos in #31
- feat: Add GitLab personal/repository token support in VCS connection … by @rostilos in #32
- feat: Implement GitHub and GitLab webhook handlers for pull/merge req… by @rostilos in #33
- incremental RAG updates ( fixes ) by @rostilos in #34
- fix: Ensure proper categorization of files in incremental RAG updates by @rostilos in #35
- fix: Update file loading logic to handle relative paths correctly in … by @rostilos in #36
- fix: Enhance collection existence check to support aliases in Qdrant by @rostilos in #37
- fix: Enhance GitLabReportingService to support inline comments and im… by @rostilos in #38
- fix: Enhance GitLab OAuth handling for repository onboarding and webh… by @rostilos in #39
- changes -> diffs ( gitlab MR diff retrieval API changes ) by @rostilos in #40
- 1.0.0 rc by @rostilos in #29
Incremental Analysis and PR Diff Handling:
- Added support for incremental analysis in
AiAnalysisRequestand its implementation, including new fields and builder methods forAnalysisMode,deltaDiff, and commit hashes. This enables more precise and efficient code analysis workflows. [1] [2] [3] [4] [5] [6] - Improved branch analysis logic to prefer PR diffs over commit diffs when available, ensuring all files from the original PR are analyzed. Added logic to look up PR numbers based on commit hashes and fetch the correct diff accordingly. [1] [2] [3]
Codebase Refactoring and Organization:
- Renamed
clientpackage toaiclientin the analysis engine, updating all relevant exports, opens, and import statements for consistency and clarity. [1] [2] [3] [4] [5] - Refactored VCS info retrieval in
BranchAnalysisProcessorto use the unifiedgetEffectiveVcsRepoInfo()accessor, simplifying and consolidating logic for obtaining repository information.
Branch Issue Management:
- Ensured branch issue counts are always updated after mapping code analysis issues, even on initial analysis, improving accuracy of issue statistics.
Configuration and Integration Enhancements:
- Added configuration for frontend base URL and GitLab OAuth integration in
application.properties.sample, along with documentation for setting up GitLab OAuth applications. [1] [2] - Enabled AST splitter for RAG pipeline by default in
.env.sample, supporting improved document chunking for retrieval-augmented generation.
Submodule Update:
- Updated the
frontendsubmodule to a newer commit.This pull request introduces several enhancements and fixes across the codebase, mainly focused on improving incremental analysis support, enriching DTOs with detection metadata, and refining VCS diff handling. It also adds configuration options for GitLab OAuth and updates the frontend submodule.
Key changes include:
Incremental Analysis & DTO Enhancements
- Extended the
AiAnalysisRequestinterface and its implementation to support incremental analysis by adding fields foranalysisMode,deltaDiff,previousCommitHash, andcurrentCommitHash, along with corresponding builder methods. [1] [2] [3] [4] [5] [6] - Updated the
IssueDTOrecord to include detection metadata such asanalysisId,prNumber,commitHash, anddetectedAt, and modified thefromEntitymethod to populate these fields. [1] [2]
VCS Diff Handling Improvements
- Added new methods to the
VcsOperationsServiceinterface for fetching pull request diffs (getPullRequestDiff) and commit range diffs (getCommitRangeDiff), enabling more precise diff retrieval for incremental and PR-based analyses. - Enhanced the
BranchAnalysisProcessorto use PR diffs when a source PR number is provided, ensuring all files from the original PR are analyzed, and improved branch issue count updates after mapping. [1] [2] [3] [4] - Fixed a bug in issue reconciliation by using the correct field (
idinstead ofissueId) for AI issue mapping.
Configuration & Integration Updates
- Added configuration and documentation for GitLab OAuth integration in
application.properties.sample, including instructions and new properties for client ID, secret, and base URL. - Introduced a new property for the frontend base URL used in email templates.
- Enabled AST-based splitting in the RAG pipeline sample environment configuration.
Module & Utility Updates
- Exported new GitLab-related DTO and config packages in the module descriptor for broader accessibility.
- Updated a comment in
DiffContentFilterto reference the correct module (vcs-mcp).
Frontend
- Updated the frontend submodule to the latest commit.
Full Changelog: 0.1.2...1.0.0
0.1.2
What's Changed
The core changes involve implementing a new DiffContentFilter in the Java analysis engine to manage large files, adding a rawDiff field to AI analysis requests, and refining the prompt generation in the Python MCP client to incorporate structured context and Lost-in-the-Middle protection. Additionally, the PR updates the README.md and .env.sample files to reflect new features and configuration options, including LLM reranking and prompt logging. Several documentation files have been removed, indicating a potential restructuring of the project's documentation.
Key Changes:
- Diff Content Filtering: A new
DiffContentFilterutility is introduced in the Java analysis engine to filter large files from diff content, mirroring the behavior of the MCP server'sLargeContentFilter. This helps reduce token usage and improve analysis efficiency. - Raw Diff Inclusion: The
AiAnalysisRequestand related DTOs now include arawDifffield, allowing the full raw diff content to be passed directly to the AI for analysis, bypassing MCP tool calls for diff retrieval. - Structured Prompt Context: The Python MCP client's prompt builder is enhanced to include structured context with priority levels (HIGH, MEDIUM, LOW, RAG) and Lost-in-the-Middle protection instructions. This aims to guide the LLM's attention to the most critical parts of the code.
- LLM Reranking: A new
LLMRerankerservice is added to the Python MCP client, enabling LLM-based reranking of RAG results for improved relevance, especially for large pull requests. This feature is configurable via environment variables. - Prompt Logging: A
PromptLoggerutility is introduced to log full prompts, RAG context, and LLM responses for debugging and observability. - Comment Command Job Types: New
JobTypeenums (SUMMARIZE_COMMAND,ASK_COMMAND,ANALYZE_COMMAND,REVIEW_COMMAND,IGNORED_COMMENT) are added to track comment-driven AI commands, along with corresponding database migration scripts. - Placeholder Comments: The Bitbucket and GitHub reporting services are updated to post placeholder comments when an analysis starts and then update them with the final results or error messages. This provides immediate feedback to users.
- GitHub App Installation Improvements: The GitHub client now attempts to use the
/installation/repositoriesendpoint first for listing repositories, improving compatibility with GitHub App installations. It also includes a fallback mechanism for large diffs by fetching files individually. - Documentation Updates: The
README.mdand.env.samplefiles are updated to reflect the new/summarizecommand, LLM reranking, and prompt logging configurations. Several old documentation files have been removed.
Files Modified:
- Java Analysis Engine:
AiAnalysisRequest.java,AiAnalysisRequestImpl.java,PrProcessRequest.java,PullRequestAnalysisProcessor.java,VcsReportingService.java,DiffContentFilter.java(new file) - Java Core Library:
module-info.java,CommentCommandRateLimit.java,JobType.java,PermissionTemplate.java(deleted),PermissionType.java(deleted),ProjectPermissionAssignment.java(deleted),ProjectConfig.java,CommentCommandRateLimitRepository.java,PermissionTemplateRepository.java(deleted),ProjectPermissionAssignmentRepository.java(deleted),CodeAnalysisService.java,JobService.java,V21__add_command_job_types.sql(new file),V22__add_ignored_comment_job_type.sql(new file) - Java VCS Client:
CommentOnBitbucketCloudAction.java,GetPullRequestDiffAction.java,AnalysisSummary.java,HtmlAnalysisFormatter.java,MarkdownAnalysisFormatter.java,PlainTextAnalysisFormatter.java,ReportGenerator.java,GitHubClient.java,CommentOnPullRequestAction.java,GetPullRequestDiffAction.java,SearchRepositoriesAction.java,LinksGenerator.java - Java Pipeline Agent:
BitbucketCloudPullRequestWebhookHandler.java,BitbucketAiClientService.java,BitbucketReportingService.java,ProviderWebhookController.java,AskCommandProcessor.java,SummarizeCommandProcessor.java,WebhookAsyncProcessor.java,GitHubPullRequestWebhookHandler.java,GitHubAiClientService.java,GitHubReportingService.java - Java Web Server:
AnalysisIssueController.java,ProjectAnalysisController.java,OAuthCallbackController.java,PermissionController.java(deleted),VcsIntegrationService.java,PermissionService.java(deleted),ProjectService.java - Python MCP Client:
.gitignore(new file),README.MD,llm/llm_factory.py,model/models.py,service/command_service.py,service/llm_reranker.py(new file),service/rag_client.py,service/review_service.py,utils/context_builder.py,utils/diff_processor.py(new file),utils/file_classifier.py(new file),utils/prompt_builder.py,utils/prompt_logger.py(new file),utils/response_parser.py - Python RAG Pipeline:
README.md,src/rag_pipeline/api/api.py,src/rag_pipeline/core/index_manager.py,src/rag_pipeline/core/openrouter_embedding.py,src/rag_pipeline/models/config.py,src/rag_pipeline/models/instructions.py(new file),src/rag_pipeline/services/query_service.py - Documentation:
README.md,deployment/config/mcp-client/.env.sample,deployment/config/rag-pipeline/.env.sample,docs/01-overview.md(deleted),docs/02-getting-started.md(deleted),docs/03-architecture.md(deleted),docs/04-modules/frontend.md(deleted),docs/04-modules/java-ecosystem.md(deleted),docs/04-modules/python-ecosystem.md(deleted),docs/05-configuration.md(deleted),docs/06-api-reference.md(deleted),docs/07-analysis-types.md(deleted),docs/08-database-schema.md(deleted),docs/09-deployment.md(deleted),docs/10-development.md(deleted),docs/11-troubleshooting.md(deleted),docs/DOCUMENTATION_SUMMARY.md(deleted),docs/QUICK_REFERENCE.md(deleted),docs/README.md(deleted),docs/architecture/mcp-scaling-strategy.md(deleted)
Impact Analysis:
- Performance: The
DiffContentFilterand LLM reranking features are expected to significantly improve the performance and cost-efficiency of AI analysis by reducing the amount of data sent to LLMs and focusing their attention on the most relevant code. - User Experience: Placeholder comments will provide immediate feedback to users when an AI analysis is initiated, improving the perceived responsiveness of the system.
- Maintainability: The introduction of structured context and prompt logging will make it easier to debug and fine-tune AI prompts and understand the LLM's reasoning process.
- Scalability: The changes to GitHub repository listing and diff retrieval for large PRs will improve the system's ability to handle larger and more complex repositories.
- Documentation: The removal of numerous documentation files suggests a major overhaul or consolidation of the project's documentation, which could impact how users and developers find information.
Full Changelog: 0.1.1...0.1.2
0.1.1
What's Changed
- Bug fixes + refactoring for further SQ checks.
- feat: add Platform MCP module and tools for analysis results and issue management. + VCS commands ( review/ask/summarize ) by @rostilos in #9
- SQ issues fixes by @rostilos in #12
- 0.0.3 rc by @rostilos in #17
- 0.1.1 rc by @rostilos in #16
Full Changelog: 0.0.2...0.1.1
0.0.2
Multi-Platform and GitHub Integration:
- Documentation in
docs/01-overview.md,docs/05-configuration.md, anddocs/README.mdis updated to reflect support for Bitbucket Cloud, GitHub, and Bitbucket Server/Data Center, with GitLab marked as coming soon. This includes new feature lists, platform support tables, and detailed setup instructions for both Bitbucket and GitHub OAuth Apps. [1] [2] [3] [4] [5] - Configuration samples in
deployment/config/java-shared/application.properties.sampleare expanded to include GitHub App and OAuth settings, and clarify Bitbucket callback URLs. [1] [2] - Docker Compose samples now mount GitHub App private key files for use by the application, supporting GitHub App authentication. [1] [2]
- The
.gitignoreis updated to ignore.pemfiles, which are used for GitHub App private keys.
Configuration and Security Improvements:
- Provider enablement flags and webhook endpoint documentation are clarified, with provider-specific webhook endpoints and events detailed for Bitbucket and GitHub, including webhook secret handling and event types. [1] [2]
- Refresh token expiration is now configurable for JWT authentication.
Java Analysis Engine Library:
- A new Maven module,
codecrow-analysis-engine, is introduced with its ownpom.xml,.gitignore, andmodule-info.java, providing reusable core analysis logic for IDE plugins, CLI tools, and pipeline agents. [1] [2] [3] - The
AiAnalysisClientand related DTOs are moved and refactored to reside in the new analysis engine library, decoupling them from the pipeline agent and improving modularity. [1] [2] [3]
Other Notable Updates:
- The frontend submodule is updated to a new commit.
- Minor documentation improvements, such as clarifying the status of the test suite.
These changes collectively modernize CodeCrow's architecture, making it more extensible and easier to configure for multiple VCS platforms, and lay the groundwork for future integrations.This pull request introduces GitHub integration alongside Bitbucket support, updates documentation and configuration to reflect multi-platform capabilities, and modularizes the core analysis logic into a reusable Java library. It also improves deployment examples and clarifies webhook and OAuth setup for both Bitbucket and GitHub. Below are the most important changes:
1. GitHub Integration & Multi-Platform Support
- Added configuration and documentation for GitHub OAuth App integration, including setup instructions, required scopes, and webhook security details (
docs/05-configuration.md,deployment/config/java-shared/application.properties.sample) [1] [2] [3] [4]. - Updated documentation and overview to indicate support for Bitbucket Cloud, Bitbucket Server, and GitHub, with GitLab marked as coming soon (
docs/01-overview.md,docs/README.md) [1] [2] [3].
2. Modularization of Analysis Logic
- Extracted the core analysis logic into a new reusable Java library:
codecrow-analysis-engine, with its ownpom.xml,module-info.java, and.gitignore[1] [2] [3]. - Moved and refactored
AiAnalysisClientand related classes from the pipeline agent to the new analysis engine library, updating package names and imports accordingly [1] [2] [3] [4].
3. Deployment & Configuration Improvements
- Updated
.gitignoreanddocker-compose-sample.ymlto support mounting GitHub App private key files and ignore.pemfiles globally (deployment/config/.gitignore,deployment/docker-compose-sample.yml) [1] [2] [3]. - Enabled GitHub as a VCS provider by default in sample configuration (
docs/05-configuration.md).
4. Documentation Enhancements
- Expanded and clarified documentation for supported platforms, OAuth setup, webhook events, and security best practices (
docs/01-overview.md,docs/05-configuration.md,docs/README.md) [1] [2] [3] [4] [5]. - Marked the testing section as TODO in developer documentation (
docs/10-development.md).
5. Frontend Submodule Update
- Updated the frontend submodule to the latest commit (
frontend).This pull request introduces multi-platform support for GitHub alongside Bitbucket, improves documentation, and modularizes core analysis logic for reuse across the Java ecosystem. It also adds configuration and deployment updates to support GitHub integration, and refactors the analysis engine for better maintainability and extensibility.
Multi-Platform VCS Support and Documentation Updates:
- Updated documentation (
docs/01-overview.md,docs/05-configuration.md,docs/README.md) to reflect support for GitHub (OAuth App, webhooks, PR comments), Bitbucket Cloud, Bitbucket Server, and upcoming GitLab support. Added new configuration instructions and feature tables for all supported platforms. [1] [2] [3] [4] [5] [6] - Enabled GitHub as a provider by default in sample configuration (
docs/05-configuration.md).
Configuration and Deployment Enhancements:
- Added GitHub App configuration options and secrets to
application.properties.sampleand updated Bitbucket callback URLs for clarity and correctness. - Updated
.gitignoreand Docker Compose sample files to handle GitHub App private key files (*.pem) for secure deployment and mounting in containers. [1] [2] [3]
Java Analysis Engine Modularization:
- Created a new
codecrow-analysis-engineMaven module with its ownpom.xml,.gitignore, and Java module descriptor (module-info.java). This module encapsulates core analysis logic for reuse in IDE plugins, CLI too...