·
8 commits
to refs/heads/main
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
馃殌 Features
- feat(review): preserve findings across review reruns by @yefuyou in #2722
- feat(improve): cap suggestions per file after chunk aggregation by @junnhwan in #3034
- feat(git-providers): add public register_git_provider by @ylcn91 in #3023
- feat(github): trigger commands after submitted reviews by @junnhwan in #3011
- feat(review): add opt-in large-diff chunking with a stated merge rule by @ylcn91 in #3013
- Add support for Gemini 3.8 Flash by @takotakot in #3003
- feat: opt-in to skip same-model retry on timeout by @derrix060 in #2995
- feat(codecommit): review all pull request targets by @junnhwan in #2993
- feat(azure): preserve suggestion state across reruns by @TLA020 in #2724
- feat(skills): apply configured skills to top-level ask by @junnhwan in #2967
- feat: LiteLLM usage stats integration via otel for external monitoring systems by @jong47 in #2201
- feat: fall back to LiteLLM metadata for max tokens by @yashaskn8 in #2970
- feat: provider-agnostic push outputs for review (stdout/file/webhook/slack) by @shmulc8 in #2510
- Add review risk assessment and optional repository review rules by @xiaodeng666a in #2391
- feat(gitlab): add publish_improve_as_thread option by @sirluky in #2723
馃悰 Bug Fixes
- fix(tickets): refresh prompt budgets after extraction by @oleksii-tumanov in #3036
- fix(gitea): resolve base_url_html on first use so a repo-level web_url applies by @ylcn91 in #3029
- fix(improve): validate committable Python suggestions by @swayamg20 in #3046
- fix(bitbucket): parse patches from hunk headers by @oleksii-tumanov in #3032
- fix(gerrit): require webhook credentials on every call by @ylcn91 in #3027
- fix(gitea): walk every page of PR files and commits by @ylcn91 in #3022
- fix(servers): compare basic-auth credentials as bytes and fail closed on a half-configured pair by @ylcn91 in #3028
- fix(pr_agent/algo/utils.py): trust only pr-agent's own pyproject.toml for the version by @YokoAC in #3007
- fix(ci): harden release input validation by @PeterDaveHello in #2997
- fix(gitlab): skip suggestions pointing past blanked head content by @dongwonmoon in #3015
- fix(gerrit): return commit messages as text by @adongwanai in #3016
- fix: enable describe large-diff chunking prompts by @yashaskn8 in #3006
- fix(bitbucket): report code suggestion publish status by @oleksii-tumanov in #2992
- fix(qdrant): namespace the collection so pre-#2323 points cannot surface by @prakrititz in #2991
- fix: align CLI settings validation with repo allowlist by @mikemikimike in #2964
- fix(bitbucket): harden webhook credential handling by @PeterDaveHello in #2988
- fix: default auto approval to disabled by @nightcityblade in #2980
- fix: handle Gitea inline comment API errors by @chuanxu742-glitch in #2975
- fix(github): cast app_id to str so GitHub App auth works on PyJWT >=2.11 by @7487 in #2969
- fix(gitea): report success/failure and submit reviews, not drafts by @space-josh in #2878
- fix(gerrit): clean up failed repository setup by @Junaid-PK in #2926
- fix(docker): restore the pr-agent console script in the cli image by @IsmaelMartinez in #2936
- fix: sanitize Mermaid diagrams in PR descriptions by @swayamg20 in #2819
- fix: guard against empty commit list in Azure DevOps get_latest_commit_url by @Rehan30g in #2940
- fix(review): guard label updates by provider capability by @askarshabdanov1-collab in #2938
- fix(providers): normalize inverted line ranges by @RRXXZZYY in #2939
- fix(fallback): restore deployment after model retries by @junnhwan in #2929
- fix(similar-issue): scope optional vector imports by @Elioooon in #2927
- fix(pr_agent/algo/utils.py): returning an empty dict when every yaml fallback fails by @dwin-gharibi in #2730
- fix(gitlab): handle null webhook labels by @RRXXZZYY in #2922
- fix(pr_agent/config_loader.py): coercing verbosity_level to int by @dwin-gharibi in #2909
- fix(pr_agent/algo/utils.py): preferring an exact line match when anchoring a comment by @dwin-gharibi in #2905
- fix(suggestions): align fallback chunks after conversion failure by @YaoSong808 in #2867
- fix(qdrant): add pandas dep, fix cross-repo ID collisions, fix comment indexing by @gvago in #2323
- fix: redact git credentials from clone failure logs by @dwin-gharibi in #2697
- fix: share language matcher with plain diff provider by @apoorvdarshan in #2895
- fix(gerrit): use action parameter for dispatch and clean up temp repos by @gvago in #2331
- fix(pr_agent/tools/pr_similar_issue.py): migrating embeddings to the openai v1 client by @dwin-gharibi in #2726
- fix: bound language filename matching by @lxingy3 in #2846
馃摎 Documentation
- docs: sync GitBook navigation with MkDocs by @VedanthB in #3044
- docs: make provider support matrix single-source by @VedanthB in #3043
- docs(security): discourage baking secrets into images by @PeterDaveHello in #3019
- docs: make configuration defaults authoritative by @Ricky-7-Yan in #3000
- docs(usage-guide): note importable-env requirement for CLI commands by @dongwonmoon in #2990
- docs(usage-guide): add extension guide and fill contributor onboarding gaps by @dongwonmoon in #2966
- docs: clarify OSS best practices configuration by @Ricky-7-Yan in #2870
馃Ч Maintenance
- chore: unskip B005, B009, B012, B905 ruff rules by @even-even in #3060
- tests: build file:// URLs with Path.as_uri() to fix Windows failures by @bunnysayzz in #3055
- chore: unskip E713, E714, E721 ruff rules by @even-even in #3053
- test: use importlib mode for pytest test imports by @PeterDaveHello in #3018
- test(git-providers): extend the cross-provider contract to four more methods by @ylcn91 in #3024
- chore: unskip actionlint pre-commit and fix warnings by @even-even in #3001
- refactor: generate provider-prefixed Claude model ids by @yashaskn8 in #3004
- refactor(prompts): share diff-hunk guidance across tools by @swayamg20 in #2994
- test: limit default pytest discovery to unit tests by @PeterDaveHello in #2987
- chore: fold github_action Dockerfile and coverage workflow into existing definitions by @7487 in #2989
- test: add cross-provider get_line_link contract by @swayamg20 in #2984
- test: cover the pr_review_prompt user-half variable contract by @Rehan30g in #2950
- test: run ASGI unit tests without TestClient by @PeterDaveHello in #2948
- test: remove loopback socket dependency from extra-config unit tests by @PeterDaveHello in #2947
猬嗭笍 Dependencies
- fix: relax uvicorn version constraint by @mallesh-bot in #3020
- fix(deps): update lancedb for Python 3.14 resolution by @devnp2007 in #2983
- chore(deps): Upgrade LiteLLM to the latest stable v1.99.0 by @PeterDaveHello in #2981
Full Changelog: v0.44.0...v0.45.0