Skip to content

chore: sync PR review merge scheduler - #450

Closed
seonghobae wants to merge 10 commits into
developfrom
cwl-sync-pr-review-merge-scheduler
Closed

chore: sync PR review merge scheduler#450
seonghobae wants to merge 10 commits into
developfrom
cwl-sync-pr-review-merge-scheduler

Conversation

@seonghobae

Copy link
Copy Markdown
Collaborator

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 chooses update_branch for the same BEHIND + current-head-approved class before waiting on auto-merge, so the PR head can be revalidated.

Changes

  • Updates scripts/ci/pr_review_merge_scheduler.py to the central scheduler implementation.
  • Adds explicit update_branches workflow_dispatch input and passes --update-branches / --no-update-branches to the scheduler.
  • Keeps scheduled review dispatch disabled for bandscope, while allowing manual dispatch through trigger_reviews=true.
  • Uses the GitHub Actions token for branch updates and auto-merge operations instead of the OpenCode approve token.

Verification

  • python3 scripts/ci/pr_review_merge_scheduler.py --self-test
  • actionlint .github/workflows/pr-review-merge-scheduler.yml

Copilot AI review requested due to automatic review settings June 24, 2026 22:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.py to the centralized decision/action logic (branch update handling, Strix evidence gating, safer subprocess invocation).
  • Extended .github/workflows/pr-review-merge-scheduler.yml with an explicit update_branches input 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.

Comment thread scripts/ci/pr_review_merge_scheduler.py

@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 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:

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_CHANGES findings must include path, line, root_cause, fix_direction, regression_test_direction, and suggested_diff.

  • Do not request changes with only a GitHub Actions URL or a generic check name.

  • When Strix logs contain multiple Vulnerability Report or Model ... 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

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

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-agent

opencode-agent Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 0bc61d6d78c73ce65a333347fea46e3db9de6fa3
  • Workflow run: 28158286296
  • Workflow attempt: 1
  • Gate result: APPROVE (approval step)

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

@seonghobae
seonghobae dismissed opencode-agent[bot]’s stale review June 24, 2026 23:12

Superseded by head d10c5bf. The review body contained a non-actionable failed-check mapping fallback; PR #450 now reports that state without posting REQUEST_CHANGES findings.

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

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 a pr_head_ref workflow input, but .github/workflows/opencode-review.yml only defines pr_number, pr_base_ref, pr_base_sha, and pr_head_sha for workflow_dispatch. Sending an unexpected input makes gh workflow run fail (422), which will break manual trigger_reviews=true runs.

  • Result: REQUEST_CHANGES

  • Reason: unresolved human review thread(s) were present before approval.

  • Head SHA: d10c5bfe46adbafd1d9e3758c5d7da042d94c120

  • Workflow run: 28135207321

  • Workflow attempt: 1

@seonghobae
seonghobae dismissed opencode-agent[bot]’s stale review June 24, 2026 23:59

Superseded by head cb871d5, which adds the missing pr_head_ref workflow_dispatch input and resolves the referenced review thread.

@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

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

@seonghobae

Copy link
Copy Markdown
Collaborator Author

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.

@seonghobae seonghobae closed this Jun 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants