Skip to content

fix(reliability): reject non-finite retry backoff on current main - #416

Open
seonghobae wants to merge 4 commits into
mainfrom
fix/retry-backoff-finite-main-20260812-r2
Open

fix(reliability): reject non-finite retry backoff on current main#416
seonghobae wants to merge 4 commits into
mainfrom
fix/retry-backoff-finite-main-20260812-r2

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Objective

Reject non-finite retry-backoff multipliers before they can corrupt scheduling decisions.

Exact current-head evidence

  • protected base: 961f44a19c4ced87f8062b3ab9842a9a08d05235;
  • test-only RED head: 0d2190ae53950bea7befba2bb8160469c6436700;
  • exact GREEN head: 70ec2e1eb9232c8ed41d7f016de80900e28faa38;
  • CI, Security Scan, SAST Semgrep, and fuzz: terminal-success;
  • mergeable: true;
  • unresolved review threads: zero.

Contract

NaN and positive/negative infinity fail with a controlled IllegalArgumentException; finite values preserve the existing minimum multiplier of 1.0.

Scope boundary

Configuration validation only. Retry scheduling, durable persistence, worker leases, backpressure, cancellation, and other issue-#312 primitives are unchanged.

Merge gate

Keep this exact head unchanged. Auto-merge may act only after live checks remain successful, zero valid unresolved findings remain, and a qualifying independent non-author approval is attached to this exact head. Automated evidence and predecessor reviews do not transfer.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

Review available on request

  • 🔍 Trigger review

Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment @coderabbitai review to review the latest changes. For a full review, comment @coderabbitai full review.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f6b0ac7a-3275-45ec-900f-e79dd27224d7


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@seonghobae
seonghobae marked this pull request as ready for review August 12, 2026 06:15
@seonghobae
seonghobae enabled auto-merge (squash) August 12, 2026 07:08

Copy link
Copy Markdown
Collaborator Author

@opencode-agent review

Please review the unchanged exact current head 08c00bed24bff2ac1e87000702f0d23e3d1a2550 against live protected main and repository gates. Treat checks/model output as evidence only and submit a formal review only for this exact head.

Copy link
Copy Markdown
Collaborator Author

Exact-current-head read-only review request for 70ec2e1eb9232c8ed41d7f016de80900e28faa38 on protected main 961f44a19c4ced87f8062b3ab9842a9a08d05235. CI, Security Scan, SAST Semgrep, and fuzz are terminal-success; the two-file configuration/reliability delta is mergeable with zero unresolved threads. Verify controlled rejection of every non-finite multiplier and preservation of the finite minimum multiplier contract. Do not mutate the branch or bypass independent approval.

@opencode-agent review
@cwl-noema-review review
@strix review
@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

base="961f44a19c4ced87f8062b3ab9842a9a08d05235"
head="70ec2e1eb9232c8ed41d7f016de80900e28faa38"
repo="ContextualWisdomLab/clearfolio"

printf '%s\n' '== Local commit verification =='
git rev-parse HEAD
git cat-file -e "${base}^{commit}"
git cat-file -e "${head}^{commit}"
git merge-base --is-ancestor "$base" "$head"
git diff --name-status "$base" "$head"
git diff --check "$base" "$head"
printf '%s\n' '== Exact diff =='
git diff --find-renames --find-copies --unified=80 "$base" "$head"

printf '%s\n' '== Changed-file outlines =='
git diff --name-only "$base" "$head" | while IFS= read -r file; do
  printf '\n--- %s ---\n' "$file"
  ast-grep outline "$file" --items all --view expanded || true
done

printf '%s\n' '== Relevant validation and test references =='
rg -n -C 5 -i 'retry.{0,20}backoff|backoff.{0,20}multiplier|isfinite|isnan|infinite|IllegalArgumentException' \
  $(git diff --name-only "$base" "$head")

printf '%s\n' '== GitHub pull request state =='
gh pr view 416 --repo "$repo" --json number,url,state,isDraft,mergeable,headRefOid,baseRefOid,reviewDecision,statusCheckRollup,reviews

printf '%s\n' '== GitHub exact-head check suites =='
gh api "repos/${repo}/commits/${head}/check-suites" --paginate \
  --jq '.check_suites[] | [.app.slug, .name, .status, .conclusion, .head_sha] | `@tsv`'

printf '%s\n' '== GitHub unresolved review threads =='
gh api graphql -F owner="ContextualWisdomLab" -F name="clearfolio" -F number=416 -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes { isResolved isOutdated comments(first: 1) { nodes { author { login } body } } }
      }
    }
  }
}' --jq '[.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)] | length'

Length of output: 32558


@seonghobae, I reviewed exact head 70ec2e1eb9232c8ed41d7f016de80900e28faa38 against base 961f44a19c4ced87f8062b3ab9842a9a08d05235.

I found no code-level findings.

ConversionProperties.setRetryBackoffMultiplier(double) rejects NaN, positive infinity, and negative infinity with IllegalArgumentException before the value reaches Math.max. The tests cover all three values. The finite minimum contract remains intact because 0.5 is clamped to 1.0.

The live pull request is mergeable and has zero unresolved threads. The current GitHub state is REVIEW_REQUIRED. Codecov, Claude, and CodeRabbit check suites are still queued. I did not approve the pull request or modify the branch.

⚠️ Action not completed

Review rate limited.

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.

Copy link
Copy Markdown
Collaborator Author

@opencode-agent review
@coderabbitai review
@cwl-noema-review review
@strix review

Review exact head 70ec2e1eb9232c8ed41d7f016de80900e28faa38 only. Exact-head CI, Security Scan, SAST Semgrep, and fuzz are terminal-success; unresolved inline findings are zero. Verify controlled rejection of NaN and positive/negative infinity while preserving the finite minimum multiplier of 1.0 and leaving scheduling behavior otherwise unchanged.

Review read-only; preserve independent reviewer identity. Do not mutate the branch, synthesize author approval, weaken protection, or merge.

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="ContextualWisdomLab/clearfolio"
pr="416"
base="961f44a19c4ced87f8062b3ab9842a9a08d05235"
head="70ec2e1eb9232c8ed41d7f016de80900e28faa38"

echo "== Exact commit and diff verification =="
git cat-file -e "${base}^{commit}"
git cat-file -e "${head}^{commit}"
git merge-base --is-ancestor "$base" "$head"
printf 'checked_out_head\t'; git rev-parse HEAD
git diff --name-status "$base" "$head"
git diff --check "$base" "$head"

echo "== Changed-file structure =="
git diff --name-only "$base" "$head" | while IFS= read -r file; do
  echo "--- $file ---"
  ast-grep outline "$file" --items all --view expanded || true
done

echo "== Exact patch =="
git diff --find-renames --find-copies --unified=50 "$base" "$head"

echo "== Validation and test references in changed files =="
changed_files=$(git diff --name-only "$base" "$head")
rg -n -C 8 -i \
  'setRetryBackoffMultiplier|retry.{0,30}backoff|backoff.{0,30}multiplier|Double\.isFinite|isFinite|isNaN|isInfinite|IllegalArgumentException|Math\.max' \
  $changed_files || true

echo "== Pull request exact-head state =="
gh pr view "$pr" --repo "$repo" \
  --json url,state,isDraft,mergeable,baseRefOid,headRefOid,reviewDecision,statusCheckRollup,reviews

echo "== Check suites for requested commit =="
gh api "repos/${repo}/commits/${head}/check-suites" --paginate \
  --jq '.check_suites[] | [.app.slug, .name, .status, (.conclusion // "null"), .head_sha] | `@tsv`'

echo "== Unresolved review threads =="
gh api graphql \
  -F owner="ContextualWisdomLab" \
  -F name="clearfolio" \
  -F number="$pr" \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes {
          isResolved
          isOutdated
          comments(first: 1) { nodes { author { login } body } }
        }
      }
    }
  }
}' \
  --jq '[.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)]'

Length of output: 42751


@seonghobae, I reviewed exact head 70ec2e1eb9232c8ed41d7f016de80900e28faa38 against protected base 961f44a19c4ced87f8062b3ab9842a9a08d05235.

I found no code-level findings.

ConversionProperties.setRetryBackoffMultiplier(double) rejects NaN, positive infinity, and negative infinity with IllegalArgumentException before the value reaches Math.max(1.0, ...). The added test covers all three values. The finite minimum multiplier contract remains unchanged. A finite value of 0.5 clamps to 1.0.

The delta changes only configuration validation and its test. It does not change retry scheduling behavior.

The pull request is open, mergeable, and has zero unresolved review threads. CI, Security Scan, SAST Semgrep, fuzz, CodeQL, and Strix completed successfully. The Codecov, Claude, and CodeRabbit check suites are still queued. I did not modify the branch, approve the pull request, alter protections, or merge.

⚠️ Action not completed

Review rate limited.

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.

Copy link
Copy Markdown
Collaborator Author

Exact-current-head independent review request for 70ec2e1eb9232c8ed41d7f016de80900e28faa38.

The two-file retry configuration boundary is mergeable; CI, Security Scan, SAST Semgrep, and fuzz are terminal-success; unresolved inline findings are zero. NaN and positive/negative infinity fail with a controlled error before scheduling arithmetic, while finite values retain the documented minimum multiplier of 1.0. Protected main has advanced since construction, so any base update must regenerate all exact-head evidence.

@opencode-agent review
@coderabbitai review
@cwl-noema-review review
@strix review

Review this exact head read-only. Do not mutate the branch, synthesize author approval, weaken protection, or merge.

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="ContextualWisdomLab/clearfolio"
pr="416"
head="70ec2e1eb9232c8ed41d7f016de80900e28faa38"

echo "== Pull request and live refs =="
gh pr view "$pr" --repo "$repo" \
  --json url,state,isDraft,headRefOid,baseRefName,baseRefOid,mergeable,reviewDecision,statusCheckRollup,reviews
live_main="$(gh api "repos/${repo}/git/ref/heads/main" --jq '.object.sha')"
printf 'live_main\t%s\n' "$live_main"
printf 'requested_head\t%s\n' "$head"

echo "== Local commit verification =="
git cat-file -e "${head}^{commit}"
git cat-file -e "${live_main}^{commit}"
printf 'checked_out_head\t'; git rev-parse HEAD
printf 'merge_base\t'; git merge-base "$live_main" "$head"
if git merge-base --is-ancestor "$live_main" "$head"; then
  echo "main_is_ancestor_of_head=true"
else
  echo "main_is_ancestor_of_head=false"
fi

base="$(git merge-base "$live_main" "$head")"
echo "== Effective diff =="
git diff --name-status "$base" "$head"
git diff --check "$base" "$head"
git diff --find-renames --find-copies --unified=50 "$base" "$head"

echo "== Changed-file outlines =="
git diff --name-only "$base" "$head" | while IFS= read -r file; do
  printf '\n--- %s ---\n' "$file"
  ast-grep outline "$file" --items all --view expanded || true
done

echo "== Relevant validation and test context =="
changed="$(git diff --name-only "$base" "$head")"
if [ -n "$changed" ]; then
  rg -n -C 10 -i \
    'setRetryBackoffMultiplier|retry.{0,30}backoff|backoff.{0,30}multiplier|Double\.isFinite|isFinite|isNaN|isInfinite|IllegalArgumentException|Math\.max' \
    $changed || true
fi

echo "== Exact-head check suites =="
gh api "repos/${repo}/commits/${head}/check-suites" --paginate \
  --jq '.check_suites[] | [.app.slug, .name, .status, (.conclusion // "null"), .head_sha] | `@tsv`'

echo "== Unresolved review threads =="
gh api graphql \
  -F owner="ContextualWisdomLab" -F name="clearfolio" -F number="$pr" \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes {
          isResolved
          isOutdated
          comments(first: 1) { nodes { author { login } body } }
        }
      }
    }
  }
}' \
  --jq '[.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)]'

Length of output: 45330


@seonghobae, I reviewed exact head 70ec2e1eb9232c8ed41d7f016de80900e28faa38 read-only.

I found no code-level findings.

ConversionProperties.setRetryBackoffMultiplier(double) rejects NaN, positive infinity, and negative infinity with IllegalArgumentException before Math.max(1.0, ...) runs. The test covers all three values. The finite minimum contract remains intact because 0.5 clamps to 1.0.

The diff changes only configuration validation and its unit test. It does not change retry scheduling behavior.

The pull request remains open and mergeable. It has zero unresolved review threads. The live main tip is now eb0a32e87e7470469c8fa0f8c67d9583654bef57, while the PR base remains 961f44a19c4ced87f8062b3ab9842a9a08d05235. Therefore, the requested head does not include current main.

The exact-head check-suites query still reports Codecov, Claude, and CodeRabbit as queued. The status rollup reports successful CI, Security Scan, SAST Semgrep, fuzz, and other completed checks. I did not approve, modify, or merge the pull request.

⚠️ Action not completed

Review rate limited.

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.

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