chore: sync PR review merge scheduler - #450
Conversation
There was a problem hiding this comment.
Pull request overview
This PR synchronizes BandScope’s PR review merge scheduler with the centralized implementation and updates the GitHub Actions wrapper to support controlled branch updates and manual review dispatching.
Changes:
- Updated
scripts/ci/pr_review_merge_scheduler.pyto the centralized decision/action logic (branch update handling, Strix evidence gating, safer subprocess invocation). - Extended
.github/workflows/pr-review-merge-scheduler.ymlwith an explicitupdate_branchesinput and wired scheduler flags (--update-branches/--no-update-branches), while keeping scheduled review dispatch disabled by default. - Switched automation operations to use the GitHub Actions token and adjusted job permissions accordingly.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| scripts/ci/pr_review_merge_scheduler.py | Centralized scheduler logic, including update-branch support and Strix/OpenCode orchestration. |
| .github/workflows/pr-review-merge-scheduler.yml | Workflow inputs and env wiring for update_branches, token/permission tightening, and manual trigger support. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
OpenCode found current-head GitHub Check failures and could not approve until they are mapped to source-backed fixes.
Findings
Line-specific fallback findings:
No deterministic missing-string markers or Strix report locations were recognized. Use the failed-check evidence below to map each failed check to exact local source lines before approving.
Verification
- Review source: independent OpenCode failed-check diagnosis using current-head check evidence.
- Result: REQUEST_CHANGES
- Reason: one or more GitHub Checks failed on current head
34e48ff4a65ae67441ef701907b51f3e4bad7c04.
Gate evidence
- Head SHA:
34e48ff4a65ae67441ef701907b51f3e4bad7c04 - Workflow run: 28134451142
- Workflow attempt: 1
Failed checks:
- ci/ci / build-and-test: FAILURE (https://github.com/ContextualWisdomLab/bandscope/actions/runs/28134451151/job/83318012532)
- release/release-preflight: FAILURE (https://github.com/ContextualWisdomLab/bandscope/actions/runs/28134451112/job/83318012612)
Failed check evidence for line-specific fixes:
Failed GitHub Check Evidence
- PR: #450
- Head SHA:
34e48ff4a65ae67441ef701907b51f3e4bad7c04 - Repository:
ContextualWisdomLab/bandscope
Line-specific repair contract
-
Treat the check logs and annotations below as diagnostic evidence, not as a complete review.
-
For each actionable failed check, inspect the local source or diff and identify the exact file line that must change.
-
OpenCode
REQUEST_CHANGESfindings must includepath,line,root_cause,fix_direction,regression_test_direction, andsuggested_diff. -
Do not request changes with only a GitHub Actions URL or a generic check name.
-
When Strix logs contain multiple
Vulnerability ReportorModel ... Vulnerabilities ...sections, include every model-reported vulnerability in the review evidence and findings, including model name, title, severity, endpoint, and Code Locations/path:line evidence when present. -
Create one OpenCode finding per Strix model vulnerability report; do not satisfy two model reports with one combined finding, even when titles or locations match.
Failed check: ci/ci / build-and-test
- Type:
check_run - Conclusion:
FAILURE - Details URL: https://github.com/ContextualWisdomLab/bandscope/actions/runs/28134451151/job/83318012532
- Workflow run id:
28134451151 - Check run id:
83318012532
Failed job steps
- step 7: Run quickcheck (failure)
Check annotations
- .github:362-362 [failure] Process completed with exit code 1.
Failed log signal summary
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:52.8498493Z [command]/usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C /home/runner/work/_temp/86888649-455e-428b-bad8-8b10045a8557 -f /home/runner/work/_temp/4f32bfc7-a4b7-49a2-b7df-24b94dae9e8f
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8549104Z =============================== warnings summary ===============================
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8552870Z /home/runner/work/bandscope/bandscope/services/analysis-engine/.venv/lib/python3.12/site-packages/librosa/core/pitch.py:103: UserWarning: Trying to estimate tuning from empty frequency set.
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8556537Z /home/runner/work/bandscope/bandscope/services/analysis-engine/.venv/lib/python3.12/site-packages/librosa/core/spectrum.py:266: UserWarning: n_fft=2048 is too large for input signal of length=100
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8558064Z warnings.warn(
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8558728Z -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8605515Z ============= 1 failed, 440 passed, 3 warnings in 91.91s (0:01:31) =============
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.7574086Z ##[error]Process completed with exit code 1.
Failed log excerpt
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7800123Z Current runner version: '2.335.1'
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7826372Z ##[group]Runner Image Provisioner
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7827298Z Hosted Compute Agent
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7828455Z Version: 20260611.554
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7829184Z Commit: 5e0782fdc9014723d3be820dd114dd31555c2bd1
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7829962Z Build Date: 2026-06-11T21:40:46Z
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7830742Z Worker ID: {10b8315b-69f3-43bc-a430-a734c2da21d3}
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7831474Z Azure Region: eastus
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7832073Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7834062Z ##[group]Operating System
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7834778Z Ubuntu
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7835378Z 24.04.4
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7835909Z LTS
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7836453Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7837083Z ##[group]Runner Image
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7837693Z Image: ubuntu-24.04
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7838695Z Version: 20260615.205.1
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7840675Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260615.205/images/ubuntu/Ubuntu2404-Readme.md
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7843355Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260615.205
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7845037Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7846275Z ##[group]GITHUB_TOKEN Permissions
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7848736Z Contents: read
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7849451Z Metadata: read
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7850039Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7852183Z Secret source: Actions
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.7853388Z Prepare workflow directory
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.8264907Z Prepare all required actions
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:46.8304077Z Getting action download info
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.1046060Z Download action repository 'actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10' (SHA:df4cb1c069e1874edd31b4311f1884172cec0e10)
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.4026743Z Download action repository 'actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e' (SHA:48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e)
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.5246162Z Download action repository 'astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39' (SHA:fac544c07dec837d0ccb6301d7b5580bf5edae39)
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.8406767Z Complete job name: ci / build-and-test
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9153847Z ##[group]Run actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9154933Z with:
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9155433Z repository: ContextualWisdomLab/bandscope
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9160475Z token: ***
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9161054Z ssh-strict: true
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9161527Z ssh-user: git
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9161976Z persist-credentials: true
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9162471Z clean: true
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9162915Z sparse-checkout-cone-mode: true
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9163442Z fetch-depth: 1
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9163875Z fetch-tags: false
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9164324Z show-progress: true
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9164783Z lfs: false
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9165212Z submodules: false
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9165660Z set-safe-directory: true
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9166408Z env:
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9166826Z GIT_CONFIG_COUNT: 1
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9167311Z GIT_CONFIG_KEY_0: init.defaultBranch
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9168122Z GIT_CONFIG_VALUE_0: develop
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:47.9168667Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0125175Z Syncing repository: ContextualWisdomLab/bandscope
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0127292Z ##[group]Getting Git version info
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0128326Z Working directory is '/home/runner/work/bandscope/bandscope'
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0129486Z [command]/usr/bin/git version
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0206451Z git version 2.54.0
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0229699Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0244105Z Temporarily overriding HOME='/home/runner/work/_temp/ed3cd236-351a-4a19-aa87-ebd437d6861d' before making global git config changes
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0245634Z Adding repository directory to the temporary git global config as a safe directory
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0249904Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/bandscope/bandscope
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0303229Z Deleting the contents of '/home/runner/work/bandscope/bandscope'
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0306709Z ##[group]Determining repository object format
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0310027Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0311547Z ##[group]Initializing the repository
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0315862Z [command]/usr/bin/git init /home/runner/work/bandscope/bandscope
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0435569Z Initialized empty Git repository in /home/runner/work/bandscope/bandscope/.git/
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0449562Z [command]/usr/bin/git remote add origin https://github.com/ContextualWisdomLab/bandscope
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0504380Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0506083Z ##[group]Disabling automatic garbage collection
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0508107Z [command]/usr/bin/git config --local gc.auto 0
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0538259Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0539505Z ##[group]Setting up auth
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0540159Z Removing SSH command configuration
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0544636Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0578828Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0934979Z Removing HTTP extra header
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0941884Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.0976626Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1187612Z Removing includeIf entries pointing to credentials config files
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1194609Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1227101Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1448341Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config http.https://github.com/.extraheader AUTHORIZATION: basic ***
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1484843Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/bandscope/bandscope/.git.path /home/runner/work/_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1515391Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/bandscope/bandscope/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1551783Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1583722Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1615367Z ##[endgroup]
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1616179Z ##[group]Fetching the repository
ci / build-and-test UNKNOWN STEP 2026-06-24T22:44:48.1623450Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +540488fb8f35a93b06649c48294229623fbf315d:refs/remotes/pull/450/merge
... truncated 495 middle log lines ...
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8550103Z tests/test_pipeline_integration.py::test_pipeline_without_detected_sections_falls_back
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8551188Z tests/test_roles.py::test_role_extractor_falls_back_when_activity_detection_fails
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8552870Z /home/runner/work/bandscope/bandscope/services/analysis-engine/.venv/lib/python3.12/site-packages/librosa/core/pitch.py:103: UserWarning: Trying to estimate tuning from empty frequency set.
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8554152Z return pitch_tuning(
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8554381Z
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8554869Z tests/test_roles.py::test_role_extractor_falls_back_when_activity_detection_fails
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8556537Z /home/runner/work/bandscope/bandscope/services/analysis-engine/.venv/lib/python3.12/site-packages/librosa/core/spectrum.py:266: UserWarning: n_fft=2048 is too large for input signal of length=100
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8558064Z warnings.warn(
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8558282Z
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8558728Z -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8559849Z ================================ tests coverage ================================
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8560696Z _______________ coverage: platform linux, python 3.12.3-final-0 ________________
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8561156Z
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8561528Z Name Stmts Miss Cover Missing
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8562312Z ------------------------------------------------------------------------------------
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8563159Z src/bandscope_analysis/__init__.py 3 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8564035Z src/bandscope_analysis/api.py 571 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8564883Z src/bandscope_analysis/chords/__init__.py 5 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8565770Z src/bandscope_analysis/chords/analyzer.py 116 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8566645Z src/bandscope_analysis/chords/capo.py 10 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8567537Z src/bandscope_analysis/chords/chord_recognizer.py 192 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8568752Z src/bandscope_analysis/chords/model.py 15 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8569596Z src/bandscope_analysis/cli.py 68 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8570488Z src/bandscope_analysis/health.py 7 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8571355Z src/bandscope_analysis/ranges/__init__.py 4 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8572232Z src/bandscope_analysis/ranges/analyzer.py 77 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8575540Z src/bandscope_analysis/ranges/model.py 19 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8576479Z src/bandscope_analysis/ranges/pitch_tracker.py 54 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8577373Z src/bandscope_analysis/roles/__init__.py 4 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8578537Z src/bandscope_analysis/roles/activity.py 59 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8579479Z src/bandscope_analysis/roles/extractor.py 118 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8580368Z src/bandscope_analysis/roles/model.py 58 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8581243Z src/bandscope_analysis/roles/priority.py 13 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8582108Z src/bandscope_analysis/roles/tuning.py 11 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8582989Z src/bandscope_analysis/sections/__init__.py 6 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8583839Z src/bandscope_analysis/sections/anchors.py 5 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8584700Z src/bandscope_analysis/sections/extractor.py 38 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8585551Z src/bandscope_analysis/sections/model.py 35 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8586412Z src/bandscope_analysis/sections/segmenter.py 140 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8587273Z src/bandscope_analysis/sections/utils.py 8 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8588390Z src/bandscope_analysis/separation/__init__.py 4 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8589271Z src/bandscope_analysis/separation/audio_separator.py 145 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8590131Z src/bandscope_analysis/separation/model.py 31 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8591014Z src/bandscope_analysis/separation/separator.py 34 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8591900Z src/bandscope_analysis/temporal/__init__.py 3 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8592770Z src/bandscope_analysis/temporal/analyzer.py 49 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8593644Z src/bandscope_analysis/temporal/model.py 9 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8594501Z src/bandscope_analysis/transcription/__init__.py 2 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8595377Z src/bandscope_analysis/transcription/api.py 11 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8596262Z src/bandscope_analysis/youtube.py 81 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8597780Z ------------------------------------------------------------------------------------
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8598798Z TOTAL 2005 0 100%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8599524Z Required test coverage of 100% reached. Total coverage: 100.00%
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8600377Z =========================== short test summary info ============================
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8603192Z FAILED tests/test_supply_chain_policy.py::test_pr_review_merge_scheduler_uses_github_token_fallback - assert 'issues: write' in 'name: PR Review Merge Scheduler\n\non:\n schedule:\n - cron: "17 */2 * * *"\n workflow_dispatch:\n inputs:\n ... args+=(--no-update-branches)\n fi\n python3 scripts/ci/pr_review_merge_scheduler.py "${args[@]}"\n'
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:06.8605515Z ============= 1 failed, 440 passed, 3 warnings in 91.91s (0:01:31) =============
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.7574086Z ##[error]Process completed with exit code 1.
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.7722046Z Post job cleanup.
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8581003Z [command]/usr/bin/git version
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8619735Z git version 2.54.0
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8661968Z Temporarily overriding HOME='/home/runner/work/_temp/6874dc8b-fcb0-46d7-83ca-c600e5115fee' before making global git config changes
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8663820Z Adding repository directory to the temporary git global config as a safe directory
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8667423Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/bandscope/bandscope
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8701681Z Removing SSH command configuration
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8710272Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8745173Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8981004Z Removing HTTP extra header
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.8986721Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9024756Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9248914Z Removing includeIf entries pointing to credentials config files
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9257171Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9287231Z includeif.gitdir:/home/runner/work/bandscope/bandscope/.git.path
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9288657Z includeif.gitdir:/home/runner/work/bandscope/bandscope/.git/worktrees/*.path
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9289629Z includeif.gitdir:/github/workspace/.git.path
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9290460Z includeif.gitdir:/github/workspace/.git/worktrees/*.path
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9300156Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/bandscope/bandscope/.git.path
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9323843Z /home/runner/work/_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9335020Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/bandscope/bandscope/.git.path /home/runner/work/_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9373165Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/bandscope/bandscope/.git/worktrees/*.path
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9395959Z /home/runner/work/_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9405948Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/bandscope/bandscope/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9438885Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9461370Z /github/runner_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9469199Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9500713Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9522559Z /github/runner_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9564339Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9605506Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:07.9861835Z Removing credentials config '/home/runner/work/_temp/git-credentials-f5b75888-1104-4fb4-8205-cd82be93abf2.config'
ci / build-and-test UNKNOWN STEP 2026-06-24T22:47:08.0053321Z Cleaning up orphan processes
Failed check: release/release-preflight
- Type:
check_run - Conclusion:
FAILURE - Details URL: https://github.com/ContextualWisdomLab/bandscope/actions/runs/28134451112/job/83318012612
- Workflow run id:
28134451112 - Check run id:
83318012612
Failed job steps
- step 9: Run harness verification (failure)
Check annotations
- .github:368-368 [failure] Process completed with exit code 1.
Failed log signal summary
release-preflight Run harness verification 2026-06-24T22:47:05.0156009Z =============================== warnings summary ===============================
release-preflight Run harness verification 2026-06-24T22:47:05.0158903Z /home/runner/work/bandscope/bandscope/services/analysis-engine/.venv/lib/python3.12/site-packages/librosa/core/pitch.py:103: UserWarning: Trying to estimate tuning from empty frequency set.
release-preflight Run harness verification 2026-06-24T22:47:05.0162061Z /home/runner/work/bandscope/bandscope/services/analysis-engine/.venv/lib/python3.12/site-packages/librosa/core/spectrum.py:266: UserWarning: n_fft=2048 is too large for input signal of length=100
release-preflight Run harness verification 2026-06-24T22:47:05.0162866Z warnings.warn(
release-preflight Run harness verification 2026-06-24T22:47:05.0163283Z -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
release-preflight Run harness verification 2026-06-24T22:47:05.0190687Z ============= 1 failed, 440 passed, 3 warnings in 90.50s (0:01:30) =============
release-preflight Run harness verification 2026-06-24T22:47:05.5982300Z ##[error]Process completed with exit code 1.
Failed log excerpt
release-preflight Run harness verification 2026-06-24T22:45:02.1951884Z ##[group]Run ./scripts/harness/quickcheck.sh
release-preflight Run harness verification 2026-06-24T22:45:02.1952256Z ^[[36;1m./scripts/harness/quickcheck.sh^[[0m
release-preflight Run harness verification 2026-06-24T22:45:02.1987627Z shell: /usr/bin/bash -e {0}
release-preflight Run harness verification 2026-06-24T22:45:02.1987888Z env:
release-preflight Run harness verification 2026-06-24T22:45:02.1988101Z GIT_CONFIG_COUNT: 1
release-preflight Run harness verification 2026-06-24T22:45:02.1988346Z GIT_CONFIG_KEY_0: init.defaultBranch
release-preflight Run harness verification 2026-06-24T22:45:02.1988631Z GIT_CONFIG_VALUE_0: develop
release-preflight Run harness verification 2026-06-24T22:45:02.1988937Z pythonLocation: /opt/hostedtoolcache/Python/3.12.13/x64
release-preflight Run harness verification 2026-06-24T22:45:02.1989626Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.13/x64/lib/pkgconfig
release-preflight Run harness verification 2026-06-24T22:45:02.1990062Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.13/x64
release-preflight Run harness verification 2026-06-24T22:45:02.1990448Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.13/x64
release-preflight Run harness verification 2026-06-24T22:45:02.1990837Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.13/x64
release-preflight Run harness verification 2026-06-24T22:45:02.1991216Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.13/x64/lib
release-preflight Run harness verification 2026-06-24T22:45:02.1991613Z UV_PYTHON_INSTALL_DIR: /home/runner/work/_temp/uv-python-dir
release-preflight Run harness verification 2026-06-24T22:45:02.1992145Z ##[endgroup]
release-preflight Run harness verification 2026-06-24T22:45:02.2297620Z Documentation check passed
release-preflight Run harness verification 2026-06-24T22:45:02.2546031Z Security Notes check passed
release-preflight Run harness verification 2026-06-24T22:45:02.5971557Z Security pattern gate passed
release-preflight Run harness verification 2026-06-24T22:45:02.9421548Z Supply-chain verification passed
release-preflight Run harness verification 2026-06-24T22:45:02.9679560Z GitHub bootstrap policy check passed
release-preflight Run harness verification 2026-06-24T22:45:03.0594630Z
release-preflight Run harness verification 2026-06-24T22:45:03.0595106Z > bandscope@0.1.3 lint
release-preflight Run harness verification 2026-06-24T22:45:03.0596908Z > npm run lint:workspaces && npm run check:docs && npm run check:security-notes && npm run check:security-gates && npm run check:supply-chain && npm run check:github-bootstrap && npm run check:python-docstrings && npm run ruff:check && npm run ruff:format:check && npm run bandit:check
release-preflight Run harness verification 2026-06-24T22:45:03.0598169Z
release-preflight Run harness verification 2026-06-24T22:45:03.1501816Z
release-preflight Run harness verification 2026-06-24T22:45:03.1502403Z > bandscope@0.1.3 lint:workspaces
release-preflight Run harness verification 2026-06-24T22:45:03.1502893Z > npm run lint --workspaces --if-present
release-preflight Run harness verification 2026-06-24T22:45:03.1503154Z
release-preflight Run harness verification 2026-06-24T22:45:03.2594689Z
release-preflight Run harness verification 2026-06-24T22:45:03.2595377Z > @bandscope/desktop@0.1.0 lint
release-preflight Run harness verification 2026-06-24T22:45:03.2596127Z > eslint "src/**/*.{ts,tsx}" vite.config.ts
release-preflight Run harness verification 2026-06-24T22:45:03.2596524Z
release-preflight Run harness verification 2026-06-24T22:45:05.0604449Z
release-preflight Run harness verification 2026-06-24T22:45:05.0605233Z > @bandscope/shared-types@0.1.0 lint
release-preflight Run harness verification 2026-06-24T22:45:05.0605668Z > eslint "src/**/*.ts" "test/**/*.ts"
release-preflight Run harness verification 2026-06-24T22:45:05.0605871Z
release-preflight Run harness verification 2026-06-24T22:45:06.3710001Z
release-preflight Run harness verification 2026-06-24T22:45:06.3710775Z > bandscope@0.1.3 check:docs
release-preflight Run harness verification 2026-06-24T22:45:06.3711629Z > python3 scripts/checks/verify_docs.py
release-preflight Run harness verification 2026-06-24T22:45:06.3712118Z
release-preflight Run harness verification 2026-06-24T22:45:06.3973307Z Documentation check passed
release-preflight Run harness verification 2026-06-24T22:45:06.4988696Z
release-preflight Run harness verification 2026-06-24T22:45:06.4989552Z > bandscope@0.1.3 check:security-notes
release-preflight Run harness verification 2026-06-24T22:45:06.4990508Z > python3 scripts/checks/verify_security_notes.py
release-preflight Run harness verification 2026-06-24T22:45:06.4990967Z
release-preflight Run harness verification 2026-06-24T22:45:06.5253335Z Security Notes check passed
release-preflight Run harness verification 2026-06-24T22:45:06.6261869Z
release-preflight Run harness verification 2026-06-24T22:45:06.6262579Z > bandscope@0.1.3 check:security-gates
release-preflight Run harness verification 2026-06-24T22:45:06.6263355Z > python3 scripts/checks/security_gates.py
release-preflight Run harness verification 2026-06-24T22:45:06.6263984Z
release-preflight Run harness verification 2026-06-24T22:45:06.9653231Z Security pattern gate passed
release-preflight Run harness verification 2026-06-24T22:45:07.0654193Z
release-preflight Run harness verification 2026-06-24T22:45:07.0654876Z > bandscope@0.1.3 check:supply-chain
release-preflight Run harness verification 2026-06-24T22:45:07.0655704Z > python3 scripts/checks/verify_supply_chain.py
release-preflight Run harness verification 2026-06-24T22:45:07.0656319Z
release-preflight Run harness verification 2026-06-24T22:45:07.4090725Z Supply-chain verification passed
release-preflight Run harness verification 2026-06-24T22:45:07.5140584Z
release-preflight Run harness verification 2026-06-24T22:45:07.5141093Z > bandscope@0.1.3 check:github-bootstrap
release-preflight Run harness verification 2026-06-24T22:45:07.5141891Z > python3 scripts/checks/verify_github_bootstrap_policy.py
release-preflight Run harness verification 2026-06-24T22:45:07.5142394Z
release-preflight Run harness verification 2026-06-24T22:45:07.5395868Z GitHub bootstrap policy check passed
release-preflight Run harness verification 2026-06-24T22:45:07.6393000Z
release-preflight Run harness verification 2026-06-24T22:45:07.6393684Z > bandscope@0.1.3 check:python-docstrings
release-preflight Run harness verification 2026-06-24T22:45:07.6395291Z > sh -c 'cd services/analysis-engine && uv run ruff check src tests ../../scripts --select D100,D101,D102,D103,D104,D105,D106,D107'
release-preflight Run harness verification 2026-06-24T22:45:07.6396382Z
release-preflight Run harness verification 2026-06-24T22:45:07.7238757Z All checks passed!
release-preflight Run harness verification 2026-06-24T22:45:07.8235901Z
release-preflight Run harness verification 2026-06-24T22:45:07.8236603Z > bandscope@0.1.3 ruff:check
release-preflight Run harness verification 2026-06-24T22:45:07.8238088Z > sh -c 'cd services/analysis-engine && uv run ruff check src tests'
release-preflight Run harness verification 2026-06-24T22:45:07.8238661Z
release-preflight Run harness verification 2026-06-24T22:45:07.8633035Z All checks passed!
release-preflight Run harness verification 2026-06-24T22:45:07.9661236Z
release-preflight Run harness verification 2026-06-24T22:45:07.9661800Z > bandscope@0.1.3 ruff:format:check
release-preflight Run harness verification 2026-06-24T22:45:07.9662780Z > sh -c 'cd services/analysis-engine && uv run ruff format --check src tests'
release-preflight Run harness verification 2026-06-24T22:45:07.9663412Z
release-preflight Run harness verification 2026-06-24T22:45:08.0068779Z 61 files already formatted
release-preflight Run harness verification 2026-06-24T22:45:08.1070721Z
release-preflight Run harness verification 2026-06-24T22:45:08.1071555Z > bandscope@0.1.3 bandit:check
release-preflight Run harness verification 2026-06-24T22:45:08.1072481Z > sh -c 'cd services/analysis-engine && uv run bandit -c pyproject.toml -r src'
release-preflight Run harness verification 2026-06-24T22:45:08.1073066Z
release-preflight Run harness verification 2026-06-24T22:45:08.5149750Z [main] INFO profile include tests: None
release-preflight Run harness verification 2026-06-24T22:45:08.5150593Z [main] INFO profile exclude tests: None
release-preflight Run harness verification 2026-06-24T22:45:08.5151251Z [main] INFO cli include tests: None
release-preflight Run harness verification 2026-06-24T22:45:08.5153445Z [main] INFO cli exclude tests: None
release-preflight Run harness verification 2026-06-24T22:45:08.5154573Z [main] INFO using config: pyproject.toml
release-preflight Run harness verification 2026-06-24T22:45:08.5155512Z [main] INFO running on Python 3.12.13
release-preflight Run harness verification 2026-06-24T22:45:08.8171701Z Run started:2026-06-24 22:45:08.816988+00:00
release-preflight Run harness verification 2026-06-24T22:45:08.8172187Z
release-preflight Run harness verification 2026-06-24T22:45:08.8172515Z Test results:
release-preflight Run harness verification 2026-06-24T22:45:08.8172885Z No issues identified.
... truncated 188 middle log lines ...
release-preflight Run harness verification 2026-06-24T22:46:55.2718513Z tests/test_release_asset_selection.py ........ [ 35%]
release-preflight Run harness verification 2026-06-24T22:46:55.2848068Z tests/test_release_metadata.py ....... [ 37%]
release-preflight Run harness verification 2026-06-24T22:46:55.3147060Z tests/test_release_packaging.py ......... [ 39%]
release-preflight Run harness verification 2026-06-24T22:46:55.3283531Z tests/test_roles.py ....... [ 41%]
release-preflight Run harness verification 2026-06-24T22:46:55.3347945Z tests/test_roles_ml.py ... [ 41%]
release-preflight Run harness verification 2026-06-24T22:46:55.3386814Z tests/test_sections.py ... [ 42%]
release-preflight Run harness verification 2026-06-24T22:46:55.3468863Z tests/test_sections_utils.py .... [ 43%]
release-preflight Run harness verification 2026-06-24T22:46:57.9768552Z tests/test_segmenter.py ..................... [ 48%]
release-preflight Run harness verification 2026-06-24T22:46:58.0744306Z tests/test_separation.py ................................. [ 55%]
release-preflight Run harness verification 2026-06-24T22:46:58.4644950Z tests/test_supply_chain_policy.py ...................................... [ 64%]
release-preflight Run harness verification 2026-06-24T22:46:59.3923879Z ........................................................................ [ 80%]
release-preflight Run harness verification 2026-06-24T22:47:01.7150632Z ......................................F.............. [ 92%]
release-preflight Run harness verification 2026-06-24T22:47:04.2270460Z tests/test_temporal.py ......... [ 94%]
release-preflight Run harness verification 2026-06-24T22:47:04.2319887Z tests/test_transcription.py ... [ 95%]
release-preflight Run harness verification 2026-06-24T22:47:04.2409777Z tests/test_tuning.py ..... [ 96%]
release-preflight Run harness verification 2026-06-24T22:47:05.0144311Z tests/test_youtube.py ................ [100%]
release-preflight Run harness verification 2026-06-24T22:47:05.0145010Z
release-preflight Run harness verification 2026-06-24T22:47:05.0145427Z =================================== FAILURES ===================================
release-preflight Run harness verification 2026-06-24T22:47:05.0146694Z __________ test_pr_review_merge_scheduler_uses_github_token_fallback ___________
release-preflight Run harness verification 2026-06-24T22:47:05.0147457Z
release-preflight Run harness verification 2026-06-24T22:47:05.0148022Z def test_pr_review_merge_scheduler_uses_github_token_fallback() -> None:
release-preflight Run harness verification 2026-06-24T22:47:05.0148976Z """Ensure scheduled queue handling still runs when the app token secret is absent."""
release-preflight Run harness verification 2026-06-24T22:47:05.0150045Z repo_root = Path(__file__).resolve().parents[3]
release-preflight Run harness verification 2026-06-24T22:47:05.0150723Z workflow = (repo_root / ".github" / "workflows" / "pr-review-merge-scheduler.yml").read_text(
release-preflight Run harness verification 2026-06-24T22:47:05.0151292Z encoding="utf-8"
release-preflight Run harness verification 2026-06-24T22:47:05.0151580Z )
release-preflight Run harness verification 2026-06-24T22:47:05.0151796Z
release-preflight Run harness verification 2026-06-24T22:47:05.0152085Z assert "contents: write" in workflow
release-preflight Run harness verification 2026-06-24T22:47:05.0152502Z > assert "issues: write" in workflow
release-preflight Run harness verification 2026-06-24T22:47:05.0154074Z E assert 'issues: write' in 'name: PR Review Merge Scheduler\n\non:\n schedule:\n - cron: "17 */2 * * *"\n workflow_dispatch:\n inputs:\n ... args+=(--no-update-branches)\n fi\n python3 scripts/ci/pr_review_merge_scheduler.py "${args[@]}"\n'
release-preflight Run harness verification 2026-06-24T22:47:05.0155182Z
release-preflight Run harness verification 2026-06-24T22:47:05.0155435Z tests/test_supply_chain_policy.py:4980: AssertionError
release-preflight Run harness verification 2026-06-24T22:47:05.0156009Z =============================== warnings summary ===============================
release-preflight Run harness verification 2026-06-24T22:47:05.0156752Z tests/test_pipeline_integration.py::test_pipeline_without_detected_sections_falls_back
release-preflight Run harness verification 2026-06-24T22:47:05.0157580Z tests/test_roles.py::test_role_extractor_falls_back_when_activity_detection_fails
release-preflight Run harness verification 2026-06-24T22:47:05.0158903Z /home/runner/work/bandscope/bandscope/services/analysis-engine/.venv/lib/python3.12/site-packages/librosa/core/pitch.py:103: UserWarning: Trying to estimate tuning from empty frequency set.
release-preflight Run harness verification 2026-06-24T22:47:05.0160173Z return pitch_tuning(
release-preflight Run harness verification 2026-06-24T22:47:05.0160346Z
release-preflight Run harness verification 2026-06-24T22:47:05.0160659Z tests/test_roles.py::test_role_extractor_falls_back_when_activity_detection_fails
release-preflight Run harness verification 2026-06-24T22:47:05.0162061Z /home/runner/work/bandscope/bandscope/services/analysis-engine/.venv/lib/python3.12/site-packages/librosa/core/spectrum.py:266: UserWarning: n_fft=2048 is too large for input signal of length=100
release-preflight Run harness verification 2026-06-24T22:47:05.0162866Z warnings.warn(
release-preflight Run harness verification 2026-06-24T22:47:05.0162997Z
release-preflight Run harness verification 2026-06-24T22:47:05.0163283Z -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
release-preflight Run harness verification 2026-06-24T22:47:05.0163811Z ================================ tests coverage ================================
release-preflight Run harness verification 2026-06-24T22:47:05.0164321Z _______________ coverage: platform linux, python 3.12.13-final-0 _______________
release-preflight Run harness verification 2026-06-24T22:47:05.0164609Z
release-preflight Run harness verification 2026-06-24T22:47:05.0164845Z Name Stmts Miss Cover Missing
release-preflight Run harness verification 2026-06-24T22:47:05.0165348Z ------------------------------------------------------------------------------------
release-preflight Run harness verification 2026-06-24T22:47:05.0165881Z src/bandscope_analysis/__init__.py 3 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0166559Z src/bandscope_analysis/api.py 571 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0167093Z src/bandscope_analysis/chords/__init__.py 5 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0167639Z src/bandscope_analysis/chords/analyzer.py 116 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0168175Z src/bandscope_analysis/chords/capo.py 10 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0168724Z src/bandscope_analysis/chords/chord_recognizer.py 192 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0169527Z src/bandscope_analysis/chords/model.py 15 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0170106Z src/bandscope_analysis/cli.py 68 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0170629Z src/bandscope_analysis/health.py 7 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0171165Z src/bandscope_analysis/ranges/__init__.py 4 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0171702Z src/bandscope_analysis/ranges/analyzer.py 77 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0172249Z src/bandscope_analysis/ranges/model.py 19 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0172794Z src/bandscope_analysis/ranges/pitch_tracker.py 54 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0173330Z src/bandscope_analysis/roles/__init__.py 4 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0173867Z src/bandscope_analysis/roles/activity.py 59 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0174416Z src/bandscope_analysis/roles/extractor.py 118 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0174956Z src/bandscope_analysis/roles/model.py 58 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0175491Z src/bandscope_analysis/roles/priority.py 13 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0176030Z src/bandscope_analysis/roles/tuning.py 11 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0176569Z src/bandscope_analysis/sections/__init__.py 6 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0177106Z src/bandscope_analysis/sections/anchors.py 5 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0177651Z src/bandscope_analysis/sections/extractor.py 38 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0178193Z src/bandscope_analysis/sections/model.py 35 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0178732Z src/bandscope_analysis/sections/segmenter.py 140 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0179509Z src/bandscope_analysis/sections/utils.py 8 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0180088Z src/bandscope_analysis/separation/__init__.py 4 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0180639Z src/bandscope_analysis/separation/audio_separator.py 145 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0181184Z src/bandscope_analysis/separation/model.py 31 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0181729Z src/bandscope_analysis/separation/separator.py 34 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0182272Z src/bandscope_analysis/temporal/__init__.py 3 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0182804Z src/bandscope_analysis/temporal/analyzer.py 49 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0183503Z src/bandscope_analysis/temporal/model.py 9 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0184059Z src/bandscope_analysis/transcription/__init__.py 2 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0184605Z src/bandscope_analysis/transcription/api.py 11 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0185140Z src/bandscope_analysis/youtube.py 81 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0185681Z ------------------------------------------------------------------------------------
release-preflight Run harness verification 2026-06-24T22:47:05.0186162Z TOTAL 2005 0 100%
release-preflight Run harness verification 2026-06-24T22:47:05.0186626Z Required test coverage of 100% reached. Total coverage: 100.00%
release-preflight Run harness verification 2026-06-24T22:47:05.0187196Z =========================== short test summary info ============================
release-preflight Run harness verification 2026-06-24T22:47:05.0188947Z FAILED tests/test_supply_chain_policy.py::test_pr_review_merge_scheduler_uses_github_token_fallback - assert 'issues: write' in 'name: PR Review Merge Scheduler\n\non:\n schedule:\n - cron: "17 */2 * * *"\n workflow_dispatch:\n inputs:\n ... args+=(--no-update-branches)\n fi\n python3 scripts/ci/pr_review_merge_scheduler.py "${args[@]}"\n'
release-preflight Run harness verification 2026-06-24T22:47:05.0190687Z ============= 1 failed, 440 passed, 3 warnings in 90.50s (0:01:30) =============
release-preflight Run harness verification 2026-06-24T22:47:05.5982300Z ##[error]Process completed with exit code 1.
OpenCode Review Overview
Pull request overviewNo actionable findings or failed checks detected. PR #450 is safe to merge. FindingsNo blocking findings from OpenCode's independent review. Verification
Gate evidence
|
There was a problem hiding this comment.
OpenCode reviewed the current-head evidence but found unresolved human review threads before approval.
- Problem: OpenCode reached an APPROVE control result, but the approval step found unresolved, non-outdated human review thread evidence on the current pull request.
- Root cause: Human review feedback can arrive after bounded model evidence is prepared, so the approval step must re-query GitHub immediately before publishing an approval.
- Fix: Address or resolve the listed human review thread(s), then re-run OpenCode on the current head.
- Regression test: Keep the approval gate querying reviewThreads(first: 100) after model output and before create_pull_review APPROVE.
Review thread evidence
Latest unresolved human review thread evidence
scripts/ci/pr_review_merge_scheduler.py line 293
-
Latest human comment: @copilot-pull-request-reviewer at 2026-06-24T22:48:41Z
-
Comment URL: #450 (comment)
-
Comment excerpt:
dispatch_opencode_review()passes apr_head_refworkflow input, but.github/workflows/opencode-review.ymlonly definespr_number,pr_base_ref,pr_base_sha, andpr_head_shaforworkflow_dispatch. Sending an unexpected input makesgh workflow runfail (422), which will break manualtrigger_reviews=trueruns. -
Result: REQUEST_CHANGES
-
Reason: unresolved human review thread(s) were present before approval.
-
Head SHA:
d10c5bfe46adbafd1d9e3758c5d7da042d94c120 -
Workflow run: 28135207321
-
Workflow attempt: 1
Superseded by head cb871d5, which adds the missing pr_head_ref workflow_dispatch input and resolves the referenced review thread.
…-merge-scheduler # Conflicts: # scripts/ci/pr_review_merge_scheduler.py
There was a problem hiding this comment.
Pull request overview
No actionable findings or failed checks detected. PR #450 is safe to merge.
Findings
No blocking findings from OpenCode's independent review.
Verification
- Review source: independent OpenCode review of the current checkout, focused changed hunks, and current-head GitHub Check evidence.
- Structural exploration: completed before approval; if structural exploration, changed-file inspection, or evidence completeness is missing, OpenCode must not approve.
- Result: APPROVE
- Reason: No source-backed blockers found; structural exploration completed.
Gate evidence
- Head SHA:
0bc61d6d78c73ce65a333347fea46e3db9de6fa3 - Workflow run: 28158286296
- Workflow attempt: 1
|
Closing as superseded by the current develop review-workflow contract. develop commit 2149121 centralized the review workflow contract and removed the local opencode/scheduler workflows that this stale branch would reintroduce; keeping this PR open leaves it permanently conflicted and regressive. |
Summary
Sync the PR review merge scheduler script with the central .github implementation and tighten the bandscope workflow wrapper.
Why
Live dry-run evidence showed the current bandscope scheduler leaving an outdated approved PR untouched when auto-merge was already enabled: run 28134181171 reported
PR #367: wait: current head is approved; auto-merge already enabled. The central scheduler choosesupdate_branchfor the same BEHIND + current-head-approved class before waiting on auto-merge, so the PR head can be revalidated.Changes
scripts/ci/pr_review_merge_scheduler.pyto the central scheduler implementation.update_branchesworkflow_dispatch input and passes--update-branches/--no-update-branchesto the scheduler.trigger_reviews=true.Verification
python3 scripts/ci/pr_review_merge_scheduler.py --self-testactionlint .github/workflows/pr-review-merge-scheduler.yml