Skip to content

1.5.7 rc#180

Merged
rostilos merged 3 commits into
mainfrom
1.5.7-rc
May 18, 2026
Merged

1.5.7 rc#180
rostilos merged 3 commits into
mainfrom
1.5.7-rc

Conversation

@rostilos
Copy link
Copy Markdown
Owner

@rostilos rostilos commented May 18, 2026

This pull request introduces improvements to how code analysis issues are mapped, tracked, and reconciled across pull request (PR) iterations, with a focus on more accurate handling of file renames, deletions, and PR lineage. It also defers the resolution of unmatched issues until after anchor verification, reducing the risk of prematurely marking issues as resolved. The most important changes are:

Enhanced File Change Handling and Issue Mapping

  • Improved file change detection in BranchAnalysisProcessor and BranchIssueReconciliationService to handle renamed and deleted files, ensuring all relevant file paths are considered and issues are correctly migrated or updated (BranchAnalysisProcessor.java, BranchIssueReconciliationService.java). [1] [2]
  • The BranchIssueMappingService.mapCodeAnalysisIssuesToBranch method now supports scoping to a specific PR number, filtering out superseded issues from earlier PR iterations to prevent mapping resolved issues after merge (BranchIssueMappingService.java). [1] [2] [3]

Improved Issue Line Number and Path Reconciliation

  • Refactored issue line number reconciliation to handle renamed and modified files more robustly, updating both line numbers and file paths as needed during PR merges (BranchIssueReconciliationService.java). [1] [2]

Deferred Issue Resolution for Unmatched Issues

  • In PrIssueTrackingService, changed the logic so that unmatched previous issues (i.e., issues not re-reported by the AI) are not immediately marked as resolved; instead, their resolution is deferred until after snippet anchor verification, improving accuracy in tracking issue status across PR iterations (PrIssueTrackingService.java). [1] [2] [3] [4]

Build and Packaging Updates

  • Updated the pom.xml build configuration to specify a custom source directory, disable the module path for the compiler, and add an automatic module name to the JAR manifest for better Java module compatibility (pom.xml).

Test coverage

  • Extensive IT testing coverage of the system's mission-critical functionality

These changes collectively improve the reliability and correctness of code analysis issue tracking throughout the PR lifecycle, especially in complex scenarios involving file renames, deletions, and multiple PR iterations.

rostilos added 3 commits May 18, 2026 12:17
- Created unit tests for `rag-pipeline` and `inference-orchestrator` covering various utility functions and classes.
- Implemented integration tests for both packages, ensuring full coverage of API endpoints and service interactions.
- Added scripts for running tests and checking coverage with customizable thresholds and HTML report generation.
- Introduced `.gitignore` files to exclude unnecessary files from version control.
- Updated README files to provide clear instructions on running tests and understanding the test structure.
- Added test for current scope and end line exposure in BranchIssue.
- Introduced new tests in CodeAnalysisServiceTest for anchoring issues to real file lines, parsing line ranges, and rejecting non-file issues without code snippets.
- Implemented content fingerprint deduplication in IssueDeduplicationServiceTest.
- Updated module-info.java in security and vcs-client to open packages for Spring.
- Enhanced JwtUtils to log invalid JWT signatures.
- Updated pom.xml to exclude okio from dependencies and added okio-jvm.
- Created integration tests for line tracking flow, including handling of PR iterations and issue tracking.
- Added necessary resources and files for line tracking tests.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 18, 2026

Important

Review skipped

Too many files!

This PR contains 178 files, which is 28 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1b00f82c-6672-4002-8bcf-00b61cc99550

📥 Commits

Reviewing files that changed from the base of the PR and between 421b60b and bb80bf3.

📒 Files selected for processing (178)
  • java-ecosystem/libs/analysis-engine/pom.xml
  • java-ecosystem/libs/analysis-engine/src/main/java/org/rostilos/codecrow/analysisengine/processor/analysis/BranchAnalysisProcessor.java
  • java-ecosystem/libs/analysis-engine/src/main/java/org/rostilos/codecrow/analysisengine/service/branch/BranchIssueMappingService.java
  • java-ecosystem/libs/analysis-engine/src/main/java/org/rostilos/codecrow/analysisengine/service/branch/BranchIssueReconciliationService.java
  • java-ecosystem/libs/analysis-engine/src/main/java/org/rostilos/codecrow/analysisengine/service/pr/PrIssueTrackingService.java
  • java-ecosystem/libs/analysis-engine/src/main/java/org/rostilos/codecrow/analysisengine/util/DiffParsingUtils.java
  • java-ecosystem/libs/analysis-engine/src/test/java/org/rostilos/codecrow/analysisengine/processor/analysis/BranchAnalysisProcessorTest.java
  • java-ecosystem/libs/analysis-engine/src/test/java/org/rostilos/codecrow/analysisengine/service/branch/BranchIssueMappingServiceTest.java
  • java-ecosystem/libs/analysis-engine/src/test/java/org/rostilos/codecrow/analysisengine/service/branch/BranchIssueReconciliationServiceTest.java
  • java-ecosystem/libs/analysis-engine/src/test/java/org/rostilos/codecrow/analysisengine/service/pr/PrIssueTrackingServiceTest.java
  • java-ecosystem/libs/analysis-engine/src/test/java/org/rostilos/codecrow/analysisengine/util/DiffParsingUtilsTest.java
  • java-ecosystem/libs/core/pom.xml
  • java-ecosystem/libs/core/src/main/java/module-info.java
  • java-ecosystem/libs/core/src/main/java/org/rostilos/codecrow/core/model/branch/BranchIssue.java
  • java-ecosystem/libs/core/src/main/java/org/rostilos/codecrow/core/persistence/repository/codeanalysis/CodeAnalysisIssueRepository.java
  • java-ecosystem/libs/core/src/main/java/org/rostilos/codecrow/core/service/CodeAnalysisService.java
  • java-ecosystem/libs/core/src/main/java/org/rostilos/codecrow/core/service/IssueDeduplicationService.java
  • java-ecosystem/libs/core/src/test/java/org/rostilos/codecrow/core/model/branch/BranchIssueTest.java
  • java-ecosystem/libs/core/src/test/java/org/rostilos/codecrow/core/service/CodeAnalysisServiceTest.java
  • java-ecosystem/libs/core/src/test/java/org/rostilos/codecrow/core/service/IssueDeduplicationServiceTest.java
  • java-ecosystem/libs/security/src/main/java/module-info.java
  • java-ecosystem/libs/security/src/main/java/org/rostilos/codecrow/security/jwt/utils/JwtUtils.java
  • java-ecosystem/libs/vcs-client/pom.xml
  • java-ecosystem/libs/vcs-client/src/main/java/module-info.java
  • java-ecosystem/libs/vcs-client/src/test/java/org/rostilos/codecrow/vcsclient/github/actions/CheckRunActionTest.java
  • java-ecosystem/services/pipeline-agent/src/it/java/org/rostilos/codecrow/pipelineagent/BasePipelineAgentIT.java
  • java-ecosystem/services/pipeline-agent/src/it/java/org/rostilos/codecrow/pipelineagent/HealthCheckControllerIT.java
  • java-ecosystem/services/pipeline-agent/src/it/java/org/rostilos/codecrow/pipelineagent/LineTrackingFlowIT.java
  • java-ecosystem/services/pipeline-agent/src/it/java/org/rostilos/codecrow/pipelineagent/PipelineActionControllerIT.java
  • java-ecosystem/services/pipeline-agent/src/it/java/org/rostilos/codecrow/pipelineagent/PipelineAgentSecurityIT.java
  • java-ecosystem/services/pipeline-agent/src/it/java/org/rostilos/codecrow/pipelineagent/ProviderWebhookControllerIT.java
  • java-ecosystem/services/pipeline-agent/src/it/java/org/rostilos/codecrow/pipelineagent/RagIndexingControllerIT.java
  • java-ecosystem/services/pipeline-agent/src/it/resources/application-it.properties
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/ai/pr1.json
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/ai/pr2.json
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/ai/pr3.json
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/diffs/merge-pr3.diff
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/diffs/pr1.diff
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/diffs/pr2.diff
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/diffs/pr3.diff
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/files/pr1/src/App.java
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/files/pr2/src/App.java
  • java-ecosystem/services/pipeline-agent/src/it/resources/line-tracking/files/pr3/src/App.java
  • java-ecosystem/services/pipeline-agent/src/main/java/module-info.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/AuthControllerIT.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/BaseWebServerIT.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/HealthCheckControllerIT.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/InternalApiSecurityIT.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/LlmModelControllerIT.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/ProjectControllerIT.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/PublicSiteConfigControllerIT.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/QualityGateControllerIT.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/UserDataControllerIT.java
  • java-ecosystem/services/web-server/src/it/java/org/rostilos/codecrow/webserver/WorkspaceControllerIT.java
  • java-ecosystem/services/web-server/src/it/resources/application-it.properties
  • java-ecosystem/services/web-server/src/main/java/org/rostilos/codecrow/webserver/ai/controller/AIConnectionController.java
  • java-ecosystem/services/web-server/src/main/java/org/rostilos/codecrow/webserver/ai/dto/response/AIConnectionTestResponse.java
  • java-ecosystem/services/web-server/src/main/java/org/rostilos/codecrow/webserver/ai/service/AIConnectionService.java
  • python-ecosystem/inference-orchestrator/.coverage
  • python-ecosystem/inference-orchestrator/integration/conftest.py
  • python-ecosystem/inference-orchestrator/integration/test_auth_middleware.py
  • python-ecosystem/inference-orchestrator/integration/test_command_endpoints.py
  • python-ecosystem/inference-orchestrator/integration/test_endpoint_edge_cases.py
  • python-ecosystem/inference-orchestrator/integration/test_health.py
  • python-ecosystem/inference-orchestrator/integration/test_qa_documentation.py
  • python-ecosystem/inference-orchestrator/integration/test_qa_documentation_extended.py
  • python-ecosystem/inference-orchestrator/integration/test_rag_client_extended.py
  • python-ecosystem/inference-orchestrator/integration/test_rag_client_http.py
  • python-ecosystem/inference-orchestrator/integration/test_review_endpoints.py
  • python-ecosystem/inference-orchestrator/pytest.ini
  • python-ecosystem/inference-orchestrator/src/.coverage
  • python-ecosystem/inference-orchestrator/src/llm/llm_factory.py
  • python-ecosystem/inference-orchestrator/src/pytest.ini
  • python-ecosystem/inference-orchestrator/src/tests/test_dependency_graph.py
  • python-ecosystem/inference-orchestrator/src/tests/test_llm_reranker.py
  • python-ecosystem/inference-orchestrator/src/utils/context_builder.py
  • python-ecosystem/inference-orchestrator/tests/conftest.py
  • python-ecosystem/inference-orchestrator/tests/test_agents.py
  • python-ecosystem/inference-orchestrator/tests/test_command_service.py
  • python-ecosystem/inference-orchestrator/tests/test_command_service_full.py
  • python-ecosystem/inference-orchestrator/tests/test_context_builder.py
  • python-ecosystem/inference-orchestrator/tests/test_context_helpers.py
  • python-ecosystem/inference-orchestrator/tests/test_context_helpers_extended.py
  • python-ecosystem/inference-orchestrator/tests/test_dependency_graph.py
  • python-ecosystem/inference-orchestrator/tests/test_dependency_graph_full.py
  • python-ecosystem/inference-orchestrator/tests/test_diff_parser.py
  • python-ecosystem/inference-orchestrator/tests/test_diff_processor.py
  • python-ecosystem/inference-orchestrator/tests/test_dtos.py
  • python-ecosystem/inference-orchestrator/tests/test_enrichment.py
  • python-ecosystem/inference-orchestrator/tests/test_enums.py
  • python-ecosystem/inference-orchestrator/tests/test_error_sanitizer.py
  • python-ecosystem/inference-orchestrator/tests/test_file_classifier.py
  • python-ecosystem/inference-orchestrator/tests/test_issue_processor.py
  • python-ecosystem/inference-orchestrator/tests/test_json_utils.py
  • python-ecosystem/inference-orchestrator/tests/test_json_utils_extended.py
  • python-ecosystem/inference-orchestrator/tests/test_json_utils_full.py
  • python-ecosystem/inference-orchestrator/tests/test_llm_factory.py
  • python-ecosystem/inference-orchestrator/tests/test_llm_reranker.py
  • python-ecosystem/inference-orchestrator/tests/test_mcp_config.py
  • python-ecosystem/inference-orchestrator/tests/test_mcp_tool_executor.py
  • python-ecosystem/inference-orchestrator/tests/test_orchestrator_full.py
  • python-ecosystem/inference-orchestrator/tests/test_orchestrator_helpers.py
  • python-ecosystem/inference-orchestrator/tests/test_output_schemas.py
  • python-ecosystem/inference-orchestrator/tests/test_prompt_builder.py
  • python-ecosystem/inference-orchestrator/tests/test_qa_doc_full.py
  • python-ecosystem/inference-orchestrator/tests/test_qa_documentation.py
  • python-ecosystem/inference-orchestrator/tests/test_rag_client.py
  • python-ecosystem/inference-orchestrator/tests/test_reconciliation.py
  • python-ecosystem/inference-orchestrator/tests/test_reconciliation_full.py
  • python-ecosystem/inference-orchestrator/tests/test_response_parser.py
  • python-ecosystem/inference-orchestrator/tests/test_review_service_helpers.py
  • python-ecosystem/inference-orchestrator/tests/test_signature_patterns.py
  • python-ecosystem/inference-orchestrator/tests/test_stage_0_branch.py
  • python-ecosystem/inference-orchestrator/tests/test_stage_1_file_review.py
  • python-ecosystem/inference-orchestrator/tests/test_stage_2_full.py
  • python-ecosystem/inference-orchestrator/tests/test_stage_2_helpers.py
  • python-ecosystem/inference-orchestrator/tests/test_stage_3_full.py
  • python-ecosystem/inference-orchestrator/tests/test_stage_3_helpers.py
  • python-ecosystem/inference-orchestrator/tests/test_stage_helpers.py
  • python-ecosystem/inference-orchestrator/tests/test_task_context_builder.py
  • python-ecosystem/inference-orchestrator/tests/test_verification_agent.py
  • python-ecosystem/inference-orchestrator/tests/test_verification_full.py
  • python-ecosystem/rag-pipeline/.coverage
  • python-ecosystem/rag-pipeline/integration/conftest.py
  • python-ecosystem/rag-pipeline/integration/test_auth_middleware.py
  • python-ecosystem/rag-pipeline/integration/test_health.py
  • python-ecosystem/rag-pipeline/integration/test_index_edge_cases.py
  • python-ecosystem/rag-pipeline/integration/test_index_endpoints.py
  • python-ecosystem/rag-pipeline/integration/test_parse_endpoints.py
  • python-ecosystem/rag-pipeline/integration/test_pr_endpoints.py
  • python-ecosystem/rag-pipeline/integration/test_query_edge_cases.py
  • python-ecosystem/rag-pipeline/integration/test_query_endpoints.py
  • python-ecosystem/rag-pipeline/integration/test_system_endpoints.py
  • python-ecosystem/rag-pipeline/pytest.ini
  • python-ecosystem/rag-pipeline/tests/conftest.py
  • python-ecosystem/rag-pipeline/tests/test_api_app.py
  • python-ecosystem/rag-pipeline/tests/test_api_models.py
  • python-ecosystem/rag-pipeline/tests/test_branch_manager.py
  • python-ecosystem/rag-pipeline/tests/test_config.py
  • python-ecosystem/rag-pipeline/tests/test_config_poller.py
  • python-ecosystem/rag-pipeline/tests/test_deterministic_context.py
  • python-ecosystem/rag-pipeline/tests/test_duplication.py
  • python-ecosystem/rag-pipeline/tests/test_embedding_factory.py
  • python-ecosystem/rag-pipeline/tests/test_embeddings.py
  • python-ecosystem/rag-pipeline/tests/test_index_manager.py
  • python-ecosystem/rag-pipeline/tests/test_indexer.py
  • python-ecosystem/rag-pipeline/tests/test_instructions.py
  • python-ecosystem/rag-pipeline/tests/test_languages.py
  • python-ecosystem/rag-pipeline/tests/test_loader.py
  • python-ecosystem/rag-pipeline/tests/test_loader_extended.py
  • python-ecosystem/rag-pipeline/tests/test_metadata.py
  • python-ecosystem/rag-pipeline/tests/test_metadata_extended.py
  • python-ecosystem/rag-pipeline/tests/test_ollama_extended.py
  • python-ecosystem/rag-pipeline/tests/test_openrouter_extended.py
  • python-ecosystem/rag-pipeline/tests/test_pr_context.py
  • python-ecosystem/rag-pipeline/tests/test_query_runner.py
  • python-ecosystem/rag-pipeline/tests/test_rag.py
  • python-ecosystem/rag-pipeline/tests/test_router_index.py
  • python-ecosystem/rag-pipeline/tests/test_router_pr.py
  • python-ecosystem/rag-pipeline/tests/test_router_query.py
  • python-ecosystem/rag-pipeline/tests/test_routers.py
  • python-ecosystem/rag-pipeline/tests/test_scoring_config.py
  • python-ecosystem/rag-pipeline/tests/test_scoring_config_extended.py
  • python-ecosystem/rag-pipeline/tests/test_services.py
  • python-ecosystem/rag-pipeline/tests/test_splitter.py
  • python-ecosystem/rag-pipeline/tests/test_splitter_extended.py
  • python-ecosystem/rag-pipeline/tests/test_tree_parser.py
  • python-ecosystem/rag-pipeline/tests/test_utils.py
  • tools/test-suite/integration/python-ecosystem/.gitignore
  • tools/test-suite/integration/python-ecosystem/README.md
  • tools/test-suite/integration/python-ecosystem/check-coverage.sh
  • tools/test-suite/integration/python-ecosystem/run-tests.sh
  • tools/test-suite/integration/python-ecosystem/test-run/.gitkeep
  • tools/test-suite/unit/python-ecosystem/.gitignore
  • tools/test-suite/unit/python-ecosystem/README.md
  • tools/test-suite/unit/python-ecosystem/check-coverage.sh
  • tools/test-suite/unit/python-ecosystem/run-tests.sh
  • tools/test-suite/unit/python-ecosystem/test-run/.gitkeep

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 1.5.7-rc

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rostilos rostilos merged commit ffcd1f9 into main May 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant