Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/workflows/bandit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: bandit

on:
push:
branches:
- develop
- main
pull_request:
branches:
- develop
- main

permissions:
contents: read

jobs:
bandit-scan:
name: Bandit Security Scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0
with:
version: "0.8.6"
- name: Sync Python dependencies
run: uv sync --project services/analysis-engine --group dev --frozen
- name: Run Bandit
working-directory: services/analysis-engine
run: uv run bandit -c pyproject.toml -r src
1 change: 1 addition & 0 deletions .github/workflows/build-baseline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ jobs:
- name: Install node dependencies
run: npm ci
- name: Sync Python dependencies
if: runner.os != 'Windows' || runner.arch != 'ARM64' # llvmlite lacks wheel for Windows ARM64
run: uv sync --project services/analysis-engine --group dev --frozen
- name: Build frontend
run: npm run build --workspace @bandscope/desktop
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ on:
- develop
- main

permissions:
contents: read

jobs:
verify:
name: ci / build-and-test
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,15 @@ on:
permissions:
actions: read
contents: read
security-events: write

jobs:
analyze:
name: codeql
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ on:

permissions:
contents: read
pull-requests: write

jobs:
dependency-review:
name: dependency-review
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ossf-scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
with:
results_file: results.sarif
results_format: sarif
publish_results: true
publish_results: ${{ github.ref == 'refs/heads/develop' }}
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: ossf-scorecard-results
Expand Down
23 changes: 21 additions & 2 deletions .github/workflows/sbom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
needs:
- supplemental-inventory
permissions:
contents: write
contents: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

Expand All @@ -59,8 +59,27 @@ jobs:
name: bandscope-supply-chain-inventory
path: supply-chain/supplemental-component-inventory.json

release-sbom:
name: attach-sbom-to-release
if: github.event_name == 'release'
runs-on: ubuntu-latest
needs:
- sbom
permissions:
contents: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: bandscope-sbom

- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: bandscope-supply-chain-inventory
path: supply-chain

- name: Attach SBOM to GitHub Release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_TAG: ${{ github.event.release.tag_name }}
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/security-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,12 @@ jobs:
run: npm audit --workspaces --audit-level=high
- name: Sync Python dependencies
run: uv sync --project services/analysis-engine --group dev --frozen
- name: Install pip-audit
run: python -m pip install pip-audit==2.8.0
- name: Export Python lock for audit
working-directory: services/analysis-engine
run: uv export --frozen --no-emit-project --format requirements-txt --no-hashes --output-file requirements-audit.txt
- name: Audit Python dependencies
working-directory: services/analysis-engine
run: python -m pip_audit -r requirements-audit.txt --strict --ignore-vuln GHSA-5239-wwwm-4pmq
run: uvx pip-audit==2.8.0 -r requirements-audit.txt --strict --ignore-vuln GHSA-5239-wwwm-4pmq
- name: Install stable Rust toolchain
run: rustup toolchain install stable --profile minimal
- name: Install cargo-audit
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/trivy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@ on:

permissions:
contents: read
security-events: write

jobs:
trivy-fs-scan:
name: trivy-fs-scan
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run Trivy filesystem scan
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ apps/desktop/src-tauri/target/
*.egg-info/
registered_agents.json
task_agent_mapping.json

.worktrees/
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
## [Unreleased]

# Changelog

## [0.1.1] - 2026-04-28

### Added
- Implemented rehearsal workspace design (Issue #107)
- Add capo and tuning detection heuristics (Issue #103)
- Add bandit security scan workflow

### Fixed
- Upgrade pytest to 9.0.3 to fix GHSA-6w46-j5rx-g56g
- Resolve npm audit vulnerabilities
- Fix ruff import sorting and formatting errors
- Add missing docstrings to tests
- Fix test configuration and typing issues

## [0.1.0] - 2026-03-27

### Added
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ If GitHub-specific execution is required and no repo exists yet, treat that as b

## Current Status

The core implementation backlog (Issue #26) has been successfully completed. BandScope now features a functioning local-first workflow, including audio intake, Python-based offline analysis, section/role extraction, manual user overrides, and CSV/JSON cue-sheet exports. The repository maintains 100% measured test coverage and 100% measured docstring coverage for the `services/analysis-engine` package and `apps/desktop` frontend components. TODO: Expand CI coverage threshold enforcement to all future sub-packages.
The core implementation backlog (Issue #26) has been successfully completed. BandScope now features a functioning local-first workflow, including audio intake, Python-based offline analysis, section/role extraction, manual user overrides, and CSV/JSON cue-sheet exports. The repository maintains 100% measured test coverage and 100% measured docstring coverage for the `services/analysis-engine` package and `apps/desktop` frontend components.

## Workspace layout

Expand Down
2 changes: 2 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ BandScope is a local-first desktop app. Treat every file, URL, metadata field, p
## Reporting vulnerabilities

- Prefer GitHub private vulnerability reporting or a GitHub Security Advisory draft when the repository has that feature enabled.
- For secure reporting of any vulnerability, please email `seonghobae@example.com` or open a [Private Vulnerability Report](https://github.com/seonghobae/bandscope/security/advisories/new) securely.
- We expect vulnerability disclosure timelines to follow coordinated practices, generally providing a 90 days expectation to fix before public disclosure.
- If private reporting is not yet enabled, treat repository bootstrap as incomplete and escalate to the repository owner to enable it before public release.

## Source of truth
Expand Down
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.1.1
21 changes: 21 additions & 0 deletions apps/desktop/src-tauri/.cargo/audit.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[advisories]
ignore = [
"RUSTSEC-2024-0413", # atk: gtk-rs GTK3 bindings - no longer maintained
"RUSTSEC-2024-0416", # atk-sys
"RUSTSEC-2025-0057", # fxhash: no longer maintained
"RUSTSEC-2024-0412", # gdk
"RUSTSEC-2024-0418", # gdk-sys
"RUSTSEC-2024-0411", # gdkwayland-sys
"RUSTSEC-2024-0417", # gdkx11
"RUSTSEC-2024-0414", # gdkx11-sys
"RUSTSEC-2024-0415", # gtk
"RUSTSEC-2024-0420", # gtk-sys
"RUSTSEC-2024-0419", # gtk3-macros
"RUSTSEC-2024-0370", # proc-macro-error: unmaintained
"RUSTSEC-2025-0081", # unic-char-property: unmaintained
"RUSTSEC-2025-0075", # unic-char-range: unmaintained
"RUSTSEC-2025-0080", # unic-common: unmaintained
"RUSTSEC-2025-0100", # unic-ucd-ident: unmaintained
"RUSTSEC-2025-0098", # unic-ucd-version: unmaintained
"RUSTSEC-2024-0429" # glib: unsoundness in VariantStrIter
]
Loading
Loading