feat: M3 weighted shuffle v1 — real /api/radio with scoring #21

Merged
bvandeusen merged 262 commits from dev into main 2026-04-27 11:00:29 -04:00
Showing only changes of commit 0415b5ccc3 - Show all commits
@@ -126,8 +126,12 @@ class MutationReplayer @Inject constructor(
}
true
} catch (
@Suppress("TooGenericExceptionCaught") e: Throwable,
@Suppress("TooGenericExceptionCaught", "SwallowedException") e: Throwable,
) {
// Intentional swallow: the row stays in the queue with
// attempts + lastAttemptAt incremented; next drain pass
// retries. Per-attempt diagnostic logging lands when we
// wire up Timber at the replayer level.
false
}
}
@@ -147,8 +151,12 @@ class MutationReplayer @Inject constructor(
discoverApi.createRequest(body)
true
} catch (
@Suppress("TooGenericExceptionCaught") e: Throwable,
@Suppress("TooGenericExceptionCaught", "SwallowedException") e: Throwable,
) {
// Intentional swallow: the row stays in the queue with
// attempts + lastAttemptAt incremented; next drain pass
// retries. Per-attempt diagnostic logging lands when we
// wire up Timber at the replayer level.
false
}
}
@@ -159,8 +167,12 @@ class MutationReplayer @Inject constructor(
quarantineApi.unflag(decoded.trackId)
true
} catch (
@Suppress("TooGenericExceptionCaught") e: Throwable,
@Suppress("TooGenericExceptionCaught", "SwallowedException") e: Throwable,
) {
// Intentional swallow: the row stays in the queue with
// attempts + lastAttemptAt incremented; next drain pass
// retries. Per-attempt diagnostic logging lands when we
// wire up Timber at the replayer level.
false
}
}