M464 loudness leveling (steps 4–8), APK distribution and security baseline adoptions #136

Merged
bvandeusen merged 12 commits from dev into main 2026-10-06 23:11:36 -04:00
3 changed files with 5 additions and 2 deletions
Showing only changes of commit d5dfcf5b7c - Show all commits
@@ -91,6 +91,7 @@ data class RequestCreatePayload(
* This matches `feedback_offline_first_for_server_writes` — writes
* never go fire-and-forget.
*/
@Suppress("TooManyFunctions") // one enqueue per mutation kind, like the replayer's dispatchers
@Singleton
class MutationQueue @Inject constructor(
private val dao: CachedMutationDao,
@@ -94,6 +94,8 @@
</span>
<input
type="checkbox"
role="switch"
aria-checked={normalization.value.boost === 'limiter'}
checked={normalization.value.boost === 'limiter'}
onchange={(e) =>
change({ boost: (e.currentTarget as HTMLInputElement).checked ? 'limiter' : 'headroom' })}
@@ -31,7 +31,7 @@ describe('NormalizationSetting', () => {
await waitFor(() =>
expect(putNormalization).toHaveBeenCalledWith({ mode: 'album', target_lufs: -16, boost: 'headroom' })
);
await fireEvent.click(screen.getByRole('checkbox', { name: /boost quiet tracks/i }));
await fireEvent.click(screen.getByRole('switch', { name: /boost quiet tracks/i }));
await waitFor(() =>
expect(putNormalization).toHaveBeenLastCalledWith({ mode: 'album', target_lufs: -16, boost: 'limiter' })
);
@@ -60,6 +60,6 @@ describe('NormalizationSetting', () => {
render(NormalizationSetting);
await waitFor(() => expect(screen.getByRole('radio', { name: 'Off' })).toBeChecked());
expect(screen.queryByRole('radio', { name: '-18 LUFS' })).toBeNull();
expect(screen.queryByRole('checkbox')).toBeNull();
expect(screen.queryByRole('switch')).toBeNull();
});
});