From 852697390bff12101f87602da16797d893d4f962 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 26 Nov 2025 08:00:48 -0500 Subject: Remove task sync command and git-tracked tasks Tasks are now stored in SQLite at ~/.cache/omni/tasks/tasks.db. No need to sync to git anymore. Deleted 51 test cruft tasks. --- Omni/Task.hs | 26 -------------------------- Omni/Task/README.md | 1 - 2 files changed, 27 deletions(-) (limited to 'Omni') diff --git a/Omni/Task.hs b/Omni/Task.hs index 7ad0548..74e1e8a 100644 --- a/Omni/Task.hs +++ b/Omni/Task.hs @@ -21,7 +21,6 @@ import qualified Omni.Test as Test import qualified System.Console.Docopt as Docopt import System.Directory (doesFileExist, removeFile) import System.Environment (setEnv) -import System.Process (readProcess) import qualified Test.Tasty as Tasty import Prelude (read) @@ -56,7 +55,6 @@ Usage: task stats [--epic=] [--json] task export [-o ] task import -i - task sync task test task (-h | --help) @@ -74,7 +72,6 @@ Commands: stats Show task statistics export Export tasks to JSONL import Import tasks from JSONL file - sync Export and commit task changes locally test Run tests Options: @@ -377,7 +374,6 @@ move' args Just f -> pure (T.pack f) importTasks (T.unpack file) putText <| "Imported tasks from " <> file - | args `Cli.has` Cli.command "sync" = syncTasks | otherwise = putText (T.pack <| Cli.usage help) where getArgText :: Cli.Arguments -> String -> IO Text @@ -387,23 +383,6 @@ move' args Nothing -> panic (T.pack name <> " required") Just val -> pure (T.pack val) -syncTasks :: IO () -syncTasks = do - let jsonlPath = ".tasks/tasks.jsonl" - exportTasks (Just jsonlPath) - hasChanges <- checkGitChanges jsonlPath - if hasChanges - then do - _ <- readProcess "git" ["add", jsonlPath] "" - _ <- readProcess "git" ["commit", "-m", "task: sync task database"] "" - putText "Task changes committed locally." - else putText "No task changes to sync." - where - checkGitChanges :: FilePath -> IO Bool - checkGitChanges path = do - status <- readProcess "git" ["status", "--porcelain", path] "" - pure (not (null status)) - test :: Test.Tree test = Test.group @@ -815,11 +794,6 @@ cliTests = Right args -> do args `Cli.has` Cli.command "stats" Test.@?= True Cli.getArg args (Cli.longOption "epic") Test.@?= Just "t-abc123", - Test.unit "sync command" <| do - let result = Docopt.parseArgs help ["sync"] - case result of - Left err -> Test.assertFailure <| "Failed to parse 'sync': " <> show err - Right args -> args `Cli.has` Cli.command "sync" Test.@?= True, Test.unit "create with flags in different order" <| do let result = Docopt.parseArgs help ["create", "Test", "--json", "--priority=1", "--namespace=Omni/Task"] case result of diff --git a/Omni/Task/README.md b/Omni/Task/README.md index d52efba..21cf889 100644 --- a/Omni/Task/README.md +++ b/Omni/Task/README.md @@ -405,7 +405,6 @@ Remember these non-negotiable rules: - ✅ File bugs IMMEDIATELY when you discover unexpected behavior - ✅ Check `task ready --json` before asking "what should I work on?" - ✅ Store AI planning docs in `_/llm` directory -- ✅ Run `task sync` at end of every session (commits locally, does NOT push) - ❌ NEVER use `todo_write` tool - ❌ NEVER create markdown TODO lists or task checklists - ❌ NEVER put TODOs or FIXMEs in code comments -- cgit v1.2.3