diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,11 @@
 # Revision history for rhine-terminal
 
+## 1.3
+
+* Dropped `dunai` dependency in favour of state automata.
+  See [the versions readme](./versions.md) for details.
+* Support GHC 9.6 and 9.8
+
 ## 1.1
 
 * dunai-0.11 compatibility
diff --git a/rhine-terminal.cabal b/rhine-terminal.cabal
--- a/rhine-terminal.cabal
+++ b/rhine-terminal.cabal
@@ -1,86 +1,96 @@
 -- Initial rhine-gloss.cabal generated by cabal init.  For further
 -- documentation, see http://haskell.org/cabal/users-guide/
-
-name:                rhine-terminal
-version:             1.2
-synopsis:            Terminal backend for Rhine
-description:
-  This package provides an example of a `terminal` based program using rhine.
-license:             BSD3
-license-file:        LICENSE
-author:              Manuel Bärenz, Jun Matsushita
-maintainer:          programming@manuelbaerenz.de, jun@iilab.org
+name: rhine-terminal
+version: 1.3
+synopsis: Terminal backend for Rhine
+description: This package provides an example of a `terminal` based program using rhine.
+license: BSD3
+license-file: LICENSE
+author: Manuel Bärenz, Jun Matsushita
+maintainer: programming@manuelbaerenz.de, jun@iilab.org
 -- copyright:
-category:            FRP
-build-type:          Simple
-extra-source-files:  ChangeLog.md
-extra-doc-files:     README.md
-cabal-version:       2.0
+category: FRP
+build-type: Simple
+extra-source-files: ChangeLog.md
+extra-doc-files: README.md
+cabal-version: 2.0
 
 source-repository head
-  type:     git
+  type: git
   location: https://github.com/turion/rhine.git
 
 source-repository this
-  type:     git
+  type: git
   location: https://github.com/turion/rhine.git
-  tag:      v1.1
+  tag: v1.3
 
 library
-  exposed-modules:
-    FRP.Rhine.Terminal
-  build-depends:       base         >= 4.11 && < 4.18
-                     , exceptions   >= 0.10.4
-                     , transformers >= 0.5
-                     , rhine        == 1.2
-                     , dunai        ^>= 0.11
-                     , terminal     >= 0.2.0.0
-                     , time         >= 1.9.3
-                     , monad-schedule >= 0.1.2
-  hs-source-dirs:      src
-  default-language:    Haskell2010
-  ghc-options:         -W
-  default-extensions:
-    TypeOperators
+  exposed-modules: FRP.Rhine.Terminal
+  build-depends:
+    base >=4.11 && <4.20,
+    exceptions >=0.10.4,
+    monad-schedule >=0.1.2,
+    rhine ==1.3,
+    terminal >=0.2.0.0,
+    time >=1.9.3,
+    transformers >=0.5
+
+  hs-source-dirs: src
+  default-language: Haskell2010
+  ghc-options: -W
+  default-extensions: TypeOperators
+
   if flag(dev)
     ghc-options: -Werror
 
 executable rhine-terminal-simple
-  main-is:             TerminalSimple.hs
-  ghc-options:         -threaded
-  build-depends:       base         >= 4.14 && < 4.18
-                     , rhine        == 1.2
-                     , rhine-terminal
-                     , terminal     >= 0.2.0.0
-                     , text         >= 1.2
-                     , time         >= 1.9.3
+  main-is: TerminalSimple.hs
+  ghc-options: -threaded
+  build-depends:
+    base >=4.14 && <4.20,
+    rhine ==1.3,
+    rhine-terminal,
+    terminal >=0.2.0.0,
+    text >=1.2,
+    time >=1.9.3
 
-  default-language:    Haskell2010
-  ghc-options:         -W -threaded -rtsopts -with-rtsopts=-N
-  default-extensions:
-    TypeOperators
+  default-language: Haskell2010
+  ghc-options:
+    -W
+    -threaded
+    -rtsopts
+    -with-rtsopts=-N
+
+  default-extensions: TypeOperators
+
   if flag(dev)
     ghc-options: -Werror
 
 test-suite rhine-terminal-tests
-  type:                exitcode-stdio-1.0
-  main-is:             tests/Main.hs
-  ghc-options:         -threaded
-  build-depends:       base         >= 4.14 && < 4.18
-                     , rhine        == 1.2
-                     , rhine-terminal
-                     , exceptions   >= 0.10.4
-                     , transformers >= 0.5
-                     , terminal     >= 0.2.0.0
-                     , text         >= 1.2
-                     , time         >= 1.9.3
-                     , stm          >= 2.5.0
-                     , hspec
+  type: exitcode-stdio-1.0
+  main-is: tests/Main.hs
+  ghc-options: -threaded
+  build-depends:
+    base >=4.14 && <4.20,
+    exceptions >=0.10.4,
+    hspec,
+    rhine ==1.3,
+    rhine-terminal,
+    stm >=2.5.0,
+    terminal >=0.2.0.0,
+    text >=1.2,
+    time >=1.9.3,
+    transformers >=0.5
 
-  default-language:    Haskell2010
-  ghc-options:         -W -threaded -rtsopts -with-rtsopts=-N
-  default-extensions:
-    TypeOperators
+  default-language: Haskell2010
+  ghc-options:
+    -W
+    -threaded
+    -rtsopts
+    -with-rtsopts=-N
+
+  default-extensions: TypeOperators
+
   if flag(dev)
     ghc-options: -Werror
 
