**Problem:**
Line 38 of create_pr.py logged all keys from function_to_tests dictionary
using `list(function_to_tests.keys())`. For large codebases like budibase
(1012 functions), this creates massive log files (43MB+) with a single
DEBUG statement printing thousands of function names.
**Root Cause:**
Debug logging statement was designed for small projects but became
problematic when used with monorepos containing hundreds of packages.
**Evidence:**
- Trace ID: 3d2ad2f0-254a-4401-9c93-84f691acabf0 (43MB log, 534K lines)
- Line 533922 shows list of 1000+ function keys in single log entry
- Affects 4/22 logs (18%) in recent optimization run
- Each occurrence adds ~100KB to log file
**Fix:**
Changed line 38 from:
logger.debug(f"[PR-DEBUG] function_to_tests keys: {list(function_to_tests.keys())}")
to:
logger.debug(f"[PR-DEBUG] function_to_tests has {len(function_to_tests)} keys")
This logs only the count instead of the full list, reducing log output
from ~100KB to ~50 bytes per call.
**Impact:**
- Severity: MEDIUM (doesn't break functionality, but bloats logs)
- Systematic: Reproducible on every optimization run with large codebases
- Benefits: Significantly reduces log file sizes for monorepo projects
**Testing:**
- Added 2 regression tests in test_create_pr_logging_bug.py
- Tests verify count is logged, not full key list
- Tests verify log output stays under 10KB (vs 100KB+ before)
- All existing tests pass
- Linting passes (uv run prek)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
||
|---|---|---|
| .claude | ||
| .codex | ||
| .gemini | ||
| .github | ||
| code_to_optimize | ||
| codeflash | ||
| codeflash-benchmark | ||
| codeflash-java-runtime | ||
| docs | ||
| experiments | ||
| packages/codeflash | ||
| tests | ||
| .gitignore | ||
| .mcp.json | ||
| .pre-commit-config.yaml | ||
| CLAUDE.md | ||
| codeflash.code-workspace | ||
| LICENSE | ||
| mypy_allowlist.txt | ||
| pyproject.toml | ||
| README.md | ||
| SECURITY.md | ||
| tessl.json | ||
| uv.lock | ||
Codeflash is a general purpose optimizer for Python that helps you improve the performance of your Python code while maintaining its correctness. It uses advanced LLMs to generate multiple optimization ideas for your code, tests them to be correct and benchmarks them for performance. It then creates merge-ready pull requests containing the best optimization found, which you can review and merge.
How to use Codeflash -
- Optimize an entire existing codebase by running
codeflash --all - Automate optimizing all future code you will write by installing Codeflash as a GitHub action.
- Optimize a Python workflow
python myscript.pyend-to-end by runningcodeflash optimize myscript.py
Codeflash is used by top engineering teams at Pydantic (PRs Merged), Roboflow (PRs Merged 1, PRs Merged 2), Unstructured (PRs Merged 1, PRs Merged 2), Langflow (PRs Merged) and many others to ship performant, expert level code.
Codeflash is great at optimizing AI Agents, Computer Vision algorithms, PyTorch code, numerical code, backend code or anything else you might write with Python.
Installation
To install Codeflash, run:
pip install codeflash
Add codeflash as a development time dependency if you are using package managers like uv or poetry.
Quick Start
-
To configure Codeflash for a project, at the root directory of your project where the pyproject.toml file is located, run:
codeflash init- It will ask you a few questions about your project like the location of your code and tests
- Ask you to generate an API Key to access Codeflash's LLMs
- Install a GitHub app to open Pull Requests on GitHub.
- Ask if you want to setup a GitHub actions which will optimize all your future code.
- The codeflash config is then saved in the pyproject.toml file.
-
Optimize your entire codebase:
codeflash --allThis can take a while to run for a large codebase, but it will keep opening PRs as it finds optimizations.
-
Optimize a script:
codeflash optimize myscript.py
Documentation
For detailed installation and usage instructions, visit our documentation at docs.codeflash.ai
Demo
- Optimizing the performance of new code for a Pull Request through GitHub Actions. This lets you ship code quickly while ensuring it remains performant.
https://github.com/user-attachments/assets/38f44f4e-be1c-4f84-8db9-63d5ee3e61e5
- Optiming a workflow end to end automatically with
codeflash optimize
https://github.com/user-attachments/assets/355ba295-eb5a-453a-8968-7fb35c70d16c
Support
Join our community for support and discussions. If you have any questions, feel free to reach out to us using one of the following methods:
License
Codeflash is licensed under the BSL-1.1 License. See the LICENSE file for details.
