Skip to content
Closed
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
12 changes: 7 additions & 5 deletions .github/workflows/sbom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,14 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install Syft
run: |
curl -sSfL -o "$RUNNER_TEMP/syft.tar.gz" "https://github.com/anchore/syft/releases/download/v1.20.0/syft_1.20.0_linux_amd64.tar.gz"
tar -xzf "$RUNNER_TEMP/syft.tar.gz" -C "$RUNNER_TEMP" syft

- name: Generate CycloneDX SBOM
uses: anchore/sbom-action@57aae528053a48a3f6235f2d9461b05fbcb7366d # v0.23.1
with:
path: .
format: cyclonedx-json
output-file: bandscope-sbom.cdx.json
run: |
"$RUNNER_TEMP/syft" dir:. -o cyclonedx-json=bandscope-sbom.cdx.json

- name: Upload SBOM artifact
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
Expand Down
1 change: 1 addition & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ Last updated: 2026-03-11
- Shared contracts live in `packages/shared-types` so the UI can evolve without importing Python internals.
- Shared contracts should ultimately model section, role, cue, confidence, and export artifacts explicitly enough that desktop UI and analysis outputs do not invent their own parallel schemas.
- The current shared-types baseline includes a rehearsal-domain fixture that exercises section, role, cue, confidence, provenance, and export-summary fields in the desktop shell before the full analysis pipeline lands.
- Local analysis orchestration uses typed Tauri IPC commands and a Python subprocess over stdin/stdout rather than a loopback HTTP listener.
- Product and UX decisions should prefer rehearsal-first simplicity while still maintaining high analytical accuracy.
- Security decisions should prefer allowlisted narrow capabilities over generic convenience APIs.

Expand Down
1 change: 1 addition & 0 deletions apps/desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"test": "node -e \"require('node:fs').mkdirSync('coverage/.tmp', { recursive: true })\" && vitest run --coverage"
},
"dependencies": {
"@tauri-apps/api": "^2.8.0",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify `@tauri-apps/api` version 2.8.0 exists on npm

echo "Checking `@tauri-apps/api` available versions..."
npm view `@tauri-apps/api` versions --json | jq -r '.[]' | grep -E "^2\." | tail -10

echo ""
echo "Checking if 2.8.0 specifically exists..."
npm view `@tauri-apps/api`@2.8.0 version 2>/dev/null || echo "Version 2.8.0 not found"

Repository: seonghobae/bandscope

Length of output: 220


@tauri-apps/api 버전 존재 확인 완료

@tauri-apps/api 버전 2.8.0은 npm 레지스트리에 존재합니다. 다만 더 최신의 호환 버전들(2.9.0, 2.9.1, 2.10.0, 2.10.1)도 available하므로, Tauri v2.3.1과의 호환성을 재검토하여 더 최신 버전 사용을 고려하십시오.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/desktop/package.json` at line 14, The dependency entry for
"@tauri-apps/api" is pinned to "2.8.0" but newer compatible releases (2.9.x,
2.10.x) exist; verify compatibility with Tauri v2.3.1 and update the
package.json dependency accordingly: run compatibility tests or check changelogs
for breaking changes, choose the highest compatible version (e.g., "2.10.1") and
update the "@tauri-apps/api" version string in package.json, then run npm
install and the app test suite to confirm no regressions.

"@bandscope/shared-types": "0.1.0",
"react": "^19.2.4",
"react-dom": "^19.2.4"
Expand Down
3 changes: 3 additions & 0 deletions apps/desktop/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions apps/desktop/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ edition = "2021"
tauri-build = { version = "2" }

[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tauri = { version = "2.3.1" }
time = { version = "0.3", features = ["formatting", "macros"] }

[features]
default = []
8 changes: 7 additions & 1 deletion apps/desktop/src-tauri/build.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
fn main() {
tauri_build::build()
tauri_build::try_build(
tauri_build::Attributes::new().app_manifest(
tauri_build::AppManifest::new()
.commands(&["start_analysis_job", "get_analysis_job_status"]),
),
)
.expect("failed to build tauri application manifest");
}
11 changes: 11 additions & 0 deletions apps/desktop/src-tauri/capabilities/main.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "main-capability",
"description": "Capability for the main BandScope window to use the analysis orchestration commands.",
"windows": ["main"],
"permissions": [
"core:default",
"allow-start-analysis-job",
"allow-get-analysis-job-status"
]
}
1 change: 1 addition & 0 deletions apps/desktop/src-tauri/gen/schemas/acl-manifests.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions apps/desktop/src-tauri/gen/schemas/capabilities.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"main-capability":{"identifier":"main-capability","description":"Capability for the main BandScope window to use the analysis orchestration commands.","local":true,"windows":["main"],"permissions":["core:default","allow-start-analysis-job","allow-get-analysis-job-status"]}}
2,268 changes: 2,268 additions & 0 deletions apps/desktop/src-tauri/gen/schemas/desktop-schema.json

Large diffs are not rendered by default.

2,268 changes: 2,268 additions & 0 deletions apps/desktop/src-tauri/gen/schemas/macOS-schema.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Automatically generated - DO NOT EDIT!

[[permission]]
identifier = "allow-get-analysis-job-status"
description = "Enables the get_analysis_job_status command without any pre-configured scope."
commands.allow = ["get_analysis_job_status"]

[[permission]]
identifier = "deny-get-analysis-job-status"
description = "Denies the get_analysis_job_status command without any pre-configured scope."
commands.deny = ["get_analysis_job_status"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Automatically generated - DO NOT EDIT!

[[permission]]
identifier = "allow-start-analysis-job"
description = "Enables the start_analysis_job command without any pre-configured scope."
commands.allow = ["start_analysis_job"]

[[permission]]
identifier = "deny-start-analysis-job"
description = "Denies the start_analysis_job command without any pre-configured scope."
commands.deny = ["start_analysis_job"]
Loading
Loading