-
Notifications
You must be signed in to change notification settings - Fork 1
repair(perf): preserve GrooveMap delta while removing stale branch drift #859
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Changes from all commits
060501f
aecfb52
7c9b2a6
e0bd382
4114032
b04e6a6
e55c072
9e43f62
18d3c1d
a908920
715c4da
d311e01
9751805
ace2744
294d995
6486618
38e1027
d7e1369
888c925
055db2b
a45b2d1
a649e18
c9c4ad6
4107fa4
af87411
99e6a7d
7f5bf1c
5236ac2
ee0f383
abea1c4
9e58b22
0de77e2
370bd5d
62fd665
7c6c52f
e0b1617
ba07701
fa1ced9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,49 +17,17 @@ env: | |
| GIT_CONFIG_COUNT: "1" | ||
| GIT_CONFIG_KEY_0: init.defaultBranch | ||
| GIT_CONFIG_VALUE_0: develop | ||
| EXPECTED_NPM_VERSION: "10.9.9" | ||
|
|
||
| jobs: | ||
| lock-validation: | ||
| name: gate / ci / npm-lock-validation | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | ||
| with: | ||
| node-version: "22.22.3" | ||
| package-manager-cache: false | ||
| - name: Activate pinned npm runtime | ||
| run: corepack enable npm | ||
| - name: Verify exact npm lockfile generator and bundled tar | ||
| run: | | ||
| test "$(npm --version)" = "$EXPECTED_NPM_VERSION" | ||
| npm run check:npm-runtime | ||
| - name: Validate the frozen package lock without lifecycle execution | ||
| run: npm ci --ignore-scripts --no-audit --no-fund | ||
| - name: Reject manifest or lockfile drift | ||
| run: git diff --exit-code -- package.json package-lock.json | ||
|
|
||
| verify: | ||
| name: ci / build-and-test | ||
| needs: lock-validation | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | ||
| with: | ||
| persist-credentials: false | ||
|
Comment on lines
-51
to
-52
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟨 GITHUB_TOKEN persisted in CI workspace again The checkout steps drop Was this helpful? React with 👍 or 👎 to provide feedback. |
||
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | ||
| with: | ||
| node-version: "22.22.3" | ||
| package-manager-cache: false | ||
| - name: Activate pinned npm runtime | ||
| run: corepack enable npm | ||
| - name: Verify exact npm lockfile generator and bundled tar | ||
| run: | | ||
| test "$(npm --version)" = "$EXPECTED_NPM_VERSION" | ||
| npm run check:npm-runtime | ||
| node-version: 22.22.3 | ||
| cache: npm | ||
| - uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2 | ||
| with: | ||
| version: "0.8.6" | ||
|
|
@@ -83,22 +51,13 @@ jobs: | |
|
|
||
| rust-check: | ||
| name: gate / ci / rust-check | ||
| needs: lock-validation | ||
| runs-on: macos-15 | ||
| steps: | ||
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | ||
| with: | ||
| node-version: "22.22.3" | ||
| package-manager-cache: false | ||
| - name: Activate pinned npm runtime | ||
| run: corepack enable npm | ||
| - name: Verify exact npm lockfile generator and bundled tar | ||
| run: | | ||
| test "$(npm --version)" = "$EXPECTED_NPM_VERSION" | ||
| npm run check:npm-runtime | ||
| node-version: 22.22.3 | ||
| cache: npm | ||
| - name: Install stable Rust toolchain | ||
| run: rustup toolchain install stable --profile minimal | ||
| - name: Install node dependencies | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -27,3 +27,4 @@ GHSA-wrw7-89jp-8q8g exp:2026-10-31 | |
| # wheel), so it is outside the request-time attack surface. Remove once a | ||
| # fixed setuptools publishes and uv can resolve it. Revisit by 2026-10-31. | ||
| CVE-2026-59890 exp:2026-10-31 | ||
| CVE-2026-16633 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 New vulnerability suppression added without documentation The new Prompt for agentsWas this helpful? React with 👍 or 👎 to provide feedback.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "== Trivy ignore entry =="
nl -ba .trivyignore | sed -n '24,34p'
echo "== pdfjs-dist declarations and lockfiles =="
while IFS= read -r file; do
rg -n -C 2 'pdfjs-dist|pdf\.js' "$file" || true
done < <(
fd -HI -t f \
-g 'package.json' \
-g 'package-lock.json' \
-g 'pnpm-lock.yaml' \
-g 'yarn.lock' \
-g 'bun.lockb' \
. \
-E node_modules \
-E services/analysis-engine/.venv
)
echo "== PDF.js usage and mitigations =="
rg -n -C 3 \
'pdfjs-dist|enableScripting|Content-Security-Policy|script-src' \
. \
-g '!node_modules/**' \
-g '!services/analysis-engine/.venv/**' || trueRepository: ContextualWisdomLab/bandscope Length of output: 232 Security Misconfiguration (CWE-693) Reachability: Internal 영구적인 CVE 무시 항목을 제거하거나 만료 정보를 추가하세요.
🤖 Prompt for AI AgentsSource: Learnings There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟨 Undocumented Trivy suppression hides a fixable vulnerability The added Was this helpful? React with 👍 or 👎 to provide feedback. |
||
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,23 +19,11 @@ export function configureScorePdfWorker(): void { | |
| * Start parsing validated in-memory score PDF bytes with pdf.js. | ||
| * | ||
| * Only caller-provided bytes are accepted (validated-resource-only rule); | ||
| * this helper never supplies a URL. The bytes are copied before they are | ||
| * handed to pdf.js because pdf.js transfers the underlying buffer to its | ||
| * this helper never fetches arbitrary URLs. The bytes are copied before they | ||
| * are handed to pdf.js because pdf.js transfers the underlying buffer to its | ||
| * worker, which would otherwise detach the caller's copy and break retries. | ||
| * | ||
| * XFA rendering is explicitly disabled even though pdf.js 6.2.108 defaults it | ||
| * to `false`, and worker-side resource fetching is explicitly disabled. These | ||
| * settings make the parser boundary fail closed against XML-form activation | ||
| * and remote helper-resource acquisition instead of relying on upstream | ||
| * defaults. In the pinned pdf.js XML parser, DOCTYPE declarations are reported | ||
| * to a no-op hook and unknown named entities are preserved literally rather | ||
| * than dereferenced, so no external-entity resolver is exposed by this API. | ||
| */ | ||
| export function loadScorePdf(data: Uint8Array): PDFDocumentLoadingTask { | ||
| configureScorePdfWorker(); | ||
| return getDocument({ | ||
| data: new Uint8Array(data), | ||
| enableXfa: false, | ||
| useWorkerFetch: false | ||
| }); | ||
| return getDocument({ data: new Uint8Array(data) }); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔍 PR reverts security hardening beyond its stated scope The description claims only three files change, but the diff reverts several security controls: Was this helpful? React with 👍 or 👎 to provide feedback. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟨 Fail-closed PDF parser flags removed loadScorePdf now calls Was this helpful? React with 👍 or 👎 to provide feedback. |
||
| } | ||
|
Comment on lines
26
to
29
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔍 Broad security revert in a perf-scoped PR The stated scope is a GrooveMap performance tweak, but the diff also reverts npm runtime pinning, the undici pin/override, PDF loader hardening, the firstRangeSqueeze feature, and several tests/docs. The removals are internally consistent (no dangling references), but confirm these reverts are intended and not an artifact of a stale merge base. Was this helpful? React with 👍 or 👎 to provide feedback.
Comment on lines
26
to
29
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟨 PDF loader stops disabling XFA and worker resource fetching
Was this helpful? React with 👍 or 👎 to provide feedback. |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,7 +17,11 @@ function GrooveMapComponent({ notes, isLoading }: GrooveMapProps) { | |
|
|
||
| // Find max offset to determine timeline width | ||
| const maxTime = useMemo(() => { | ||
| return renderedNotes.reduce((max, n) => Math.max(max, n.offset), 10); | ||
| let max = 10; | ||
| for (const n of renderedNotes) { | ||
| if (n.offset > max) max = n.offset; | ||
| } | ||
|
devin-ai-integration[bot] marked this conversation as resolved.
|
||
| return max; | ||
|
devin-ai-integration[bot] marked this conversation as resolved.
Comment on lines
+20
to
+24
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📝 Info: GrooveMap maxTime no longer propagates NaN The new loop uses Was this helpful? React with 👍 or 👎 to provide feedback. |
||
| }, [renderedNotes]); | ||
|
devin-ai-integration[bot] marked this conversation as resolved.
Comment on lines
19
to
25
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📝 Info: GrooveMap max loop silently changes NaN handling The old Was this helpful? React with 👍 or 👎 to provide feedback. |
||
|
|
||
| // Unique pitches to determine vertical lanes (avoiding 88-key piano roll) | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟨 Checkout credential persistence re-enabled in CI jobs
Dropping
persist-credentials: falsefrom the checkout step leaves the workflow token in the runner's git config for all later steps, exposing it to subsequent build/test commands and their dependencies.Was this helpful? React with 👍 or 👎 to provide feedback.