diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
 # Changelog
 
+## 0.7.0.0 — 2026-09-18
+
+### Changed
+
+- Requires the Kioku 0.7 cohort and optparse-applicative `>=0.19 && <0.20`, and adopts the shared
+  GHC 9.12/GHC 2024 warning baseline.
+- The migration and reconciliation behavior is unchanged: the plan remains 56 entries, successful
+  `up` reconciles the catalog-derived read-model identities, and the guarded Codd import remains
+  available for pre-cutover databases. No ledger fixup is required.
+
 ## 0.6.0.0 — 2026-09-08
 
 ### Breaking Changes
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -35,7 +35,7 @@
   )
 import Kioku.ReadModel (ReadModelSchema (..), ReconcileOutcome (..), reconcileReadModelRegistry)
 import Kiroku.Store.Connection (defaultConnectionSettings)
-import Options.Applicative
+import Options.Applicative hiding (command)
 import Options.Applicative qualified as Opt
 import System.Environment (lookupEnv)
 import System.Exit qualified as Exit
@@ -157,10 +157,10 @@
       targetProvider
       plan
       cohortCoddHistoryMappings
-  report <- either (Exit.die . ("Codd history import failed: " <>) . show) pure imported
+  importReport <- either (Exit.die . ("Codd history import failed: " <>) . show) pure imported
   case options.outputFormat of
-    JsonOutput -> LazyByteString.putStrLn (Aeson.encode (renderHistoryImportJson "codd" report))
-    TextOutput -> renderImportReport report
+    JsonOutput -> LazyByteString.putStrLn (Aeson.encode (renderHistoryImportJson "codd" importReport))
+    TextOutput -> renderImportReport importReport
 
 renderImportReport :: HistoryImportReport -> IO ()
 renderImportReport HistoryImportReport {importResults, cleanupIssues} = do
diff --git a/kioku-migrate.cabal b/kioku-migrate.cabal
--- a/kioku-migrate.cabal
+++ b/kioku-migrate.cabal
@@ -1,7 +1,7 @@
-cabal-version:   3.0
-name:            kioku-migrate
-version:         0.6.0.0
-synopsis:        The kioku schema migration entry point
+cabal-version: 3.0
+name: kioku-migrate
+version: 0.7.0.0
+synopsis: The kioku schema migration entry point
 description:
   Applies kioku's migration chain and then reconciles keiro's read-model
   registry to the identity the compiled read models declare.
@@ -14,46 +14,69 @@
   close that cycle and make the whole project unsolvable -- even though the
   component graph itself is acyclic.
 
-license:         BSD-3-Clause
-license-file:    LICENSE
-author:          Nadeem Bitar
-maintainer:      nadeem@gmail.com
-copyright:       2026 Nadeem Bitar
-category:        Database
-build-type:      Simple
-homepage:        https://github.com/shinzui/kioku
-bug-reports:     https://github.com/shinzui/kioku/issues
+license: BSD-3-Clause
+license-file: LICENSE
+author: Nadeem Bitar
+maintainer: nadeem@gmail.com
+copyright: 2026 Nadeem Bitar
+category: Database
+build-type: Simple
+tested-with: ghc >=9.12 && <9.13
+homepage: https://github.com/shinzui/kioku
+bug-reports: https://github.com/shinzui/kioku/issues
 extra-doc-files: CHANGELOG.md
 
 source-repository head
-  type:     git
+  type: git
   location: https://github.com/shinzui/kioku.git
-  subdir:   kioku-migrate
+  subdir: kioku-migrate
 
-executable kioku-migrate
-  main-is:            Main.hs
-  hs-source-dirs:     app
-  default-language:   GHC2024
+common warnings
+  ghc-options:
+    -Wall
+    -Wcompat
+    -Widentities
+    -Wincomplete-record-updates
+    -Wincomplete-uni-patterns
+    -Wpartial-fields
+    -Wredundant-constraints
+    -Werror=incomplete-patterns
+
+common shared
+  default-language: GHC2024
   default-extensions:
     BlockArguments
+    DeriveAnyClass
     DuplicateRecordFields
+    OverloadedLabels
     OverloadedRecordDot
     OverloadedStrings
+    QualifiedDo
+    TemplateHaskell
 
+executable kioku-migrate
+  import: warnings, shared
+  main-is: Main.hs
+  hs-source-dirs: app
   -- This executable *implements* the deprecated codd import bridge, so its own
   -- use of Kioku.Migrations.History.Codd is deliberate. The deprecation exists
   -- to warn downstream consumers, not us; silence it only here.
-  ghc-options:        -threaded -rtsopts -with-rtsopts=-N -Wno-deprecations
+  ghc-options:
+    -threaded
+    -rtsopts
+    -with-rtsopts=-N
+    -Wno-deprecations
+
   build-depends:
-    , aeson                   >=2.2      && <2.3
-    , base                    >=4.21     && <5
-    , bytestring              >=0.12     && <0.13
-    , hasql                   >=1.10     && <1.11
-    , kioku-core              ^>=0.6.0.0
-    , kioku-migrations        ^>=0.6.0.0
-    , kiroku-store            ^>=0.8.0.0
-    , optparse-applicative    >=0.17     && <0.20
-    , pg-migrate              ^>=1.1.0.0
-    , pg-migrate-cli          ^>=1.1.0.0
-    , pg-migrate-import-codd  ^>=1.1.0.0
-    , text                    >=2.0      && <2.2
+    aeson >=2.2 && <2.3,
+    base >=4.21 && <5,
+    bytestring >=0.12 && <0.13,
+    hasql >=1.10 && <1.11,
+    kioku-core ^>=0.7.0.0,
+    kioku-migrations ^>=0.7.0.0,
+    kiroku-store ^>=0.8.0.0,
+    optparse-applicative >=0.19 && <0.20,
+    pg-migrate ^>=1.1.0.0,
+    pg-migrate-cli ^>=1.1.0.0,
+    pg-migrate-import-codd ^>=1.1.0.0,
+    text >=2.0 && <2.2,
