Skip to content

Test perf only after behavior passes#9

Merged
alvin-r merged 8 commits into
function-optimizer-refactorfrom
test_perf_only_after_behavior_passes
Feb 15, 2025
Merged

Test perf only after behavior passes#9
alvin-r merged 8 commits into
function-optimizer-refactorfrom
test_perf_only_after_behavior_passes

Conversation

@alvin-r

@alvin-r alvin-r commented Feb 14, 2025

Copy link
Copy Markdown
Contributor

If behavioral tests fail, we should do an early exit

@alvin-r alvin-r marked this pull request as ready for review February 15, 2025 02:10
@alvin-r alvin-r merged commit d760b9b into function-optimizer-refactor Feb 15, 2025
mohammedahmed18 added a commit that referenced this pull request Apr 4, 2026
Issue #9: process_review() called get_new_explanation() and
get_optimization_review() without checking language. These are Python-only
endpoints that would fail or return incorrect results for JavaScript/TypeScript.

Root Cause:
- process_review() (line 2459) calls two Python-only endpoints:
  - get_new_explanation() (line 2575) - no language check
  - get_optimization_review() (line 2638) - no language check
- Same pattern as Issue #8 (adaptive_optimize) which was already fixed
- Latent bug - only manifests when JS/TS optimization succeeds

Fix:
- Added language guard before get_new_explanation: if language == "python"
- Added language guard before get_optimization_review: if language == "python"
- For non-Python languages, use original explanation from AI service
- For non-Python languages, skip optimization review (sets empty review)

Impact:
- Latent bug (not yet triggered because all JS/TS optimizations fail at baseline)
- Would block JS/TS optimization success once baseline issues are resolved
- Severity: MEDIUM (latent, not blocking current work)

Testing:
- Existing function_optimizer tests pass
- No linting/type errors

Category: Latent bug (will reproduce when JS/TS optimizations succeed)
Type: Missing language guard in CLI

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
mohammedahmed18 added a commit that referenced this pull request Apr 4, 2026
**Problem:**
The `maybe_repair_optimization()` method called `/ai/code_repair` (a Python-only
endpoint) without checking if the language is Python first. This would cause
errors when JavaScript/TypeScript optimizations reach the repair stage.

**Root Cause:**
File: codeflash/languages/function_optimizer.py (line 2957)
- `repair_optimization()` calls `/ai/code_repair` endpoint
- `/ai/code_repair` uses Python-specific tools (libcst for AST manipulation)
- No language check before calling repair

**Impact:**
- Latent bug (not yet triggered in production)
- Would block JS/TS optimization success once candidates reach repair stage
- Severity: MEDIUM

**Fix:**
Added language guard at line 2948:
- Check `self.function_to_optimize.language != "python"`
- Skip repair for JavaScript/TypeScript/Java
- Log debug message explaining why repair was skipped

**Testing:**
- Added tests/test_languages/test_code_repair_language_guard.py
- Documents expected behavior for language checks
- All existing tests pass
- No linting/type errors

**Trace IDs:**
N/A (latent bug, not yet triggered)

**Related Issues:**
- Similar pattern to Issue #8 (adaptive_optimize) - PR #1995
- Similar pattern to Issue #9 (get_new_explanation, get_optimization_review) - PR #1997

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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.

2 participants