diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
 # Changelog
 
+## 0.8.0.1 — 2026-09-18
+
+### Other Changes
+
+* The test-suite and benchmarks now require `ephemeral-pg >=0.3.1 && <0.4`
+  (was `>=0.2 && <0.3`). The benchmarks pin ephemeral-pg's temporary root to a
+  stable per-user directory, so clusters left behind by killed runs are cleaned
+  up on the next start. The library's dependencies, API and runtime behavior
+  are unchanged.
+
 ## 0.8.0.0 — 2026-08-16
 
 ### Breaking Changes
diff --git a/bench/Explain.hs b/bench/Explain.hs
--- a/bench/Explain.hs
+++ b/bench/Explain.hs
@@ -4,7 +4,7 @@
 
 Two modes:
 
-  * default — boots a cached ephemeral PostgreSQL via 'Pg.withCached', runs
+  * default — boots a cached ephemeral PostgreSQL via 'Pg.withCachedConfig', runs
     the production @AnyVersion@ CTE under
     @EXPLAIN (ANALYZE, BUFFERS, TIMING, FORMAT TEXT)@ wrapped in
     @BEGIN ... ROLLBACK@, prints the result to stdout, then runs the same
@@ -46,6 +46,7 @@
 import Hasql.Session qualified as Session
 import Hasql.Statement (Statement, unpreparable)
 import Kiroku.Store
+import Kiroku.Test.Postgres (ephemeralConfig)
 import System.Directory (createDirectoryIfMissing, doesFileExist, getCurrentDirectory, listDirectory, removePathForcibly)
 import System.Environment (getArgs)
 import System.FilePath (takeDirectory, (</>))
@@ -262,7 +263,8 @@
     createDirectoryIfMissing True dir
     putStrLn ("=== Output directory: " <> dir <> " ===")
     putStrLn "=== Booting cached ephemeral PostgreSQL for EXPLAIN ANALYZE ==="
-    result <- Pg.withCached $ \db -> do
+    config <- ephemeralConfig
+    result <- Pg.withCachedConfig config Pg.defaultCacheConfig $ \db -> do
         let settings = defaultConnectionSettings (Pg.connectionString db)
         withStore settings $ \store -> do
             paramsText <- mkSampleParams
@@ -371,8 +373,9 @@
               -- & Discoveries for the empirical evidence.
               ("log_min_messages", "'log'")
             ]
+    base <- ephemeralConfig
     let cfg =
-            PgC.defaultConfig
+            base
                 <> PgC.autoExplainConfig 0
                 <> (mempty :: PgC.Config){PgC.postgresSettings = collectorSettings}
     result <- Pg.withConfig cfg $ \db -> do
diff --git a/bench/Main.hs b/bench/Main.hs
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -26,7 +26,7 @@
 import Hasql.Transaction qualified as Tx
 import Hasql.Transaction.Sessions qualified as TxSessions
 import Kiroku.Store
-import Kiroku.Test.Postgres (migrateTestDatabase, withMigratedTestDatabase, withSharedMigratedPostgres)
+import Kiroku.Test.Postgres (ephemeralConfig, migrateTestDatabase, withMigratedTestDatabase, withSharedMigratedPostgres)
 import Test.Tasty.Bench
 
 data RawAppendParams = RawAppendParams
@@ -712,7 +712,8 @@
 main :: IO ()
 main = do
     -- Start ephemeral PostgreSQL once for all benchmarks
-    result <- Pg.withCached $ \db -> do
+    config <- ephemeralConfig
+    result <- Pg.withCachedConfig config Pg.defaultCacheConfig $ \db -> do
         migrateTestDatabase (Pg.connectionString db)
         let settings = defaultConnectionSettings (Pg.connectionString db)
         withStore settings $ \store -> do
diff --git a/bench/ShibuyaOverhead.hs b/bench/ShibuyaOverhead.hs
--- a/bench/ShibuyaOverhead.hs
+++ b/bench/ShibuyaOverhead.hs
@@ -29,6 +29,7 @@
 import EphemeralPg qualified as Pg
 import Kiroku.Store
 import Kiroku.Store.Subscription.Stream (subscriptionStream)
+import Kiroku.Test.Postgres (ephemeralConfig)
 import Shibuya.Adapter (Adapter (..))
 import Shibuya.App (ProcessorId (..), defaultAppConfig, mkProcessor, runApp, stopApp)
 import Shibuya.Core.Ack (AckDecision (..))
@@ -46,7 +47,8 @@
 
 main :: IO ()
 main = do
-    result <- Pg.withCached $ \db -> do
+    config <- ephemeralConfig
+    result <- Pg.withCachedConfig config Pg.defaultCacheConfig $ \db -> do
         let settings = defaultConnectionSettings (Pg.connectionString db)
         withStore settings $ \store -> do
             putStrLn "=== Kiroku Shibuya Adapter Overhead Benchmark ==="
diff --git a/kiroku-store.cabal b/kiroku-store.cabal
--- a/kiroku-store.cabal
+++ b/kiroku-store.cabal
@@ -1,6 +1,6 @@
 cabal-version:   3.0
 name:            kiroku-store
-version:         0.8.0.0
+version:         0.8.0.1
 synopsis:        High-performance PostgreSQL event store
 description:
   Kiroku is a PostgreSQL-backed event store for Haskell applications. It
@@ -141,33 +141,33 @@
 
   ghc-options:    -threaded -rtsopts -with-rtsopts=-N
   build-depends:
-    , aeson                 >=2.1  && <2.3
-    , async                 >=2.2  && <2.3
-    , base                  >=4.18 && <5
-    , bytestring            >=0.11 && <0.13
-    , containers            >=0.6  && <0.8
+    , aeson                 >=2.1   && <2.3
+    , async                 >=2.2   && <2.3
+    , base                  >=4.18  && <5
+    , bytestring            >=0.11  && <0.13
+    , containers            >=0.6   && <0.8
     , contravariant-extras  >=0.3
     , directory
-    , effectful-core        >=2.4  && <2.7
-    , ephemeral-pg          >=0.2  && <0.3
-    , generic-lens          >=2.2  && <2.4
-    , hasql                 >=1.10 && <1.11
-    , hasql-notifications   >=0.2  && <0.3
-    , hasql-pool            >=1.2  && <1.5
-    , hasql-transaction     >=1.1  && <1.3
-    , hedgehog              >=1.4  && <1.8
-    , hspec                 >=2.10 && <2.12
-    , hspec-hedgehog        >=0.0  && <0.4
+    , effectful-core        >=2.4   && <2.7
+    , ephemeral-pg          >=0.3.1 && <0.4
+    , generic-lens          >=2.2   && <2.4
+    , hasql                 >=1.10  && <1.11
+    , hasql-notifications   >=0.2   && <0.3
+    , hasql-pool            >=1.2   && <1.5
+    , hasql-transaction     >=1.1   && <1.3
+    , hedgehog              >=1.4   && <1.8
+    , hspec                 >=2.10  && <2.12
+    , hspec-hedgehog        >=0.0   && <0.4
     , kiroku-store
     , kiroku-test-support
-    , lens                  >=5.2  && <5.4
-    , mmzk-typeid           >=0.6  && <0.8
-    , stm                   >=2.5  && <2.6
-    , streamly-core         >=0.3  && <0.4
-    , text                  >=2.0  && <2.2
-    , time                  >=1.12 && <1.15
-    , uuid                  >=1.3  && <1.4
-    , vector                >=0.13 && <0.14
+    , lens                  >=5.2   && <5.4
+    , mmzk-typeid           >=0.6   && <0.8
+    , stm                   >=2.5   && <2.6
+    , streamly-core         >=0.3   && <0.4
+    , text                  >=2.0   && <2.2
+    , time                  >=1.12  && <1.15
+    , uuid                  >=1.3   && <1.4
+    , vector                >=0.13  && <0.14
 
 benchmark kiroku-store-bench
   import:         common
@@ -178,24 +178,24 @@
     -threaded -rtsopts "-with-rtsopts=-N -A32m" -fproc-alignment=64
 
   build-depends:
-    , aeson                >=2.1  && <2.3
-    , async                >=2.2  && <2.3
-    , base                 >=4.18 && <5
+    , aeson                >=2.1   && <2.3
+    , async                >=2.2   && <2.3
+    , base                 >=4.18  && <5
     , deepseq              >=1.4
-    , ephemeral-pg         >=0.2  && <0.3
-    , generic-lens         >=2.2  && <2.4
-    , hasql                >=1.10 && <1.11
-    , hasql-pool           >=1.2  && <1.5
-    , hasql-transaction    >=1.1  && <1.3
+    , ephemeral-pg         >=0.3.1 && <0.4
+    , generic-lens         >=2.2   && <2.4
+    , hasql                >=1.10  && <1.11
+    , hasql-pool           >=1.2   && <1.5
+    , hasql-transaction    >=1.1   && <1.3
     , kiroku-store
     , kiroku-test-support
-    , lens                 >=5.2  && <5.4
+    , lens                 >=5.2   && <5.4
     , mmzk-typeid          >=0.6
     , tasty-bench          >=0.4
-    , text                 >=2.0  && <2.2
-    , time                 >=1.12 && <1.15
-    , uuid                 >=1.3  && <1.4
-    , vector               >=0.13 && <0.14
+    , text                 >=2.0   && <2.2
+    , time                 >=1.12  && <1.15
+    , uuid                 >=1.3   && <1.4
+    , vector               >=0.13  && <0.14
 
 benchmark kiroku-store-bench-workload-gate
   import:         common
@@ -227,24 +227,25 @@
   hs-source-dirs: bench
   ghc-options:    -threaded -rtsopts "-with-rtsopts=-N -A32m"
   build-depends:
-    , aeson                 >=2.1  && <2.3
-    , base                  >=4.18 && <5
-    , containers            >=0.6  && <0.8
-    , effectful             >=2.4  && <2.7
-    , effectful-core        >=2.4  && <2.7
-    , ephemeral-pg          >=0.2  && <0.3
-    , generic-lens          >=2.2  && <2.4
+    , aeson                 >=2.1   && <2.3
+    , base                  >=4.18  && <5
+    , containers            >=0.6   && <0.8
+    , effectful             >=2.4   && <2.7
+    , effectful-core        >=2.4   && <2.7
+    , ephemeral-pg          >=0.3.1 && <0.4
+    , generic-lens          >=2.2   && <2.4
     , kiroku-store
-    , lens                  >=5.2  && <5.4
-    , shibuya-core          >=0.9  && <0.10
-    , stm                   >=2.5  && <2.6
+    , kiroku-test-support
+    , lens                  >=5.2   && <5.4
+    , shibuya-core          >=0.9   && <0.10
+    , stm                   >=2.5   && <2.6
     , streamly              >=0.11
-    , streamly-core         >=0.3  && <0.4
-    , text                  >=2.0  && <2.2
-    , time                  >=1.12 && <1.15
+    , streamly-core         >=0.3   && <0.4
+    , text                  >=2.0   && <2.2
+    , time                  >=1.12  && <1.15
     , unliftio              >=0.2
-    , unordered-containers  >=0.2  && <0.3
-    , uuid                  >=1.3  && <1.4
+    , unordered-containers  >=0.2   && <0.3
+    , uuid                  >=1.3   && <1.4
 
 benchmark kiroku-store-bench-explain
   import:         common
@@ -253,18 +254,19 @@
   hs-source-dirs: bench
   ghc-options:    -threaded -rtsopts "-with-rtsopts=-N -A32m"
   build-depends:
-    , aeson         >=2.1  && <2.3
-    , base          >=4.18 && <5
-    , bytestring    >=0.11 && <0.13
-    , directory     >=1.3
-    , ephemeral-pg  >=0.2  && <0.3
-    , filepath      >=1.4
-    , generic-lens  >=2.2  && <2.4
-    , hasql         >=1.10 && <1.11
-    , hasql-pool    >=1.2  && <1.5
+    , aeson                >=2.1   && <2.3
+    , base                 >=4.18  && <5
+    , bytestring           >=0.11  && <0.13
+    , directory            >=1.3
+    , ephemeral-pg         >=0.3.1 && <0.4
+    , filepath             >=1.4
+    , generic-lens         >=2.2   && <2.4
+    , hasql                >=1.10  && <1.11
+    , hasql-pool           >=1.2   && <1.5
     , kiroku-store
-    , lens          >=5.2  && <5.4
-    , text          >=2.0  && <2.2
-    , time          >=1.12 && <1.15
-    , uuid          >=1.3  && <1.4
-    , vector        >=0.13 && <0.14
+    , kiroku-test-support
+    , lens                 >=5.2   && <5.4
+    , text                 >=2.0   && <2.2
+    , time                 >=1.12  && <1.15
+    , uuid                 >=1.3   && <1.4
+    , vector               >=0.13  && <0.14
