Skip to content

chore(stack): reconcile availability probes with #270 - #286

Merged
seonghobae merged 3 commits into
feat/liveness-readiness-probesfrom
fix/pii-logging-16240128950440010639
Aug 6, 2026
Merged

chore(stack): reconcile availability probes with #270#286
seonghobae merged 3 commits into
feat/liveness-readiness-probesfrom
fix/pii-logging-16240128950440010639

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Purpose

Reconcile PR #265 onto authoritative parent #270 exact head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 without transferring predecessor-head checks, comments, reviews, or approvals.

Evidence boundary

PR #265 remains divergent from the declared parent. This maintenance merge restores the missing parent commits while retaining the bounded liveness/readiness slice. CodeRabbit correctly found that the initial stacked-PR CI regression used top-level pytest functions and was not executed by the canonical python3 -m unittest discover -s scripts command. Exact current head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 converts the test to unittest.TestCase while retaining pytest compatibility.

After merge, #265 must be re-inspected at its resulting exact head and all exact-head and base-sensitive CI, fuzz, security, review, approval, and repository-policy gates must rerun. No successful result from any predecessor head is transferable. Do not merge this maintenance PR while any required check is queued, pending, failed, cancelled, skipped, absent, or stale, or without counted independent approval where repository policy requires it.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 4 seconds

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 81eeae78-e5dc-43b4-b6b7-161bbca6381b

📥 Commits

Reviewing files that changed from the base of the PR and between c1239e2 and ed38632.

📒 Files selected for processing (1)
  • scripts/test_ci_workflow_stack_coverage.py
📝 Walkthrough

Walkthrough

pull_request 트리거의 main 브랜치 제한을 제거했습니다. 모든 풀 리퀘스트에서 CI가 실행됩니다. 워크플로의 실행 조건과 기존 검증 단계를 확인하는 테스트를 추가했습니다.

Changes

CI 트리거 및 검증

Layer / File(s) Summary
CI 트리거 변경 및 커버리지 테스트
.github/workflows/ci.yml, scripts/test_ci_workflow_stack_coverage.py
pull_request 이벤트의 브랜치 제한을 제거했습니다. 모든 풀 리퀘스트 실행, exact-head SHA 사용, 체크아웃 HEAD 검증, Maven merge 호환성 및 Buyer-readiness 테스트 단계를 검사합니다.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 PR 목적의 가용성 프로브 조정과 관련되지만, 실제 주요 변경인 전체 PR 대상 CI 실행을 명확히 설명하지 않습니다.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/pii-logging-16240128950440010639

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

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@opencode-agent @cwl-noema-review Please independently review maintenance PR #286 at exact head c1239e20b048a582b19cb9eeb90f2c29f7c8f814 against base head d67947e3d405a47c155ea5078aeddb7e110f76de and synthetic merge revision 7344fd92e4bb8be3b82d9013c17822ed2deb9522. The only parent-restoration changes are unfiltered pull_request: {} CI coverage and its executable regression test. Verify that merging preserves the availability-probe slice and restores exact-head, synthetic-merge, buyer-readiness, 100% coverage, and Javadoc gates without weakening permissions or tests. Submit current actionable findings or a formal review only; do not transfer predecessor approval. A separate counted write-authorized independent approval remains mandatory.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

@seonghobae I will perform an independent review of PR #286 at the requested exact head. I will evaluate only current-head evidence and applicable merge-sensitive gates. I will not transfer predecessor approvals or checks.

✅ Action performed

Review finished.

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 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/test_ci_workflow_stack_coverage.py`:
- Line 1: Convert the top-level test_* functions in the coverage test module
into methods on a unittest.TestCase subclass so unittest discovery executes
them. Replace their assertions with self.assertIn, self.assertNotIn, and
self.assertGreaterEqual as appropriate, preserving the existing test behavior.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 668becb2-cac7-4f5d-bcf2-75c4acb3a63e

📥 Commits

Reviewing files that changed from the base of the PR and between d67947e and c1239e2.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • scripts/test_ci_workflow_stack_coverage.py

Comment thread scripts/test_ci_workflow_stack_coverage.py

Copy link
Copy Markdown
Collaborator Author

Addressed CodeRabbit's valid unittest discovery finding at exact head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1. CLAUDE.md defines python3 -m unittest discover -s scripts as the canonical helper-script command, so scripts/test_ci_workflow_stack_coverage.py now uses a documented unittest.TestCase and standard assertion methods while remaining pytest-compatible. Current-head and synthetic-merge checks must rerun; predecessor results do not transfer.

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@opencode-agent @cwl-noema-review Re-review maintenance PR #286 at exact current head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 against base head d67947e3d405a47c155ea5078aeddb7e110f76de and synthetic merge revision c4aaab9275073927f642c2bcf3596f7efa5da1ee. The prior valid discovery finding is addressed by the unittest.TestCase conversion. Verify the availability slice remains intact and the full parent acceptance contract is restored. Do not transfer predecessor evidence; counted independent approval remains mandatory.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

@seonghobae I will re-review PR #286 at the requested current head. I will verify the stated CI coverage, regression test, availability-probe preservation, and applicable merge-sensitive gates. I will use current-head evidence only. I will not transfer predecessor checks or approval.

⚠️ 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

@coderabbitai review

@opencode-agent @cwl-noema-review Please independently review exact current head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 only against target branch head d67947e3d405a47c155ea5078aeddb7e110f76de and synthetic merge revision c4aaab9275073927f642c2bcf3596f7efa5da1ee. Verify that the maintenance delta preserves the availability-probe slice while restoring the authoritative parent and canonical unittest discovery contract. Do not transfer predecessor reviews, checks, or approvals. Submit only current actionable findings or a formal current-head review. A separate counted repository-write-authorized independent approval remains mandatory before merge.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== checkout and requested revisions =='
git rev-parse HEAD
git status --short
for rev in \
  ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 \
  d67947e3d405a47c155ea5078aeddb7e110f76de \
  c4aaab9275073927f642c2bcf3596f7efa5da1ee
do
  printf '\n-- %s --\n' "$rev"
  git show -s --format='%H%nparents: %P%nsubject: %s' "$rev"
done

echo '\n== exact-head versus target diff summary =='
git diff --stat d67947e3d405a47c155ea5078aeddb7e110f76de ed3863209109cd24a3cf1f1d6bdcd51db16fbef1
git diff --name-status d67947e3d405a47c155ea5078aeddb7e110f76de ed3863209109cd24a3cf1f1d6bdcd51db16fbef1
git diff --find-renames --find-copies --unified=80 \
  d67947e3d405a47c155ea5078aeddb7e110f76de \
  ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 \
  -- .github/workflows/ci.yml scripts/test_ci_workflow_stack_coverage.py

echo '\n== synthetic merge versus target diff summary =='
git diff --stat d67947e3d405a47c155ea5078aeddb7e110f76de c4aaab9275073927f642c2bcf3596f7efa5da1ee
git diff --name-status d67947e3d405a47c155ea5078aeddb7e110f76de c4aaab9275073927f642c2bcf3596f7efa5da1ee
git diff --find-renames --find-copies --unified=80 \
  d67947e3d405a47c155ea5078aeddb7e110f76de \
  c4aaab9275073927f642c2bcf3596f7efa5da1ee \
  -- .github/workflows/ci.yml scripts/test_ci_workflow_stack_coverage.py

echo '\n== affected file maps =='
ast-grep outline .github/workflows/ci.yml --lang yaml --view expanded || true
ast-grep outline scripts/test_ci_workflow_stack_coverage.py --lang python --view expanded || true

echo '\n== CI workflow and regression test =='
cat -n .github/workflows/ci.yml
cat -n scripts/test_ci_workflow_stack_coverage.py

echo '\n== canonical helper-test guidance and availability references =='
if [ -f CLAUDE.md ]; then
  rg -n -C 4 'unittest|discover|scripts' CLAUDE.md
fi
rg -n -i -C 3 'availability|probe|exact-head|synthetic|buyer-readiness|javadoc|coverage' \
  .github scripts CLAUDE.md 2>/dev/null || true

Length of output: 32180


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='d67947e3d405a47c155ea5078aeddb7e110f76de'
head='ed3863209109cd24a3cf1f1d6bdcd51db16fbef1'
merge='c4aaab9275073927f642c2bcf3596f7efa5da1ee'

echo '== integrity and merge-result checks =='
git diff --check "$base" "$head"
git diff --check "$base" "$merge"
echo 'synthetic merge changed paths:'
git diff --name-only "$base" "$merge"
echo 'availability paths changed in synthetic merge:'
git diff --name-only "$base" "$merge" -- \
  'src/main/java/com/clearfolio/viewer/controller/HealthController.java' \
  'src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java' \
  'docs/operations/2026-08-05-availability-probes.md' \
  'docs/architecture.md' \
  'ARCHITECTURE.md'

echo '\n== current-head commits after target merge-base =='
git log --oneline --decorate --no-merges "$base..$head"
echo '\n== parent-restoration commits =='
git show --stat --oneline c1239e20b048a582b19cb9eeb90f2c29f7c8f814
git show --stat --oneline "$head"

echo '\n== relevant policy and test references =='
for file in AGENTS.md pom.xml scripts/test_verify_maven_test_reports.py; do
  if [ -f "$file" ]; then
    echo "-- $file --"
    rg -n -C 3 'unittest|discover|javadoc|JaCoCo|coverage|verify_maven_test_reports|Buyer-readiness|pull_request|merge compatibility' "$file" || true
  fi
done

echo '\n== GitHub PR current state and current-head checks =='
gh pr view 286 --repo ContextualWisdomLab/clearfolio \
  --json number,state,isDraft,mergeable,mergeStateStatus,headRefOid,baseRefOid,statusCheckRollup,reviews \
  --jq '{
    number, state, isDraft, mergeable, mergeStateStatus, headRefOid, baseRefOid,
    checks: [.statusCheckRollup[]? | {name, status, conclusion, detailsUrl}],
    reviews: [.reviews[]? | {author: .author.login, state, commit: .commit.oid}]
  }'

Length of output: 12317


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/clearfolio'
head='ed3863209109cd24a3cf1f1d6bdcd51db16fbef1'

echo '== workflow runs for the requested exact head =='
gh run list --repo "$repo" --commit "$head" --limit 100 \
  --json databaseId,name,workflowName,event,status,conclusion,createdAt,updatedAt,url \
  --jq '.[] | {
    databaseId, workflowName, event, status, conclusion, createdAt, updatedAt, url
  }'

echo '\n== jobs for non-successful exact-head runs =='
run_ids=$(
  gh run list --repo "$repo" --commit "$head" --limit 100 \
    --json databaseId,status,conclusion \
    --jq '.[] | select(.status != "completed" or (.conclusion != "success" and .conclusion != "neutral" and .conclusion != "skipped")) | .databaseId'
)
if [ -n "$run_ids" ]; then
  while IFS= read -r run_id; do
    [ -n "$run_id" ] || continue
    echo "-- run $run_id --"
    gh run view "$run_id" --repo "$repo" \
      --json status,conclusion,jobs,url \
      --jq '{
        status, conclusion, url,
        jobs: [.jobs[] | {name, status, conclusion, startedAt, completedAt, url}]
      }'
  done <<< "$run_ids"
else
  echo 'No non-successful exact-head runs found.'
fi

Length of output: 6124


@seonghobae I found no actionable code defect in the current synthetic-merge delta.

The review used head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1, base d67947e3d405a47c155ea5078aeddb7e110f76de, and merge revision c4aaab9275073927f642c2bcf3596f7efa5da1ee.

  • The synthetic merge changes only .github/workflows/ci.yml and scripts/test_ci_workflow_stack_coverage.py.
  • The synthetic merge does not modify the availability-probe paths.
  • pull_request: {} restores CI coverage for all pull request bases.
  • Permissions remain contents: read.
  • Exact-head checkout and SHA verification remain present.
  • Synthetic-merge Maven verification remains present.
  • Maven verify retains the JaCoCo and Javadoc gates.
  • Buyer-readiness script tests remain present.
  • The new regression test is discoverable with python3 -m unittest discover -s scripts.
  • Exact-head CI run 31119507026 completed successfully.

I did not transfer the predecessor CodeRabbit review, checks, or approval.

I do not issue approval. The PR status is still UNSTABLE, and other exact-head runs are queued or failed. Complete and pass all applicable current-head checks. Obtain the required independent write-authorized approval before 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

@coderabbitai review

@opencode-agent @cwl-noema-review Independently review maintenance PR #286 at exact current head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1, base head d67947e3d405a47c155ea5078aeddb7e110f76de, and synthetic merge revision c4aaab9275073927f642c2bcf3596f7efa5da1ee. Verify only current-head/base-sensitive evidence: the unittest.TestCase stacked-PR CI regression is executable by canonical python3 -m unittest discover -s scripts, the availability slice remains intact, exact-head and synthetic-merge checks are separated, immutable pins and least privilege remain intact, and no predecessor review/check/approval is transferred. Submit current actionable findings or formal review evidence only. A separate counted repository-write-authorized independent approval remains mandatory; do not infer or bypass it.

@coderabbitai

coderabbitai Bot commented Aug 6, 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='ContextualWisdomLab/clearfolio'
base='d67947e3d405a47c155ea5078aeddb7e110f76de'
head='ed3863209109cd24a3cf1f1d6bdcd51db16fbef1'
merge='c4aaab9275073927f642c2bcf3596f7efa5da1ee'

echo '== Requested revisions =='
for rev in "$base" "$head" "$merge"; do
  git show -s --format='%H%nparents: %P%nsubject: %s' "$rev"
  echo
done

echo '== Exact-head and synthetic-merge changed paths =='
for pair in "$base $head" "$base $merge"; do
  set -- $pair
  printf '%s..%s\n' "$1" "$2"
  git diff --name-status "$1" "$2"
done

echo '== Focused diffs =='
git diff --check "$base" "$head"
git diff --check "$base" "$merge"
git diff --find-renames --unified=100 "$base" "$head" -- \
  .github/workflows/ci.yml \
  scripts/test_ci_workflow_stack_coverage.py \
  src/main/java/com/clearfolio/viewer/controller/HealthController.java \
  src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java \
  docs/operations/2026-08-05-availability-probes.md \
  docs/architecture.md \
  ARCHITECTURE.md

echo '== Affected-file outlines =='
ast-grep outline .github/workflows/ci.yml --lang yaml --view expanded || true
ast-grep outline scripts/test_ci_workflow_stack_coverage.py --lang python --view expanded || true

echo '== CI workflow and regression-test source =='
cat -n .github/workflows/ci.yml
cat -n scripts/test_ci_workflow_stack_coverage.py

echo '== Canonical discovery guidance =='
if [ -f CLAUDE.md ]; then
  rg -n -C 5 'python3 -m unittest discover -s scripts|unittest|discover' CLAUDE.md
fi

echo '== Current PR state, checks, reviews, and commits =='
gh pr view 286 --repo "$repo" \
  --json number,state,isDraft,mergeable,mergeStateStatus,headRefOid,baseRefOid,statusCheckRollup,reviews,commits \
  --jq '{
    number, state, isDraft, mergeable, mergeStateStatus, headRefOid, baseRefOid,
    checks: [.statusCheckRollup[]? | {name, status, conclusion, workflowName, detailsUrl}],
    reviews: [.reviews[]? | {author: .author.login, state, commit: .commit.oid}],
    commits: [.commits[]? | {oid: .oid, messageHeadline: .messageHeadline}]
  }'

echo '== Workflow runs for the requested exact head =='
gh run list --repo "$repo" --commit "$head" --limit 100 \
  --json databaseId,workflowName,event,status,conclusion,url,headSha \
  --jq '.[] | {databaseId, workflowName, event, status, conclusion, headSha, url}'

echo '== Workflow runs for the requested synthetic merge revision =='
gh run list --repo "$repo" --commit "$merge" --limit 100 \
  --json databaseId,workflowName,event,status,conclusion,url,headSha \
  --jq '.[] | {databaseId, workflowName, event, status, conclusion, headSha, url}'

Length of output: 63064


@seonghobae I found no actionable code defect in the requested synthetic-merge delta.

I reviewed head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1, base d67947e3d405a47c155ea5078aeddb7e110f76de, and synthetic merge c4aaab9275073927f642c2bcf3596f7efa5da1ee.

  • The synthetic merge changes only .github/workflows/ci.yml and scripts/test_ci_workflow_stack_coverage.py.
  • The synthetic merge does not change the availability-probe paths. The availability slice remains intact in the merge result.
  • CiWorkflowStackCoverageTest subclasses unittest.TestCase and uses standard test_* methods. Its source conforms to python3 -m unittest discover -s scripts.
  • pull_request: {} enables CI for all pull request bases.
  • Exact-head verification remains separate from merge verification.
  • The exact-head jobs explicitly check out and verify github.event.pull_request.head.sha.
  • The merge-compatibility job verifies github.sha.
  • Maven verify, JaCoCo, Javadoc, and buyer-readiness script-test gates remain present.
  • Workflow permissions remain contents: read.
  • actions/checkout and actions/setup-python remain immutable SHA pins.
  • Exact-head CI run 31119507026 passed Maven test, Maven merge compatibility, and Buyer-readiness script tests.

I do not issue approval. GitHub reports the PR as MERGEABLE but UNSTABLE. Some current-head checks are failed or queued. The recorded CodeRabbit review is a comment on predecessor head c1239e20b048a582b19cb9eeb90f2c29f7c8f814. It does not transfer to the current head. Complete all applicable current-head checks and obtain the required independent write-authorized approval before merge.

You are interacting with an AI system.

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@opencode-agent @cwl-noema-review Review this maintenance PR at exact head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 against base d67947e3d405a47c155ea5078aeddb7e110f76de. Verify that it introduces only the missing authoritative #270 parent deltas, preserves the liveness/readiness slice, retains unfiltered pull-request CI plus canonical unittest discovery, and does not transfer predecessor checks or approvals. Treat queued/pending/absent exact-head or base-sensitive checks as not passing. Report actionable findings or formal review only.

@coderabbitai

coderabbitai Bot commented Aug 6, 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='ContextualWisdomLab/clearfolio'
base='d67947e3d405a47c155ea5078aeddb7e110f76de'
head='ed3863209109cd24a3cf1f1d6bdcd51db16fbef1'

echo '== requested revisions =='
for rev in "$base" "$head"; do
  git show -s --format='%H%nparents: %P%nsubject: %s' "$rev"
  echo
done

echo '== merge base and commit range =='
git merge-base "$base" "$head"
git log --oneline --decorate "$base..$head"

echo '== changed paths and diff checks =='
git diff --check "$base" "$head"
git diff --name-status "$base" "$head"
git diff --stat "$base" "$head"

echo '== focused maintenance diff =='
git diff --find-renames --unified=100 "$base" "$head" -- \
  .github/workflows/ci.yml \
  scripts/test_ci_workflow_stack_coverage.py

echo '== availability-probe changes in requested range =='
git diff --name-status "$base" "$head" -- \
  src/main/java/com/clearfolio/viewer/controller/HealthController.java \
  src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java \
  docs/operations/2026-08-05-availability-probes.md \
  docs/architecture.md \
  ARCHITECTURE.md

echo '== affected source maps =='
ast-grep outline .github/workflows/ci.yml --lang yaml --view expanded || true
ast-grep outline scripts/test_ci_workflow_stack_coverage.py --lang python --view expanded || true

echo '== workflow and regression test =='
cat -n .github/workflows/ci.yml
cat -n scripts/test_ci_workflow_stack_coverage.py

echo '== canonical discovery and gates =='
if [ -f CLAUDE.md ]; then
  rg -n -C 5 'python3 -m unittest discover -s scripts|unittest|discover' CLAUDE.md
fi
rg -n -i -C 3 'pull_request|permissions|exact-head|synthetic|merge.compatibility|maven.*verify|jacoco|javadoc|buyer.readiness|availability|liveness|readiness' \
  .github scripts pom.xml AGENTS.md CLAUDE.md 2>/dev/null || true

echo '== pull request state and check rollup =='
gh pr view 286 --repo "$repo" \
  --json number,state,isDraft,mergeable,mergeStateStatus,headRefOid,baseRefOid,statusCheckRollup,reviews \
  --jq '{
    number, state, isDraft, mergeable, mergeStateStatus, headRefOid, baseRefOid,
    checks: [.statusCheckRollup[]? | {name, workflowName, status, conclusion, detailsUrl}],
    reviews: [.reviews[]? | {author: .author.login, state, commit: .commit.oid}]
  }'

echo '== exact-head workflow runs =='
gh run list --repo "$repo" --commit "$head" --limit 100 \
  --json databaseId,workflowName,event,status,conclusion,headSha,url \
  --jq '.[] | {databaseId, workflowName, event, status, conclusion, headSha, url}'

Length of output: 66467


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/clearfolio'
base='d67947e3d405a47c155ea5078aeddb7e110f76de'
head='ed3863209109cd24a3cf1f1d6bdcd51db16fbef1'
commits=('a6df06c' 'c1239e20' 'ed386320')

echo '== per-commit changed paths =='
for commit in "${commits[@]}"; do
  echo "-- $commit --"
  git show --format='format:%H%n%s' --name-status "$commit"
done

echo '== availability source and test diffs, base..head =='
git diff --unified=120 "$base" "$head" -- \
  src/main/java/com/clearfolio/viewer/controller/HealthController.java \
  src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java

echo '== availability documentation and references, base..head =='
git diff --unified=100 "$base" "$head" -- \
  docs/operations/2026-08-05-availability-probes.md \
  ARCHITECTURE.md \
  docs/architecture.md \
  README.md \
  CLAUDE.md \
  docs/engineering/acceptance-criteria.md
for rev in "$base" "$head"; do
  echo "-- availability references at $rev --"
  git grep -n -i -E 'healthz|livez|readyz|liveness|readiness|availability.probe' "$rev" -- \
    '*.java' '*.md' ':!docs/operations/2026-08-05-availability-probes.md' || true
done

echo '== source and test at requested head =='
git show "$head:src/main/java/com/clearfolio/viewer/controller/HealthController.java" | cat -n
git show "$head:src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java" | cat -n

echo '== synthetic merge references from current PR metadata =='
gh pr view 286 --repo "$repo" --json potentialMergeCommit,mergeCommit \
  --jq '{potentialMergeCommit: .potentialMergeCommit.oid, mergeCommit: .mergeCommit.oid}'

echo '== completed failed exact-head run jobs and annotations =='
for run in 31119464879 31119466244 31119466248 31119466232 31119466465; do
  echo "-- run $run --"
  gh run view "$run" --repo "$repo" --json workflowName,event,status,conclusion,jobs,url \
    --jq '{workflowName,event,status,conclusion,url,jobs:[.jobs[]|{name,status,conclusion,url}]}'
done

Length of output: 146724


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='d67947e3d405a47c155ea5078aeddb7e110f76de'
merge='c4aaab9275073927f642c2bcf3596f7efa5da1ee'

echo '== synthetic merge identity and changed paths =='
git show -s --format='%H%nparents: %P%nsubject: %s' "$merge"
git diff --name-status "$base" "$merge" -- \
  src/main/java/com/clearfolio/viewer/controller/HealthController.java \
  src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java \
  docs/operations/2026-08-05-availability-probes.md \
  ARCHITECTURE.md \
  docs/architecture.md \
  docs/engineering/acceptance-criteria.md

echo '== synthetic merge availability diff =='
git diff --unified=40 "$base" "$merge" -- \
  src/main/java/com/clearfolio/viewer/controller/HealthController.java \
  src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java \
  docs/operations/2026-08-05-availability-probes.md

echo '== synthetic merge endpoint declarations =='
git show "$merge:src/main/java/com/clearfolio/viewer/controller/HealthController.java" \
  | nl -ba \
  | sed -n '1,100p'

Length of output: 1763


@seonghobae I found no actionable code defect in the synthetic-merge delta.

I reviewed exact head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 against base d67947e3d405a47c155ea5078aeddb7e110f76de. I also checked synthetic merge c4aaab9275073927f642c2bcf3596f7efa5da1ee.

  • The synthetic merge preserves the liveness/readiness slice. It has no changes to HealthController.java, HealthControllerTest.java, the availability-probe ADR, or the reviewed architecture and acceptance files.
  • The synthetic merge contains the CI workflow change and its regression test.
  • .github/workflows/ci.yml uses unfiltered pull_request: {}.
  • Exact-head and synthetic-merge validation remain separate.
  • The workflow retains SHA-pinned actions and contents: read.
  • CiWorkflowStackCoverageTest is compatible with canonical python3 -m unittest discover -s scripts.
  • The exact head differs from the base in availability-probe history. GitHub’s synthetic merge resolves those paths to the base version. The merge result therefore retains the availability contract.

I do not issue approval.

The PR is UNSTABLE. Current check evidence includes failures and queued checks. These include Analyze (actions), noema-review, dependency-review, and queued CI, fuzz, SAST, and security jobs. Under the requested rule, these checks are not passing.

The prior CodeRabbit review is attached to predecessor commit c1239e20b048a582b19cb9eeb90f2c29f7c8f814. I did not transfer that review, any predecessor checks, or approval.

You are interacting with an AI system.

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@opencode-agent @cwl-noema-review Please independently review exact current head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 for this reconciliation PR against base branch head d67947e3d405a47c155ea5078aeddb7e110f76de. Verify that the reconciliation restores #270's current stacked-PR CI contract without weakening #265's availability slice, that scripts/test_ci_workflow_stack_coverage.py is unittest-discoverable, and that no child-only behavior is lost. Do not transfer predecessor-head checks or approvals. Submit formal approval only for this exact head when the PR-specific required checks and independent-review policy are satisfied; otherwise report only current actionable findings.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/clearfolio'
base='d67947e3d405a47c155ea5078aeddb7e110f76de'
head='ed3863209109cd24a3cf1f1d6bdcd51db16fbef1'

echo '== revision identity =='
for rev in "$base" "$head"; do
  git show -s --format='%H%nparents: %P%nsubject: %s' "$rev"
  echo
done

echo '== merge base and exact range =='
git merge-base "$base" "$head"
git log --oneline --decorate "$base..$head"
git diff --check "$base" "$head"
git diff --name-status "$base" "$head"
git diff --stat "$base" "$head"

echo '== workflow and regression-test diff =='
git diff --find-renames --unified=120 "$base" "$head" -- \
  .github/workflows/ci.yml \
  scripts/test_ci_workflow_stack_coverage.py

echo '== availability-slice diff in exact range =='
git diff --name-status "$base" "$head" -- \
  src/main/java/com/clearfolio/viewer/controller/HealthController.java \
  src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java \
  docs/operations/2026-08-05-availability-probes.md \
  docs/architecture.md \
  ARCHITECTURE.md

echo '== focused file outlines and source =='
ast-grep outline .github/workflows/ci.yml --lang yaml --view expanded || true
ast-grep outline scripts/test_ci_workflow_stack_coverage.py --lang python --view expanded || true
cat -n .github/workflows/ci.yml
cat -n scripts/test_ci_workflow_stack_coverage.py

echo '== canonical discovery guidance =='
rg -n -C 4 'python3 -m unittest discover -s scripts|unittest|discover' CLAUDE.md 2>/dev/null || true

echo '== availability implementation at head =='
git show "$head:src/main/java/com/clearfolio/viewer/controller/HealthController.java" | cat -n
git show "$head:src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java" | cat -n

echo '== PR metadata, exact-head checks, reviews =='
gh pr view 286 --repo "$repo" \
  --json number,state,isDraft,mergeable,mergeStateStatus,headRefOid,baseRefOid,statusCheckRollup,reviews \
  --jq '{
    number, state, isDraft, mergeable, mergeStateStatus, headRefOid, baseRefOid,
    checks: [.statusCheckRollup[]? | {name, workflowName, status, conclusion, detailsUrl}],
    reviews: [.reviews[]? | {author: .author.login, state, commit: .commit.oid}]
  }'

echo '== workflow runs for requested exact head =='
gh run list --repo "$repo" --commit "$head" --limit 100 \
  --json databaseId,workflowName,event,status,conclusion,headSha,url \
  --jq '.[] | {databaseId, workflowName, event, status, conclusion, headSha, url}'

Length of output: 35098


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/clearfolio'
base='d67947e3d405a47c155ea5078aeddb7e110f76de'
head='ed3863209109cd24a3cf1f1d6bdcd51db16fbef1'

merge="$(gh pr view 286 --repo "$repo" --json potentialMergeCommit --jq '.potentialMergeCommit.oid // empty')"
printf 'potential synthetic merge: %s\n' "${merge:-<unavailable>}"

echo '== availability artifacts at base and head =='
for rev in "$base" "$head"; do
  echo "-- $rev: HealthController --"
  git show "$rev:src/main/java/com/clearfolio/viewer/controller/HealthController.java" | cat -n
  echo "-- $rev: HealthControllerTest --"
  git show "$rev:src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java" | cat -n
  echo "-- $rev: availability documentation exists --"
  git cat-file -e "$rev:docs/operations/2026-08-05-availability-probes.md" 2>/dev/null \
    && echo yes || echo no
done

echo '== availability artifact diff, base..head =='
git diff --unified=120 "$base" "$head" -- \
  src/main/java/com/clearfolio/viewer/controller/HealthController.java \
  src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java \
  docs/operations/2026-08-05-availability-probes.md \
  ARCHITECTURE.md \
  docs/architecture.md

echo '== commits that change availability artifacts =='
for commit in a6df06c c1239e20 ed386320; do
  echo "-- $commit --"
  git show --format='format:%H%n%s' --name-status "$commit" -- \
    src/main/java/com/clearfolio/viewer/controller/HealthController.java \
    src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java \
    docs/operations/2026-08-05-availability-probes.md \
    ARCHITECTURE.md \
    docs/architecture.md
done

if [ -n "$merge" ]; then
  echo '== availability artifacts in potential synthetic merge =='
  git show -s --format='%H%nparents: %P%nsubject: %s' "$merge"
  git diff --name-status "$base" "$merge" -- \
    src/main/java/com/clearfolio/viewer/controller/HealthController.java \
    src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java \
    docs/operations/2026-08-05-availability-probes.md \
    ARCHITECTURE.md \
    docs/architecture.md
  git show "$merge:src/main/java/com/clearfolio/viewer/controller/HealthController.java" | cat -n
  git show "$merge:src/test/java/com/clearfolio/viewer/controller/HealthControllerTest.java" | cat -n
  git cat-file -e "$merge:docs/operations/2026-08-05-availability-probes.md" 2>/dev/null \
    && echo 'merge availability documentation: present' \
    || echo 'merge availability documentation: absent'
fi

Length of output: 51550


@seonghobae I found no actionable code defect in the current reconciliation result.

I reviewed exact head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 against base d67947e3d405a47c155ea5078aeddb7e110f76de. I also verified the current potential synthetic merge c4aaab9275073927f642c2bcf3596f7efa5da1ee.

  • pull_request: {} restores CI coverage for every pull request base.
  • Exact-head validation remains separate from synthetic-merge validation.
  • The workflow retains immutable action pins and contents: read.
  • Maven verify, JaCoCo, Javadoc, and buyer-readiness gates remain configured.
  • CiWorkflowStackCoverageTest is compatible with canonical python3 -m unittest discover -s scripts.
  • The synthetic merge preserves the availability slice. It retains /healthz, /readyz, Spring ApplicationAvailability state handling, non-cacheable probe responses, availability tests, and the availability ADR.
  • The exact-head CI run 31119507026 completed successfully.

I do not issue approval.

The PR is UNSTABLE. Current-head checks include failures and queued jobs. The independent CodeRabbit review is attached to predecessor head c1239e20b048a582b19cb9eeb90f2c29f7c8f814 and does not transfer. Complete all applicable current-head checks and obtain the required current-head independent, write-authorized approval before 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.

@seonghobae
seonghobae merged commit c4aaab9 into feat/liveness-readiness-probes Aug 6, 2026
45 of 65 checks passed

Copy link
Copy Markdown
Collaborator Author

Superseded by direct fast-forward synchronization of feat/liveness-readiness-probes to the previously verified synthetic merge commit c4aaab9275073927f642c2bcf3596f7efa5da1ee. That commit has both former child head d67947e3d405a47c155ea5078aeddb7e110f76de and parent #270 head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 in its ancestry, so this maintenance PR no longer carries a missing delta. Closing unmerged; #265 must use only its new exact-head checks/reviews/approvals.

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