Skip to content

feat(enterprise): fit governed calibration reports - #546

Open
seonghobae wants to merge 41 commits into
mainfrom
feat/enterprise-facets-calibration-reports
Open

feat(enterprise): fit governed calibration reports#546
seonghobae wants to merge 41 commits into
mainfrom
feat/enterprise-facets-calibration-reports

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Buyer-visible gap

Enterprise executions can already be assembled into the canonical connected many-facet bundle, and the scoring package exposes domain-neutral names for the canonical Rust-backed report. This PR completes the bounded enterprise orchestration boundary so callers no longer have to manually wire criterion fitting, report IDs, review triggers, and exact bundle provenance.

Implemented boundary

  • Calls build_enterprise_issue_facets_calibration_bundle() once.
  • Validates the complete derived report-ID batch before any estimator delegation.
  • Normalizes caller review triggers once and forwards the exact tuple to every criterion.
  • Calls fit_scoring_facets_calibration_report() once per canonical criterion design.
  • Returns only existing ScoringFacetsCalibrationReport values.
  • Binds exact bundle, design, and criterion provenance while rejecting managed-key overrides.
  • Preserves shared serialization, handles, fingerprints, structured errors, package exports, PyO3 boundaries, and Rust ownership of psychometric arithmetic.
  • Retains no source or issue text in report serialization.

Rust trace compatibility

The shared report and HTML replay gates match the Rust estimator contract: a nonconverged fit may retain one terminal post-update likelihood after its n_iter optimization iterations. The terminal value remains evidence and is not misreported as another iteration. Other trace cardinalities continue to fail closed.

Bounded artifact publication

The standalone facets-report renderer now requires publication within one canonical caller-approved root. It rejects traversal, absolute escapes, existing symlink-parent escapes, and non-directory roots before report writes, then rechecks the canonical parent after directory creation. The current working directory is the default boundary. This is a confinement control, not an operating-system sandbox; the caller must retain authority over the approved directory during publication.

Verification

The focused suite covers deterministic orchestration, execution-order invariance, exact provenance, invalid identifiers, reserved metadata, source privacy, and a realistic connected Rust-backed two-criterion fit. The iteration-cap fixture verifies the terminal likelihood contract and publishes its HTML only beneath an explicit temporary root. Separate adversarial tests cover relative, absolute, symlink, and invalid-root paths. Added and modified production paths are held to focused 100% statement and branch coverage and complete public docstrings. Documentation, APA 7 doctoring, changelog fragments, and rendered CHANGELOG.md are included.

Exact head d111e2b1341b0daab6b813074c7a7dbcf5c24ff4 passed repository CI 30989444525, SAST Semgrep 30989444533, Security Scan 30989444567, and Strix 30989443777. Keep the PR unmerged until current-head automated review, an independent approving review, unresolved-thread policy, and branch protection are satisfied. Do not merge by bypass.

Closes #544
Advances #404

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: fc04d56c-fc26-4eeb-97c6-d4a13d1603f8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The change adds governed enterprise calibration-report fitting, public exports, deterministic validation, provenance controls, privacy tests, convergence-aware trace validation, and bounded HTML output publication.

Changes

Enterprise calibration reporting

Layer / File(s) Summary
Enterprise reporting orchestration
python/fast_mlsirm/scoring/enterprise_issue/...
Adds the enterprise fitting function, report limit, metadata validation, bundle construction, per-criterion delegation, provenance attachment, and package exports.
Enterprise reporting validation and evidence
tests/test_scoring_enterprise_issue_calibration_reporting.py
Tests deterministic reports, delegation, provenance, validation failures, capped Rust fitting, review triggers, and privacy-preserving serialization.
Enterprise reporting contracts and documentation
docs/enterprise_issue_facets_calibration_reports.md, docs/doctoring/..., docs/superpowers/..., docs/changelog.d/..., CHANGELOG.md
Documents the API, orchestration boundaries, metadata rules, scientific limits, verification requirements, and changelog entries.

Essay report trace and publication controls

Layer / File(s) Summary
Convergence-aware trace validation
python/fast_mlsirm/scoring/essay/calibration_reporting.py, python/fast_mlsirm/scoring/essay/calibration_report_html.py, docs/automated_essay_facets_calibration_reports.md
Accepts n_iter + 1 trace values only for nonconverged fits with a terminal post-update evaluation.
Bounded HTML output publication
python/fast_mlsirm/scoring/essay/calibration_report_html.py, tests/test_scoring_essay_facets_report_html_output_security.py, tests/test_scoring_essay_facets_report_html.py, docs/automated_essay_facets_calibration_reports.md, docs/changelog.d/essay-facets-calibration-report-html.md, CHANGELOG.md
Adds output_root confinement, traversal and symlink-parent checks, parent revalidation, invalid-root rejection, and security regression tests.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Caller
  participant EnterpriseReporting
  participant BundleBuilder
  participant SharedFacetFitter
  participant ReportTuple
  Caller->>EnterpriseReporting: submit executions and report parameters
  EnterpriseReporting->>BundleBuilder: validate and build governed bundle
  EnterpriseReporting->>SharedFacetFitter: fit each criterion design
  SharedFacetFitter-->>EnterpriseReporting: return shared calibration report
  EnterpriseReporting-->>ReportTuple: return reports in criterion order
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The implementation meets the functional requirements in [#544], but the required exact-head strix gate failed. Rerun or fix the exact-head strix check, then confirm all required repository and approval gates pass.
✅ Passed checks (4 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed The code, security changes, trace compatibility updates, tests, and documentation support the governed calibration reporting objectives in [#544].
Docstring Coverage ✅ Passed Docstring coverage is 86.67% which is sufficient. The required threshold is 80.00%.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding governed enterprise calibration report fitting.
✨ 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 feat/enterprise-facets-calibration-reports

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

Comment thread .github/workflows/pr-546-focused-validation.yml Fixed

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@opencode-agent @cwl-noema-review Review the exact current implementation head after the focused validation commit lands. Verify that the enterprise workflow calls the governed bundle assembler once, normalizes review triggers once, delegates each canonical criterion design once to the exact shared Rust-backed report helper, returns only ScoringFacetsCalibrationReport values, binds exact bundle/design/criterion provenance, preserves existing shared report wire identities and structured errors, rejects package-managed metadata overrides, retains no source or issue text, and adds no enterprise estimator/report schema or psychometric arithmetic. Require realistic Rust integration, 100% focused statement/branch coverage, complete public docstrings, APA 7 doctoring, changelog parity, exact-head CI/Rust/PyO3/package/GPU/fuzz/Security/SAST, independent approval, and zero actionable unresolved threads before merge.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

@seonghobae I will review the exact current head against the stated enterprise workflow boundary and merge requirements.

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

@coderabbitai review

Please review exact current head 9d2e31489f476d138062e089509af06cb183cd6d. Treat the resolved and outdated Scorecard thread as addressed. Verify the current implementation, focused 100% statement/branch coverage, public docstrings, Rust-backed delegation, privacy/provenance invariants, scientific claim boundaries, changelog parity, and exact-head CI/Security/SAST evidence. Do not rely on earlier head results.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

@seonghobae I will review only commit 9d2e31489f476d138062e089509af06cb183cd6d. I will not use results from an earlier head. I will treat the resolved and outdated Scorecard thread as addressed.

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

@opencode-agent @cwl-noema-review @coderabbitai Please review exact current head 9d2e31489f476d138062e089509af06cb183cd6d. Verify one canonical enterprise bundle build, pre-delegation report-ID batch validation, one shared Rust-backed report fit per criterion, exact bundle/design/criterion provenance, execution-order invariance, source-text privacy, terminal post-update likelihood trace semantics, realistic connected two-criterion recovery, 100% focused statement/branch coverage and docstrings, Rust/PyO3/GPU-no-skip/fuzz/security gates, APA 7 doctoring, and zero unresolved findings.

@seonghobae
seonghobae enabled auto-merge (squash) August 5, 2026 07:03
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

expected_sha='9d2e31489f476d138062e089509af06cb183cd6d'

echo '== checked-out commit =='
git rev-parse HEAD
git show -s --format='%H%n%P%n%s' HEAD

echo '== PR metadata and checks =='
gh pr view 546 --repo ContextualWisdomLab/fast-mlsirm \
  --json number,state,isDraft,headRefOid,baseRefOid,mergeCommit,statusCheckRollup,reviews \
  --jq '{number,state,isDraft,headRefOid,baseRefOid,mergeCommit,statusCheckRollup,reviews}'

echo '== changed files at requested head =='
base="$(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD HEAD^)"
git diff --name-status "$base" HEAD

echo '== relevant symbol locations =='
rg -n -C 3 \
  'def build_enterprise_issue_facets_calibration_bundle|def fit_scoring_facets_calibration_report|class ScoringFacetsCalibrationReport|ScoringFacetsCalibrationReport' \
  . -g '*.py' -g '!**/.git/**' || true

echo '== test and coverage configuration candidates =='
fd -HI '^(pyproject\.toml|pytest\.ini|\.coveragerc|tox\.ini|CHANGELOG\.md)$' . -x sh -c 'echo "--- $1"; sed -n "1,260p" "$1"' sh {} \;

Length of output: 42981


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== implementation outline =='
ast-grep outline python/fast_mlsirm/scoring/enterprise_issue/reporting.py --items all --view expanded
ast-grep outline python/fast_mlsirm/scoring/essay/calibration_reporting.py --items all --view expanded
ast-grep outline python/fast_mlsirm/scoring/essay/calibration_report_html.py --items all --view expanded
ast-grep outline tests/test_scoring_enterprise_issue_calibration_reporting.py --items all --view expanded

echo '== enterprise workflow implementation =='
sed -n '1,320p' python/fast_mlsirm/scoring/enterprise_issue/reporting.py

echo '== changed shared trace and HTML replay hunks =='
base="$(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD HEAD^)"
git diff --unified=80 "$base" HEAD -- \
  python/fast_mlsirm/scoring/essay/calibration_reporting.py \
  python/fast_mlsirm/scoring/essay/calibration_report_html.py \
  python/fast_mlsirm/scoring/enterprise_issue/__init__.py

echo '== focused workflow tests =='
sed -n '1,520p' tests/test_scoring_enterprise_issue_calibration_reporting.py

echo '== unresolved review threads =='
gh api graphql \
  -F owner='ContextualWisdomLab' \
  -F name='fast-mlsirm' \
  -F number=546 \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes {
          isResolved
          isOutdated
          path
          line
          comments(first: 10) { nodes { author { login } body } }
        }
      }
    }
  }
}' \
  --jq '.data.repository.pullRequest.reviewThreads.nodes[] | select((.isResolved | not) and (.isOutdated | not))'

echo '== failed Strix check =='
gh api repos/ContextualWisdomLab/fast-mlsirm/check-runs/92224304941 \
  --jq '{name,conclusion,output,details_url:.details_url,started_at,completed_at}'

Length of output: 57629


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== Strix failure annotation =='
gh api repos/ContextualWisdomLab/fast-mlsirm/check-runs/92224304941/annotations \
  --paginate \
  --jq '.[] | {path,start_line,end_line,annotation_level,message,title,raw_details}'

echo '== Strix failed-job log tail =='
gh run view 30980689991 --repo ContextualWisdomLab/fast-mlsirm --log-failed 2>&1 | tail -n 240 || true

echo '== exact shared fitting delegation =='
sed -n '400,475p' python/fast_mlsirm/scoring/essay/calibration_reporting.py
ast-grep run \
  --pattern 'fit_scoring_facets_design($$$)' \
  --lang python \
  python/fast_mlsirm/scoring/essay/calibration_reporting.py \
  python/fast_mlsirm/scoring/calibration_reporting.py

echo '== trace-contract coverage =='
rg -n -C 4 \
  'facets_iteration_trace_mismatch|n_iter \+ 1|terminal.*likelihood|terminal.*evaluation|loglik_trace' \
  tests python/fast_mlsirm/scoring/essay -g '*.py'

echo '== PR test and coverage-workflow diff =='
base="$(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD HEAD^)"
git diff --unified=30 "$base" HEAD -- tests/test_scoring_enterprise_issue_calibration_reporting.py
fd -HI '(coverage|ci|workflow)' .github . 2>/dev/null | head -n 100
rg -n -C 8 \
  'coverage-source-tree|coverage-evidence|fail_under|branch = true|interrogate' \
  .github pyproject.toml -g '*.yml' -g '*.yaml' -g '*.toml' 2>/dev/null || true

echo '== changed public documentation and APA doctoring checks =='
sed -n '1,300p' docs/enterprise_issue_facets_calibration_reports.md
sed -n '1,300p' docs/doctoring/enterprise-issue-facets-calibration-reports.md

Length of output: 91221


@seonghobae I reviewed exact head 9d2e31489f476d138062e089509af06cb183cd6d.

I found no actionable implementation finding.

The workflow calls build_enterprise_issue_facets_calibration_bundle() once. It validates all derived report IDs before fitting. It normalizes review triggers once. It delegates once per canonical criterion design to fit_scoring_facets_calibration_report(), which delegates to the Rust-backed fitting boundary.

The workflow returns the existing ScoringFacetsCalibrationReport type. It binds exact bundle, design, and criterion provenance. It rejects caller overrides of package-managed metadata. The focused tests cover order invariance, privacy, invalid identifiers, reserved metadata, connected two-criterion Rust fitting, terminal likelihood retention, and HTML replay.

The trace contract is consistent in report construction and HTML replay. A nonconverged fit can contain n_iter + 1 likelihood values. A converged fit cannot use that extra terminal value.

No actionable unresolved review threads were returned. The Python, Rust, package, GPU smoke, fuzz, SAST, dependency, OSV, Trivy, CodeQL, Scorecard, and coverage-evidence checks are successful on this head. The documentation, changelog, public docstring, and scientific-limit material are present.

I cannot confirm the full required security-gate condition or approve this PR. The exact-head strix check failed with exit code 1. GitHub returned no usable job log because its workflow endpoint returned 404. Re-run or resolve that failed check 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
Contributor Author

@coderabbitai review

@opencode-agent @cwl-noema-review Review exact head d111e2b1341b0daab6b813074c7a7dbcf5c24ff4. Verify the governed enterprise criterion-report orchestration, capped Rust trace contract, package-managed provenance, source-text privacy, and the output-path security repair. In particular, confirm that report publication requires a canonical caller-approved root, rejects relative/absolute/symlink escapes and non-directory roots before write, and that the realistic Rust integration explicitly supplies its temporary output root. Treat status-only, stale-head, rate-limited, or self-authored evidence as insufficient. Require current-head CI, Rust/PyO3, GPU no-skip, package, fuzz, Security Scan, SAST, zero actionable threads, and independent approval before merge.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/fast-mlsirm'
expected_sha='d111e2b1341b0daab6b813074c7a7dbcf5c24ff4'

echo '== Exact checked-out head =='
git rev-parse HEAD
git show -s --format='commit=%H%nparents=%P%nsubject=%s' HEAD
test "$(git rev-parse HEAD)" = "$expected_sha"

echo '== PR head, check rollup, and reviews =='
gh pr view 546 --repo "$repo" \
  --json number,state,isDraft,headRefOid,statusCheckRollup,reviews \
  --jq '{number,state,isDraft,headRefOid,statusCheckRollup,reviews}'

echo '== Changed files at exact head =='
base="$(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD HEAD^)"
git diff --name-status "$base" HEAD

echo '== Source and test outlines =='
ast-grep outline python/fast_mlsirm/scoring/enterprise_issue/reporting.py --items all --view expanded
ast-grep outline python/fast_mlsirm/scoring/essay/calibration_reporting.py --items all --view expanded
ast-grep outline python/fast_mlsirm/scoring/essay/calibration_report_html.py --items all --view expanded
ast-grep outline tests/test_scoring_enterprise_issue_calibration_reporting.py --items all --view expanded
ast-grep outline tests/test_scoring_essay_facets_report_html_output_security.py --items all --view expanded

echo '== Enterprise orchestration =='
sed -n '1,340p' python/fast_mlsirm/scoring/enterprise_issue/reporting.py

echo '== Trace validation and HTML output confinement =='
rg -n -C 10 \
  'def _validate_iteration_trace_length|def render_essay_facets_calibration_report_html|output_root|resolve\(|is_relative_to|symlink|absolute|relative' \
  python/fast_mlsirm/scoring/essay/calibration_reporting.py \
  python/fast_mlsirm/scoring/essay/calibration_report_html.py

echo '== Relevant test coverage and Rust integration output root =='
rg -n -C 8 \
  'fit_enterprise_issue_facets_calibration_reports|output_root|tmp_path|Rust|n_iter \+ 1|terminal|symlink|absolute|traversal' \
  tests/test_scoring_enterprise_issue_calibration_reporting.py \
  tests/test_scoring_essay_facets_report_html_output_security.py \
  tests/test_scoring_essay_facets_report_html.py

echo '== Unresolved, current review threads =='
gh api graphql \
  -F owner='ContextualWisdomLab' -F name='fast-mlsirm' -F number=546 \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes {
          isResolved isOutdated path line
          comments(first: 10) { nodes { author { login } body } }
        }
      }
    }
  }
}' \
  --jq '.data.repository.pullRequest.reviewThreads.nodes[] | select((.isResolved | not) and (.isOutdated | not))'

echo '== Check runs pinned to exact commit =='
gh api "repos/$repo/commits/$expected_sha/check-runs?per_page=100" \
  --jq '.check_runs[] | {name,status,conclusion,details_url,app:.app.slug,started_at,completed_at}'

echo '== Independent approval evidence =='
gh pr view 546 --repo "$repo" --json reviews \
  --jq '.reviews[] | {author:.author.login,state,submittedAt,commit:.commit.oid}'

Length of output: 92410


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/fast-mlsirm'
sha='d111e2b1341b0daab6b813074c7a7dbcf5c24ff4'

echo '== Shared report helper and Rust-backed fitting boundary =='
ast-grep outline python/fast_mlsirm/scoring/calibration_reporting.py --items all --view expanded
rg -n -C 12 \
  'def fit_scoring_facets_calibration_report|fit_scoring_facets_design\(|def fit_scoring_facets_design|FacetsFit' \
  python/fast_mlsirm/scoring/calibration_reporting.py \
  python/fast_mlsirm/scoring/calibration.py

echo '== Bundle assembly and canonical design ordering =='
ast-grep outline python/fast_mlsirm/scoring/enterprise_issue/calibration.py --items all --view expanded
rg -n -C 10 \
  'def build_enterprise_issue_facets_calibration_bundle|designs|sorted\(' \
  python/fast_mlsirm/scoring/enterprise_issue/calibration.py

echo '== Focused orchestration test assertions =='
sed -n '100,325p' tests/test_scoring_enterprise_issue_calibration_reporting.py

echo '== Exact-head CI run result =='
gh run view 30989444525 --repo "$repo" \
  --json headSha,status,conclusion,jobs \
  --jq '{headSha,status,conclusion,jobs:[.jobs[] | {name,status,conclusion,startedAt,completedAt}]}'

echo '== Exact-head Strix run result =='
gh run view 30989443777 --repo "$repo" \
  --json headSha,status,conclusion,jobs \
  --jq '{headSha,status,conclusion,jobs:[.jobs[] | {name,status,conclusion,startedAt,completedAt}]}'

echo '== Current exact-head check conclusions =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" \
  --jq '[.check_runs[] | select(.name | IN("python","rust","fuzz","gpu-smoke","package","strix","Semgrep (multi-language SAST)","osv-scan","trivy-fs")) | {name,status,conclusion,app:.app.slug,details_url}]'

echo '== Current reviews, restricted to approvals and exact head =='
gh pr view 546 --repo "$repo" --json reviews \
  --jq '[.reviews[] | {author:.author.login,state,commit:.commit.oid,submittedAt}]'

Length of output: 17294


@seonghobae I reviewed exact head d111e2b1341b0daab6b813074c7a7dbcf5c24ff4.

I found no actionable implementation issue in the inspected source and focused tests.

The enterprise workflow calls build_enterprise_issue_facets_calibration_bundle() once. It validates all derived report IDs before delegation. It normalizes review triggers once. It delegates once per canonical criterion design through fit_scoring_facets_calibration_report(). That shared helper resolves to the existing essay report helper and the existing Rust-backed fit_scoring_facets_design() boundary.

The workflow returns only ScoringFacetsCalibrationReport values. It binds the bundle fingerprint, design fingerprint, and criterion ID as package-managed metadata. It rejects caller overrides of those fields. The focused tests verify deterministic report identities, criterion provenance, source-text privacy, invalid-input behavior, and realistic connected two-criterion Rust fitting.

The capped trace contract is consistent. Nonconverged reports accept n_iter + 1 likelihood values. The realistic Rust integration renders each report with output_root=tmp_path.

The HTML renderer resolves the approved root and output path before creating directories. It rejects traversal and absolute escapes outside the root. It resolves existing symlink parents before containment checks. It rejects an existing non-directory root. It rechecks the resolved parent before it writes the report.

No unresolved current review thread was returned.

I cannot approve this PR yet. The required current-head evidence is incomplete:

  • python, rust, and fuzz were still in progress.
  • GitHub returned HTTP 404 when I queried the exact-head Strix workflow. Its result is unverified.
  • No independent APPROVED review exists for this head.

Wait for successful exact-head results for those checks. Obtain an independent approval. Then request the final approval review.

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

@opencode-agent @cwl-noema-review Final independent exact-head approval requested for d111e2b1341b0daab6b813074c7a7dbcf5c24ff4. Repository CI 30989444525, SAST 30989444533, Security Scan 30989444567, and Strix 30989443777 are successful on this head; Strix job 92251813750 completed successfully. No unresolved current review thread is present. Review the orchestration, Rust terminal-trace compatibility, provenance/privacy boundary, and canonical output-root confinement. Submit APPROVE only if no actionable issue remains; stale, status-only, self-authored, or prior-head evidence is not sufficient.

@seonghobae
seonghobae marked this pull request as draft August 5, 2026 09:17
auto-merge was automatically disabled August 5, 2026 09:17

Pull request was converted to draft

@seonghobae
seonghobae marked this pull request as ready for review August 5, 2026 09:18

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head d111e2b1341b0daab6b813074c7a7dbcf5c24ff4.

  • Head SHA: d111e2b1341b0daab6b813074c7a7dbcf5c24ff4

  • Workflow run: 30993478444

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 2

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (5 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (5 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs (7 files)"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs (7 files)"]
  R2 --> V2["docs review"]
  Evidence --> S3["Test (3 files)"]
  S3 --> I3["regression suite"]
  I3 --> R3["Review risk: Test (3 files)"]
  R3 --> V3["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: d111e2b1341b0daab6b813074c7a7dbcf5c24ff4
  • Workflow run: 30993478444
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head d111e2b1341b0daab6b813074c7a7dbcf5c24ff4.

  • Head SHA: d111e2b1341b0daab6b813074c7a7dbcf5c24ff4

  • Workflow run: 30993478444

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 2

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (5 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (5 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs (7 files)"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs (7 files)"]
  R2 --> V2["docs review"]
  Evidence --> S3["Test (3 files)"]
  S3 --> I3["regression suite"]
  I3 --> R3["Review risk: Test (3 files)"]
  R3 --> V3["targeted test run"]
Loading

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review

Re-run exact-head coverage and review for d111e2b1341b0daab6b813074c7a7dbcf5c24ff4 now that central trusted uv.lock materialization PR ContextualWisdomLab/.github#743 has merged as f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae. Do not reuse workflow run 30993478444. Preserve Rust-only production arithmetic, CPU/GPU parity, real statistical recovery, complete statement/branch/docstring evidence, and current-head independent approval.

@seonghobae
seonghobae enabled auto-merge (squash) August 5, 2026 11:54

Copy link
Copy Markdown
Contributor Author

The exact-head OpenCode CHANGES_REQUESTED review is being preserved as a real blocker rather than bypassed. Root cause is central source-only coverage collection: pytest cannot import the compiled maturin/PyO3 module fast_mlsirm._core, while this exact head already passed repository Python, Rust/PyO3, package, GPU-no-skip, fuzz, SAST, Security Scan, and Strix gates.

Central issue ContextualWisdomLab/.github#784 defines the fail-closed repair, and draft PR ContextualWisdomLab/.github#789 adds the bounded classifier and exact-head native peer-check verifier with 81 focused tests and 100% statement/branch coverage. No product test is skipped, no Python substitute is added, and no approval or merge rule is weakened. Keep this PR unmerged until the central workflow integration lands and a fresh exact-head independent approval replaces the current request-changes verdict.

@opencode-agent
opencode-agent Bot disabled auto-merge August 5, 2026 13:33
@seonghobae
seonghobae enabled auto-merge (squash) August 6, 2026 06:33
@opencode-agent
opencode-agent Bot disabled auto-merge August 6, 2026 07:24

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review Re-evaluate exact unchanged head d111e2b1341b0daab6b813074c7a7dbcf5c24ff4 now that repository CI 30989444525, SAST 30989444533, Security Scan 30989444567, and Strix 30989443777 are completed successfully. No unresolved thread exists. Independently review the bounded enterprise orchestration, Rust terminal post-update likelihood contract, report provenance/privacy, and canonical output-root confinement. Submit a formal APPROVE only if the implementation itself has no actionable defect; do not treat the known central source-only PyO3 coverage limitation as product evidence, do not mutate or merge the branch, and do not reuse stale review state.

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.

feat(enterprise): fit provenance-bound calibration reports

2 participants