|
85 | 85 | CodeOptimizationContext, |
86 | 86 | GeneratedTests, |
87 | 87 | GeneratedTestsList, |
| 88 | + OptimizationReviewResult, |
88 | 89 | OptimizationSet, |
89 | 90 | OptimizedCandidate, |
90 | 91 | OptimizedCandidateResult, |
@@ -1840,19 +1841,40 @@ def process_review( |
1840 | 1841 |
|
1841 | 1842 | raise_pr = not self.args.no_pr |
1842 | 1843 | staging_review = self.args.staging_review |
1843 | | - opt_review_response = "" |
| 1844 | + opt_review_result = OptimizationReviewResult(review="", explanation="") |
1844 | 1845 | # this will now run regardless of pr, staging review flags |
1845 | 1846 | try: |
1846 | | - opt_review_response = self.aiservice_client.get_optimization_review( |
| 1847 | + opt_review_result = self.aiservice_client.get_optimization_review( |
1847 | 1848 | **data, calling_fn_details=function_references |
1848 | 1849 | ) |
1849 | 1850 | except Exception as e: |
1850 | 1851 | logger.debug(f"optimization review response failed, investigate {e}") |
1851 | | - data["optimization_review"] = opt_review_response |
1852 | | - self.optimization_review = opt_review_response |
| 1852 | + data["optimization_review"] = opt_review_result.review |
| 1853 | + self.optimization_review = opt_review_result.review |
| 1854 | + |
| 1855 | + # Display the reviewer result to the user |
| 1856 | + if opt_review_result.review: |
| 1857 | + review_display = { |
| 1858 | + "high": ("[bold green]High[/bold green]", "green", "Recommended to merge"), |
| 1859 | + "medium": ("[bold yellow]Medium[/bold yellow]", "yellow", "Review recommended before merging"), |
| 1860 | + "low": ("[bold red]Low[/bold red]", "red", "Not recommended to merge"), |
| 1861 | + } |
| 1862 | + display_info = review_display.get(opt_review_result.review.lower(), ("[bold]Unknown[/bold]", "white", "")) |
| 1863 | + explanation_text = opt_review_result.explanation.strip() if opt_review_result.explanation else "" |
| 1864 | + if is_LSP_enabled(): |
| 1865 | + md_content = f"### Reviewer Assessment: {opt_review_result.review.capitalize()}\n{display_info[2]}" |
| 1866 | + if explanation_text: |
| 1867 | + md_content += f"\n\n{explanation_text}" |
| 1868 | + lsp_log(LspMarkdownMessage(markdown=md_content)) |
| 1869 | + else: |
| 1870 | + panel_content = f"Reviewer Assessment: {display_info[0]}\n{display_info[2]}" |
| 1871 | + if explanation_text: |
| 1872 | + panel_content += f"\n\n[dim]{explanation_text}[/dim]" |
| 1873 | + console.print(Panel(panel_content, title="Optimization Review", border_style=display_info[1])) |
| 1874 | + |
1853 | 1875 | if raise_pr or staging_review: |
1854 | 1876 | data["root_dir"] = git_root_dir() |
1855 | | - if raise_pr and not staging_review and opt_review_response != "low": |
| 1877 | + if raise_pr and not staging_review and opt_review_result.review != "low": |
1856 | 1878 | # Ensure root_dir is set for PR creation (needed for async functions that skip opt_review) |
1857 | 1879 | if "root_dir" not in data: |
1858 | 1880 | data["root_dir"] = git_root_dir() |
|
0 commit comments