diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
 # Changelog
 
+## 0.5.0.1 — 2026-05-08
+
+### Changed
+
+- Upgraded `hw-kafka-streamly` dependency from `^>=0.1` to `^>=0.2`. The
+  upstream 0.2.0.0 release renames `Kafka.Streamly.Source` to
+  `Kafka.Streamly.Stream` and `Kafka.Streamly.Sink` to `Kafka.Streamly.Fold`
+  to match Streamly's native vocabulary. The adapter only used `skipNonFatal`
+  and `isFatal` from the renamed module, both of which keep identical
+  signatures; this is a mechanical import rename with no API-shape change.
+  Haddock cross-references in `Shibuya.Adapter.Kafka` and
+  `Shibuya.Adapter.Kafka.Internal` are updated accordingly.
+
 ## 0.5.0.0 — 2026-05-05
 
 ### Breaking Changes
diff --git a/shibuya-kafka-adapter.cabal b/shibuya-kafka-adapter.cabal
--- a/shibuya-kafka-adapter.cabal
+++ b/shibuya-kafka-adapter.cabal
@@ -1,6 +1,6 @@
 cabal-version:   3.12
 name:            shibuya-kafka-adapter
-version:         0.5.0.0
+version:         0.5.0.1
 synopsis:        Kafka adapter for the Shibuya queue processing framework
 description:
   A Shibuya adapter that integrates with Apache Kafka via kafka-effectful
@@ -59,7 +59,7 @@
     , hs-opentelemetry-api                   ^>=0.3
     , hs-opentelemetry-semantic-conventions  ^>=0.1
     , hw-kafka-client                        >=5.3       && <6
-    , hw-kafka-streamly                      ^>=0.1
+    , hw-kafka-streamly                      ^>=0.2
     , kafka-effectful                        ^>=0.1
     , shibuya-core                           ^>=0.5
     , stm                                    ^>=2.5
diff --git a/src/Shibuya/Adapter/Kafka.hs b/src/Shibuya/Adapter/Kafka.hs
--- a/src/Shibuya/Adapter/Kafka.hs
+++ b/src/Shibuya/Adapter/Kafka.hs
@@ -36,7 +36,7 @@
 == Fatal Error Propagation
 
 Non-fatal Kafka errors (poll timeouts, partition EOFs, and the rest of the
-non-fatal set defined by @hw-kafka-streamly@'s 'Kafka.Streamly.Source.isFatal')
+non-fatal set defined by @hw-kafka-streamly@'s 'Kafka.Streamly.Stream.isFatal')
 are filtered out of the poll stream. Any error that survives that filter is
 fatal by construction (for example, an SSL handshake failure, an authentication
 failure, or an invalid broker configuration) and terminates the stream by
diff --git a/src/Shibuya/Adapter/Kafka/Internal.hs b/src/Shibuya/Adapter/Kafka/Internal.hs
--- a/src/Shibuya/Adapter/Kafka/Internal.hs
+++ b/src/Shibuya/Adapter/Kafka/Internal.hs
@@ -25,7 +25,7 @@
     pollMessageBatch,
     storeOffsetMessage,
  )
-import Kafka.Streamly.Source (skipNonFatal)
+import Kafka.Streamly.Stream (skipNonFatal)
 import Kafka.Types (KafkaError)
 import Shibuya.Adapter.Kafka.Config (KafkaAdapterConfig (..))
 import Shibuya.Adapter.Kafka.Convert (consumerRecordToEnvelope)
@@ -97,7 +97,7 @@
 
 A @Right cr@ is wrapped via the supplied builder (in production,
 'mkIngested'). A @Left err@ that reaches this stage is fatal by construction
-— 'Kafka.Streamly.Source.skipNonFatal' has already dropped non-fatal errors
+— 'Kafka.Streamly.Stream.skipNonFatal' has already dropped non-fatal errors
 — and is thrown via the 'Error' @KafkaError@ effect, terminating the stream.
 
 Parameterizing over the builder function keeps this helper free of the
