From 9a2e98ed742960ba14eda586ec12a96709adb3ef Mon Sep 17 00:00:00 2001 From: ChrisBeWithYou Date: Mon, 20 Jul 2026 17:13:31 -0500 Subject: [PATCH 1/2] feat(player): drum-part picker for multiple drum charts (feedpak 1.17.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The last mile of the multiple-drum-parts feature: let a player CHOOSE which drum chart plays. #1020 taught the loader + highway WS to carry several drum parts (song_info.drum_parts + ?drum_part= + a part_id echo on drum_tab); this adds the host-chrome selector that drives it. A "Drum part" +
Difficulty From 7b85eef104a18c47619c41ba3d3faa3191067965 Mon Sep 17 00:00:00 2001 From: ChrisBeWithYou Date: Mon, 20 Jul 2026 22:48:23 -0500 Subject: [PATCH 2/2] Update reconnect source contract test --- tests/js/highway_chart_transform.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/js/highway_chart_transform.test.js b/tests/js/highway_chart_transform.test.js index 21bcb481..dc692e2f 100644 --- a/tests/js/highway_chart_transform.test.js +++ b/tests/js/highway_chart_transform.test.js @@ -316,7 +316,7 @@ test('anchor zoom helpers read the staged anchors first', () => { test('init and reconnect clear the stage but keep the provider', () => { const src = fs.readFileSync(highwayJs, 'utf8'); const initBody = extractBlock(src, 'init(canvasEl, container)'); - const reconnectBody = extractBlock(src, 'reconnect(filename, arrangement)'); + const reconnectBody = extractBlock(src, 'reconnect(filename, arrangement, drumPart)'); assert.match(initBody, /_clearChartTransformStage\(\);/, 'init clears the stage'); assert.match(reconnectBody, /_clearChartTransformStage\(\);/, 'reconnect clears the stage'); assert.ok(!/init\([\s\S]{0,2000}_xfProvider = null/.test(src.slice(src.indexOf('const api = {'))),