Skip to content

fix(supply-chain): correct Demucs release evidence on current develop - #1184

Draft
seonghobae wants to merge 11 commits into
developfrom
fix/supply-chain-bandsplit-inventory-current-develop
Draft

fix(supply-chain): correct Demucs release evidence on current develop#1184
seonghobae wants to merge 11 commits into
developfrom
fix/supply-chain-bandsplit-inventory-current-develop

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Repair findings

Protected develop@314ddeae7b775a4957594b599358c8255617eb2e contains a coupled source-separation supply-chain evidence defect.

  • supply-chain/supplemental-component-inventory.json says bandsplit-v1-profile is consumed by runtime stem separation and SHA256-verified by nonexistent AudioStemSeparator._load_model_profile. Current protected runtime uses Demucs and does not consume that profile.
  • docs/security/dependency-policy.md says the GHSA-53q9-r3pm-6pq6 torch 2.2.2 risk is acceptable because protected runtime only loads bundled/checksum-tracked pinned Demucs weights. Protected runtime actually resolves htdemucs through upstream get_model, whose first load can acquire weights, and the checkpoint path reaches the code-bearing torch.load boundary.
  • The same policy also implied that this Python vulnerability exception was encoded in .github/workflows/dependency-review.yml and services/analysis-engine/osv-scanner.toml. Neither file exists on current protected develop after workflow consolidation. The retained .github/workflows/security-audit.yml runs pip-audit --local --strict without a targeted ignore. The torch advisory is therefore an unresolved compatibility risk, not an active repository exception.

The repair keeps security fail closed; it does not manufacture an ignore, restore a duplicate dependency-review workflow, weaken audits, or move Distribution authority into Signal/MIR.

Exact current identity

  • Protected base: develop@314ddeae7b775a4957594b599358c8255617eb2e.
  • Exact head: 75e767945a07d610ad03b78f5cafbb3fba86b6b4.
  • Branch: fix/supply-chain-bandsplit-inventory-current-develop.
  • Fresh protected-base compare: ahead 11 / behind 0; merge base exactly current protected develop.
  • Current protected-base diff is exactly three files: the two owned supply-chain evidence surfaces plus services/analysis-engine/tests/test_supply_chain_policy.py inherited from prerequisite repair(ci): format consolidated supply-chain policy test #1176.
  • Fresh compare from canonical repair(ci): format consolidated supply-chain policy test #1176 exact 8fe6b6d99c009527ef0bcba419e6f6debdb23c23 to this head is ahead 4 / behind 0 and exactly two changed files: docs/security/dependency-policy.md and supply-chain/supplemental-component-inventory.json. This proves the supply-chain lane has not modified repair(ci): format consolidated supply-chain policy test #1176's formatter repair.

Repair lineage and succession

df7bfdd02f9eef5bf9bb9036e6220e33343564f2 restacked stale-base #1054's valid inventory correction onto current protected develop. Its corrected inventory blob 10b1961798d969f400d7e73f086bdfadd7f56e75 is byte-identical to #1054. #1054 was closed unmerged only after the successor identity and verification contract were recorded.

dcdf3fc08f26fea324be06c6242292942553258f removed the false bundled/checksum-tracked runtime claim while keeping the actual macOS Intel compatibility constraint explicit.

23edfd8cde3ceeed82d5743712c3c0d9587d0987 then adopted #1176 exact 8fe6b6d… as an ordinary second parent and used its exact formatted test blob. No competing formatter edit was copied.

75e767945a07d610ad03b78f5cafbb3fba86b6b4 completed the evidence repair by removing the stale assertion that a Python vulnerability exception is still encoded in files that no longer exist. Current security-backstop behavior remains strict rather than silently excepted.

Current supply-chain truth

The repository-tracked bandsplit-v1 profile remains inventoried with its checksum/storage path, but current separation runtime does not consume it and no runtime checksum verifier for it exists.

GHSA-53q9-r3pm-6pq6 remains an unresolved torch 2.2.2 compatibility/security risk. It is not an active Python exception. Draft #970 narrows its compatibility loader to an already-present bounded local checkpoint snapshot with checksum-prefix validation and remote resolution disabled, but Draft evidence is not protected/released truth.

Distribution remains canonical:

No claim here makes either blocker GREEN.

Review and verification evidence

CodeRabbit's successful review at df7bfdd… covered only the predecessor one-file inventory correction. Later manual review requests at dcdf3fc… and 23edfd8… predate this exact head. None transfers to 75e7679…; current-head review is required.

Current exact 75e7679… must reacquire all hosted evidence. Focused repository checks include:

  • python3 -m json.tool supply-chain/supplemental-component-inventory.json
  • python3 scripts/checks/verify_supply_chain.py
  • python3 scripts/checks/verify_docs.py
  • python3 scripts/checks/verify_security_notes.py
  • repository quickcheck/Ruff through inherited repair(ci): format consolidated supply-chain policy test #1176 repair
  • git diff --check

No predecessor workflow/review result is current-head GREEN.

Security Notes

  • Attack surface: supply-chain/release evidence, vulnerability-exception governance, model acquisition/integrity, Demucs/PyTorch deserialization.
  • Trust boundary: this PR's owned changes alter repository evidence only; they do not load, bundle, download, deserialize, sign or execute model bytes. The third protected-base diff file is repair(ci): format consolidated supply-chain policy test #1176's explicit foundation repair.
  • Safe failure: absent model verification and the unresolved torch advisory are stated explicitly instead of being represented as passing controls. Strict audit behavior is preserved.
  • No dependency, lockfile, workflow, runtime, network, filesystem, IPC, model-byte, signing or credential behavior is changed by the owned supply-chain corrections.
  • Remaining risk: protected runtime still lacks a Distribution-owned immutable commercially admissible model artifact contract and upstream pretrained-weight rights remain unresolved.

Merge gate

Keep Draft until unchanged exact 75e767945a07d610ad03b78f5cafbb3fba86b6b4 has all applicable repository/central CI, security/SAST, SBOM/supply-chain, cross-platform build and review gates terminal-success, zero valid unresolved findings, a qualifying independent non-author last-push approval, and ordinary protected-branch acceptance. #1176 remains an explicit prerequisite until protected ancestry absorbs its third-file diff. No self-approval, force-push, destructive rebase, synthetic status, bypass, duplicate local scanner, vulnerability ignore, or gate weakening.

seonghobae and others added 8 commits September 6, 2026 04:00
…ks with O(1) dictionary key deduplication in chart export
Restack the one-file metadata correction onto the current protected develop tip without changing runtime/model authority. Preserve checksum inventory while stating that the profile is unused by the current Demucs runtime and lacks runtime checksum verification.

Signed-off-by: Seongho Bae <me@seonghobae.me>
@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: c2839e48-b2a4-4140-9ab0-8aff2bab3966

📥 Commits

Reviewing files that changed from the base of the PR and between 314ddea and df7bfdd.

📒 Files selected for processing (1)
  • supply-chain/supplemental-component-inventory.json

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

모델 아티팩트의 releaseUsage 설명을 현재 런타임 동작에 맞게 갱신했습니다. verification 설명은 SHA256 기록만 유지하며 런타임 체크섬 검증이 구현되지 않았음을 명시합니다.

Changes

공급망 인벤토리 설명

Layer / File(s) Summary
모델 아티팩트 메타데이터 갱신
supply-chain/supplemental-component-inventory.json
현재 런타임 분리 경로가 모델 프로필을 사용하지 않는다는 설명을 추가했습니다. 런타임 체크섬 검증이 구현되지 않았다는 설명을 추가했습니다.

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

Merge Risk: ⚪ Minimal · up to df7bf

This updates supply-chain inventory descriptions to match the current audio-separation implementation without changing runtime behavior, artifact identity, or deployment configuration. No concrete merge-blocking risk remains.

Suggested reviewers: copilot

🚥 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. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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 제목은 현재 develop의 Demucs 공급망 릴리스 근거를 수정하는 주요 변경 사항을 정확하고 간결하게 설명합니다.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/supply-chain-bandsplit-inventory-current-develop

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
Collaborator Author

@coderabbitai review

Please review exact head df7bfdd02f9eef5bf9bb9036e6220e33343564f2. Scope is intentionally one current-base supply-chain inventory correction: verify the bandsplit-v1-profile runtime-use/checksum claims are accurate, no valid current develop inventory fields were lost, and the release gap remains fail-closed rather than presented as implemented verification.

@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== checked-out revision and ancestry =='
git rev-parse HEAD
git status --short
git merge-base HEAD origin/develop
git rev-list --left-right --count origin/develop...HEAD
git diff --check origin/develop...HEAD
git diff --stat origin/develop...HEAD
git diff --name-status origin/develop...HEAD

echo '== inventory change =='
git diff --no-ext-diff --unified=80 origin/develop...HEAD -- supply-chain/supplemental-component-inventory.json
echo '== inventory entry =='
python3 - <<'PY'
import json
p = "supply-chain/supplemental-component-inventory.json"
with open(p, encoding="utf-8") as f:
    data = json.load(f)

def visit(x):
    if isinstance(x, dict):
        if x.get("name") == "bandsplit-v1-profile" or x.get("component") == "bandsplit-v1-profile":
            print(json.dumps(x, indent=2, sort_keys=True))
        for v in x.values():
            visit(v)
    elif isinstance(x, list):
        for v in x:
            visit(v)
visit(data)
PY

echo '== profile references outside the inventory =='
rg -n -i -C 4 'bandsplit-v1-profile|bandsplit' -g '!supply-chain/supplemental-component-inventory.json' .

echo '== separation runtime candidates =='
rg -n -i -C 5 'Demucs|AudioStemSeparator|stem.?separat|separat' -g '!supply-chain/supplemental-component-inventory.json' .

echo '== PR metadata, checks, and reviews =='
gh pr view 1184 --repo ContextualWisdomLab/bandscope \
  --json number,state,isDraft,headRefName,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviews,statusCheckRollup \
  --jq '{number,state,isDraft,headRefName,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviews,statusCheckRollup}'

Length of output: 202185


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='314ddeae7b775a4957594b599358c8255617eb2e'
head='df7bfdd02f9eef5bf9bb9036e6220e33343564f2'
file='supply-chain/supplemental-component-inventory.json'

echo '== exact identity =='
printf 'HEAD: '; git rev-parse HEAD
printf 'merge-base: '; git merge-base "$base" "$head"
printf 'ahead/behind: '; git rev-list --left-right --count "$base...$head"
printf 'changed paths: '; git diff --name-only "$base...$head"
printf 'diff check: '; git diff --check "$base...$head" && echo PASS
printf 'base blob: '; git rev-parse "$base:$file"
printf 'head blob: '; git rev-parse "$head:$file"
printf 'checked-out blob: '; git rev-parse "HEAD:$file"

echo '== exact inventory delta =='
git diff --no-ext-diff --unified=12 "$base...$head" -- "$file"

echo '== full matching inventory object: base and head =='
for rev in "$base" "$head"; do
  echo "-- $rev --"
  git show "$rev:$file" | awk '
    BEGIN { RS="}[[:space:]]*,?[[:space:]]*{" }
    /bandsplit-v1-profile/ { print }
  '
done

echo '== exact repository references and checksum-verifier candidates =='
rg -n -i -C 3 \
  'bandsplit-v1-profile|bandsplit|_load_model_profile|sha256|hashlib|checksum|verify.*(model|profile)|(model|profile).*verify' \
  services supply-chain scripts \
  -g '!supply-chain/supplemental-component-inventory.json' \
  -g '!**/*.lock' \
  -g '!**/test*/**' || true

echo '== AudioStemSeparator model-loading implementation =='
sed -n '116,180p' services/analysis-engine/src/bandscope_analysis/separation/audio_separator.py

echo '== static contents of stated verification scripts =='
for path in \
  scripts/checks/verify_supply_chain.py \
  scripts/checks/verify_docs.py \
  scripts/checks/verify_security_notes.py
do
  echo "-- $path --"
  sed -n '1,260p' "$path"
done

echo '== predecessor corrected blob =='
git cat-file -e '2c8931491c9eaf72c37688cb35b12727a72c09f5:supply-chain/supplemental-component-inventory.json'
printf 'predecessor blob: '; git rev-parse '2c8931491c9eaf72c37688cb35b12727a72c09f5:supply-chain/supplemental-component-inventory.json'

Length of output: 33336


@seonghobae Review complete. I found no actionable issue in the requested scope.

  • The checked head is df7bfdd02f9eef5bf9bb9036e6220e33343564f2.
  • Its merge base is develop@314ddeae7b775a4957594b599358c8255617eb2e.
  • The comparison is ahead 1 and behind 0.
  • Only supply-chain/supplemental-component-inventory.json changed.
  • git diff --check passed.
  • The inventory blob is 10b1961798d969f400d7e73f086bdfadd7f56e75. It is identical to the corrected blob from #1054.

The change preserves the profile version, source URL, license, SHA-256 value, and storage path. It changes only the inaccurate releaseUsage and verification claims.

Static runtime inspection confirms that AudioStemSeparator._load_model loads Demucs through demucs.pretrained.get_model. I found no runtime use of bandsplit-v1-profile, no _load_model_profile implementation, and no runtime checksum verifier for this profile. The new verification text correctly identifies the SHA-256 as inventory metadata and identifies runtime verification as an unimplemented release gap.

I inspected the stated verification scripts but did not execute repository scripts in this sandbox. Current-head CI is still incomplete. Several applicable security, SBOM, build, and review checks are queued or running. The PR remains Draft and has no reviews. Do not treat the static review as a replacement for those gates.

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

Remove the false claim that current protected runtime only loads bundled/checksum-tracked Demucs weights. Record the actual upstream get_model/torch.load boundary, keep commercial release fail closed, and point immutable artifact/rights work to #1180/#1181.

Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae seonghobae changed the title fix(supply-chain): restack accurate bandsplit inventory on current develop fix(supply-chain): correct Demucs release evidence on current develop Sep 7, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

Please review current exact head dcdf3fc08f26fea324be06c6242292942553258f against protected develop@314ddeae7b775a4957594b599358c8255617eb2e. This supersedes predecessor review coverage at df7bfdd…. Focus on both supply-chain evidence corrections: the unused bandsplit-v1-profile inventory claims and the GHSA-53q9-r3pm-6pq6 Demucs/torch exception rationale. Verify that the new wording matches current protected runtime without weakening the gate or implying #970/#1180/#1181 are already release truth.

@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='314ddeae7b775a4957594b599358c8255617eb2e'
head='dcdf3fc08f26fea324be06c6242292942553258f'
previous='df7bfdd02f9eef5bf9bb9036e6220e33343564f2'

echo '== exact revision and ancestry =='
printf 'checked-out HEAD: '; git rev-parse HEAD
printf 'requested head: '; git rev-parse "$head"
printf 'merge-base: '; git merge-base "$base" "$head"
printf 'ahead/behind: '; git rev-list --left-right --count "$base...$head"
printf 'predecessor ancestor: '; git merge-base --is-ancestor "$previous" "$head" && echo yes || echo no
git status --short
git diff --check "$base...$head"
git diff --name-status "$base...$head"
git diff --stat "$base...$head"

echo '== exact diff =='
git diff --no-ext-diff --unified=35 "$base...$head"

echo '== supply-chain inventory entries at base and head =='
for rev in "$base" "$head"; do
  echo "-- $rev --"
  git show "$rev:supply-chain/supplemental-component-inventory.json" |
    jq '.. | objects | select(.name? == "bandsplit-v1-profile" or .component? == "bandsplit-v1-profile")'
done

echo '== advisory and exception references in changed tree =='
rg -n -i -C 6 \
  'GHSA-53q9-r3pm-6pq6|Demucs|torch|exception|waiver|allowlist|release.?gate|release.?truth|`#970`|`#1180`|`#1181`' \
  supply-chain scripts services .github \
  -g '!supply-chain/supplemental-component-inventory.json' \
  -g '!**/*.lock' || true

echo '== bandsplit references and checksum verification candidates =='
rg -n -i -C 5 \
  'bandsplit-v1-profile|bandsplit|_load_model_profile|sha256|hashlib|checksum|verify.*(model|profile)|(model|profile).*verify' \
  services supply-chain scripts .github \
  -g '!supply-chain/supplemental-component-inventory.json' \
  -g '!**/*.lock' -g '!**/test*/**' || true

echo '== separation implementation outline and relevant source =='
candidate=$(fd -a '^audio_separator\.py$' services | head -n 1 || true)
if [ -n "$candidate" ]; then
  ast-grep outline "$candidate" --items all
  rg -n -C 12 '_load_model|demucs|torch|checksum|verify' "$candidate" || true
fi

echo '== changed supply-chain and gate file outlines =='
git diff --name-only "$base...$head" | while IFS= read -r path; do
  case "$path" in
    *.py|*.js|*.ts) ast-grep outline "$path" --items all ;;
  esac
done

echo '== referenced GitHub items and PR checks =='
gh issue view 970 --repo ContextualWisdomLab/bandscope \
  --json number,state,title,url,body --jq '{number,state,title,url,body}' || true
gh pr view 1180 --repo ContextualWisdomLab/bandscope \
  --json number,state,isDraft,title,url,headRefOid,baseRefOid,body --jq '{number,state,isDraft,title,url,headRefOid,baseRefOid,body}' || true
gh pr view 1181 --repo ContextualWisdomLab/bandscope \
  --json number,state,isDraft,title,url,headRefOid,baseRefOid,body --jq '{number,state,isDraft,title,url,headRefOid,baseRefOid,body}' || true
gh pr view 1184 --repo ContextualWisdomLab/bandscope \
  --json number,state,isDraft,headRefOid,baseRefOid,mergeStateStatus,reviews,statusCheckRollup \
  --jq '{number,state,isDraft,headRefOid,baseRefOid,mergeStateStatus,reviews,statusCheckRollup}' || true

Length of output: 203591


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='314ddeae7b775a4957594b599358c8255617eb2e'
head='dcdf3fc08f26fea324be06c6242292942553258f'

echo '== identity and paths =='
git rev-parse HEAD
git merge-base "$base" "$head"
git rev-list --left-right --count "$base...$head"
git diff --check "$base...$head" && echo 'diff-check: PASS'
git diff --name-status "$base...$head"

echo '== exact changed lines =='
git diff --no-ext-diff --unified=18 "$base...$head"

echo '== matching inventory records: base =='
git show "$base:supply-chain/supplemental-component-inventory.json" |
  jq -c '.. | objects | select(.name? == "bandsplit-v1-profile" or .component? == "bandsplit-v1-profile")'

echo '== matching inventory records: head =='
git show "$head:supply-chain/supplemental-component-inventory.json" |
  jq -c '.. | objects | select(.name? == "bandsplit-v1-profile" or .component? == "bandsplit-v1-profile")'

echo '== exact GHSA references in head =='
rg -n -i -C 12 'GHSA-53q9-r3pm-6pq6' \
  supply-chain scripts .github docs \
  -g '!**/*.lock' || true

echo '== advisory policy implementation candidates =='
rg -n -i -C 8 \
  '53q9|demucs.*torch|torch.*demucs|pytorch|advisory.*exception|exception.*advisory|ignore.*GHSA' \
  scripts/checks supply-chain .github \
  -g '!**/*.lock' || true

echo '== dependency declarations and platform markers =='
rg -n -i -C 5 '(^|\s)(demucs|torch)(\[|=|>|<|~|\s)|platform_system|sys_platform' \
  -g 'pyproject.toml' -g 'requirements*.txt' -g 'poetry.lock' -g 'uv.lock' -g 'Pipfile*' . || true

echo '== runtime profile references only =='
rg -n -i -C 5 'bandsplit-v1-profile|_load_model_profile|bandsplit-v1' \
  services/analysis-engine/src supply-chain \
  -g '!supply-chain/supplemental-component-inventory.json' || true

echo '== referenced work-item records =='
for number in 970 1180 1181; do
  echo "-- issue-or-pr #$number --"
  gh issue view "$number" --repo ContextualWisdomLab/bandscope \
    --json number,state,title,url,body \
    --jq '{number,state,title,url,body}' || true
done

Length of output: 59814


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='314ddeae7b775a4957594b599358c8255617eb2e'
head='dcdf3fc08f26fea324be06c6242292942553258f'

echo '== GHSA configuration and enforcement =='
rg -n -i -C 16 'GHSA-53q9-r3pm-6pq6|53q9-r3pm-6pq6|torch 2\.2\.2|torch.*2\.2\.2' \
  .github services/analysis-engine scripts/checks \
  -g '!**/*.lock' || true

echo '== exact torch and Demucs lock records at protected base =='
git show "$base:services/analysis-engine/uv.lock" |
  awk 'BEGIN { RS="\\[\\[package\\]\\]" } /^[[:space:]]*name = "(torch|demucs)"/ { print "[[package]]" $0 }'

echo '== exact torch and Demucs lock records at requested head =='
git show "$head:services/analysis-engine/uv.lock" |
  awk 'BEGIN { RS="\\[\\[package\\]\\]" } /^[[:space:]]*name = "(torch|demucs)"/ { print "[[package]]" $0 }'

echo '== dependency-review workflow and OSV configuration excerpts =='
for path in .github/workflows/dependency-review.yml services/analysis-engine/osv-scanner.toml; do
  if [ -f "$path" ]; then
    echo "-- $path --"
    rg -n -C 16 'GHSA|torch|demucs|ignore|allow' "$path" || true
  fi
done

echo '== exact platform-specific dependency metadata =='
sed -n '1,45p' services/analysis-engine/pyproject.toml
rg -n -C 10 'name = "demucs"|name = "torch"' services/analysis-engine/uv.lock

Length of output: 24209


@seonghobae Review complete for exact head dcdf3fc08f26fea324be06c6242292942553258f.

I found one actionable issue.

  • P1 — Remove or correct the obsolete torch 2.2.2 exception claim. docs/security/dependency-policy.md, Line 112 says that GHSA-53q9-r3pm-6pq6 “is still encoded for torch 2.2.2.” Both protected develop and this head lock torch 2.12.1 in services/analysis-engine/uv.lock. The repository search found no GHSA-53q9-r3pm-6pq6 or torch 2.2.2 entry in the checked exception configuration. Also, services/analysis-engine/pyproject.toml excludes Demucs on macOS x86_64. The paragraph therefore describes a non-current exception as active. Update it to match the actual resolved dependency and configured gate state. Do not retain the old Intel-mac exception rationale unless a current, repo-controlled exception requires it.

The bandsplit-v1-profile correction is accurate. The current runtime loads htdemucs through demucs.pretrained.get_model. It does not consume bandsplit-v1-profile. It has no _load_model_profile implementation. It has no runtime checksum verification for that profile. The inventory preserves the unchanged version, source URL, license, checksum, and storage path.

The new text correctly does not treat #970, #1180, or #1181 as release truth. These items remain open. #970 describes Draft compatibility controls. #1180 and #1181 retain unresolved artifact and commercial-rights requirements. The PR is still Draft. Current CI checks are queued or in progress, so they do not establish release readiness.

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

Adopt canonical #1176 as an ordinary second parent while preserving this PR's Demucs supply-chain evidence corrections. The resulting tree contains #1176's sole Ruff formatting repair rather than copying a competing implementation; that prerequisite diff disappears once #1176 becomes protected ancestry.

Signed-off-by: Seongho Bae <me@seonghobae.me>

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

Please review the new exact head 23edfd8cde3ceeed82d5743712c3c0d9587d0987. The prior requests/reviews ended at df7bfdd…/dcdf3fc… and are historical. Current tree adds only ordinary second-parent reconciliation of canonical #1176's one-file Ruff repair; owned supply-chain changes remain the inventory correction plus the Demucs/torch exception-evidence correction. Verify no #1176 behavior was altered, no unrelated delta entered, and the release/security claims remain fail closed.

@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Tip

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='314ddeae7b775a4957594b599358c8255617eb2e'
head='23edfd8cde3ceeed82d5743712c3c0d9587d0987'
repo='ContextualWisdomLab/bandscope'

echo '== exact identity and ancestry =='
printf 'checked-out HEAD: '; git rev-parse HEAD
printf 'requested HEAD: '; git rev-parse "$head"
printf 'merge-base: '; git merge-base "$base" "$head"
printf 'ahead/behind: '; git rev-list --left-right --count "$base...$head"
printf 'parents: '; git show -s --format='%P' "$head"
git status --short
git diff --check "$base...$head" && echo 'diff-check: PASS'
echo '== changed paths against protected develop =='
git diff --name-status "$base...$head"
git diff --stat "$base...$head"
echo '== full patch against protected develop =='
git diff --no-ext-diff --unified=40 "$base...$head"

echo '== head commit and each parent delta =='
git show -s --format='commit=%H%nparents=%P%nsubject=%s%n%n%b' "$head"
for parent in $(git show -s --format='%P' "$head"); do
  echo "-- parent $parent --"
  git diff --check "$parent" "$head" && echo 'diff-check: PASS'
  git diff --name-status "$parent" "$head"
  git diff --no-ext-diff --unified=30 "$parent" "$head"
done

echo '== PR `#1176` metadata and commit list =='
gh pr view 1176 --repo "$repo" \
  --json number,state,isDraft,title,url,baseRefOid,headRefOid,commits,files \
  --jq '{number,state,isDraft,title,url,baseRefOid,headRefOid,commits:[.commits[]|{oid:.oid,messageHeadline:.messageHeadline}],files:[.files[]|{path:.path,additions:.additions,deletions:.deletions}]}' || true

echo '== locate canonical `#1176` commit in graph =='
git log --all --oneline --decorate --grep='`#1176`\|Ruff' -n 30 || true

echo '== current supply-chain records and policy claims =='
for path in supply-chain/supplemental-component-inventory.json docs/security/dependency-policy.md; do
  if [ -f "$path" ]; then
    echo "-- $path outline/content --"
    case "$path" in
      *.json) jq '.. | objects | select(.name? == "bandsplit-v1-profile" or .component? == "bandsplit-v1-profile")' "$path" ;;
      *) rg -n -C 18 'GHSA-53q9-r3pm-6pq6|torch|Demucs|exception|release|gate|`#970`|`#1180`|`#1181`' "$path" || true ;;
    esac
  fi
done

echo '== protected-base and head dependency/gate evidence =='
for rev in "$base" "$head"; do
  echo "-- $rev torch/demucs resolved versions --"
  git show "$rev:services/analysis-engine/uv.lock" 2>/dev/null |
    awk 'BEGIN { RS="\\[\\[package\\]\\]" } /^[[:space:]]*name = "(torch|demucs)"/ { print "[[package]]" $0 }' || true
done
rg -n -i -C 10 \
  'GHSA-53q9-r3pm-6pq6|53q9-r3pm-6pq6|torch 2\.2\.2|bandsplit-v1-profile|_load_model_profile|checksum|sha256|release.?gate|release.?truth|`#970`|`#1180`|`#1181`' \
  supply-chain scripts .github docs services \
  -g '!**/*.lock' -g '!supply-chain/supplemental-component-inventory.json' || true

echo '== separation runtime implementation =='
candidate=$(fd -a '^audio_separator\.py$' services | head -n 1 || true)
if [ -n "$candidate" ]; then
  ast-grep outline "$candidate" --items all
  rg -n -C 12 '_load_model|demucs|bandsplit|checksum|verify' "$candidate" || true
fi

echo '== referenced work-item states and current PR checks =='
for number in 970 1180 1181 1184; do
  gh issue view "$number" --repo "$repo" \
    --json number,state,title,url,body \
    --jq '{number,state,title,url,body}' || true
done
gh pr view 1184 --repo "$repo" \
  --json number,state,isDraft,headRefOid,baseRefOid,mergeStateStatus,reviews,statusCheckRollup \
  --jq '{number,state,isDraft,headRefOid,baseRefOid,mergeStateStatus,reviews,statusCheckRollup}' || true

Length of output: 215205


@seonghobae Review complete for exact head 23edfd8cde3ceeed82d5743712c3c0d9587d0987.

I found one actionable issue.

  • P1 — Remove the claim that the GHSA-53q9-r3pm-6pq6 exception is still active. docs/security/dependency-policy.md, Line 112 says the exception “is still encoded for torch 2.2.2.” Protected develop and this head both resolve torch 2.12.1 in services/analysis-engine/uv.lock. torch 2.12.1 is newer than the stated fixed version, torch 2.6. The repository search also found no current repo-controlled exception configuration for this advisory or for torch 2.2.2. The paragraph must describe the old Intel-mac compatibility rationale as historical, or remove it. It must not represent an obsolete exception as an active current control.

The second-parent reconciliation is correct.

  • The requested head matches the checked-out revision.
  • The merge base is protected develop@314ddeae7b775a4957594b599358c8255617eb2e.
  • The head is an ordinary two-parent merge. Its second parent is canonical #1176 head 8fe6b6d99c009527ef0bcba419e6f6debdb23c23.
  • The delta from the supply-chain parent changes only services/analysis-engine/tests/test_supply_chain_policy.py.
  • That delta is the one-line Ruff formatting repair from #1176. It does not alter the test assertion or behavior.
  • The protected-base diff contains only the two owned supply-chain evidence files and the #1176 test-formatting file.
  • git diff --check passed.

The bandsplit-v1-profile correction remains accurate. The runtime loads htdemucs through demucs.pretrained.get_model. It does not consume bandsplit-v1-profile. It has no _load_model_profile method. It has no runtime checksum verifier for that profile.

The release claims remain fail closed. The text identifies #970 as Draft evidence. It does not treat #1180 or #1181 as resolved. The PR is Draft, has no reviews, is BLOCKED, and has queued or in-progress CI and security checks.

You are interacting with an AI system.

The local dependency-review and analysis-engine OSV exception paths cited by the policy no longer exist after workflow consolidation. Record GHSA-53q9-r3pm-6pq6 as an unresolved compatibility risk, preserve strict pip-audit fail-closed behavior, and keep release acceptance blocked on the model/security/rights owners.

Signed-off-by: Seongho Bae <me@seonghobae.me>

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

Current exact head is now 75e767945a07d610ad03b78f5cafbb3fba86b6b4. Please review this unchanged head, not predecessor df7bfdd…/dcdf3fc…/23edfd8…. The final delta additionally corrects a governance fact: the Python torch advisory is not an active exception because the cited repo-local dependency-review and analysis-engine OSV exception files no longer exist; retained security-backstop is strict pip-audit. Confirm this remains fail closed and that #1176 ancestry is preserved without modification.

Copy link
Copy Markdown
Collaborator Author

Primary-source TRACEABILITY for current 75e767945a07d610ad03b78f5cafbb3fba86b6b4 evidence repair:

These sources support the evidence correction only. They do not establish commercial rights for pretrained weights, nor do they substitute for #1180 immutable artifact/provenance or #1181 rights acceptance.

@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Oops, something went wrong! Please try again later. 🐰 💔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working priority: medium Normal-priority or P2 work type: bug Defect or incorrect behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant