Skip to content

Commit 235b896

Browse files
adewaleclaude
andcommitted
fix: Complete playbackMode removal from messages and tests
The gate mode removal PR left several references to playbackMode in: - messages.ts: MUTATING_MESSAGE_TYPES and STATE_MUTATING_BROADCASTS - sync-classification.ts: SYNCED_ACTIONS - Various test files with outdated counts and fixtures Also updates live-session.test.ts to use stepCount:256 (truly invalid) since Phase 29F polyrhythm support expanded VALID_STEP_COUNTS to include 128. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 6d94eeb commit 235b896

File tree

7 files changed

+14
-26
lines changed

7 files changed

+14
-26
lines changed

app/src/shared/messages.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ export const MUTATING_MESSAGE_TYPES = new Set([
3838
'set_track_volume',
3939
'set_track_transpose',
4040
'set_track_step_count',
41-
'set_track_playback_mode', // Phase 26: Playback mode sync (oneshot/loop/etc)
4241
'set_effects', // Phase 25: Audio effects sync
4342
'set_scale', // Phase 29E: Key Assistant scale sync
4443
'set_fm_params', // Phase 24: FM synth parameters
@@ -91,7 +90,6 @@ export const STATE_MUTATING_BROADCASTS = new Set([
9190
'track_volume_set',
9291
'track_transpose_set',
9392
'track_step_count_set',
94-
'track_playback_mode_set', // Phase 26: Playback mode changed
9593
'effects_changed',
9694
'scale_changed', // Phase 29E: Key Assistant scale sync
9795
'fm_params_changed',

app/src/shared/sync-classification.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ export const SYNCED_ACTIONS = new Set([
3232
'SET_TRACK_VOLUME', // Track parameter - shared
3333
'SET_TRACK_TRANSPOSE', // Track parameter - shared
3434
'SET_TRACK_STEP_COUNT', // Track setting - shared
35-
'SET_TRACK_PLAYBACK_MODE', // Track setting - shared (Phase 26)
3635
'SET_EFFECTS', // Global effects - shared (Phase 25)
3736
'SET_FM_PARAMS', // Track parameter - shared (Phase 24)
3837
'COPY_SEQUENCE', // Grid edit - shared (Phase 26)

app/src/worker/types.test.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,8 @@ describe('isStateMutatingBroadcast', () => {
299299
'track_volume_set',
300300
'track_transpose_set',
301301
'track_step_count_set',
302-
'track_playback_mode_set', // Phase 26: Playback mode changed
303302
'effects_changed',
303+
'scale_changed', // Phase 29E: Key Assistant scale sync
304304
'fm_params_changed',
305305
'sequence_copied', // Phase 26: Steps copied between tracks
306306
'sequence_moved', // Phase 26: Steps moved between tracks
@@ -354,7 +354,6 @@ describe('isStateMutatingBroadcast', () => {
354354
'set_track_volume', // -> track_volume_set
355355
'set_track_transpose', // -> track_transpose_set
356356
'set_track_step_count', // -> track_step_count_set
357-
'set_track_playback_mode', // -> track_playback_mode_set (Phase 26)
358357
'set_effects', // -> effects_changed
359358
'set_scale', // -> scale_changed (Phase 29E)
360359
'set_fm_params', // -> fm_params_changed
@@ -400,7 +399,6 @@ describe('TEST-08: Published Session WebSocket Blocking', () => {
400399
'set_track_volume',
401400
'set_track_transpose',
402401
'set_track_step_count',
403-
'set_track_playback_mode', // Phase 26: Playback mode sync
404402
'set_effects',
405403
'set_scale', // Phase 29E: Key Assistant scale sync
406404
'set_fm_params',
@@ -454,7 +452,6 @@ describe('TEST-08: Published Session WebSocket Blocking', () => {
454452
'set_session_name', // Session metadata sync
455453
'set_swing',
456454
'set_tempo',
457-
'set_track_playback_mode', // Phase 26: Playback mode sync
458455
'set_track_sample',
459456
'set_track_step_count',
460457
'set_track_transpose',

app/test/integration/live-session.test.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ it('Router: accepts all valid step count options (4, 8, 12, 16, 24, 32, 64)', as
581581
}
582582
});
583583

584-
it('Router: rejects invalid step count (e.g., 13)', async () => {
584+
it('Router: rejects invalid step count (e.g., 256 - exceeds max)', async () => {
585585
const response = await SELF.fetch('http://localhost/api/sessions', {
586586
method: 'POST',
587587
headers: { 'Content-Type': 'application/json' },
@@ -591,13 +591,12 @@ it('Router: rejects invalid step count (e.g., 13)', async () => {
591591
id: 'invalid-track',
592592
name: 'Invalid',
593593
sampleId: 'kick',
594-
steps: Array(13).fill(true),
595-
parameterLocks: Array(13).fill(null),
594+
steps: Array(256).fill(true),
595+
parameterLocks: Array(256).fill(null),
596596
volume: 1,
597597
muted: false,
598-
playbackMode: 'oneshot',
599598
transpose: 0,
600-
stepCount: 13, // Invalid: not in [4, 8, 12, 16, 24, 32, 64]
599+
stepCount: 256, // Invalid: exceeds max of 128
601600
}],
602601
tempo: 120,
603602
swing: 0,

app/test/integration/message-types.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ describe('REFACTOR-02: Single MUTATING_MESSAGE_TYPES', () => {
3939
'set_track_volume',
4040
'set_track_transpose',
4141
'set_track_step_count',
42-
'set_track_playback_mode', // Phase 26
4342
'set_effects',
43+
'set_scale', // Phase 29E: Key Assistant scale sync
4444
'set_fm_params',
4545
'copy_sequence', // Phase 26
4646
'move_sequence', // Phase 26
@@ -143,8 +143,8 @@ describe('REFACTOR-02: Single MUTATING_MESSAGE_TYPES', () => {
143143
'set_track_volume': 'track_volume_set',
144144
'set_track_transpose': 'track_transpose_set',
145145
'set_track_step_count': 'track_step_count_set',
146-
'set_track_playback_mode': 'track_playback_mode_set', // Phase 26
147146
'set_effects': 'effects_changed',
147+
'set_scale': 'scale_changed', // Phase 29E: Key Assistant scale sync
148148
'set_fm_params': 'fm_params_changed',
149149
'copy_sequence': 'sequence_copied', // Phase 26
150150
'move_sequence': 'sequence_moved', // Phase 26

app/test/unit/mutation-types.test.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ const ALL_HANDLED_MESSAGE_TYPES = [
4343
'set_track_volume',
4444
'set_track_transpose',
4545
'set_track_step_count',
46-
'set_track_playback_mode', // Phase 26: Playback mode sync
4746
'set_effects', // Phase 25: Audio effects sync
4847
'set_scale', // Phase 29E: Key Assistant scale sync
4948
'set_fm_params', // Phase 23: FM synthesis params sync
@@ -78,7 +77,6 @@ describe('Mutation Type Definitions', () => {
7877
'set_track_volume',
7978
'set_track_transpose',
8079
'set_track_step_count',
81-
'set_track_playback_mode', // Phase 26: Playback mode sync
8280
'set_effects', // Phase 25: Audio effects sync
8381
'set_scale', // Phase 29E: Key Assistant scale sync
8482
'set_fm_params', // Phase 23: FM synthesis params sync
@@ -183,19 +181,19 @@ describe('Mutation Type Definitions', () => {
183181
* per "My Ears, My Control" philosophy - each user controls their own mix.
184182
*/
185183
describe('Published Session Protection', () => {
186-
it('has exactly 18 mutation types to block', () => {
187-
// 16 original + set_session_name + set_scale
188-
expect(MUTATING_MESSAGE_TYPES.size).toBe(18);
184+
it('has exactly 17 mutation types to block', () => {
185+
// 15 original + set_session_name + set_scale (removed set_track_playback_mode)
186+
expect(MUTATING_MESSAGE_TYPES.size).toBe(17);
189187
});
190188

191189
it('has exactly 8 read-only types to allow', () => {
192190
// 6 original + mute_track + solo_track
193191
expect(READONLY_MESSAGE_TYPES.size).toBe(8);
194192
});
195193

196-
it('covers all 26 message types handled by the DO', () => {
194+
it('covers all 25 message types handled by the DO', () => {
197195
const totalClassified = MUTATING_MESSAGE_TYPES.size + READONLY_MESSAGE_TYPES.size;
198196
expect(totalClassified).toBe(ALL_HANDLED_MESSAGE_TYPES.length);
199-
expect(totalClassified).toBe(26);
197+
expect(totalClassified).toBe(25);
200198
});
201199
});

app/test/unit/sync-classification.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ const ALL_GRID_ACTION_TYPES = [
4747
'SET_TRACK_VOLUME',
4848
'SET_TRACK_TRANSPOSE',
4949
'SET_TRACK_STEP_COUNT',
50-
'SET_TRACK_PLAYBACK_MODE',
5150
'SET_EFFECTS',
5251
'SET_FM_PARAMS',
5352
'COPY_SEQUENCE',
@@ -115,8 +114,6 @@ function createMockAction(type: string): GridAction {
115114
return { type: 'SET_TRACK_TRANSPOSE', trackId: 'test-track-1', transpose: 3 };
116115
case 'SET_TRACK_STEP_COUNT':
117116
return { type: 'SET_TRACK_STEP_COUNT', trackId: 'test-track-1', stepCount: 32 };
118-
case 'SET_TRACK_PLAYBACK_MODE':
119-
return { type: 'SET_TRACK_PLAYBACK_MODE', trackId: 'test-track-1', playbackMode: 'loop' };
120117
case 'SET_EFFECTS':
121118
return { type: 'SET_EFFECTS', effects: mockEffects };
122119
case 'SET_FM_PARAMS':
@@ -189,9 +186,9 @@ describe('Sync Classification Verification', () => {
189186
});
190187

191188
it('has the expected number of classified actions', () => {
192-
// 17 synced + 6 local-only + 6 internal = 29 total
189+
// 16 synced + 6 local-only + 6 internal = 28 total
193190
const totalClassified = SYNCED_ACTIONS.size + LOCAL_ONLY_ACTIONS.size + INTERNAL_ACTIONS.size;
194-
expect(totalClassified).toBe(29);
191+
expect(totalClassified).toBe(28);
195192
});
196193
});
197194

0 commit comments

Comments
 (0)