Skip to content

fix(strix): gate dependency manifest updates - #935

Merged
seonghobae merged 17 commits into
fix/organization-loop-oidc-fallbackfrom
fix/strix-requirements-manifest-trigger
Aug 23, 2026
Merged

fix(strix): gate dependency manifest updates#935
seonghobae merged 17 commits into
fix/organization-loop-oidc-fallbackfrom
fix/strix-requirements-manifest-trigger

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Root cause

The central Strix dependency lock requirements-strix-ci-hashes.txt is executable supply-chain input for .github/workflows/strix.yml, but the permanent Strix Changed Path Quality CI pull-request path filter did not include it. Manifest-only dependency PRs could therefore receive generic security checks without running the Strix policy, installation, shell-regression, and full-suite contract.

The initial preflight also diverged from production: it resolved dependencies despite the reviewed cryptography==50.0.0 security override and rejected source distributions even though production permits them.

Repair

  • add the exact root Strix hash manifest and governing doctoring record to the permanent quality-workflow trigger
  • preflight the complete production lock under Python 3.13 with --require-hashes
  • mirror production's deliberate --no-deps boundary so the pinned cryptography override is not rejected by stale upstream metadata
  • permit source distributions exactly as production does
  • bind the preflight flags and trigger paths with regression tests
  • update the doctoring to SLSA 1.2 and record the release-facing change
  • preserve all Strix model, credential, timeout, immutable-source, hash, severity, and merge-authority behavior

Exact-head verification

Head: adbaaa142267fe5b58a94ddc835ce6a33c15290c

Stacked parent: ContextualWisdomLab/.github#1233 at 70d9eb049f2946d269bb4ee1f8b7d72a31c84c81

  • local tree: 4070919701a054a10c4b8043e8784543cb9cf75a
  • complete production hash-lock dry-run passed on macOS Python 3.13, including the LiteLLM source distribution
  • 1,383 passed, 1 skipped, 16 subtests
  • 100% statement and branch coverage: 8,344 statements / 3,214 branches
  • 100% Python docstring coverage
  • all 10 focused Strix dependency-lock contracts passed
  • actionlint, CodeGraph sync, and diff hygiene passed
  • all current review threads are resolved
  • fresh independent review and terminal hosted checks remain required

No check, scanner, reviewer, secret, or branch-protection requirement was weakened.


Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 11, 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: 34 minutes

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a09393a6-db20-41b9-b655-e3b4d2d0396f

📥 Commits

Reviewing files that changed from the base of the PR and between 401a530 and d5c539c.

📒 Files selected for processing (3)
  • .github/workflows/strix-changed-path-quality-ci.yml
  • docs/doctoring/strix-dependency-manifest-trigger.md
  • tests/test_strix_workflow_dependency_hashes.py

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ee9834b7-f9e4-4ea0-b541-89ea1ee068a1

📥 Commits

Reviewing files that changed from the base of the PR and between 6eb06cd and 401a530.

📒 Files selected for processing (2)
  • .github/workflows/strix-changed-path-quality-ci.yml
  • tests/test_strix_workflow_dependency_hashes.py

📝 Walkthrough

Walkthrough

Strix CI 워크플로의 변경 감시 대상에 의존성 해시 매니페스트를 추가했습니다. 매니페스트 변경 시 워크플로 재실행 경로와 파일 존재를 검증하는 테스트도 추가했습니다.

Changes

Strix CI 의존성 해시

Layer / File(s) Summary
의존성 매니페스트 트리거 및 검증
.github/workflows/strix-changed-path-quality-ci.yml, tests/test_strix_workflow_dependency_hashes.py
워크플로 감시 경로에 requirements-strix-ci-hashes.txt를 추가했습니다. 파일 존재와 변경 시 재실행 경로 등록을 검증하는 테스트를 추가했습니다.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

Suggested reviewers: opencode-agent

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 제목은 Strix 의존성 매니페스트 변경을 품질 검사 대상으로 포함하는 주요 변경을 정확하고 간결하게 설명합니다.
✨ 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 fix/strix-requirements-manifest-trigger

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

❤️ Share

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

Copy link
Copy Markdown
Contributor Author

@opencode-agent review

Review exact current head 401a5308932e65b0c9cf02a611b96c38a7ab5269 against independently resolved live protected main 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. All nine exact-head hosted workflows are terminal-success, including Strix Changed Path Quality CI; the head is one commit ahead, zero behind, mergeable, and has zero unresolved threads.

Validate that adding requirements-strix-ci-hashes.txt to the permanent deterministic quality trigger closes the manifest-only gate gap without changing Strix providers, credentials, permissions, immutable-source/hash enforcement, timeouts, findings, or merge authority. Treat the RED→GREEN regression and exact blob identities in the PR body as source evidence. Review read-only; do not mutate the branch, infer qualifying independent human approval, or merge.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please perform a fresh read-only semantic review of exact current head 401a5308932e65b0c9cf02a611b96c38a7ab5269 against independently resolved live protected main 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. All nine exact-head hosted workflows are terminal-success, including the deterministic Strix quality gate; the branch is one commit ahead, zero behind, mergeable, and has zero unresolved threads.

Validate that the one-line trigger addition and its regression test close the executable Strix dependency-lock bypass without altering providers, credentials, permissions, immutable-source/hash enforcement, timeouts, finding semantics, or merge authority. Keep the PR Draft. This automated review is semantic evidence only and is not qualifying independent human approval or merge authority.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='401a5308932e65b0c9cf02a611b96c38a7ab5269'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'

printf '%s\n' '== Commit identity and ancestry =='
git rev-parse "$head^{commit}" "$base^{commit}"
git merge-base --is-ancestor "$base" "$head"
git rev-list --left-right --count "$base...$head"

printf '%s\n' '== Changed files and summary =='
git diff --name-status "$base" "$head"
git diff --stat "$base" "$head"

printf '%s\n' '== Complete exact diff =='
git diff --no-ext-diff --unified=80 "$base" "$head" --

printf '%s\n' '== Workflow outline and relevant content =='
ast-grep outline .github/workflows/strix.yml --items all || true
nl -ba .github/workflows/strix.yml | sed -n '1,280p'

printf '%s\n' '== Strix manifest references in workflow =='
rg -n -C 5 -F 'requirements-strix-ci-hashes.txt' .github/workflows/strix.yml

printf '%s\n' '== Changed test outline and content =='
changed_tests=$(git diff --name-only "$base" "$head" | grep -E '(^|/)(test|tests)[^/]*.*\.(py|yml|yaml)$' || true)
if [ -n "$changed_tests" ]; then
  while IFS= read -r test_file; do
    ast-grep outline "$test_file" --items all || true
    nl -ba "$test_file" | sed -n '1,420p'
  done <<< "$changed_tests"
fi

printf '%s\n' '== Existing Strix workflow test coverage =='
rg -n -C 4 'strix\.yml|requirements-strix-ci-hashes\.txt|Strix Changed Path Quality CI' \
  -g '*.py' -g '*.yml' -g '*.yaml' .

Length of output: 9392


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='401a5308932e65b0c9cf02a611b96c38a7ab5269'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
quality='.github/workflows/strix-changed-path-quality-ci.yml'
production='.github/workflows/strix.yml'
test_file='tests/test_strix_workflow_dependency_hashes.py'
manifest='requirements-strix-ci-hashes.txt'

printf '%s\n' '== Exact blob identities at head =='
git rev-parse "$head:$quality" "$head:$test_file" "$head:$production" "$head:$manifest"

printf '%s\n' '== Manifest consumers at head =='
git grep -n -C 4 -F "$manifest" "$head" -- . ':!tests/test_strix_workflow_dependency_hashes.py' || true

printf '%s\n' '== Production Strix workflow: trigger, permissions, checkout, installation, and execution context =='
git show "$head:$production" |
  grep -n -E -C 5 \
  '^(name:|on:|permissions:|concurrency:|jobs:|[[:space:]]*(uses: actions/checkout|persist-credentials:|ref:|run:|shell:|timeout-minutes:))|requirements-strix-ci-hashes\.txt|pip install|require-hashes|hash|credential|token|provider|model|STRIX_'

printf '%s\n' '== Changed quality workflow, full head content =='
git show "$head:$quality" | sed -n '1,180p'

printf '%s\n' '== Security-sensitive production Strix workflow diff =='
git diff --no-ext-diff --unified=5 "$base" "$head" -- "$production" "$manifest"

printf '%s\n' '== Quality workflow diff with zero context check =='
git diff --no-ext-diff --unified=0 "$base" "$head" -- "$quality"

printf '%s\n' '== Regression test, full head content =='
git show "$head:$test_file" | sed -n '1,220p'

printf '%s\n' '== All references to the quality workflow and manifest at head =='
git grep -n -E 'strix-changed-path-quality-ci\.yml|requirements-strix-ci-hashes\.txt' "$head" -- \
  '.github' 'tests' 'scripts' 2>/dev/null || true

Length of output: 86158


@seonghobae: No findings.

I reviewed exact head 401a5308932e65b0c9cf02a611b96c38a7ab5269 against base 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. The base is an ancestor. The head is one commit ahead and zero commits behind.

The range changes only these files:

  • .github/workflows/strix-changed-path-quality-ci.yml
  • tests/test_strix_workflow_dependency_hashes.py

The workflow blob is 2fd3fafe5893e23b2dcec4af16d70e6b26b4e8e7. The regression-test blob is 50c59cae9ef060bac1feb4c0914f3d4ff51c3a91.

The workflow change adds only the repository-root path "requirements-strix-ci-hashes.txt" to pull_request.paths for PRs targeting main. A manifest-only PR now runs the exact-head quality workflow.

.github/workflows/strix.yml treats this manifest as executable supply-chain input. It materializes the same-repository PR-head lock and installs it with --require-hashes. The production workflow has no diff in this range. Its providers, credentials, permissions, immutable-source handling, hash enforcement, timeouts, finding semantics, and status publication behavior are unchanged.

The new regression test verifies that the manifest exists and that the exact trigger path remains present. It protects the manifest-to-quality-gate binding.

This is read-only semantic evidence only. It is not an independent human approval, merge authorization, or branch-protection result. The PR remains Draft.

✅ 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.

@seonghobae
seonghobae marked this pull request as ready for review August 12, 2026 03:15

Copy link
Copy Markdown
Contributor Author

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

Review exact current head 401a5308932e65b0c9cf02a611b96c38a7ab5269 only. Current-head hosted workflows are terminal-success. Validate that requirements-strix-ci-hashes.txt is included in the permanent Strix quality PR path filter, with no change to model/provider credentials, permissions, immutable materialization, hash enforcement, production timeouts, result semantics, or merge authority. Review only; do not mutate, merge, or bypass protection.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='401a5308932e65b0c9cf02a611b96c38a7ab5269'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
quality='.github/workflows/strix-changed-path-quality-ci.yml'
production='.github/workflows/strix.yml'
test_file='tests/test_strix_workflow_dependency_hashes.py'
manifest='requirements-strix-ci-hashes.txt'

printf '%s\n' '== Commit identity and ancestry =='
git rev-parse "$head^{commit}" "$base^{commit}"
git merge-base --is-ancestor "$base" "$head"
git rev-list --left-right --count "$base...$head"

printf '%s\n' '== Changed paths and complete diff =='
git diff --name-status "$base" "$head"
git diff --no-ext-diff --unified=40 "$base" "$head" --

printf '%s\n' '== Quality workflow trigger at requested head =='
git show "$head:$quality" | nl -ba | sed -n '1,180p'

printf '%s\n' '== Production workflow change check =='
git diff --no-ext-diff --exit-code "$base" "$head" -- "$production" "$manifest" || true
printf 'production_and_manifest_diff_exit=%s\n' "$?"

printf '%s\n' '== Production workflow control references at requested head =='
git show "$head:$production" |
  rg -n -C 3 \
  'permissions:|persist-credentials:|requirements-strix-ci-hashes\.txt|--require-hashes|timeout-minutes:|provider|credential|token|STRIX_|findings|status' || true

printf '%s\n' '== Regression test at requested head =='
git show "$head:$test_file" | nl -ba | sed -n '1,260p'

printf '%s\n' '== Relevant blob identities =='
git rev-parse "$head:$quality" "$head:$production" "$head:$test_file" "$head:$manifest"

printf '%s\n' '== GitHub check runs attached to requested head =='
gh api \
  -H 'Accept: application/vnd.github+json' \
  "/repos/ContextualWisdomLab/.github/commits/$head/check-runs?per_page=100" \
  --jq '.check_runs[] | [.name, .status, .conclusion, .details_url] | `@tsv`' || true

Length of output: 8304


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='401a5308932e65b0c9cf02a611b96c38a7ab5269'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
quality='.github/workflows/strix-changed-path-quality-ci.yml'
production='.github/workflows/strix.yml'
test_file='tests/test_strix_workflow_dependency_hashes.py'
manifest='requirements-strix-ci-hashes.txt'

printf '%s\n' '== Full quality workflow at requested head =='
git show "$head:$quality" | sed -n '1,240p'

printf '%s\n' '== No production workflow or manifest changes in requested range =='
if git diff --quiet "$base" "$head" -- "$production" "$manifest"; then
  printf '%s\n' 'confirmed: no diff'
else
  printf '%s\n' 'unexpected diff:'
  git diff --no-ext-diff --unified=20 "$base" "$head" -- "$production" "$manifest"
fi

printf '%s\n' '== Production workflow security and execution controls at requested head =='
git show "$head:$production" | \
  grep -n -E -C 4 \
  '^(name:|on:|permissions:|concurrency:|jobs:)|requirements-strix-ci-hashes\.txt|--require-hashes|persist-credentials:|timeout-minutes:|STRIX_|token|credential|provider|findings|status' \
  || true

printf '%s\n' '== Full changed regression test at requested head =='
git show "$head:$test_file" | sed -n '1,260p'

printf '%s\n' '== Exact blob identities =='
git rev-parse \
  "$head:$quality" \
  "$head:$production" \
  "$head:$test_file" \
  "$head:$manifest"

printf '%s\n' '== Workflow and manifest references at requested head =='
git grep -n -E \
  'strix-changed-path-quality-ci\.yml|requirements-strix-ci-hashes\.txt' \
  "$head" -- .github tests scripts 2>/dev/null || true

printf '%s\n' '== Exact-head check data, if curl is available =='
if command -v curl >/dev/null 2>&1; then
  curl --fail --silent --show-error \
    -H 'Accept: application/vnd.github+json' \
    "https://api.github.com/repos/ContextualWisdomLab/.github/commits/$head/check-runs?per_page=100" \
    | sed -n '1,260p' || true
else
  printf '%s\n' 'curl is unavailable'
fi

Length of output: 69917


@seonghobae: No findings.

I reviewed exact head 401a5308932e65b0c9cf02a611b96c38a7ab5269 against 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba.

The base is an ancestor of the head. The head is one commit ahead.

The range changes only:

  • .github/workflows/strix-changed-path-quality-ci.yml
  • tests/test_strix_workflow_dependency_hashes.py

The quality workflow now includes:

- "requirements-strix-ci-hashes.txt"

in pull_request.paths for main. Therefore, a PR that changes only the Strix dependency manifest triggers the permanent exact-head quality workflow.

The regression test checks both conditions:

  • requirements-strix-ci-hashes.txt exists.
  • The exact manifest path remains in the quality workflow trigger.

The production workflow .github/workflows/strix.yml has no diff. The manifest itself has no diff. The unchanged production workflow still materializes the manifest from the same-repository PR head and installs it with --require-hashes.

This change does not modify Strix model or provider selection, credentials, permissions, immutable materialization, hash enforcement, production timeouts, finding semantics, status publication, or merge authority.

I used the repository guidance that only successful checks on the exact current head qualify as merge evidence. The returned check data is truncated, so this review does not independently validate the complete hosted-workflow set. It is read-only semantic evidence only. It is not an independent human approval, merge authorization, or protection bypass.


🧠 Learnings used
Learnt from: seonghobae
Repo: ContextualWisdomLab/.github PR: 0
File: :0-0
Timestamp: 2026-08-05T13:44:10.007Z
Learning: For PR `#782`, only successful checks associated with the exact current head are valid merge evidence. Do not treat queued, in-progress, cancelled, predecessor-head, temporary-workflow, or administrative-bypass results as passing evidence. Before a formal approval, verify that the direct security and supply-chain workflows, the permanent hourly NVIDIA NIM contract, current-head reviews, unresolved-thread checks, and an independent approval have completed successfully.
⚠️ Action not completed

Already reviewed.

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 review
@cwl-noema-review review
@coderabbitai review

Review exact current head 401a5308932e65b0c9cf02a611b96c38a7ab5269 only. Verify that requirements-strix-ci-hashes.txt is executable input to the production Strix workflow and now appears in the permanent quality workflow's pull-request path filter; confirm the regression binds the exact repository-root manifest without broad glob drift, and that model/provider/credential/permission/timeout/result/merge behavior is unchanged. All exact-head hosted checks are terminal-success. Review only: do not mutate, merge, release, or bypass protections.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-current-head read-only review request for 401a5308932e65b0c9cf02a611b96c38a7ab5269 against protected main@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba.

The complete diff is the minimal causal repair: add requirements-strix-ci-hashes.txt to the permanent Strix quality workflow trigger and bind that path with a regression test. Directly observed exact-head quality, security, and supply-chain workflows are successful and no review thread exists. This prerequisite is required before manifest-only Dependabot updates such as #914 can produce complete Strix evidence.

Review this exact head without updating the branch, synthesizing author approval, weakening the path contract, or bypassing protection.

@coderabbitai

coderabbitai Bot commented Aug 12, 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/.github'
head='401a5308932e65b0c9cf02a611b96c38a7ab5269'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
quality='.github/workflows/strix-changed-path-quality-ci.yml'
production='.github/workflows/strix.yml'
test_file='tests/test_strix_workflow_dependency_hashes.py'
manifest='requirements-strix-ci-hashes.txt'

printf '%s\n' '== Commit identity, ancestry, and range =='
git rev-parse "$head^{commit}" "$base^{commit}"
git merge-base --is-ancestor "$base" "$head" && echo 'base_is_ancestor=true'
git rev-list --left-right --count "$base...$head"
git diff --name-status "$base" "$head"
git diff --no-ext-diff --unified=60 "$base" "$head" --

printf '%s\n' '== Quality workflow at requested head =='
git show "$head:$quality" | nl -ba | sed -n '1,220p'

printf '%s\n' '== Production workflow changes in requested range =='
if git diff --quiet "$base" "$head" -- "$production" "$manifest"; then
  echo 'production_workflow_and_manifest_unchanged=true'
else
  git diff --no-ext-diff --unified=60 "$base" "$head" -- "$production" "$manifest"
fi

printf '%s\n' '== Production workflow manifest consumption and controls at requested head =='
git show "$head:$production" |
  rg -n -C 5 \
  'requirements-strix-ci-hashes\.txt|--require-hashes|permissions:|persist-credentials:|timeout-minutes:|provider|model|credential|token|STRIX_|findings|status|checkout' \
  || true

printf '%s\n' '== Regression test at requested head =='
ast-grep outline "$test_file" --items all || true
git show "$head:$test_file" | nl -ba | sed -n '1,280p'

printf '%s\n' '== Exact relevant blobs =='
git rev-parse "$head:$quality" "$head:$production" "$head:$test_file" "$head:$manifest"

printf '%s\n' '== Exact-head GitHub check runs =='
gh api \
  -H 'Accept: application/vnd.github+json' \
  "/repos/$repo/commits/$head/check-runs?per_page=100" \
  --paginate \
  --jq '.check_runs[] | [.name, .head_sha, .status, .conclusion] | `@tsv`'

Length of output: 9682


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/.github'
head='401a5308932e65b0c9cf02a611b96c38a7ab5269'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
quality='.github/workflows/strix-changed-path-quality-ci.yml'
production='.github/workflows/strix.yml'
test_file='tests/test_strix_workflow_dependency_hashes.py'
manifest='requirements-strix-ci-hashes.txt'

printf '%s\n' '== Full quality workflow at exact head =='
git show "$head:$quality" | sed -n '1,220p'

printf '%s\n' '== Production workflow and manifest diff check =='
if git diff --quiet "$base" "$head" -- "$production" "$manifest"; then
  printf '%s\n' 'production_workflow_and_manifest_unchanged=true'
else
  git diff --no-ext-diff --unified=60 "$base" "$head" -- "$production" "$manifest"
fi

printf '%s\n' '== Production workflow manifest execution and requested controls =='
git show "$head:$production" | grep -n -E -C 6 \
  'requirements-strix-ci-hashes\.txt|--require-hashes|permissions:|persist-credentials:|timeout-minutes:|provider|model|credential|token|STRIX_|finding|status|actions/checkout|github\.event\.pull_request\.head\.sha' \
  || true

printf '%s\n' '== Regression test at exact head =='
git show "$head:$test_file" | sed -n '1,260p'

printf '%s\n' '== Relevant exact-head blob IDs =='
git rev-parse "$head:$quality" "$head:$production" "$head:$test_file" "$head:$manifest"

printf '%s\n' '== GitHub check runs on exact head =='
gh api \
  -H 'Accept: application/vnd.github+json' \
  "/repos/$repo/commits/$head/check-runs?per_page=100" \
  --paginate \
  --jq '.check_runs[] | [.name, .head_sha, .status, .conclusion] | `@tsv`' \
  || printf '%s\n' 'check_run_query_failed=true'

printf '%s\n' '== Pull request state and unresolved review-thread count, if available =='
gh api graphql \
  -F owner='ContextualWisdomLab' \
  -F name='.github' \
  -F number=935 \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      isDraft
      mergeable
      headRefOid
      reviewThreads(first: 100) { nodes { isResolved } }
    }
  }
}' \
  --jq '[.data.repository.pullRequest.isDraft, .data.repository.pullRequest.mergeable, .data.repository.pullRequest.headRefOid, ([.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)] | length)] | `@tsv`' \
  || printf '%s\n' 'pull_request_query_failed=true'

Length of output: 69082


@seonghobae: No findings.

I reviewed exact head 401a5308932e65b0c9cf02a611b96c38a7ab5269 against 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba.

The base is an ancestor of the head. The head is one commit ahead and zero commits behind. The range changes only:

  • .github/workflows/strix-changed-path-quality-ci.yml
  • tests/test_strix_workflow_dependency_hashes.py

The quality workflow includes the exact repository-root path:

- "requirements-strix-ci-hashes.txt"

This is a literal pull_request.paths entry. It is not a broad glob. A PR that changes only this manifest now runs exact-head-path-policy.

The regression test binds the same exact path. It verifies that requirements-strix-ci-hashes.txt exists at the repository root and that the quality workflow contains the literal trigger entry.

The production workflow .github/workflows/strix.yml and the manifest have no diff in this range. The unchanged production workflow materializes requirements-strix-ci-hashes.txt from the same-repository PR head. It then installs the dependencies with --require-hashes.

Therefore, this change does not alter Strix model or provider selection, credentials, permissions, immutable materialization, hash enforcement, production timeouts, result semantics, status publication, or merge authority.

The exact-head exact-head-path-policy and strix checks completed successfully. The PR is mergeable and has zero unresolved review threads. Other exact-head checks that are skipped or neutral are not treated as passing evidence.

This is read-only semantic evidence. It is not independent human approval, merge authorization, or a protection bypass.


🧠 Learnings used
Learnt from: seonghobae
Repo: ContextualWisdomLab/.github PR: 0
File: :0-0
Timestamp: 2026-08-05T13:44:10.007Z
Learning: For PR `#782`, only successful checks associated with the exact current head are valid merge evidence. Do not treat queued, in-progress, cancelled, predecessor-head, temporary-workflow, or administrative-bypass results as passing evidence. Before a formal approval, verify that the direct security and supply-chain workflows, the permanent hourly NVIDIA NIM contract, current-head reviews, unresolved-thread checks, and an independent approval have completed successfully.

Learnt from: CR
Repo: ContextualWisdomLab/.github PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-07-29T06:47:25.581Z
Learning: Applies to .github/workflows/**/*.yml : Treat workflows in `.github/workflows/` as the canonical organization-wide PR governance, security scanning, and merge-automation implementation; do not maintain repository-local drift sources.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

Exact-current-head automated review dispatch for 401a5308932e65b0c9cf02a611b96c38a7ab5269 over protected main@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba.

The two-file change adds the executable requirements-strix-ci-hashes.txt root manifest to the permanent Strix quality path filter and locks the trigger with a regression test. Directly observed exact-head Strix, CodeQL, Python Security, Security Scan, SAST Semgrep, Secret Scan, OSV, Scorecard, and SBOM workflows are successful; no inline thread exists.

Keep the exact head unchanged. Do not update the branch, synthesize author approval, weaken the trigger contract, merge, release, or bypass protection.

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

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Rate Limit Exceeded

@seonghobae have exceeded the limit for the number of chat messages per hour. Please wait 13 minutes and 52 seconds before sending another message.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Reviewed. Added CHANGELOG, NIST 800-161 / SLSA doctoring, and bound that doctoring path to the quality trigger. Local suite 978 passed x2. Auto-merge armed.

@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 could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 7c943f49a0f6bb93645a8c3a7402fadedcb57a94.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: strix-changed-path-quality-ci.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: strix-changed-path-quality-ci.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file (2 files)"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file (2 files)"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs: strix-dependency-manifest-trigger.md"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs: strix-dependency-manifest-trigger.md"]
  R3 --> V3["docs review"]
  Evidence --> S4["CI script: materialize_base_python_requirements.py"]
  S4 --> I4["review and security gate shell path"]
  I4 --> R4["Review risk: CI script: materialize_base_python_requirements.py"]
  R4 --> V4["bash -n plus Strix self-test"]
  Evidence --> S5["Test (2 files)"]
  S5 --> I5["regression suite"]
  I5 --> R5["Review risk: Test (2 files)"]
  R5 --> V5["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 0caebde71764c0985b588e40b9e55c72193e16ea
  • Workflow run: 32629407161
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode reviewed the current-head bounded evidence and requested changes before merge.

Findings

1. P1 .github/workflows/strix-changed-path-quality-ci.yml:91 - Preflight always fails due to missing --no-deps with deliberate cryptography version override

  • Problem: Preflight pip install resolves full transitive dependency graph, hitting cryptography==50.0.0 vs strix-agent<49 conflict
  • Root cause: Missing --no-deps flag in preflight command
  • Fix: Add --no-deps to preflight pip install command
  • Regression test: Assert --no-deps present in preflight command; run preflight against current lock in test env
  • Suggested diff: posted in this finding's inline review thread.

2. P1 .github/workflows/strix-changed-path-quality-ci.yml:91 - Preflight --only-binary=:all: stricter than production install causes false failures

  • Problem: Preflight rejects sdist-only packages that production strix.yml:561 would install from source
  • Root cause: --only-binary=:all: flag absent from production install
  • Fix: Remove --only-binary=:all: from preflight to match production behavior
  • Regression test: Assert --only-binary=:all: absent from preflight; test with sdist-only fixture
  • Suggested diff: posted in this finding's inline review thread.

Summary

Preflight step in .github/workflows/strix-changed-path-quality-ci.yml:91 has two correctness defects: (1) missing --no-deps makes pip resolve full dependency graph, failing on deliberate cryptography==50.0.0 vs strix-agent<49 override; (2) --only-binary=:all: rejects sdist-only packages that production strix.yml:561 accepts. Both confirmed by unresolved @devin-ai-integration threads. Approval sufficiency: INSUFFICIENT; Verification posture: FAILED; Linter/static: NOT_APPLICABLE; TDD/regression: PARTIAL; Coverage: PASS; Docstring coverage: PASS; DAG: VERIFIED; PoC/execution: NOT_AVAILABLE; DDD/domain: ALIGNED; CDD/context: ALIGNED; Similar issues: NONE; Claim/concept check: VERIFIED; Standards search: SATISFIED; Compatibility/convention: VIOLATED; Breaking-change/backcompat: NONE; Implementation completeness: INCOMPLETE; Performance: NEUTRAL; Developer experience: DEGRADED; User experience: NOT_APPLICABLE; Visual/DOM: NOT_APPLICABLE; Accessibility/i18n: NOT_APPLICABLE; Supply-chain/license: RISK; Packaging: NOT_APPLICABLE; Security/privacy: RISK

Adversarial validation

{"status":"failed","probes":[{"path":".github/workflows/strix-changed-path-quality-ci.yml","line":91,"hypothesis":"Preflight fails on cryptography version conflict without --no-deps","attack_or_counterexample":"Lock pins cryptography==50.0.0 while strix-agent==1.5.3 requires cryptography<49; pip resolves full graph without --no-deps","evidence":"Unresolved thread from @devin-ai-integration at line 91 confirms deliberate version override; Trusted current-head source binding at .github/workflows/strix-changed-path-quality-ci.yml:91; source-line-sha256=b4d6e95e16931bf58cc05b52b53ce2971dfe43d89ed5f508e977d55a5235b5b7","outcome":"confirmed"},{"path":".github/workflows/strix-changed-path-quality-ci.yml","line":91,"hypothesis":"Preflight --only-binary=:all: rejects sdist-only packages that production accepts","attack_or_counterexample":"Package in closure with only sdist (no wheel) for Python 3.13/linux","evidence":"Unresolved thread from @devin-ai-integration at line 89 confirms production strix.yml:561 lacks --only-binary=:all:; Trusted current-head source binding at .github/workflows/strix-changed-path-quality-ci.yml:91; source-line-sha256=b4d6e95e16931bf58cc05b52b53ce2971dfe43d89ed5f508e977d55a5235b5b7","outcome":"confirmed"}],"residual_risk":"Preflight will systematically block valid manifest updates and Dependabot PRs until flags align with production install semantics"}
  • Result: REQUEST_CHANGES

  • Reason: Two confirmed P1 adversarial probes at line 91: preflight missing --no-deps causes cryptography version conflict; --only-binary=:all: stricter than production install

  • Head SHA: 0caebde71764c0985b588e40b9e55c72193e16ea

  • Workflow run: 32629407161

  • Workflow attempt: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: strix-changed-path-quality-ci.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: strix-changed-path-quality-ci.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Docs: strix-dependency-manifest-trigger.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: strix-dependency-manifest-trigger.md"]
  R2 --> V2["docs review"]
  Evidence --> S3["Test: test_strix_workflow_dependency_hashes.py"]
  S3 --> I3["regression suite"]
  I3 --> R3["Review risk: Test: test_strix_workflow_dependency_hashes.py"]
  R3 --> V3["targeted test run"]
Loading

@opencode-agent
opencode-agent Bot disabled auto-merge August 14, 2026 01:32
@seonghobae
seonghobae marked this pull request as draft August 14, 2026 09:02

Copy link
Copy Markdown
Contributor Author

Returned to Draft because the exact current tree mixes the one-path Strix dependency-manifest trigger repair with an unrelated trusted-uv materializer branch.

The causal change is deliberately tiny: add requirements-strix-ci-hashes.txt to the permanent Strix changed-path workflow and prove that exact trigger. Head 7c943f49a0f6bb93645a8c3a7402fadedcb57a94 additionally changes materialize_base_python_requirements.py and its tests.

Rebuild from protected main retaining only the Strix quality-workflow trigger, focused regression, doctoring, directly necessary AGENTS/changelog evidence, and no other production source. Preserve materializer work in its authoritative PR, refresh exact identities, then reacquire exact-head Strix/security/supply-chain and independent-review evidence.

@seonghobae
seonghobae marked this pull request as ready for review August 14, 2026 13:50

Copy link
Copy Markdown
Contributor Author

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

Review only exact current head 76e0b30cded444dd4b14f03eda2df23d7b17164d against live protected main@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. I removed the unrelated trusted-uv production delta by restoring the exact Strix dependency-manifest trigger tree as a new descendant. The current diff is now five files and limited to binding the executable requirements-strix-ci-hashes.txt and doctoring to permanent exact-head Strix quality CI, with the regression contract. No review thread exists. Exact-head checks are regenerating; nonterminal evidence is not acceptance. Review read-only; do not mutate source, synthesize approval, weaken the trigger/hash boundary, or merge.

@seonghobae
seonghobae enabled auto-merge (squash) August 14, 2026 13:51
@coderabbitai

coderabbitai Bot commented Aug 14, 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/.github'
head='76e0b30cded444dd4b14f03eda2df23d7b17164d'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
quality='.github/workflows/strix-changed-path-quality-ci.yml'
production='.github/workflows/strix.yml'
manifest='requirements-strix-ci-hashes.txt'

printf '%s\n' '== Commit identity, ancestry, and range =='
git rev-parse "$head^{commit}" "$base^{commit}"
git merge-base --is-ancestor "$base" "$head" && echo 'base_is_ancestor=true'
git rev-list --left-right --count "$base...$head"
git diff --name-status "$base" "$head"
git diff --stat "$base" "$head"
git diff --no-ext-diff --unified=80 "$base" "$head" --

printf '%s\n' '== Quality and production workflow contents at exact head =='
git show "$head:$quality" | nl -ba | sed -n '1,260p'
git show "$head:$production" | nl -ba | sed -n '1,360p'

printf '%s\n' '== Production workflow and manifest range diff =='
if git diff --quiet "$base" "$head" -- "$production" "$manifest"; then
  echo 'production_workflow_and_manifest_unchanged=true'
else
  git diff --no-ext-diff --unified=80 "$base" "$head" -- "$production" "$manifest"
fi

printf '%s\n' '== Exact-head manifest consumers and trigger references =='
git grep -n -C 5 -F "$manifest" "$head" -- . ':!tests' || true
git grep -n -C 4 -E 'strix-changed-path-quality-ci\.yml|requirements-strix-ci-hashes\.txt' \
  "$head" -- .github tests scripts 2>/dev/null || true

printf '%s\n' '== Changed Python and Markdown/YAML file maps =='
git diff --name-only "$base" "$head" | while IFS= read -r path; do
  printf '\n-- %s --\n' "$path"
  case "$path" in
    *.py) ast-grep outline "$path" --items all || true ;;
  esac
  git show "$head:$path" | nl -ba | sed -n '1,420p'
done

printf '%s\n' '== Exact-head relevant blob identities =='
git rev-parse "$head:$quality" "$head:$production" "$head:$manifest"
git diff --name-only "$base" "$head" | while IFS= read -r path; do
  git rev-parse "$head:$path"
done

printf '%s\n' '== Exact-head GitHub check runs =='
gh api \
  -H 'Accept: application/vnd.github+json' \
  "/repos/$repo/commits/$head/check-runs?per_page=100" \
  --paginate \
  --jq '.check_runs[] | [.name, .head_sha, .status, (.conclusion // "null")] | `@tsv`' \
  || echo 'check_run_query_failed=true'

printf '%s\n' '== Pull request state and unresolved thread count =='
gh api graphql \
  -F owner='ContextualWisdomLab' \
  -F name='.github' \
  -F number=935 \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      isDraft
      mergeable
      headRefOid
      reviewThreads(first: 100) { nodes { isResolved } }
    }
  }
}' \
  --jq '[.data.repository.pullRequest.isDraft, .data.repository.pullRequest.mergeable, .data.repository.pullRequest.headRefOid, ([.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)] | length)] | `@tsv`' \
  || echo 'pull_request_query_failed=true'

Length of output: 28184


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/.github'
head='76e0b30cded444dd4b14f03eda2df23d7b17164d'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
quality='.github/workflows/strix-changed-path-quality-ci.yml'
production='.github/workflows/strix.yml'
manifest='requirements-strix-ci-hashes.txt'
materializer_test='tests/test_materialize_base_python_requirements.py'
strix_test='tests/test_strix_workflow_dependency_hashes.py'

printf '%s\n' '== Full quality workflow at exact head =='
git show "$head:$quality" | sed -n '1,260p'

printf '%s\n' '== Production workflow controls at exact head =='
git show "$head:$production" | grep -n -E -C 6 \
  'requirements-strix-ci-hashes\.txt|--require-hashes|permissions:|persist-credentials:|timeout-minutes:|provider|model|credential|token|STRIX_|finding|status|actions/checkout|github\.event\.pull_request\.head\.sha' \
  || true

printf '%s\n' '== Production workflow and manifest range diff =='
if git diff --quiet "$base" "$head" -- "$production" "$manifest"; then
  printf '%s\n' 'production_workflow_and_manifest_unchanged=true'
else
  git diff --no-ext-diff --unified=80 "$base" "$head" -- "$production" "$manifest"
fi

printf '%s\n' '== Full diff for the trusted-uv test change =='
git diff --no-ext-diff --unified=50 "$base" "$head" -- "$materializer_test"

printf '%s\n' '== Related production symbols and their test call sites =='
rg -n -C 5 \
  '_force_linux_x86_64_installer|def _install_trusted_uv|_install_trusted_uv\(' \
  scripts tests

printf '%s\n' '== Full manifest-trigger regression test at exact head =='
git show "$head:$strix_test" | sed -n '1,220p'

printf '%s\n' '== Exact-head references to doctoring path and manifest =='
git grep -n -C 4 -E \
  'strix-dependency-manifest-trigger\.md|requirements-strix-ci-hashes\.txt' \
  "$head" -- .github docs tests scripts 2>/dev/null || true

printf '%s\n' '== Exact-head GitHub check runs =='
gh api \
  -H 'Accept: application/vnd.github+json' \
  "/repos/$repo/commits/$head/check-runs?per_page=100" \
  --paginate \
  --jq '.check_runs[] | [.name, .head_sha, .status, (.conclusion // "null")] | `@tsv`' \
  || printf '%s\n' 'check_run_query_failed=true'

printf '%s\n' '== Pull request state and unresolved thread count =='
gh api graphql \
  -F owner='ContextualWisdomLab' \
  -F name='.github' \
  -F number=935 \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      isDraft
      mergeable
      headRefOid
      reviewThreads(first: 100) { nodes { isResolved } }
    }
  }
}' \
  --jq '[.data.repository.pullRequest.isDraft, .data.repository.pullRequest.mergeable, .data.repository.pullRequest.headRefOid, ([.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)] | length)] | `@tsv`' \
  || printf '%s\n' 'pull_request_query_failed=true'

Length of output: 110219


@seonghobae: One finding.

tests/test_materialize_base_python_requirements.py changes three trusted-uv installer tests. It adds _force_linux_x86_64_installer() and calls it before _install_trusted_uv().

This test delta does not bind requirements-strix-ci-hashes.txt to the Strix quality trigger. It does not support the doctoring document. It is unrelated to the focused manifest-trigger regression.

Please remove this trusted-uv test delta from this PR. Keep it in the authoritative trusted-uv materializer PR. This restores the stated narrow scope.

The remaining Strix change is correct from source evidence:

  • The quality workflow includes the literal repository-root path "requirements-strix-ci-hashes.txt".
  • The regression test checks that same literal path and the doctoring path.
  • .github/workflows/strix.yml and requirements-strix-ci-hashes.txt have no range diff.
  • The unchanged production workflow still materializes the same-repository PR-head manifest and installs it with --require-hashes.
  • Model selection, credentials, permissions, production timeouts, result behavior, and merge authority have no source change in this range.

The exact-head check evidence is not yet acceptable. exact-head-path-policy is in progress. Several required checks remain queued. Other runs are cancelled or skipped. These states are not successful exact-head evidence.

This was a read-only semantic review. It is not approval, merge authorization, or a protection bypass.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

Exact-current-head read-only review request for 128e09c280f15c3b4c9be4de1a278b4b29285a05 over protected base 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba.

The bounded four-file change ensures the executable Strix hash manifest and its doctoring record cannot bypass permanent exact-head quality CI. Recheck exact path triggering, regression enforcement, unchanged model/provider/credential/permission/hash/timeout/result/file-cap/merge semantics, and removal of unrelated installer-test drift. Treat all predecessor checks/reviews as historical. Do not mutate or merge the branch.

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

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Rate Limit Exceeded

@seonghobae have exceeded the limit for the number of chat messages per hour. Please wait 25 minutes and 7 seconds before sending another message.

@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 could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 128e09c280f15c3b4c9be4de1a278b4b29285a05.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: strix-changed-path-quality-ci.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: strix-changed-path-quality-ci.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file: CHANGELOG.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file: CHANGELOG.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs: strix-dependency-manifest-trigger.md"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs: strix-dependency-manifest-trigger.md"]
  R3 --> V3["docs review"]
  Evidence --> S4["Test: test_strix_workflow_dependency_hashes.py"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test: test_strix_workflow_dependency_hashes.py"]
  R4 --> V4["targeted test run"]
Loading

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Refreshed the exact pip-audit lock from pip 26.1.2 to pip 26.2.1 and aligned the Strix quick-gate assertions with the live repository-dispatch identity and orphaned workflow_run cancellation contract. Local validation passed: 52 required-workflow queue contract tests, pip-audit, bash -n for the Strix quick gate, and git diff --check. Hosted Checks and an exact-head independent approval are still required before merge.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Reconciled the branch with protected main at exact pre-push head 14f5ac6, resolved the scheduler contract conflict in favor of the current target_repository + pr_number assertion, and pushed merge commit d5c539c. Fresh verification: 118 focused pytest tests passed, bash -n passed, staged diff check passed, and the targeted scheduler concurrency assertions passed. Please review/check current head d5c539c; no force-push or protection bypass used.

@opencode-agent opencode-agent Bot added area: dependencies Dependency or lockfile maintenance merge: urgent-review Central or critical pull request requiring immediate review attention priority: medium Normal-priority or P2 work status: needs-update Pull-request branch is behind its current base type: maintenance Maintenance, build, dependency, or operational upkeep priority: critical Immediate blocker, P0, urgent deadlock, or critical incident and removed priority: medium Normal-priority or P2 work labels Aug 22, 2026
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a5e03b11-d9d9-4dea-9bf0-19c1f01f2546

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
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 제목은 Strix 의존성 매니페스트 변경을 품질 CI 실행 경로에 포함하는 주요 변경을 명확하게 요약합니다.

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

❤️ Share

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

@seonghobae
seonghobae changed the base branch from main to fix/organization-loop-oidc-fallback August 23, 2026 08:11
devin-ai-integration[bot]

This comment was marked as resolved.

opencode-agent[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@devin-ai-integration devin-ai-integration 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.

Devin Review found 1 new potential issue.

Open in Devin Review

Comment thread .github/workflows/strix-changed-path-quality-ci.yml
@seonghobae
seonghobae merged commit dfb8e26 into fix/organization-loop-oidc-fallback Aug 23, 2026
21 of 23 checks passed
@seonghobae
seonghobae deleted the fix/strix-requirements-manifest-trigger branch August 23, 2026 11:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: dependencies Dependency or lockfile maintenance merge: urgent-review Central or critical pull request requiring immediate review attention priority: critical Immediate blocker, P0, urgent deadlock, or critical incident status: needs-update Pull-request branch is behind its current base type: maintenance Maintenance, build, dependency, or operational upkeep

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant