Repository navigation
fix(pull-requests): preserve native Gitea review pagination - #20
Conversation
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughReview comment retrieval now uses bounded pagination with required pagination evidence. The API propagates truncation status and processes returned rows. Tests cover truncation, unpaginated responses, exact safety-bound responses, and updated request parameters. ChangesReview comment pagination
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to Gitea review comments now use bounded pagination and report truncation when necessary, while preserving complete unpaginated responses. The covered behavior has no remaining actionable merge risk. Sequence Diagram(s)sequenceDiagram
participant listReviews
participant readUnknownSlice
participant Gitea review-comments endpoint
listReviews->>readUnknownSlice: Request bounded review comments
readUnknownSlice->>Gitea review-comments endpoint: Fetch page with page=1 and limit=50
Gitea review-comments endpoint-->>readUnknownSlice: Return rows and pagination headers
readUnknownSlice-->>listReviews: Return rows and truncation state
listReviews->>listReviews: Process returned rows
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai approve |
✅ Action performedComments resolved. Approval is disabled; enable |
|
Merge verdict: NO-GO (review gates incomplete). Head:
Confirmed code blocker at No merge performed. Resume the independent code reviews when Fable is available, obtain the missing/current CodeRabbit approval where applicable, and recheck the exact head and base before merging. |
|
@coderabbitai review The maintainer requests formal approval for the remaining PRs. Please assess the exact current head Known NO-GO reason to verify: The full headerless inline-comment page can still be reported complete; #36 contains the conservative truncation correction. Please do not approve while it remains unresolved. If branch configuration prevents formal approval, please state that explicitly. Independent Codex/Fable code verdicts are being refreshed separately; this request does not authorize merging or bypassing their findings. |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '== HEAD =='
git rev-parse HEAD
git status --short
echo '== Source outline =='
ast-grep outline apps/server/src/pullRequest/GiteaPullRequestApi.ts --items all --match 'readUnknownSlice|review|comment' --view expanded || true
echo '== Pagination implementation and caller context =='
rg -n -C 12 'readUnknownSlice|requirePaginationEvidence|paginationNext|truncated' \
apps/server/src/pullRequest/GiteaPullRequestApi.ts
echo '== Focused test outline =='
ast-grep outline apps/server/src/pullRequest/GiteaPullRequestApi.test.ts --items all --match 'review|pagination|truncat' --view expanded || true
echo '== Focused test cases =='
rg -n -C 10 'truncat|pagination|Link|X-Total-Count|review.*comment|comment.*review' \
apps/server/src/pullRequest/GiteaPullRequestApi.test.ts
echo '== PR 36 metadata and changed-file patches =='
gh pr view 36 --repo RTVision/t3code --json number,state,title,headRefOid,baseRefName,url 2>&1 || true
gh pr diff 36 --repo RTVision/t3code -- apps/server/src/pullRequest/GiteaPullRequestApi.ts apps/server/src/pullRequest/GiteaPullRequestApi.test.ts 2>&1 || trueLength of output: 40539 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '== Pagination constants and helper definitions =='
rg -n -C 12 'PAGE_SIZE|CONVERSATION_PAGES|const nextPagePath|function nextPagePath|const nextLink|const totalCount' \
apps/server/src/pullRequest/GiteaPullRequestApi.ts
echo '== Current ambiguous-response test bodies =='
sed -n '940,1080p' apps/server/src/pullRequest/GiteaPullRequestApi.test.ts
echo '== PR 20 changed-file patch =='
gh api 'repos/RTVision/t3code/pulls/20/files?per_page=100' \
--jq '.[] | select(.filename == "apps/server/src/pullRequest/GiteaPullRequestApi.ts" or .filename == "apps/server/src/pullRequest/GiteaPullRequestApi.test.ts") | "FILE: \(.filename)\n\(.patch // "<patch unavailable>")\n"' \
2>&1 || true
echo '== PR 36 relevant patches =='
gh api 'repos/RTVision/t3code/pulls/36/files?per_page=100' \
--jq '.[] | select(.filename == "apps/server/src/pullRequest/GiteaPullRequestApi.ts" or .filename == "apps/server/src/pullRequest/GiteaPullRequestApi.test.ts") | "FILE: \(.filename)\n\(.patch // "<patch unavailable>")\n"' \
2>&1 || true
echo '== CodeRabbit review workflow configuration =='
gh api 'repos/RTVision/t3code/contents/.coderabbit.yaml?ref=a09a525142247cd748df67026c1b374ba2d2888f' --jq '.content' 2>/dev/null | base64 --decode 2>/dev/null || true
gh api 'repos/RTVision/t3code/contents/.coderabbit.yml?ref=a09a525142247cd748df67026c1b374ba2d2888f' --jq '.content' 2>/dev/null | base64 --decode 2>/dev/null || trueLength of output: 82498
I cannot approve this PR. One blocker remains.
The current tests do not cover this case. They cover headerless responses with 51 and 200 rows. Those responses are not the ambiguous single-page case because Apply the conservative correction from
Formal approval is also unavailable for this PR configuration.
|
|
Merge verdict: NO-GO. This supersedes the earlier quota-only readiness comment. Reviewed head:
Where Fable returned GO, the concrete Codex blocker above still prevents merging. The follow-up request to reconcile findings hit the CLI session limit; no revised Fable verdict is claimed. Validation: 339 focused integrated PR tests plus 502 cross-provider tests passed at integration head No merge is authorized while any blocker or required approval is outstanding. Recheck the resulting head and current base after corrections or stack merges. |
|
NO-GO now — pagination completeness and type fixes required Reviewed commit: Exactly 50 rows without pagination headers can be reported as Include the conservative completeness handling and inference fixes. #36 itself retains separate blockers, so it is not currently an approved merge vehicle. Validation by Codex: the exact #36 integration head Reviewers: Codex and Claude Fable 5.1 (Claude CLI). |
|
@coderabbitai review Please independently review the newly pushed fixes at |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
expected='ef4238824778653c9dba037c4fc7032232ca8e54'
echo '== checked-out head =='
git rev-parse HEAD
git status --short
git show -s --format='%H%n%P%n%s' HEAD
echo '== PR metadata =='
gh pr view 20 --repo RTVision/t3code --json number,state,isDraft,headRefOid,baseRefName,url,changedFiles 2>&1 || true
echo '== changes from prior reviewed head =='
git diff --stat a09a525142247cd748df67026c1b374ba2d2888f "$expected" -- \
apps/server/src/pullRequest/GiteaPullRequestApi.ts \
apps/server/src/pullRequest/GiteaPullRequestApi.test.ts \
apps/server/src/pullRequest/GiteaPullRequestProvider.activity.test.ts
git diff --find-renames --unified=80 a09a525142247cd748df67026c1b374ba2d2888f "$expected" -- \
apps/server/src/pullRequest/GiteaPullRequestApi.ts \
apps/server/src/pullRequest/GiteaPullRequestApi.test.ts \
apps/server/src/pullRequest/GiteaPullRequestProvider.activity.test.ts
echo '== pagination definitions, control flow, and callers =='
rg -n -C 16 'PAGE_SIZE|CONVERSATION_PAGES|readUnknownSlice|requirePaginationEvidence|paginationNext|truncated|listReviews' \
apps/server/src/pullRequest/GiteaPullRequestApi.ts
echo '== relevant test locations =='
rg -n -C 10 'headerless|pagination|truncat|PAGE_SIZE|review comments|inline comments|X-Total-Count|Link' \
apps/server/src/pullRequest/GiteaPullRequestApi.test.ts
echo '== type-related changes in the new commits =='
git log --oneline a09a525142247cd748df67026c1b374ba2d2888f.."$expected"
git diff --name-status a09a525142247cd748df67026c1b374ba2d2888f "$expected"
echo '== CodeRabbit review workflow configuration at requested commit =='
for f in .coderabbit.yaml .coderabbit.yml; do
if git cat-file -e "$expected:$f" 2>/dev/null; then
echo "--- $f ---"
git show "$expected:$f"
fi
doneLength of output: 185459 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='ef4238824778653c9dba037c4fc7032232ca8e54'
base=$(gh pr view 20 --repo RTVision/t3code --json baseRefOid --jq .baseRefOid)
echo "== base and merge-base =="
printf 'base=%s\n' "$base"
merge_base=$(git merge-base "$base" "$head")
printf 'merge-base=%s\n' "$merge_base"
echo '== complete changed files and whitespace check =='
git diff --name-status "$merge_base" "$head"
git diff --check "$merge_base" "$head"
echo '== maps for modified Gitea provider and contract adapter files =='
for f in \
apps/server/src/pullRequest/GiteaPullRequestProvider.ts \
apps/server/src/pullRequest/GiteaPullRequestProvider.test.ts \
apps/server/src/pullRequest/PullRequestProvider.ts \
apps/server/src/pullRequest/GiteaConversation.ts \
apps/server/src/pullRequest/GiteaWorkflows.ts; do
if [ -f "$f" ]; then
echo "--- outline: $f ---"
ast-grep outline "$f" --items all --view expanded || true
fi
done
echo '== GiteaPullRequest model consumers =='
rg -n -C 5 'relationshipHeadBranch|headBranchAvailable|baseRepositoryNameWithOwner|baseRepositoryId|headRepositoryId|relationshipOnly' \
apps/server/src
echo '== complete current pagination and relationship implementation =='
sed -n '975,1195p' apps/server/src/pullRequest/GiteaPullRequestApi.ts
sed -n '1265,1415p' apps/server/src/pullRequest/GiteaPullRequestApi.ts
echo '== provider use of added Gitea pull request fields =='
rg -n -C 12 'GiteaPullRequestApi|relationshipHeadBranch|headBranchAvailable|baseRepository|headRepository|relationshipOnly' \
apps/server/src/pullRequest/GiteaPullRequestProvider.ts \
apps/server/src/pullRequest/GiteaPullRequestProvider.test.ts
echo '== configuration change =='
git diff --unified=30 "$merge_base" "$head" -- .coderabbit.yamlLength of output: 112325
The prior pagination blocker is fixed. A headerless nested inline-comment page with exactly 50 rows now reports I found no remaining actionable blocker. The current PR head has no net changed files against The current [approve] You are interacting with an AI system. |
|
Re-review: GO on the pagination repair; NO-GO for merging now Reviewed head: The headerless full-page completeness fix is now present. This head has the same tree as its declared base, so it adds no net code. CodeRabbit approves the reviewed result. Fable 5.1: GO on the individual change. Clear the inherited #9/#10/#12 behavior defects and the #5 integration conflict before merging the native-stack prefix. Validation by Codex: 308 focused tests across 9 files passed on integration head The remaining native-stack merges must clear their predecessors and the actual target branch. CodeRabbit’s commit-specific comments are distinguished from formal GitHub review records; rate-limited requests are not approvals. |
# Conflicts: # apps/server/src/pullRequest/GiteaPullRequestApi.test.ts
|
GO — merged after Codex, Fable 5.1, and CodeRabbit review. Reviewed head: The new regression verifies that later reviews share the remaining 200-row inline-comment budget rather than resetting it. CodeRabbit reviewed every exact head and cleared the combined integration. Its commit-specific approval is recorded in that comment; this is not a claim of a new formal GitHub APPROVED review on each PR. All three reviewers require #26 to land with #27 or later; they merged together in the dependency batch. Validation by Codex: 490 focused tests across 13 files passed on integration head Merged: |
Review activity now reports when nested Gitea review comments exceed its safety bound. Older Gitea endpoints that return an unpaginated array are read once; explicit pagination headers allow bounded traversal without duplicating comments.
Focused cases cover truncated paginated results, an unpaginated full page, and exactly the safety-bound count. Included in the final 228 passing focused T3 tests. The final integrated server typecheck and targeted lint pass with the stack follow-up #22.
Final stack validation at
256fd6fe5: 228 focused tests passed, followed by 61 API/workflow cases and the final team-recovery regression; server typecheck and targeted lint passed. The live settle-on-merge E2E previously passed with fixture cleanup. Companion Gitea backend and focused integration tests passed, including native revert across all five merge styles.Model: GPT-5.6 Terra and GPT-6 Astra. Harness: Codex; reviewed with Fable 5.1.
Summary by CodeRabbit