Skip to content

spec: Add AudioWorklet engine spec for scheduling, LFO, metering, and pitch-shifting #310

spec: Add AudioWorklet engine spec for scheduling, LFO, metering, and pitch-shifting

spec: Add AudioWorklet engine spec for scheduling, LFO, metering, and pitch-shifting #310

Triggered via pull request February 28, 2026 17:54
Status Failure
Total duration 16m 59s
Artifacts

ci.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

32 errors, 1 warning, and 1 notice
Build
Cannot find name 'AudioWorkletProcessor'.
Build
Cannot find name 'registerProcessor'.
Build
Cannot find name 'currentTime'.
Build
Property 'port' does not exist on type 'MeteringWorkletProcessor'.
Build
Property 'port' does not exist on type 'MeteringWorkletProcessor'.
Build
Cannot find name 'sampleRate'.
Build
Cannot find name 'AudioWorkletProcessor'.
Build
'getServerTime' is declared but its value is never read.
Build
'isMultiplayerMode' is declared but its value is never read.
Build
'audioContext' is declared but its value is never read.
Integration Tests
Cannot find name 'AudioWorkletProcessor'.
Integration Tests
Cannot find name 'registerProcessor'.
Integration Tests
Cannot find name 'currentTime'.
Integration Tests
Property 'port' does not exist on type 'MeteringWorkletProcessor'.
Integration Tests
Property 'port' does not exist on type 'MeteringWorkletProcessor'.
Integration Tests
Cannot find name 'sampleRate'.
Integration Tests
Cannot find name 'AudioWorkletProcessor'.
Integration Tests
'getServerTime' is declared but its value is never read.
Integration Tests
'isMultiplayerMode' is declared but its value is never read.
Integration Tests
'audioContext' is declared but its value is never read.
Unit Tests
Process completed with exit code 1.
src/audio/worklets/pitch-shift.property.test.ts > Hann window properties > all values are in [0, 1]: app/src/audio/worklets/pitch-shift.property.test.ts#L36
Error: Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ src/audio/worklets/pitch-shift.property.test.ts:36:3
[chromium] › e2e/landscape-alignment.spec.ts:219:3 › Landscape Mobile Alignment › screenshot comparison - visual alignment check: app/e2e/landscape-alignment.spec.ts#L27
2) [chromium] › e2e/landscape-alignment.spec.ts:219:3 › Landscape Mobile Alignment › screenshot comparison - visual alignment check Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect.toBeVisible: Target page, context or browser has been closed 25 | // Click the instrument button by name 26 | const sampleBtn = page.getByRole('button', { name: instrumentName }).first(); > 27 | await expect(sampleBtn).toBeVisible({ timeout: 5000 }); | ^ 28 | await sampleBtn.click(); 29 | 30 | // Wait for track row to appear at addTrack (/home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:27:27) at /home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:221:5
[chromium] › e2e/landscape-alignment.spec.ts:219:3 › Landscape Mobile Alignment › screenshot comparison - visual alignment check: app/e2e/landscape-alignment.spec.ts#L0
2) [chromium] › e2e/landscape-alignment.spec.ts:219:3 › Landscape Mobile Alignment › screenshot comparison - visual alignment check Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded.
[chromium] › e2e/landscape-alignment.spec.ts:219:3 › Landscape Mobile Alignment › screenshot comparison - visual alignment check: app/e2e/landscape-alignment.spec.ts#L27
2) [chromium] › e2e/landscape-alignment.spec.ts:219:3 › Landscape Mobile Alignment › screenshot comparison - visual alignment check Error: expect.toBeVisible: Target page, context or browser has been closed 25 | // Click the instrument button by name 26 | const sampleBtn = page.getByRole('button', { name: instrumentName }).first(); > 27 | await expect(sampleBtn).toBeVisible({ timeout: 5000 }); | ^ 28 | await sampleBtn.click(); 29 | 30 | // Wait for track row to appear at addTrack (/home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:27:27) at /home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:221:5
[chromium] › e2e/landscape-alignment.spec.ts:219:3 › Landscape Mobile Alignment › screenshot comparison - visual alignment check: app/e2e/landscape-alignment.spec.ts#L0
2) [chromium] › e2e/landscape-alignment.spec.ts:219:3 › Landscape Mobile Alignment › screenshot comparison - visual alignment check Test timeout of 30000ms exceeded.
[chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment: app/e2e/landscape-alignment.spec.ts#L27
1) [chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect.toBeVisible: Target page, context or browser has been closed 25 | // Click the instrument button by name 26 | const sampleBtn = page.getByRole('button', { name: instrumentName }).first(); > 27 | await expect(sampleBtn).toBeVisible({ timeout: 5000 }); | ^ 28 | await sampleBtn.click(); 29 | 30 | // Wait for track row to appear at addTrack (/home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:27:27) at /home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:152:5
[chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment: app/e2e/landscape-alignment.spec.ts#L0
1) [chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded.
[chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment: app/e2e/landscape-alignment.spec.ts#L27
1) [chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect.toBeVisible: Target page, context or browser has been closed 25 | // Click the instrument button by name 26 | const sampleBtn = page.getByRole('button', { name: instrumentName }).first(); > 27 | await expect(sampleBtn).toBeVisible({ timeout: 5000 }); | ^ 28 | await sampleBtn.click(); 29 | 30 | // Wait for track row to appear at addTrack (/home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:27:27) at /home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:152:5
[chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment: app/e2e/landscape-alignment.spec.ts#L0
1) [chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded.
[chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment: app/e2e/landscape-alignment.spec.ts#L27
1) [chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment Error: expect.toBeVisible: Target page, context or browser has been closed 25 | // Click the instrument button by name 26 | const sampleBtn = page.getByRole('button', { name: instrumentName }).first(); > 27 | await expect(sampleBtn).toBeVisible({ timeout: 5000 }); | ^ 28 | await sampleBtn.click(); 29 | 30 | // Wait for track row to appear at addTrack (/home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:27:27) at /home/runner/work/keyboardia/keyboardia/app/e2e/landscape-alignment.spec.ts:152:5
[chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment: app/e2e/landscape-alignment.spec.ts#L0
1) [chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment Test timeout of 30000ms exceeded.
Lint: app/src/components/CursorOverlay.tsx#L27
React Hook useMemo has an unnecessary dependency: 'deferredCursors'. Either exclude it or remove the dependency array
🎭 Playwright Run Summary
78 failed [chromium] › e2e/landscape-alignment.spec.ts:149:3 › Landscape Mobile Alignment › all track rows should have consistent vertical alignment [chromium] › e2e/landscape-alignment.spec.ts:219:3 › Landscape Mobile Alignment › screenshot comparison - visual alignment check [chromium] › e2e/pitch-contour-alignment.spec.ts:35:3 › PitchContour alignment › CSS dimensions match JavaScript constants (CRITICAL regression test) [chromium] › e2e/pitch-contour-alignment.spec.ts:100:3 › PitchContour alignment › SVG contour dots align with step cells for session with pitch variation [chromium] › e2e/scrollbar.spec.ts:76:3 › Scrollbar behavior › should have a single scrollbar for the entire tracks panel, not per track [chromium] › e2e/scrollbar.spec.ts:112:3 › Scrollbar behavior › all tracks should scroll together horizontally when scrolling the panel [chromium] › e2e/scrollbar.spec.ts:193:3 › Scrollbar behavior › pattern tools panel should stay visible when scrolling horizontally [chromium] › e2e/scrollbar.spec.ts:274:3 › Scrollbar behavior › step columns should align vertically across all tracks [chromium] › e2e/track-reorder-bug-fixes.spec.ts:114:5 › Track Reorder Bug Fix Verification › BUG 1: Double handleDragEnd Prevention › should only reorder once per drag operation [chromium] › e2e/track-reorder-comprehensive.spec.ts:122:5 › Track Reorder - Comprehensive Edge Cases › Basic Reorder Operations › should reorder first track to last position [chromium] › e2e/track-reorder-comprehensive.spec.ts:137:5 › Track Reorder - Comprehensive Edge Cases › Basic Reorder Operations › should reorder last track to first position [chromium] › e2e/track-reorder-comprehensive.spec.ts:151:5 › Track Reorder - Comprehensive Edge Cases › Basic Reorder Operations › should reorder middle track up [chromium] › e2e/track-reorder-comprehensive.spec.ts:163:5 › Track Reorder - Comprehensive Edge Cases › Basic Reorder Operations › should reorder middle track down [chromium] › e2e/track-reorder-comprehensive.spec.ts:175:5 › Track Reorder - Comprehensive Edge Cases › Basic Reorder Operations › should swap adjacent tracks (down) [chromium] › e2e/track-reorder-comprehensive.spec.ts:188:5 › Track Reorder - Comprehensive Edge Cases › Basic Reorder Operations › should swap adjacent tracks (up) [chromium] › e2e/track-reorder-comprehensive.spec.ts:207:5 › Track Reorder - Comprehensive Edge Cases › Same Position Edge Cases › should NOT reorder when dragging to same position [chromium] › e2e/track-reorder-comprehensive.spec.ts:219:5 › Track Reorder - Comprehensive Edge Cases › Same Position Edge Cases › should NOT reorder when drag is released on same track [chromium] › e2e/track-reorder-comprehensive.spec.ts:246:5 › Track Reorder - Comprehensive Edge Cases › Rapid Consecutive Drags › should handle two quick consecutive reorders correctly [chromium] › e2e/track-reorder-comprehensive.spec.ts:262:5 › Track Reorder - Comprehensive Edge Cases › Rapid Consecutive Drags › should handle three rapid reorders without losing state [chromium] › e2e/track-reorder-comprehensive.spec.ts:282:5 › Track Reorder - Comprehensive Edge Cases › Rapid Consecutive Drags › should maintain track count after many rapid operations [chromium] › e2e/track-reorder-comprehensive.spec.ts:296:5 › Track Reorder - Comprehensive Edge Cases › Rapid Consecutive Drags › should not duplicate tracks during rapid back-and-forth drags [chromium] › e2e/track-reorder-comprehensive.spec.ts:317:5 › Track Reorder - Comprehensive Edge Cases › Cancel Drag Operations › should NOT reorder when drag is canceled by moving cursor away [chromium] › e2e/track-reorder-comprehensive.spec.ts:346:5 › Track Reorder - Comprehensive Edge Cases › Cancel Drag Operations › should NOT reorder when mouse is released without proper drop [chromium] › e2