← Back to task

Commit c9eb4338

commit c9eb433821b39b90c376bb37d9ae28e7916136e5
Author: Coder Agent <coder@agents.omni>
Date:   Mon Feb 16 17:16:07 2026

    Expose Task Web at /tasks via Ava web server
    
    Task-Id: t-609
    
    Task-Id: t-610

diff --git a/Omni/Ava/Web.hs b/Omni/Ava/Web.hs
index 3d1efe0b..a9aada05 100644
--- a/Omni/Ava/Web.hs
+++ b/Omni/Ava/Web.hs
@@ -46,6 +46,9 @@ import qualified Network.HTTP.Simple as HTTP
 import qualified Network.Wai.Handler.Warp as Warp
 import qualified Omni.Agent.Trace.Storage as Trace
 import qualified Omni.Ava.Agent.Backend as Agent
+import qualified Omni.Task.Web.Handlers as TaskWeb
+import Omni.Task.Web.Pages ()
+import Omni.Task.Web.Partials ()
 import Servant
 import qualified Servant.HTML.Lucid as Lucid
 import qualified System.Environment as Env
@@ -68,7 +71,9 @@ startWebServer port dbPath = do
 -- API Type
 -- -----------------------------------------------------------------------------
 
-type API =
+type API = TaskWeb.API :<|> AvaAPI
+
+type AvaAPI =
   -- Trace viewer endpoints
   "trace" :> Capture "id" Text :> Get '[Lucid.HTML] TracePage
     :<|> "api" :> "trace" :> Capture "id" Text :> Get '[JSON] Aeson.Value
@@ -89,10 +94,10 @@ api :: Proxy API
 api = Proxy
 
 app :: FilePath -> Application
-app dbPath = serve api (server dbPath)
+app dbPath = serve api (TaskWeb.server :<|> avaServer dbPath)
 
-server :: FilePath -> Server API
-server dbPath =
+avaServer :: FilePath -> Server AvaAPI
+avaServer dbPath =
   tracePageHandler dbPath
     :<|> traceJsonHandler dbPath
     :<|> agentDashboardHandler dbPath
diff --git a/Omni/Task/Web/Components.hs b/Omni/Task/Web/Components.hs
index 7be4a35c..364f5235 100644
--- a/Omni/Task/Web/Components.hs
+++ b/Omni/Task/Web/Components.hs
@@ -148,8 +148,8 @@ import Data.Time (NominalDiffTime, UTCTime, defaultTimeLocale, diffUTCTime, form
 import qualified Lucid
 import qualified Lucid.Base as Lucid
 import Numeric (showFFloat)
-import Omni.Task.Web.Types (SortOrder (..), sortOrderLabel, sortOrderToParam)
 import qualified Omni.Task.Core as TaskCore
+import Omni.Task.Web.Types (SortOrder (..), sortOrderLabel, sortOrderToParam)
 
 -- * Time formatting
 
@@ -593,7 +593,9 @@ statusBadge status =
         TaskCore.Open -> ("badge badge-open", "Open")
         TaskCore.InProgress -> ("badge badge-inprogress", "In Progress")
         TaskCore.Review -> ("badge badge-review", "Review")
+        TaskCore.ReviewInProgress -> ("badge badge-review", "Review In Progress")
         TaskCore.Approved -> ("badge badge-approved", "Approved")
+        TaskCore.Integrating -> ("badge badge-inprogress", "Integrating")
         TaskCore.Done -> ("badge badge-done", "Done")
         TaskCore.NeedsHelp -> ("badge badge-needshelp", "Needs Help")
    in Lucid.span_ [Lucid.class_ cls] label
@@ -729,7 +731,9 @@ clickableBadge status _tid =
         TaskCore.Open -> ("badge badge-open status-badge-clickable", "Open")
         TaskCore.InProgress -> ("badge badge-inprogress status-badge-clickable", "In Progress")
         TaskCore.Review -> ("badge badge-review status-badge-clickable", "Review")
+        TaskCore.ReviewInProgress -> ("badge badge-review status-badge-clickable", "Review In Progress")
         TaskCore.Approved -> ("badge badge-approved status-badge-clickable", "Approved")
+        TaskCore.Integrating -> ("badge badge-inprogress status-badge-clickable", "Integrating")
         TaskCore.Done -> ("badge badge-done status-badge-clickable", "Done")
         TaskCore.NeedsHelp -> ("badge badge-needshelp status-badge-clickable", "Needs Help")
    in Lucid.span_
@@ -757,7 +761,9 @@ statusDropdownOptions currentStatus tid =
       statusOption TaskCore.Open currentStatus tid
       statusOption TaskCore.InProgress currentStatus tid
       statusOption TaskCore.Review currentStatus tid
+      statusOption TaskCore.ReviewInProgress currentStatus tid
       statusOption TaskCore.Approved currentStatus tid
+      statusOption TaskCore.Integrating currentStatus tid
       statusOption TaskCore.Done currentStatus tid
       statusOption TaskCore.NeedsHelp currentStatus tid
 
@@ -768,7 +774,9 @@ statusOption opt currentStatus tid =
         TaskCore.Open -> ("badge badge-open", "Open")
         TaskCore.InProgress -> ("badge badge-inprogress", "In Progress")
         TaskCore.Review -> ("badge badge-review", "Review")
+        TaskCore.ReviewInProgress -> ("badge badge-review", "Review In Progress")
         TaskCore.Approved -> ("badge badge-approved", "Approved")
+        TaskCore.Integrating -> ("badge badge-inprogress", "Integrating")
         TaskCore.Done -> ("badge badge-done", "Done")
         TaskCore.NeedsHelp -> ("badge badge-needshelp", "Needs Help")
       isSelected = opt == currentStatus