Commit graph

6371 commits

Author SHA1 Message Date
Kevin Turcios
0abc6bf1e3
async: parallelize endpoint epilogue DB writes (#2490)
## Summary

Parallelize independent DB writes at the end of 4 endpoints using
`asyncio.TaskGroup`. With psycopg3 connection pooling (#2489), each task
gets its own connection from the pool.

### Endpoints optimized

| Endpoint | Before | After |
|----------|--------|-------|
| **Refinement** | `log_features` then `update_optimization_cost` |
`TaskGroup` (concurrent) |
| **Explanations** | `update_optimization_cost` inside inner fn | Moved
to handler, `TaskGroup` with `log_features` |
| **Optimization review** | `update_optimization_cost` inside inner fn |
Moved to handler, `TaskGroup` with `update_optimization_features_review`
|
| **Ranker** | `update_optimization_cost` inside inner fn | Moved to
handler, `TaskGroup` with `log_features` |

Each endpoint saves ~87ms (one DB round-trip) by overlapping two
independent writes.

### Comprehensive audit

All 13 endpoints were audited — no remaining async antipatterns found:
- No blocking calls in async paths
- No `await`-in-loop patterns
- LLM clients already use connection reuse
- All other endpoints have at most 1 DB write in the epilogue

## Test plan

- [x] All 538 tests passing
- [ ] Verify under load in staging

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Kevin Turcios <KRRT7@users.noreply.github.com>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
2026-04-01 06:15:16 -05:00
mohammed ahmed
2887b34d02
chore: clean up codeflash JS workflow (#2499)
## Summary
- Normalize quote style to double quotes for YAML consistency
- Remove redundant `jest-junit` runtime install step (already in
devDependencies)
- Simplify codeflash CLI flags: `--all --verbose --yes` → `--yes`

## Test plan
- [ ] Verify workflow runs successfully on a test PR touching
`js/cf-api/` or `js/cf-webapp/`
- [ ] Confirm `npm ci` installs jest-junit from package-lock without the
extra install step

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Kevin Turcios <106575910+KRRT7@users.noreply.github.com>
2026-04-01 04:23:57 -05:00
mohammed ahmed
8d987de65c
Fix TypeScript validator to support JSX/TSX syntax (#2503)
## Summary

The TypeScript validator was rejecting valid JSX/TSX syntax, causing
optimization runs to fail on React components with JSX.

## Problem

The validator was using `tree_sitter_typescript.language_typescript()`
which doesn't parse JSX syntax. This caused validation failures for
`.tsx` files containing JSX elements like:
- `<div className={...} />`
- `{...rest}` (spread props)
- Any JSX tags

## Solution

Changed to use `tree_sitter_typescript.language_tsx()` instead. Since
TSX is a superset of TypeScript, this supports both:
- Plain TypeScript code
- TypeScript with JSX (TSX)

## Testing

Added three new test cases:
- `test_tsx_simple_jsx` - Tests basic JSX elements
- `test_tsx_nested_jsx` - Tests nested JSX
- `test_tsx_with_props_spread` - Tests spread props in JSX

All existing tests continue to pass.

## Impact

This fixes validation errors for all React/JSX components. Affected
trace IDs from logs:
- 5bedfbb7-ccc0-4fdd-b208-60b8b860750c
- 39892d42-774f-4921-80fc-2ee42ff8ae1c
- 80b818b6-e784-4ff8-abda-c3ce6b25422f
- 9b76943e-1a93-45fa-84b9-aae7d6305f79
- d1bac014-d622-4772-90ea-0f9ff88e32dd

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Codeflash Bot <codeflash-bot@codeflash.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-01 04:20:41 -05:00
mohammed ahmed
de4a22d549
Merge pull request #2502 from codeflash-ai/fix/postgres-pool-exhaustion-thread-sensitive
Fix PostgreSQL connection pool exhaustion in log_features
2026-04-01 02:11:26 +02:00
claude[bot]
8629ac756e fix: resolve mypy type errors in test file
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 23:54:53 +00:00
claude[bot]
f530a1e562 style: auto-fix linting issues
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 23:53:58 +00:00
Codeflash Bot
8734f5a0f8 Fix PostgreSQL connection pool exhaustion in log_features
Bug: PostgreSQL connection pool timeout (30 seconds)
Root cause: log_features uses @sync_to_async(thread_sensitive=False), causing
each call to grab a separate database connection from the pool. When multiple
optimization requests run concurrently, the pool (max_size=10) exhausts.

Error seen: psycopg_pool.PoolTimeout: couldn't get a connection after 30.00 sec

Fix: Change thread_sensitive=False to thread_sensitive=True. This ensures Django
properly reuses connections across async/sync boundaries instead of allocating
a new connection for each call.

Affected trace IDs from logs:
- a0d8dab6-6524-47dc-9c82-5fa92e6390fb
- 62f5c35b-7161-4ab0-958a-4865231f5188
- ddc0e882-f914-49e4-a2ac-2d5f19a17507
- eaeb0cbe-6474-4808-9092-42f837dd52cf

Testing:
- Added test_log_features_concurrency.py to verify thread_sensitive=True
- Verified reproduction script now passes without pool exhaustion
- All existing tests pass

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-31 23:49:51 +00:00
mohammed ahmed
1908325dc8
feat: add rerun trace support to aiservice endpoints (#2493)
## Summary
- Adds `rerun_trace_id` field to all request schemas (`OptimizeSchema`,
`OptimizeSchemaLP`, `TestGenSchema`, `RefinementRequestSchema`,
`CodeRepairRequestSchema`)
- Creates `core/shared/replay.py` with shared rerun logic that queries
`optimization_features` and returns stored results
- Adds early-return short-circuit to `/optimize`,
`/optimize-line-profiler`, `/testgen`, `/refinement`, `/code_repair` —
bypasses LLM calls when `rerun_trace_id` is provided
- Filters results by `optimizations_origin.source` (OPTIMIZE,
OPTIMIZE_LP, REFINE, REPAIR) and matches by parent optimization ID for
refinement/repair

## Test plan
- [ ] Run optimization normally to populate `optimization_features` with
a trace_id
- [ ] Rerun with `codeflash --rerun <trace_id>` against local server
- [ ] Verify each endpoint returns stored results without LLM calls
- [ ] Verify backward compatibility — requests without `rerun_trace_id`
behave unchanged

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Sarthak Agarwal <sarthak.saga@gmail.com>
2026-03-29 18:16:13 +05:30
mohammed ahmed
2612a56994
Merge pull request #2497 from codeflash-ai/chore/make-health-check-public-in-cfapi
Chore: expose healthcheck endpoint publicly for cf-api
2026-03-29 09:41:48 +02:00
mohammed ahmed
dac9989e43
Merge branch 'main' into chore/make-health-check-public-in-cfapi 2026-03-29 09:28:05 +02:00
mohammed ahmed
6aca6a83ad
Merge pull request #2498 from codeflash-ai/mohammedahmed18-patch-1
chore: packages read access for gh action
2026-03-29 09:27:29 +02:00
mohammed ahmed
bbf3a94f87
read access for packages 2026-03-29 09:25:56 +02:00
ali
592b8bebb4
make healthcheck public in cfapi 2026-03-29 09:09:48 +02:00
mohammed ahmed
3f0cf01772
Merge pull request #2496 from codeflash-ai/chore/gh-registery-for-js-action
Include the github registery for @codeflash-ai in codeflash js action
2026-03-29 05:06:56 +02:00
mohammed ahmed
eaa56e9ebf
Update codeflash-js.yaml 2026-03-29 04:01:34 +02:00
Kevin Turcios
40def05997
fix: resolve language_version in testgen_repair endpoint (#2494)
## Summary
- The `/testgen_repair` endpoint was missed when `language_version`
support was added in #2488
- Clients that stopped sending `python_version`
(codeflash-ai/codeflash#1914) hit `400 - Python version is required`
- Adds `language_version` field and `resolve_python_version` validator
to `TestRepairSchema`, matching the pattern in
`OptimizeSchema`/`TestGenSchema`
- Replaces `python_version=data.python_version` with
`language_version=data.language_version` when constructing
`TestGenSchema` in the repair handler

## Test plan
- [ ] Deploy and verify testgen repair calls no longer return 400
- [ ] Verify old clients sending `python_version` still work (backward
compat via validator)
2026-03-27 17:12:53 -05:00
Kevin Turcios
927cc99588
fix: correct regexes for removing empty benchmark sections in PR comments (#2495)
## Summary

- Fix regexes in `buildBenchmarkInfo` that strip empty improved/degraded
benchmark sections from PR comments
- The regexes didn't match the actual template text: wrong heading level
(`####` vs `###`), wrong emoji (`📉` vs `️`), and wrong wording —
causing `{benchmark_info_degraded}` to render literally when there are
no degraded benchmarks
- Add unit tests for improved-only, degraded-only, and empty benchmark
scenarios

## Test plan

- [x] All 33 tests in `pr-changes-utils.test.ts` pass
- [x] New tests verify template placeholders are fully removed when a
section is empty
2026-03-27 17:12:35 -05:00
Kevin Turcios
83a640b4e7
chore: switch tessl to managed mode (#2491)
## Summary

Switches tessl from **vendored** mode to **managed** mode
([docs](https://docs.tessl.io/reference/configuration#project-mode-managed-vs-vendored)).

Previously, all tile contents (~170k lines across 449 files) were
committed directly in `.tessl/tiles/`. This bloated the repo and added
noise to diffs/context that the team found hard to review.

In managed mode, tiles work like `node_modules` — they're gitignored and
fetched from the registry on demand.

## What changed

- `tessl.json`: `"mode": "vendored"` → `"mode": "managed"`
- `.gitignore`: added `.tessl/tiles/`
- Removed all files under `.tessl/tiles/` from git tracking (they remain
on disk locally)

## After merging

Team members need to run **`tessl install`** once after pulling this
change to restore their local tiles. This is the same workflow as
running `npm install` after dependency changes.

## Test plan

- [x] `tessl install` restores all tiles locally after the change
- [ ] Verify CI/remote agents still work (they'll need `tessl install`
in their setup step if they use tiles)
2026-03-27 07:21:14 -05:00
Kevin Turcios
add5f4a76a
feat: migrate from psycopg2 to psycopg3 with connection pooling (#2489)
## Summary
- Replaces `psycopg2-binary` with `psycopg[binary,pool]>=3.1.8,<4` for
native async connection pooling
- Sets `conn_max_age=0` (persistent connections don't work correctly
under ASGI) and configures psycopg3's `ConnectionPool` with `min_size=2,
max_size=10`
- Changes `log_features` to use `@sync_to_async(thread_sensitive=False)`
so concurrent calls dispatch to different threads, each getting a
separate connection from the pool

## Why
With psycopg2, all `sync_to_async` calls from the same coroutine shared
a single thread and Postgres connection. Parallel DB calls via
`TaskGroup` were serialized at the connection level — zero improvement.
Benchmarks confirmed that with psycopg3's pool, 5 parallel calls now get
5 different threads and 5 different `pg_backend_pid`s. Parallel
`aexists` operations showed **15.6% improvement** (208ms → 175ms).

## Test plan
- [x] 538 tests pass, 0 failures, 12 skipped (pre-existing)
- [x] Ruff lint clean
- [x] Benchmark confirms multiple connections: 5 unique threads, 5
unique pg_pids
- [ ] Verify in staging that connection pool behaves correctly under
sustained load
2026-03-27 05:33:33 -05:00
Kevin Turcios
f57229cb34
Resolve python_version from language_version for backward compat (#2488)
## Summary

- Add `model_validator` to `OptimizeSchema`, `OptimizeSchemaLP`, and
`TestGenSchema` that resolves `python_version` from `language_version`
when the request language is `"python"`
- Old clients sending `python_version` continue to work unchanged
- New clients sending only `language_version` get `python_version`
populated automatically for downstream handlers

This must be deployed **before** the client-side changes that stop
sending `python_version`
(codeflash-ai/codeflash#remove-python-version-field).

Once all clients are updated, `python_version` can be fully removed from
the schemas and handlers.

## Test plan

- [x] Existing schema tests pass
(`tests/optimizer/test_javascript_schema.py`)
- [ ] Verify old clients (sending `python_version`) still work after
deploy
- [ ] Verify new clients (sending only `language_version`) resolve
correctly
2026-03-27 03:19:03 -05:00
mohammed ahmed
cc4eaf4392
Merge pull request #2487 from codeflash-ai/chore/npm-token-for-js-action
include npm token inside js/ts action
2026-03-24 14:23:19 +02:00
mohammed ahmed
5f74bf35cb
include npm token inside js/ts action 2026-03-23 22:36:03 +02:00
Kevin Turcios
387c909c9e
fix codeflash optimizing python backend (#2483)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 03:50:30 -05:00
Kevin Turcios
28c9acc877
refactor: aiservice deep dive — LLM client, dedup, async, cleanup (#2482)
## Summary

Comprehensive refactoring of the aiservice Django backend focusing on
code quality, deduplication, and correctness:

- **LLM client extraction**: Extract `LLMClient` class with lazy client
init, centralized error handling, and event loop detection
- **Centralize retry logic**: `@stamina.retry` on
`call_anthropic`/`call_openai` for transient errors (rate limits,
timeouts, 500s), removing scattered retry decorators from testgen files
- **Deduplicate helpers**: Consolidate `extract_code_and_explanation`
into shared `context_helpers.py`, unify `normalize_*_code` into
`normalize_c_style_code`
- **Eliminate double DB queries**: Auth middleware `afirst()` then
`aupdate()` by PK, middleware caches org/subscription
- **Parallelize Java optimizer**: Use `asyncio.TaskGroup` for
independent LLM calls
- **Lazy logging**: Convert all f-string logging to lazy `%s` formatting
across 11 files
- **Cleanup**: Remove unused `PipelineError`/`ValidationError`, fix
`seach_and_replace.py` typo, replace `print()` with `logging.debug()` in
middleware
- **Sentry**: Reduce sampling 1.0 → 0.1/0.01, fix auth `settings.DEBUG`
check, sanitize ranker errors

## Test plan

- [x] All existing pytest tests pass (`uv run pytest`)
- [x] Ruff lint/format clean
- [x] No behavioral changes — pure refactoring

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 01:53:32 -05:00
Aseem Saxena
c5e8b56c6f
Merge pull request #2317 from codeflash-ai/codeflash/optimize-checkForValidAPIKey-mkwv868t
️ Speed up function `checkForValidAPIKey` by 30%
2026-03-18 12:13:42 -07:00
Aseem Saxena
d44ca16d27
Merge branch 'main' into codeflash/optimize-checkForValidAPIKey-mkwv868t 2026-03-18 12:10:27 -07:00
Aseem Saxena
1dde1f0e16
Merge pull request #2323 from codeflash-ai/add/close_pr_end_point
new endpoint for close pr
2026-03-18 12:09:13 -07:00
Aseem Saxena
960401e2d4
Merge branch 'main' into add/close_pr_end_point 2026-03-18 12:08:35 -07:00
HeshamHM28
8f74cf42e2
Fix Unauthorized check for CLI login page (#2480)
# Pull Request Checklist

## Description
- [ ] **Description of PR**: Clear and concise description of what this
PR accomplishes
- [ ] **Breaking Changes**: Document any breaking changes (if
applicable)
- [ ] **Related Issues**: Link to any related issues or tickets

## Testing
- [ ] **Test cases Attached**: All relevant test cases have been
added/updated
- [ ] **Manual Testing**: Manual testing completed for the changes

## Monitoring & Debugging
- [ ] **Logging in place**: Appropriate logging has been added for
debugging user issues
- [ ] **Sentry will be able to catch errors**: Error handling ensures
Sentry can capture and report errors
- [ ] **Avoid Dev based/Prisma logging**: No development-only or
Prisma-specific logging in production code

## Configuration
- [ ] **Env variables newly added**: Any new environment variables are
documented in .env.example file or mentioned in description
---

## Additional Notes
<!-- Add any additional context, screenshots, or notes for reviewers
here -->
2026-03-17 16:37:18 -07:00
Sarthak Agarwal
8f41556b01
fix to mobile view sidebar and login msg (#2481)
# Pull Request Checklist

## Description
- [ ] **Description of PR**: Clear and concise description of what this
PR accomplishes
- [ ] **Breaking Changes**: Document any breaking changes (if
applicable)
- [ ] **Related Issues**: Link to any related issues or tickets

## Testing
- [ ] **Test cases Attached**: All relevant test cases have been
added/updated
- [ ] **Manual Testing**: Manual testing completed for the changes

## Monitoring & Debugging
- [ ] **Logging in place**: Appropriate logging has been added for
debugging user issues
- [ ] **Sentry will be able to catch errors**: Error handling ensures
Sentry can capture and report errors
- [ ] **Avoid Dev based/Prisma logging**: No development-only or
Prisma-specific logging in production code

## Configuration
- [ ] **Env variables newly added**: Any new environment variables are
documented in .env.example file or mentioned in description
---

## Additional Notes
<!-- Add any additional context, screenshots, or notes for reviewers
here -->
2026-03-18 04:57:23 +05:30
HeshamHM28
ea23cf06a6
fix: skip Python validation for Java/JS in optimize-line-profiler endpoint (#2478)
## Summary
- Fix `/optimize-line-profiler` endpoint rejecting Java/JS/TS requests
with `"Invalid Python version"` error by moving `parse_python_version()`
and Python syntax validation inside `if is_python:` block
- Fix code extraction regex in Java and JS/TS line profiler optimizers
to handle LLM responses with ```` ```java:FileName.java ```` format
(optional `:filename` suffix)

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: HeshamHM28 <HeshamHM28@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 18:31:08 -07:00
Sarthak Agarwal
7deb16819e
[Fix] Suppress slack for codeflash employees (#2466)
Co-authored-by: Aseem Saxena <aseem.bits@gmail.com>
Co-authored-by: Kevin Turcios <106575910+KRRT7@users.noreply.github.com>
2026-03-08 02:54:32 +05:30
Kevin Turcios
d74da02e57
fix: return display-version tests as generated_tests in testgen response (#2477)
## Summary
- The `/testgen` response's `generated_tests` field contained the
assert-removed version with `codeflash_output` assignments
- When the CLI's testgen review fell back to this field (instead of
`raw_generated_tests`), the review LLM flagged every test as a "no-op
assignment"
- Now returns the display version (asserts kept, no instrumentation) as
`generated_tests`, matching what the repair endpoint already does
- Also applies isort to the display source for consistency
2026-03-07 13:21:09 -06:00
Kevin Turcios
42b8eed7b4
fix: greedy code extraction with retry & fix unawaited coroutine in Java optimizer (#2476)
## Summary
- Use greedy code extraction and retry on syntax errors in testgen
repair
- Fix broken `asyncio.to_thread(log_features)` in Java optimizer —
`log_features` is `@sync_to_async` so calling it via `to_thread` created
an unawaited coroutine (`RuntimeWarning: coroutine
'SyncToAsync.__call__' was never awaited`) and silently skipped logging.
Replaced with `await log_features(...)` using correct keyword arguments.

## Test plan
- [ ] Verify testgen repair handles syntax errors with retry
- [ ] Verify Java optimization requests no longer emit `SyncToAsync`
RuntimeWarning
- [ ] Verify Java optimization features are correctly logged to DB
2026-03-07 03:18:43 -05:00
Kevin Turcios
0ca3a2ab07
fix: use greedy code extraction and retry on syntax errors in repair (#2475)
## Summary
- Switch `extract_code_block_with_context` (non-greedy `.*?`) →
`extract_code_block` (greedy `.*`) for repair code extraction — the
non-greedy regex matched the first closing fence, truncating code when
the LLM included explanatory snippets before the full file (root cause
of 82% of repair failures)
- Add `ast.parse` validation before CST parsing for fast syntax checking
- Retry the LLM once with the specific syntax error appended to the
conversation when validation fails

## Test plan
- [x] Existing tests pass
- [ ] Run end-to-end optimization to verify repairs succeed
2026-03-06 06:24:31 -05:00
Kevin Turcios
07edfaa0bd
fix: testgen prompt improvements (#2474)
## Summary

- Add multiline string literal constraint to testgen and repair prompts
— LLM was consistently generating unterminated string literals by
splitting strings across lines without triple quotes
- Deduplicate anthropic/markdown branches in testgen prompt templates —
single flow with inline `{% if is_xml %}` wrappers instead of duplicated
content

## Test plan

- [x] Verified templates render correctly for both anthropic and openai
model types (sync and async)
- [x] All block overrides from child templates work with the unified
block names
2026-03-06 10:54:50 +00:00
Kevin Turcios
434fb7df77
feat: improve testgen review & repair quality (#2473)
## Summary

- Pass coverage details (unexecuted lines, threshold) to review and
repair prompts so the LLM can identify low-coverage tests
- Accept previous repair errors in the repair endpoint and include them
in the prompt for retry cycles
- Parallelize per-test review LLM calls with `asyncio.TaskGroup`
- Conditionally include codeflash env var context
(`CODEFLASH_TRACER_DISABLE`, etc.) in repair prompts when the function
under test references them

## Test plan

- [x] Tested locally with codeflash CLI against `Tracer.__enter__` —
review, repair, and retry cycles all work
- [x] Coverage details and previous errors appear correctly in prompts
- [x] Review parallelization reduces latency from sequential ~60s per
test to concurrent
2026-03-06 10:23:55 +00:00
Kevin Turcios
14c0b3acca
fix: handle syntactically invalid LLM output in testgen repair (#2472)
## Summary
- Catch `ParserSyntaxError` when parsing LLM-repaired code instead of
letting it bubble to the generic 500 handler
- Reduces Sentry noise from expected LLM failures
- The CLI already handles non-200 responses gracefully (returns `None`,
continues)
2026-03-06 07:32:30 +00:00
Kevin Turcios
4edd183d82
perf: use Haiku model for testgen repair (#2471)
## Summary
- Switch testgen repair endpoint from `EXECUTE_MODEL` (GPT-5-Mini) to
`HAIKU_MODEL` (Haiku 4.5)
- Matches the review endpoint which already uses Haiku
- Repair is a structured task (splice functions, fix assertions) that
doesn't need a frontier model
- Should reduce latency (was timing out at 90s in CI) and cost
2026-03-06 07:10:44 +00:00
Kevin Turcios
8d1dfd9bdb
Merge pull request #2465 from codeflash-ai/testgen-review-repair
feat: per-function test review + repair endpoints
2026-03-05 22:37:21 +00:00
claude[bot]
6c7377a71f fix: resolve duplicate kwargs and missing HttpError import in testgen_repair 2026-03-05 22:14:28 +00:00
Kevin Turcios
641e609bda
Merge branch 'main' into testgen-review-repair 2026-03-05 22:09:37 +00:00
Kevin Turcios
de109c6e12
Update django/aiservice/core/shared/testgen_review/repair.py
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-03-05 17:09:28 -05:00
Kevin Turcios
737a270801
Update django/aiservice/core/shared/testgen_review/repair.py
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-03-05 17:09:17 -05:00
Kevin Turcios
0e9a8a5959
Merge pull request #2469 from codeflash-ai/fix-markdown-code-path-lookup
fix: clarify multi-file prompt to identify target file
2026-03-05 13:13:23 +00:00
Kevin Turcios
d9a963d305 fix: resolve contradicting response format instructions in multi-file prompt 2026-03-05 07:59:39 -05:00
Kevin Turcios
9a979439f1 fix: clarify multi-file prompt to identify target file and reduce context noise
Tell the LLM the first file is the optimization target and remaining
files are context only. Allow omitting unchanged context files from
the response.
2026-03-05 05:59:41 -05:00
Kevin Turcios
8106d53e32 Merge remote-tracking branch 'origin/testgen-review-repair' into testgen-review-repair 2026-03-04 14:30:01 -05:00
Kevin Turcios
1532a66278 feat: include coverage info in test review and improve review prompt
Accept coverage_summary in the review schema and pass it to the prompt.
Add two new review criteria: low coverage detection and constructor/
dependency error patterns. Coverage percentage is shown in the user
prompt so the reviewer can flag tests that don't exercise the function.
2026-03-04 14:14:19 -05:00
claude[bot]
f31b428a72 style: auto-fix linting issues 2026-03-04 09:15:27 +00:00