diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
index c53ab5df..64df25f9 100644
--- a/.git-blame-ignore-revs
+++ b/.git-blame-ignore-revs
@@ -25,3 +25,6 @@ b98d6a989a0e1e1704f690b5baff6285f764c60e
 
 # Apply scalafix rules
 bb9fb1481918969cab254a8532243fdf3436e4e8
+
+# Scala Steward: Reformat with scalafmt 3.8.5
+dcff3226d2e357b4a4da428c49b3bbeda7ef5125
diff --git a/.scalafmt.conf b/.scalafmt.conf
index 9d5483a8..21133b6c 100644
--- a/.scalafmt.conf
+++ b/.scalafmt.conf
@@ -1,4 +1,4 @@
-version = "3.8.3"
+version = "3.8.5"
 runner.dialect = scala3
 
 align.preset = more
diff --git a/src/main/scala/Inquirers.scala b/src/main/scala/Inquirers.scala
index 8575ef0e..247c98c9 100644
--- a/src/main/scala/Inquirers.scala
+++ b/src/main/scala/Inquirers.scala
@@ -6,13 +6,13 @@ import org.apache.pekko.actor.typed.Scheduler
 final class Inquirers(mongo: Mongo)(using ec: Executor, scheduler: Scheduler):
 
   private val cache = Scaffeine()
-    .expireAfterWrite(5 minutes)
+    .expireAfterWrite(5.minutes)
     .build[User.Id, Boolean]()
 
   def contains(user: User.Id): Boolean =
     cache.underlying.getIfPresent(user) == true
 
-  scheduler.scheduleAtFixedRate(10 seconds, 2 seconds) { () =>
+  scheduler.scheduleAtFixedRate(10.seconds, 2.seconds) { () =>
     mongo.inquirers.foreach { users =>
       cache.putAll(users.view.map(_ -> true).toMap)
     }
diff --git a/src/main/scala/Lag.scala b/src/main/scala/Lag.scala
index ab49408e..0ac33c3c 100644
--- a/src/main/scala/Lag.scala
+++ b/src/main/scala/Lag.scala
@@ -11,7 +11,7 @@ final class Lag(lilaRedis: Lila, groupedWithin: util.GroupedWithin):
   private val trustedRefreshFactor = 0.1f
 
   private val trustedStats: Cache[User.Id, TrustedMillis] = Scaffeine()
-    .expireAfterWrite(1 hour)
+    .expireAfterWrite(1.hour)
     .build[User.Id, TrustedMillis]()
 
   export trustedStats.getIfPresent as sessionLag
diff --git a/src/main/scala/Lila.scala b/src/main/scala/Lila.scala
index 560597a2..d1814a82 100644
--- a/src/main/scala/Lila.scala
+++ b/src/main/scala/Lila.scala
@@ -93,8 +93,7 @@ final class Lila(config: Config)(using Executor):
         case r: RoundRobinChan =>
           connectAndSubscribe(r.out, r.out).zip(Future.sequence:
             (0 to r.parallelism).map: index =>
-              connectAndSubscribe(s"${r.out}:$index", r.out)
-          )
+              connectAndSubscribe(s"${r.out}:$index", r.out))
       .map: _ =>
         val msg = LilaIn.WsBoot.write
         connIn.async.publish(chan.in(msg), msg)
diff --git a/src/main/scala/Monitor.scala b/src/main/scala/Monitor.scala
index e0ca035c..31db6001 100644
--- a/src/main/scala/Monitor.scala
+++ b/src/main/scala/Monitor.scala
@@ -33,7 +33,7 @@ final class Monitor(
 
     scheduler.scheduleWithFixedDelay(5.seconds, 1949.millis) { () => periodicMetrics() }
 
-    scheduler.scheduleWithFixedDelay(1 minute, 1 minute) { () => jvmThreads() }
+    scheduler.scheduleWithFixedDelay(1.minute, 1.minute) { () => jvmThreads() }
 
   private def periodicMetrics() =
     val members = LilaWsServer.connections.get
diff --git a/src/main/scala/Tv.scala b/src/main/scala/Tv.scala
index 533849b7..92eafc31 100644
--- a/src/main/scala/Tv.scala
+++ b/src/main/scala/Tv.scala
@@ -25,7 +25,7 @@ object Tv:
         Bus.publish(_.room(RoomId(gameId)), cliMsg)
       }
     (if out.speed <= chess.Speed.Bullet then fast else slow).put(out.gameId.value, true)
-    Bus.publish(_ tvChannels, cliMsg)
+    Bus.publish(_.tvChannels, cliMsg)
 
   def get(gameId: Game.Id): Boolean = get(gameId, fast) || get(gameId, slow)
 
diff --git a/src/main/scala/evalCache/EvalCacheApi.scala b/src/main/scala/evalCache/EvalCacheApi.scala
index d073bc55..474c6b5a 100644
--- a/src/main/scala/evalCache/EvalCacheApi.scala
+++ b/src/main/scala/evalCache/EvalCacheApi.scala
@@ -92,7 +92,7 @@ final class EvalCacheApi(mongo: Mongo)(using Executor, Scheduler):
 
   private val cache: AsyncLoadingCache[Id, Option[EvalCacheEntry]] = Scaffeine()
     .initialCapacity(65_536)
-    .expireAfterWrite(5 minutes)
+    .expireAfterWrite(5.minutes)
     .buildAsyncFuture(fetchAndSetAccess)
 
   export cache.get as getEntry
diff --git a/src/main/scala/evalCache/EvalCacheMulti.scala b/src/main/scala/evalCache/EvalCacheMulti.scala
index 07b21217..e90cfe96 100644
--- a/src/main/scala/evalCache/EvalCacheMulti.scala
+++ b/src/main/scala/evalCache/EvalCacheMulti.scala
@@ -73,8 +73,8 @@ private object EvalCacheMulti:
   private val upgradeMon = Monitor.evalCache.multi.upgrade
 
   def withMonitoring()(using ec: Executor, scheduler: Scheduler): EvalCacheMulti =
-    val instance = EvalCacheMulti(expire => ExpireCallbackMemo[Sri](1 minute, expire))
-    scheduler.scheduleWithFixedDelay(1 minute, 1 minute): () =>
+    val instance = EvalCacheMulti(expire => ExpireCallbackMemo[Sri](1.minute, expire))
+    scheduler.scheduleWithFixedDelay(1.minute, 1.minute): () =>
       upgradeMon.members.update(instance.members.size())
       upgradeMon.evals.update(instance.evals.size())
       upgradeMon.expirable.update(instance.expirableSris.count)
diff --git a/src/main/scala/evalCache/EvalCacheUpgrade.scala b/src/main/scala/evalCache/EvalCacheUpgrade.scala
index 064094a1..f504a587 100644
--- a/src/main/scala/evalCache/EvalCacheUpgrade.scala
+++ b/src/main/scala/evalCache/EvalCacheUpgrade.scala
@@ -21,7 +21,7 @@ final private class EvalCacheUpgrade(using ec: Executor, scheduler: Scheduler):
 
   private val members       = scalalib.ConcurrentMap[SriString, WatchingMember](4096)
   private val evals         = scalalib.ConcurrentMap[SetupId, EvalState](1024)
-  private val expirableSris = ExpireCallbackMemo[Sri](3 minutes, expire)
+  private val expirableSris = ExpireCallbackMemo[Sri](3.minutes, expire)
 
   private val debouncer = DebouncerFunction[SetupId](scheduler.scheduleOnce(5.seconds, _), 64)
 
@@ -69,7 +69,7 @@ final private class EvalCacheUpgrade(using ec: Executor, scheduler: Scheduler):
       val newSris = eval.sris - sri
       Option.unless(newSris.isEmpty)(eval.copy(sris = newSris))
 
-  scheduler.scheduleWithFixedDelay(1 minute, 1 minute): () =>
+  scheduler.scheduleWithFixedDelay(1.minute, 1.minute): () =>
     upgradeMon.members.update(members.size())
     upgradeMon.evals.update(evals.size())
     upgradeMon.expirable.update(expirableSris.count)
diff --git a/src/main/scala/netty/ActorChannelConnector.scala b/src/main/scala/netty/ActorChannelConnector.scala
index ea6e6c96..2cb81da8 100644
--- a/src/main/scala/netty/ActorChannelConnector.scala
+++ b/src/main/scala/netty/ActorChannelConnector.scala
@@ -32,7 +32,7 @@ final private class ActorChannelConnector(
     val interval                 = int("netty.flush.interval-millis")
     val maxDelay                 = int("netty.flush.max-delay-millis")
     inline def isFlushQEnabled() = interval.get() > 0
-    scheduler.scheduleWithFixedDelay(1 minute, 1 minute): () =>
+    scheduler.scheduleWithFixedDelay(1.minute, 1.minute): () =>
       monitor.config.step.update(step.get())
       monitor.config.interval.update(interval.get())
       monitor.config.maxDelay.update(maxDelay.get())