diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Revision history for dap
 
+## 0.8.0.0 -- 2026-09-16
+
+* Fix continueArgumentsSingleThread DAP conformance
+* Fix step{In,Out,Back} singleThread DAP conformance
+* Add missing FromJSON to Step{In/Out/Back}Arguments
+
 ## 0.7.0.0 -- 2026-05-20
 
 * Fix exceptionOptions DAP conformance: it should be a list
diff --git a/dap.cabal b/dap.cabal
--- a/dap.cabal
+++ b/dap.cabal
@@ -1,5 +1,5 @@
 name:               dap
-version:            0.7.0.0
+version:            0.8.0.0
 description:        A library for the Debug Adaptor Protocol (DAP)
 synopsis:           A debug adaptor protocol library
 bug-reports:        https://github.com/haskell-debugger/dap/issues
diff --git a/src/DAP/Types.hs b/src/DAP/Types.hs
--- a/src/DAP/Types.hs
+++ b/src/DAP/Types.hs
@@ -3325,7 +3325,7 @@
     -- execution (see `supportsSingleThreadExecutionRequests`) and the argument
     -- `singleThread` is true, only the thread with this ID is resumed.
     --
-  , continueArgumentsSingleThread :: Bool
+  , continueArgumentsSingleThread :: Maybe Bool
     -- ^
     -- If this flag is true, execution is resumed only for the thread with given
     -- `threadId`.
@@ -3363,7 +3363,7 @@
     -- Specifies the thread for which to resume execution for one step-into (of
     -- the given granularity).
     --
-  , stepInArgumentsSingleThread :: Bool
+  , stepInArgumentsSingleThread :: Maybe Bool
     -- ^
     -- If this flag is true, all other suspended threads are not resumed.
     --
@@ -3376,8 +3376,11 @@
     -- Stepping granularity. If no granularity is specified, a granularity of
     -- `statement` is assumed.
     --
-  } deriving stock (Show, Eq)
+  } deriving stock (Show, Eq, Generic)
 ----------------------------------------------------------------------------
+instance FromJSON StepInArguments where
+  parseJSON = genericParseJSONWithModifier
+----------------------------------------------------------------------------
 data StepOutArguments
   = StepOutArguments
   { stepOutArgumentsThreadId :: Int
@@ -3385,7 +3388,7 @@
     -- Specifies the thread for which to resume execution for one step-out (of the
     -- given granularity).
     --
-  , stepOutArgumentsSingleThread :: Bool
+  , stepOutArgumentsSingleThread :: Maybe Bool
     -- ^
     -- If this flag is true, all other suspended threads are not resumed.
     --
@@ -3394,8 +3397,11 @@
     -- Stepping granularity. If no granularity is specified, a granularity of
     -- `statement` is assumed.
     --
-  } deriving stock (Show, Eq)
+  } deriving stock (Show, Eq, Generic)
 ----------------------------------------------------------------------------
+instance FromJSON StepOutArguments where
+  parseJSON = genericParseJSONWithModifier
+----------------------------------------------------------------------------
 data StepBackArguments
   = StepBackArguments
   { stepBackArgumentsThreadId :: Int
@@ -3403,7 +3409,7 @@
     -- Specifies the thread for which to resume execution for one step backwards
     -- (of the given granularity).
     --
-  , stepBackArgumentsSingleThread :: Bool
+  , stepBackArgumentsSingleThread :: Maybe Bool
     -- ^
     -- If this flag is true, all other suspended threads are not resumed.
     --
@@ -3411,7 +3417,10 @@
     -- ^
     -- Stepping granularity to step. If no granularity is specified, a granularity
     -- of `statement` is assumed.
-  } deriving stock (Show, Eq)
+  } deriving stock (Show, Eq, Generic)
+----------------------------------------------------------------------------
+instance FromJSON StepBackArguments where
+  parseJSON = genericParseJSONWithModifier
 ----------------------------------------------------------------------------
 data SteppingGranularity
   = SteppingGranularityStatement
