Skip to content

fix(pull-requests): apply available tracking summaries to filters - #17

Merged
kalvenschraut merged 4 commits into
gitea/access-guardsfrom
gitea/tracking-filters
Sep 8, 2026
Merged

kalvenschraut merged 4 commits into
gitea/access-guardsfrom
gitea/tracking-filters

Conversation

@kalvenschraut

@kalvenschraut kalvenschraut commented Sep 5, 2026 •

Copy link
Copy Markdown
Member

PR check filters now apply the provider’s available check summary, fixing Gitea rows that previously remained visible under the opposite filter. Pending and known-empty summaries match neither passing nor failing; hosts without summaries retain their existing behavior. The Gitea decoder reuses the shared tracking schemas.

Focused service cases cover passing, failing, pending, empty, and unavailable summaries. Final integrated server typecheck and targeted lint pass.

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 Luna and GPT-6 Astra. Harness: Codex.

@kalvenschraut

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 5, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Head commit changed.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Review Change Stack

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch gitea/tracking-filters

Comment @coderabbitai help to get the list of available commands.

@kalvenschraut
kalvenschraut marked this pull request as ready for review September 5, 2026 05:57
@kalvenschraut

Copy link
Copy Markdown
Member Author

@coderabbitai review

Please review this PR at its exact current head in stack pingdotgg#6. Verify correctness, regressions, security boundaries, and focused coverage against its current base, and report any actionable findings with file references.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== Current checkout =='
git status --short
git rev-parse HEAD
git branch --show-current

echo '== PR metadata =='
gh pr view 17 --repo RTVision/t3code --json number,title,headRefName,headRefOid,baseRefName,baseRefOid,commits,files,url

echo '== Current merge base and changed files =='
base_ref="$(gh pr view 17 --repo RTVision/t3code --json baseRefOid --jq .baseRefOid)"
merge_base="$(git merge-base HEAD "$base_ref" 2>/dev/null || true)"
printf 'base_ref=%s\nmerge_base=%s\n' "$base_ref" "$merge_base"
git diff --name-status "$merge_base"...HEAD
git diff --stat "$merge_base"...HEAD

echo '== File outlines for changed source and test files =='
git diff --name-only "$merge_base"...HEAD | while IFS= read -r file; do
  case "$file" in
    *.ts|*.tsx|*.js|*.jsx)
      echo "--- $file"
      ast-grep outline "$file" --items all 2>&1 || true
      ;;
  esac
done

Length of output: 24185


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base="$(git merge-base HEAD "$(gh pr view 17 --repo RTVision/t3code --json baseRefOid --jq .baseRefOid)")"

echo '== Exact patch =='
git diff --find-renames --find-copies --unified=80 "$base"...HEAD -- \
  apps/server/src/pullRequest/GiteaPullRequestApi.ts \
  apps/server/src/pullRequest/PullRequestService.ts \
  apps/server/src/pullRequest/PullRequestService.test.ts \
  packages/contracts/src/pullRequest.ts

echo '== Summary schema and all summary producers/consumers =='
rg -n -C 6 --glob '*.ts' \
  '\bPullRequestProviderSummary\b|\bcheckSummary\b|\bchecksState\b|\bsummary:\s*(Option\.)?(none|some)\b' \
  apps packages

echo '== Changed service and Gitea context =='
sed -n '1,180p' packages/contracts/src/pullRequest.ts
sed -n '1660,1810p' apps/server/src/pullRequest/GiteaPullRequestApi.ts
sed -n '840,1060p' apps/server/src/pullRequest/PullRequestService.ts

echo '== Focused test context =='
rg -n -C 12 --glob 'PullRequestService.test.ts' \
  'checkSummary|checksState|passing|failing|pending|available' \
  apps/server/src/pullRequest/PullRequestService.test.ts

Length of output: 125941


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== Gitea list and search implementation =='
rg -n -C 10 --glob 'GiteaPullRequestApi.ts' \
  'function listPullRequests|const listPullRequests|includeTracking|listPullRequests\(|searchPullRequests|matchesPullRequest' \
  apps/server/src/pullRequest/GiteaPullRequestApi.ts
rg -n -C 10 --glob 'GiteaPullRequestProvider.ts' \
  'listChangeRequests|giteaToChangeRequest|includeTracking|filters' \
  apps/server/src/pullRequest/GiteaPullRequestProvider.ts
rg -n -C 8 --glob 'GiteaSearch.ts' \
  'includeTracking|search|filters' \
  apps/server/src/pullRequest/GiteaSearch.ts

echo '== Service list: filter, pagination, cache =='
rg -n -C 12 --glob 'PullRequestService.ts' \
  'matchesRowFilters|toEntry\(|nextListCursor|truncated:|ListCache|listCache|Cache.make|input\.filters' \
  apps/server/src/pullRequest/PullRequestService.ts

echo '== Test helpers and cache configuration =='
sed -n '120,290p' apps/server/src/pullRequest/PullRequestService.test.ts
sed -n '1020,1210p' apps/server/src/pullRequest/PullRequestService.ts

echo '== Exact changed lines with line numbers =='
git diff --unified=0 "$(git merge-base HEAD "$(gh pr view 17 --repo RTVision/t3code --json baseRefOid --jq .baseRefOid)")"...HEAD -- \
  apps/server/src/pullRequest/GiteaPullRequestApi.ts \
  apps/server/src/pullRequest/PullRequestService.ts \
  apps/server/src/pullRequest/PullRequestService.test.ts \
  packages/contracts/src/pullRequest.ts

Length of output: 57243


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== Exact-head confirmation =='
printf 'checked_out='
git rev-parse HEAD
printf 'pr_head='
gh pr view 17 --repo RTVision/t3code --json headRefOid --jq .headRefOid

echo '== Patch consistency =='
base="$(git merge-base HEAD "$(gh pr view 17 --repo RTVision/t3code --json baseRefOid --jq .baseRefOid)")"
git diff --check "$base"...HEAD
git status --short

Length of output: 683


@kalvenschraut Reviewed PR #17 at current head d41838efd1fe8341cc3a8a9216e6f14ab150f6dd against stack base dfd06aec5894829f715dac7d8584f62bfe7588c4.

No actionable findings.

The Gitea provider requests tracking data for list and search paths. The service preserves the required distinction between unavailable summaries (undefined), known-empty summaries (null), pending summaries, and passing or failing summaries. The list-cache key includes the check filter. The focused service test covers all five states. The patch does not change authorization or repository-path security boundaries. git diff --check passed.

You are interacting with an AI system.

@kalvenschraut

Copy link
Copy Markdown
Member Author

Merge verdict: NO-GO (review gates incomplete).

Head: d41838efd1fe8341cc3a8a9216e6f14ab150f6dd.

  • Codex: NO-GO for merging under the requested two-reviewer gate. Merge readiness and review history were checked; the full dual code review is incomplete, and this comment is not a code approval.
  • Fable 5.1 / Claude CLI: BLOCKED. The requested claude-fable-5-1 review was attempted, but the CLI reached its session limit before returning a completed verdict. Its reported reset is midnight America/Chicago. There is no fresh Fable GO from this pass.
  • CodeRabbit: No formal APPROVED review. The successful CodeRabbit status check does not satisfy the requested approval gate. This branch has not enabled reviews.request_changes_workflow; the existing CodeRabbit replies on this series identify that configuration as preventing formal approvals.
  • GitHub merge state: MERGEABLE / CLEAN against gitea/access-guards.
  • Checks: the current rollup contains a successful CodeRabbit status only; it contains no build/test check result. No new tests or browser verification are claimed by this audit.

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.

@kalvenschraut

Copy link
Copy Markdown
Member Author

@coderabbitai approve

The maintainer requests formal approval for the remaining PRs. Please assess the exact current head d41838efd1fe8341cc3a8a9216e6f14ab150f6dd and submit APPROVED only if your review has no remaining blockers. If there is a blocker, leave its concrete reason and the fix required instead. A successful status check alone does not meet this merge gate.

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.

@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="RTVision/t3code"
pr="17"
requested_head="d41838efd1fe8341cc3a8a9216e6f14ab150f6dd"

echo "== Pull request metadata =="
gh pr view "$pr" --repo "$repo" \
  --json number,state,isDraft,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,files \
  --jq '{number,state,isDraft,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,files:[.files[].path]}'

echo "== Exact-head verification =="
printf 'requested_head=%s\n' "$requested_head"
printf 'checkout_head='
git rev-parse HEAD
printf 'pr_head='
gh pr view "$pr" --repo "$repo" --json headRefOid --jq .headRefOid

base_oid="$(gh pr view "$pr" --repo "$repo" --json baseRefOid --jq .baseRefOid)"
merge_base="$(git merge-base HEAD "$base_oid")"
printf 'merge_base=%s\n' "$merge_base"

echo "== Patch integrity and changed files =="
git diff --check "$merge_base"...HEAD
git diff --name-status "$merge_base"...HEAD

echo "== Changed implementation and tests =="
git diff --unified=45 "$merge_base"...HEAD -- \
  apps/server/src/pullRequest/GiteaPullRequestApi.ts \
  apps/server/src/pullRequest/PullRequestService.ts \
  apps/server/src/pullRequest/PullRequestService.test.ts \
  packages/contracts/src/pullRequest.ts

echo "== Approval-related CodeRabbit configuration =="
fd -HI -t f '^(\\.coderabbit\\.ya?ml|coderabbit\\.ya?ml)$' . -x sh -c '
  for file do
    echo "--- $file"
    rg -n -C 4 "reviews:|request_changes_workflow|approve|approval" "$file" || true
  done
' sh {} \;

Length of output: 24961


@kalvenschraut Approved.

I reviewed pull request #17 at exact head d41838efd1fe8341cc3a8a9216e6f14ab150f6dd against base dfd06aec5894829f715dac7d8584f62bfe7588c4.

I found no remaining blockers. The check-summary filtering preserves the intended unavailable, known-empty, pending, passing, and failing behavior. The focused test covers these states. git diff --check passed. I found no approval-workflow configuration that prevents this formal approval.

[approve]

You are interacting with an AI system.

@kalvenschraut

Copy link
Copy Markdown
Member Author

Merge verdict: NO-GO. This supersedes the earlier quota-only readiness comment.

Reviewed head: d41838efd1fe8341cc3a8a9216e6f14ab150f6dd; declared destination: gitea/access-guards.

  • Codex: GO. The checks filter preserves unavailable versus known-empty/pending/passing/failing states. No blocking defect found in this change.
  • Fable 5.1 / Claude CLI: GO, completed independent review of d41838efd1fe.
  • CodeRabbit: No formal GitHub APPROVED review on this head. Approval was requested. Some bot replies say “Approved” or contain [approve], but the GitHub review records do not contain an approval; this does not pass the requested gate. The original branch configuration does not enable reviews.request_changes_workflow.

Validation: 339 focused integrated PR tests plus 502 cross-provider tests passed at integration head 6114cf39; the integrated server typecheck passed. These checks validate the integrated implementation, not every earlier PR snapshot. The original #12 compiler failure was reproduced separately.

No merge is authorized while any blocker or required approval is outstanding. Recheck the resulting head and current base after corrections or stack merges.

This PR also belongs to the native Gitea stack: merging it would merge lower open members, including blocked #4/#5. Those predecessor gates must pass too.

@kalvenschraut

Copy link
Copy Markdown
Member Author

NO-GO now — inherited type failures

Reviewed commit: d41838efd1fe8341cc3a8a9216e6f14ab150f6dd.

Applying available row summaries to filters is sound: GitHub already carries check state, while providers without it are skipped. This head inherits the type failures fixed by #22. Fable gives conditional GO with #22; Codex holds the current merge candidate.

Include the type fixes and rerun the scoped server typecheck. Clear the native-stack predecessors before merging.

Validation by Codex: the exact #36 integration head 6114cf39dac017bd665908effd538e5f4f8d5764 passed 1,002 tests across 39 affected files, scoped server/web/desktop typechecks, and targeted lint (warnings, no errors). These are integration results, not a claim that this standalone head passed those checks. Fable independently reviewed source and diffs via Claude CLI; it did not run the tests.

Reviewers: Codex and Claude Fable 5.1 (Claude CLI).

@kalvenschraut

Copy link
Copy Markdown
Member Author

@coderabbitai review

Please independently review the newly pushed fixes at d6ba09547259a76bbaa2449fca41e65b4eec0369 and submit a formal GitHub approval on this head only if no blockers remain. Otherwise report the remaining actionable findings. The maintainer requested fresh CodeRabbit approval before merging; an older approval or a green skipped-review status does not satisfy that gate. Codex and Claude Fable 5.1 are separately re-reviewing the changes, including the prior no-go findings in this PR.

@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="RTVision/t3code"
pr="17"
requested_head="d6ba09547259a76bbaa2449fca41e65b4eec0369"

echo '== Pull request and exact-head verification =='
gh pr view "$pr" --repo "$repo" \
  --json number,state,isDraft,title,headRefName,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,files,commits \
  --jq '{number,state,isDraft,title,headRefName,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,files:[.files[].path],commits:[.commits[].oid]}'
printf 'requested_head=%s\n' "$requested_head"
printf 'checkout_head='
git rev-parse HEAD
printf 'pr_head='
gh pr view "$pr" --repo "$repo" --json headRefOid --jq .headRefOid

base_oid="$(gh pr view "$pr" --repo "$repo" --json baseRefOid --jq .baseRefOid)"
merge_base="$(git merge-base HEAD "$base_oid")"
printf 'merge_base=%s\n' "$merge_base"

echo '== Patch integrity and complete changed-file list =='
git diff --check "$merge_base"...HEAD
git diff --name-status "$merge_base"...HEAD
git diff --stat "$merge_base"...HEAD

echo '== Complete patch with review context =='
git diff --find-renames --find-copies --unified=55 "$merge_base"...HEAD

echo '== Changed TypeScript file outlines =='
git diff --name-only "$merge_base"...HEAD | while IFS= read -r file; do
  case "$file" in
    *.ts|*.tsx|*.js|*.jsx)
      echo "--- $file"
      ast-grep outline "$file" --items all 2>&1 || true
      ;;
  esac
done

echo '== Check-summary schemas, conversions, filtering, and all direct usages =='
rg -n -C 8 --glob '*.{ts,tsx}' \
  '\bPullRequestProviderSummary\b|\bcheckSummary\b|\bchecksState\b|\bmatchesRowFilters\b|\bcheckFilter\b|\bCheckFilter\b' \
  apps packages

echo '== Prior type-failure remediation commits and affected package scripts/configuration =='
git log --oneline --decorate --all --max-count=120 --grep='type\|Type\|`#22`' || true
fd -HI -t f '^(package\.json|tsconfig(\..*)?\.json)$' . -x sh -c '
  for file do
    echo "--- $file"
    rg -n -C 3 "\"(typecheck|lint|test)[^\"]*\"|references|compilerOptions" "$file" || true
  done
' sh {} \;

echo '== Recent review records =='
gh api "repos/$repo/pulls/$pr/reviews?per_page=100" \
  --jq '.[] | {id,user:.user.login,state,commit_id,submitted_at,body}'

Length of output: 207617


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="RTVision/t3code"
pr="17"

echo '== Commit-level patches on this pull request =='
for commit in \
  d41838efd1fe8341cc3a8a9216e6f14ab150f6dd \
  d581105c67db13e7fc88a3142c23b1ff750dd470 \
  6e51f9566b94c3cbe5a0025b636d734b72094749 \
  d6ba09547259a76bbaa2449fca41e65b4eec0369
do
  echo "--- $commit"
  git show --format=fuller --stat --find-renames "$commit"
  git show --format= --find-renames --unified=35 "$commit"
done

echo '== Gitea raw-decoder and list/search tracking paths =='
sed -n '200,390p' apps/server/src/pullRequest/GiteaPullRequestApi.ts
sed -n '660,940p' apps/server/src/pullRequest/GiteaPullRequestApi.ts
sed -n '1590,1810p' apps/server/src/pullRequest/GiteaPullRequestApi.ts
sed -n '1,190p' apps/server/src/pullRequest/GiteaPullRequestProvider.ts

echo '== Gitea API and provider tracking tests =='
sed -n '320,420p' apps/server/src/pullRequest/GiteaPullRequestApi.test.ts
sed -n '800,875p' apps/server/src/pullRequest/GiteaPullRequestApi.test.ts
sed -n '1,150p' apps/server/src/pullRequest/GiteaPullRequestProvider.test.ts

echo '== Service fixture typing and exact filter test =='
sed -n '45,170p' apps/server/src/pullRequest/PullRequestService.test.ts
sed -n '3825,3905p' apps/server/src/pullRequest/PullRequestService.test.ts

echo '== Runtime schema imports in Gitea decoder =='
rg -n -C 4 --glob 'GiteaPullRequestApi.ts' \
  'PullRequestChecksStateSchema|PullRequestReviewDecisionSchema|Schema\.Literals\(\["approved"|Schema\.Literals\(\["passing"' \
  apps/server/src/pullRequest/GiteaPullRequestApi.ts

echo '== GitHub checks and commit statuses at requested head =='
gh pr checks "$pr" --repo "$repo" --json name,state,workflow,link,bucket,event || true
gh api "repos/$repo/commits/d6ba09547259a76bbaa2449fca41e65b4eec0369/check-runs?per_page=100" \
  --jq '.check_runs[] | {name,status,conclusion,details_url,started_at,completed_at}' || true
gh api "repos/$repo/commits/d6ba09547259a76bbaa2449fca41e65b4eec0369/status" \
  --jq '{state,statuses:[.statuses[] | {context,state,target_url,description}]}' || true

Length of output: 82665


@kalvenschraut Approved.

I reviewed pull request #17 at exact head d6ba09547259a76bbaa2449fca41e65b4eec0369 against current base 51126d39ea6a258f6b1dd86912a7a7ddea37a762.

I found no remaining blockers.

The service applies the checks filter only when the provider supplies checksState. It retains rows with checksState === undefined. It excludes pending and known-empty (null) summaries from both passing and failing filters. The focused service test covers all five states.

The Gitea decoder now reuses the shared runtime schemas. The Gitea API and provider tests cover direct tracking reads, search hydration, and nullable summary conversion. The current patch does not change authorization or repository-path validation boundaries. git diff --check passed.

The current GitHub status is a skipped CodeRabbit status. It is not test or typecheck evidence. Sandbox restrictions prevented local test and typecheck execution.

[approve]

You are interacting with an AI system.

@kalvenschraut

Copy link
Copy Markdown
Member Author

Re-review: GO on the filter change; NO-GO for merging now

Reviewed head: d6ba09547259a76bbaa2449fca41e65b4eec0369. This updates my earlier go/no-go comment for the newly pushed repairs.

The filter uses available summaries and preserves rows from providers that do not report check state. CodeRabbit approves the incremental change.

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 73dd9c33ab15db71748beb6f0485ec212e6682f8; scoped server, web, and client-runtime typechecks passed, and targeted lint of 21 changed files passed with warnings. A separate single-worker reproduction exposed the native comment-reaction bug (100 reads and no reactions for a 50-reaction comment). These are integration results, not a claim that every standalone head passed the checks. Fable reviewed source and diffs through Claude CLI; it did not run tests.

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.

@kalvenschraut

kalvenschraut commented Sep 8, 2026 •

Copy link
Copy Markdown
Member Author

GO — merged after Codex, Fable 5.1, and CodeRabbit review.

Reviewed head: 4dac54fdeb89173589e9119ea2771567a5d53a40. This supersedes my previous decision on the older head.

Tracking filter behavior is retained; this head adds no new tree changes over its predecessor.

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 2e156ad621fb32b241abd4614a367aea7943d12e, including the previously failing native comment-reaction reproduction. Scoped server, web, and client-runtime typechecks passed; targeted lint of 24 changed files passed with warnings. Checks ran sequentially with one test worker. These validate the integration, not separate test runs on every component head. Fable independently reviewed source and diffs via Claude CLI.

Merged: f787a611cffccbdf0fd5e593bba8f615c607f532 at 2026-09-08T04:42:52Z. This PR merged in the 17-member Gitea batch into rtvision; the six dependency PRs followed as one reviewed batch. Final rtvision commit is 20926b20ed4ea72618f7608f70b1d4cea8e40053; its tree 9a0e0253b515456f6a117be5ebccf2cd8e911b01 exactly matches tested integration head #36.

@kalvenschraut
kalvenschraut merged commit f787a61 into rtvision Sep 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant