diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,14 @@
 
 ## Unreleased
 
+## 0.2.2.0 — 2026-11-02
+
+### Changed
+
+- Upgrade `mori://shinzui/baikai/packages/baikai` to `>=0.10.0.0 && <0.11`.
+
+- Update internal dependency bounds for the breaking `shikumi 0.5.0.0` release.
+
 ## 0.2.1.2 — 2026-10-16
 
 ### Changed
diff --git a/shikumi-compile.cabal b/shikumi-compile.cabal
--- a/shikumi-compile.cabal
+++ b/shikumi-compile.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.4
 name: shikumi-compile
-version: 0.2.1.2
+version: 0.2.2.0
 synopsis: The compiler layer for shikumi LM programs (EP-9)
 category: AI
 description:
@@ -62,7 +62,7 @@
     effectful >=2.6 && <2.8,
     generic-lens >=2.2 && <2.4,
     lens ^>=5.3,
-    shikumi ^>=0.4.1.1,
+    shikumi ^>=0.5.0.0,
     text ^>=2.1,
 
 test-suite shikumi-compile-test
@@ -81,14 +81,14 @@
 
   build-depends:
     aeson,
-    baikai >=0.8.0.0 && <0.9,
+    baikai >=0.10.0.0 && <0.11,
     base,
     bytestring,
     effectful,
     generic-lens,
     lens,
-    shikumi ^>=0.4.1.1,
-    shikumi-compile ^>=0.2.1.2,
+    shikumi ^>=0.5.0.0,
+    shikumi-compile ^>=0.2.2.0,
     tasty,
     tasty-hunit,
     text,
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -22,7 +22,8 @@
     zeroShot,
   )
 import Shikumi.Compile.Retriever (Passage (..))
-import Shikumi.Program (Params (..), foldParams)
+import Shikumi.Decision.Setting (DecisionSetting (..))
+import Shikumi.Program (Params (..), emptyParams, foldParams, mapParams, programParams, setDecisionSetting)
 import StructureSpec qualified
 import Test.Capture (runWithCapture)
 import Test.Fixtures
@@ -45,7 +46,12 @@
 tests =
   testGroup
     "shikumi-compile (EP-9)"
-    [ StructureSpec.tests,
+    [ testCase "Decision settings survive compiled round-trip" $ do
+        let tuned = mapParams (setDecisionSetting "flag" (NoulSetting 0.7)) qaBase
+        case decodeCompiledOnto qaBase (encodeCompiled (compile identity tuned)) of
+          Left err -> error (show err)
+          Right compiled -> programParams (compiledProgram compiled) @?= programParams tuned,
+      StructureSpec.tests,
       m0_identity,
       m1_baseline,
       m2_zeroShot,
@@ -221,7 +227,7 @@
           Left e -> assertBool "shape mismatch mentioned" (contains "shape mismatch" (T.pack e))
           Right _ -> assertBool "expected a shape-mismatch Left" False,
       testCase "legacy bare Params arrays are rejected with a re-encode hint" $ do
-        let bytes = Aeson.encode [Params (Just "legacy instruction") []]
+        let bytes = Aeson.encode [emptyParams {instructionOverride = Just "legacy instruction"}]
         case decodeCompiledOnto qaBase bytes of
           Left e -> do
             assertBool "legacy format mentioned" (contains "legacy bare parameter arrays" (T.pack e))
