improvements: Big Reviewer Update #4
Reference in New Issue
Block a user
Delete Branch "improv/big-reviewer-update"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@codex review
👀 Codex review queued for commit
d6a9397.Review Result
This PR introduces a checkout robustness regression that can cause valid PR reviews to fail.
Findings
1) PR checkout assumes both refs exist on one remote
In
src/gitea_codex_bot/workers/container_runner.py(around the new fetch step), the runner does:clone_urlasorigingit fetch --no-tags origin <base_ref> <head_ref>For fork and other cross-repo topologies,
base_refandhead_refare not guaranteed to both exist on that same remote. If either ref is missing, fetch fails and review aborts before checkout.This is a correctness issue because it can reject reviewable PRs purely due to ref layout.
Suggested Fix
Use SHA-based fetch (or independent tolerant fetches) rather than requiring both branch names from one remote. The runner already has
base_shaandhead_sha, which are stable identifiers for this purpose.Test Gap
I did not see a test covering fork/cross-remote PR checkout where one of
base_ref/head_refis absent onorigin. Adding that case would prevent regressions here.Note: model
gpt-5.3-codex, input26991, output2212tokens used.feat: Enhance review prompt with detailed instructions and placeholders for empty sectionsto improvements: Big Reviewer Update@codex -h
Codex Help
Supported commands:
@codex review [security|performance|tests] [--full]@codex rerun@codex explain@codex fix [--branch ...]@codex ignore@codex -h/@codex --help/@codex helpStatus note:
1falsereviewstatussucceeded. Summary: The PR introduces a likely functional regression in PR checkout for some pull request topologies (especially forks) by fetching both base and head refs from a singleoriginremotDiscussion summary (4 comments, human
2, bot2):d6a9397.@codex review
👀 Codex review queued for commit
9392591.Review Result
I found functional regressions introduced by this PR that affect review correctness and behavior.
Findings
1) PR-scoped context removed from model input (high)
The new ephemeral runner path no longer passes explicit PR review context (changed files, unified diff, base/head scope, etc.) and now sends only a short free-form prompt (
review: ...).This can cause reviews to drift from "issues introduced by this PR" and produce incorrect findings.
2)
.codex-review.ymlbehavior regression (medium)The code still loads repo config, but key config-driven behaviors previously applied in prompt construction are no longer enforced in the new path (notably
default_modefallback for@codex reviewwithout explicit mode, and other scope-shaping behavior).Repos depending on these settings will observe changed review behavior.
3) Output marker parsing can fail on collisions (medium)
Result extraction uses global first-occurrence marker matching. If marker text appears inside generated JSON content, extraction can truncate and fail.
Use end-marker search anchored after the located start marker, and ideally randomized per-run markers.
Suggested Follow-up
Restore explicit PR scope/context in runner prompting or use a native base/head review target.
Reintroduce config semantics (
default_modeand other scope controls) in the new container path.Harden marker parsing and add tests for marker-collision scenarios.
Note: model
gpt-5.3-codex, input68257, output3309tokens used.@codex review "give me a merge score"
👀 Codex review queued for commit
08075cb.Review Result
I found one behavior regression introduced by this PR.
Findings
1)
@codex fixnow gets silently ignoredsrc/gitea_codex_bot/services/commands.pyremovesfixfromSUPPORTED_COMMANDS, soparse_command()returnsNonefor@codex fix ....Because of that, no job is queued for new fix comments, and the dispatcher's new deprecation path (
"@codex fix is no longer supported") is not reached for normal webhook traffic.This changes behavior from explicit handling to silent no-op for users.
Suggested Fix
Either:
fixparseable as a deprecated command and let dispatcher post the deprecation message, or@codex fixparse failures that posts the same deprecation notice.Merge Score
Not ready to merge yet due to the user-visible command regression above.
Note: model
gpt-5.3-codex, input40143, output2475tokens used.@codex penis
⚠️ Command
@codex penisis not supported. Try@codex -h.