Skip to content

chore(stack): reconcile admin security slice with #270 - #290

Merged
seonghobae merged 0 commit into
fix/admin-endpoint-auth-cleanfrom
fix/pii-logging-16240128950440010639
Aug 6, 2026
Merged

chore(stack): reconcile admin security slice with #270#290
seonghobae merged 0 commit into
fix/admin-endpoint-auth-cleanfrom
fix/pii-logging-16240128950440010639

Conversation

@seonghobae

Copy link
Copy Markdown
Collaborator

Purpose

Reconcile PR #268 onto authoritative parent #270 exact head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 without transferring predecessor-head evidence.

Evidence boundary

The parent advanced by one test-only commit after CodeRabbit correctly found that the stacked-PR CI regression was not executable by the repository's canonical python3 -m unittest discover -s scripts command. This maintenance merge adds the unittest.TestCase conversion while preserving the tenant-scoped administrative security and durable deletion slice.

After merge, #268 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 predecessor result transfers.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Warning

Review limit reached

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

Next review available in: 2 minutes

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: 8931965f-d20a-48ef-8e00-0caeca2ab919

📥 Commits

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

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

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

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@opencode-agent @cwl-noema-review Review maintenance PR #290 at exact current head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 against base head 13157889cb2fa8a6da9505016b112c59bb4a1380 and synthetic merge revision 7a52277c7fcefc3294bf8954e5a4b719f8023a65. Verify the parent test-only delta restores canonical script discovery without regressing tenant-scoped admin authorization, immutable job identity, atomic mutations, privacy-safe audit evidence, durable artifact deletion, concurrency tests, exact-head, synthetic-merge, coverage, Javadoc, or buyer-readiness gates. Do not transfer predecessor evidence; counted independent approval remains mandatory.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

@seonghobae I will perform an independent review of #290 at the specified exact head, base head, and synthetic merge revision. I will verify the test-discovery delta and the listed security, durability, concurrency, quality, and readiness gates without transferring predecessor evidence.

⚠️ 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 13157889cb2fa8a6da9505016b112c59bb4a1380 and synthetic merge revision 7a52277c7fcefc3294bf8954e5a4b719f8023a65. Verify that the maintenance delta preserves tenant-scoped administrative authorization, immutable retry identity, privacy-safe audit evidence, and durable artifact cleanup while restoring canonical unittest discovery and the authoritative parent 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

Tip

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== revision identity =='
for rev in \
  ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 \
  13157889cb2fa8a6da9505016b112c59bb4a1380 \
  7a52277c7fcefc3294bf8954e5a4b719f8023a65
do
  git show -s --format='%H%n%P%n%s%n%ci' "$rev"
done

printf '%s\n' '== exact head versus base: name-status =='
git diff --name-status 13157889cb2fa8a6da9505016b112c59bb4a1380 ed3863209109cd24a3cf1f1d6bdcd51db16fbef1

printf '%s\n' '== exact head versus base: diff =='
git diff --find-renames --find-copies --unified=80 \
  13157889cb2fa8a6da9505016b112c59bb4a1380 \
  ed3863209109cd24a3cf1f1d6bdcd51db16fbef1

printf '%s\n' '== synthetic merge versus base: name-status =='
git diff --name-status 13157889cb2fa8a6da9505016b112c59bb4a1380 7a52277c7fcefc3294bf8954e5a4b719f8023a65

printf '%s\n' '== affected file outlines =='
git diff --name-only 13157889cb2fa8a6da9505016b112c59bb4a1380 ed3863209109cd24a3cf1f1d6bdcd51db16fbef1 |
while IFS= read -r path; do
  case "$path" in
    *.py|*.java|*.js|*.ts)
      printf '\n-- %s --\n' "$path"
      ast-grep outline "$path" --items all || true
      ;;
  esac
done

Length of output: 110926


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base=13157889cb2fa8a6da9505016b112c59bb4a1380
head=ed3863209109cd24a3cf1f1d6bdcd51db16fbef1
merge=7a52277c7fcefc3294bf8954e5a4b719f8023a65

printf '%s\n' '== commit metadata and ancestry =='
for rev in "$base" "$head" "$merge"; do
  printf '\n-- %s --\n' "$rev"
  git show -s --format='commit=%H%nparents=%P%nsubject=%s%nauthor_date=%aI' "$rev"
done
printf '\nhead_is_descendant_of_base='
git merge-base --is-ancestor "$base" "$head" && echo yes || echo no
printf 'base_is_parent_of_merge='
git merge-base --is-ancestor "$base" "$merge" && echo yes || echo no
printf 'head_is_parent_of_merge='
git merge-base --is-ancestor "$head" "$merge" && echo yes || echo no

printf '%s\n' '== direct commit file deltas =='
for rev in "$base" "$head" "$merge"; do
  printf '\n-- %s --\n' "$rev"
  git diff-tree --no-commit-id --name-status -r "$rev"
done

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

printf '%s\n' '== discovery test at each revision =='
for rev in "$base" "$head" "$merge"; do
  printf '\n-- %s:scripts/test_ci_workflow_stack_coverage.py --\n' "$rev"
  git show "$rev:scripts/test_ci_workflow_stack_coverage.py" 2>&1 || true
done

printf '%s\n' '== canonical discovery configuration =='
for rev in "$base" "$head" "$merge"; do
  printf '\n-- %s --\n' "$rev"
  git ls-tree -r --name-only "$rev" | rg '(^|/)(pyproject\.toml|setup\.cfg|tox\.ini|pytest\.ini|Makefile|README.*|ci\.yml)$' || true
  git show "$rev:.github/workflows/ci.yml" 2>/dev/null | sed -n '1,260p' || true
done

printf '%s\n' '== security-slice path presence and relevant symbols at synthetic merge =='
git ls-tree -r --name-only "$merge" | rg \
  '(TenantScoped|Durable|ArtifactDeletion|AdministrativeAudit|LifecycleFenced|InMemoryConversionJobRepository|DocumentConversionService|AdminController|AuditPseudonymizer)' || true
git grep -n -E \
  'deleteByTenantAndId|retryDeadLetteredForTenant|findAllByTenantId|getJobsForTenant|requireSameTenant|AuditPseudonymizer|deletePdf' \
  "$merge" -- 'src/main/java' 'src/test/java' 2>/dev/null || true

Length of output: 79785


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="ContextualWisdomLab/clearfolio"
pr=290
head="ed3863209109cd24a3cf1f1d6bdcd51db16fbef1"
merge="7a52277c7fcefc3294bf8954e5a4b719f8023a65"

printf '%s\n' '== pull request metadata =='
gh pr view "$pr" --repo "$repo" \
  --json number,state,isDraft,headRefName,headRefOid,baseRefName,baseRefOid,mergeCommit,reviews,statusCheckRollup \
  --jq '{
    number,
    state,
    isDraft,
    headRefName,
    headRefOid,
    baseRefName,
    baseRefOid,
    mergeCommit: (.mergeCommit.oid // null),
    reviews: [.reviews[] | {author: .author.login, state, submittedAt, commit: (.commit.oid // null)}],
    statusCheckRollup: [.statusCheckRollup[] | {
      name: (.name // .context),
      status,
      conclusion,
      workflowName: (.workflowName // null),
      detailsUrl: (.detailsUrl // null),
      startedAt: (.startedAt // null),
      completedAt: (.completedAt // null)
    }]
  }'

printf '%s\n' '== check runs for exact head =='
gh api "repos/$repo/commits/$head/check-runs?per_page=100" \
  --jq '.check_runs[] | {
    name,
    status,
    conclusion,
    started_at,
    completed_at,
    details_url,
    app: .app.slug
  }'

printf '%s\n' '== check runs for synthetic merge revision =='
gh api "repos/$repo/commits/$merge/check-runs?per_page=100" \
  --jq '.check_runs[] | {
    name,
    status,
    conclusion,
    started_at,
    completed_at,
    details_url,
    app: .app.slug
  }'

printf '%s\n' '== reviews associated with pull request commits =='
gh api "repos/$repo/pulls/$pr/reviews?per_page=100" \
  --jq '.[] | {
    id,
    user: .user.login,
    state,
    submitted_at,
    commit_id,
    body
  }'

Length of output: 18746


@seonghobae Formal current-head review completed.

I reviewed exact head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1, base 13157889cb2fa8a6da9505016b112c59bb4a1380, and synthetic merge 7a52277c7fcefc3294bf8954e5a4b719f8023a65.

Result: I found no actionable source-level finding in the maintenance delta.

  • The synthetic merge has the specified base and exact head as parents.
  • The synthetic merge changes only scripts/test_ci_workflow_stack_coverage.py.
  • The change converts the two script tests to unittest.TestCase methods.
  • The tests retain assertions for all-PR coverage, exact-head checkout, merge compatibility, and buyer-readiness script tests.
  • The synthetic merge retains the tenant-scoped authorization, atomic delete and retry paths, immutable job-identifier protections, audit pseudonymization, durable artifact deletion, and concurrency test sources.

Evidence status: The required gate evidence is incomplete.

  • GitHub reports no check runs for synthetic merge 7a52277c7fcefc3294bf8954e5a4b719f8023a65.
  • New CI jobs for exact head are still queued.
  • Current PR status also includes failed, cancelled, and queued external checks.
  • GitHub reports no submitted PR reviews.

I did not transfer predecessor results. I did not approve this PR. The exact-head and synthetic-merge gates must complete with current evidence. A separate counted repository-write-authorized independent approval remains required before merge.

You are interacting with an AI system.

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@opencode-agent @cwl-noema-review Independently review maintenance PR #290 at exact current head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1, base head 13157889cb2fa8a6da9505016b112c59bb4a1380, and synthetic merge revision 7a52277c7fcefc3294bf8954e5a4b719f8023a65. Verify only current-head/base-sensitive evidence: the corrected canonical unittest stacked-PR CI regression is reconciled without dropping signed tenant claims, tenant-scoped persistence and atomic mutation boundaries, immutable job identity/generation, privacy-safe audit evidence, restart-safe durable artifact deletion, low-cardinality metrics, config-tree key separation, immutable pins, least privilege, or fail-closed behavior. Submit current actionable findings or formal review evidence only. Do not transfer predecessor evidence or infer the still-required counted repository-write-authorized independent approval.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="ContextualWisdomLab/clearfolio"
base="13157889cb2fa8a6da9505016b112c59bb4a1380"
head="ed3863209109cd24a3cf1f1d6bdcd51db16fbef1"
merge="7a52277c7fcefc3294bf8954e5a4b719f8023a65"

printf '%s\n' '== Revision identity and ancestry =='
for rev in "$base" "$head" "$merge"; do
  git show -s --format='commit=%H%nparents=%P%nsubject=%s' "$rev"
done
git merge-base --is-ancestor "$base" "$head" && echo 'base_to_head=ancestral' || echo 'base_to_head=not-ancestral'
git merge-base --is-ancestor "$base" "$merge" && echo 'base_to_merge=ancestral' || echo 'base_to_merge=not-ancestral'
git merge-base --is-ancestor "$head" "$merge" && echo 'head_to_merge=ancestral' || echo 'head_to_merge=not-ancestral'

printf '%s\n' '== Changed paths and maintenance diff =='
git diff --name-status "$base" "$head"
git diff --check "$base" "$head"
git diff --unified=60 "$base" "$head" -- scripts/test_ci_workflow_stack_coverage.py

printf '%s\n' '== Discovery test source at exact head and merge =='
for rev in "$head" "$merge"; do
  printf '\n-- %s --\n' "$rev"
  git show "$rev:scripts/test_ci_workflow_stack_coverage.py"
done

printf '%s\n' '== Canonical discovery invocation references =='
git grep -n -E 'python3? -m unittest discover -s scripts|unittest\.TestCase|test_ci_workflow_stack_coverage' \
  "$head" -- ':!scripts/test_ci_workflow_stack_coverage.py' 2>/dev/null || true

printf '%s\n' '== Security and durability contracts at synthetic merge =='
git grep -n -E \
  'signed.*tenant|tenant.*claim|deleteByTenantAndId|retryDeadLetteredForTenant|findAllByTenantId|requireSameTenant|generation|immutable|AuditPseudonymizer|pseudonym|deletePdf|artifact|low.cardinality|Meter|config.*key|permissions|fail.closed|deny' \
  "$merge" -- 'src/main/java' 'src/test/java' '.github' 'scripts' 2>/dev/null | head -n 500 || true

printf '%s\n' '== GitHub current PR state, reviews, and check runs =='
gh pr view 290 --repo "$repo" --json headRefOid,baseRefOid,mergeCommit,reviews,statusCheckRollup \
  --jq '{headRefOid,baseRefOid,mergeCommit:(.mergeCommit.oid // null),reviews:[.reviews[]|{author:.author.login,state,commit:(.commit.oid // null),submittedAt}],statusCheckRollup:[.statusCheckRollup[]|{name:(.name // .context),status,conclusion,workflow:(.workflowName // null),completedAt}]}'

for rev in "$head" "$merge"; do
  printf '\n-- checks for %s --\n' "$rev"
  gh api "repos/$repo/commits/$rev/check-runs?per_page=100" \
    --jq '.check_runs[] | {name,status,conclusion,app:.app.slug,completed_at,details_url}' || true
done

Length of output: 120903


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base="13157889cb2fa8a6da9505016b112c59bb4a1380"
merge="7a52277c7fcefc3294bf8954e5a4b719f8023a65"

printf '%s\n' '== Authoritative base-to-synthetic-merge delta =='
git diff --name-status "$base" "$merge"
git diff --check "$base" "$merge"
git diff --unified=80 "$base" "$merge"

printf '%s\n' '== Security and operational source changes in authoritative delta =='
git diff --name-only "$base" "$merge" -- \
  'src/main/java' 'src/test/java' '.github/workflows' 'src/main/resources' || true

printf '%s\n' '== CI workflow contract at synthetic merge =='
git show "$merge:.github/workflows/ci.yml" | sed -n '1,280p'

printf '%s\n' '== Discovery eligibility for every scripts test module =='
git ls-tree -r --name-only "$merge" scripts |
  awk '/^scripts\/test_.*\.py$/ {print}' |
  while IFS= read -r path; do
    if git show "$merge:$path" | grep -qE '^class [A-Za-z_][A-Za-z0-9_]*\(unittest\.TestCase\):'; then
      printf 'unittest-class %s\n' "$path"
    else
      printf 'not-unittest-class %s\n' "$path"
    fi
  done

Length of output: 9367


@seonghobae Formal current-head review completed.

I reviewed exact head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1, base 13157889cb2fa8a6da9505016b112c59bb4a1380, and synthetic merge 7a52277c7fcefc3294bf8954e5a4b719f8023a65.

Result: I found no actionable source-level finding.

The authoritative base-to-synthetic-merge delta changes only scripts/test_ci_workflow_stack_coverage.py.

  • The change converts the two tests to unittest.TestCase methods.
  • All scripts/test_*.py files now contain unittest.TestCase classes.
  • The change restores eligibility for python3 -m unittest discover -s scripts.
  • The assertions still require broad pull-request coverage, exact-head verification, Maven merge compatibility, and buyer-readiness script tests.
  • The authoritative delta does not modify Java source, Java tests, application configuration, or CI workflow files.

The synthetic merge retains the required CI contract:

  • pull_request: {} covers stacked pull requests.
  • Exact-head jobs check out and verify github.event.pull_request.head.sha.
  • The merge-compatibility job verifies the GitHub synthetic merge revision.
  • Actions use immutable commit pins.
  • The workflow declares contents: read.
  • Maven verification and buyer-readiness test execution remain configured.

Therefore, this maintenance delta does not drop the signed tenant-claim, tenant-scoped mutation, immutable identity and generation, audit privacy, durable deletion, low-cardinality metric, configuration separation, least-privilege, or fail-closed implementation. Those paths are unchanged in the authoritative delta.

Gate status: Approval is not supported yet.

  • Exact-head Maven test, Maven merge compatibility, and buyer-readiness script-test jobs have current successful runs.
  • No check runs exist for synthetic merge 7a52277c7fcefc3294bf8954e5a4b719f8023a65.
  • Other current checks remain queued, cancelled, or failed.
  • GitHub reports no submitted PR reviews.

I did not transfer predecessor evidence. I did not approve the pull request. The synthetic-merge and remaining current gates must complete. A separate counted repository-write-authorized independent approval remains required.

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

Closing as superseded duplicate reconciliation. The only delta in this maintenance PR is scripts/test_ci_workflow_stack_coverage.py; PR #268 exact current head 7d700ea3639f52ac8370b47da885e254e2eaad00 already contains the identical blob 2183cb5a6963539a25b74a29fdd3e2157583acb4, matching authoritative parent #270 exact head ed3863209109cd24a3cf1f1d6bdcd51db16fbef1. Merging #290 would add no content change and would only duplicate the already-applied reconciliation. No predecessor-head check, review, or approval evidence is transferred.

@seonghobae seonghobae closed this Aug 6, 2026
@seonghobae seonghobae reopened this Aug 6, 2026
@seonghobae
seonghobae merged commit 7a52277 into fix/admin-endpoint-auth-clean Aug 6, 2026
45 of 65 checks passed
@seonghobae
seonghobae force-pushed the fix/admin-endpoint-auth-clean branch from 7d700ea to 7a52277 Compare August 6, 2026 21:18
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