diff options
| author | Ben Sima <ben@bensima.com> | 2025-11-26 10:18:27 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-11-26 10:18:27 -0500 |
| commit | 75d5716a31ea1d9d1e92d76d8417dd5ae8dcbab6 (patch) | |
| tree | d57ac1e817074a8a6a10409dacf91761d279a905 | |
| parent | 1ab28d35a82ceb89ad4fe71582659bd717757ab6 (diff) | |
Move test database to _/tmp (cabdir)
- Document _/ directory structure in AGENTS.md - Change test database
path from .tasks/ to _/tmp/ - Update all references in tests and docs
| -rw-r--r-- | AGENTS.md | 7 | ||||
| -rw-r--r-- | Omni/Task.hs | 7 | ||||
| -rw-r--r-- | Omni/Task/Core.hs | 6 | ||||
| -rw-r--r-- | Omni/Task/README.md | 2 | ||||
| -rw-r--r-- | Omni/Task/RaceTest.hs | 4 |
5 files changed, 17 insertions, 9 deletions
@@ -38,6 +38,13 @@ task update <id> done --json task create "Command X fails when Y" --discovered-from=<current-task-id> --json ``` +## Directory Structure + +- **`_/`** (cabdir) - All ephemeral/generated files. This directory is gitignored. + - `_/llm/` - AI planning docs and agent logs + - `_/tmp/` - Temporary files, test databases, scratch data +- Never create dotfile directories (like `.tasks/`) in the repo root + ## Documentation - **Project Context**: [README.md](README.md) - Goals, source layout, and coding conventions. diff --git a/Omni/Task.hs b/Omni/Task.hs index 9cb061c..83b8e0d 100644 --- a/Omni/Task.hs +++ b/Omni/Task.hs @@ -19,7 +19,7 @@ import Omni.Task.Core import qualified Omni.Task.RaceTest as RaceTest import qualified Omni.Test as Test import qualified System.Console.Docopt as Docopt -import System.Directory (doesFileExist, removeFile) +import System.Directory (createDirectoryIfMissing, doesFileExist, removeFile) import System.Environment (setEnv) import qualified Test.Tasty as Tasty import Prelude (read) @@ -403,11 +403,12 @@ unitTests = Test.group "Unit tests" [ Test.unit "setup test database" <| do - -- Set up test mode for all tests + -- Set up test mode for all tests (uses _/tmp/tasks-test.db) setEnv "TASK_TEST_MODE" "1" -- Clean up test database before all tests - let testFile = ".tasks/tasks-test.db" + let testFile = "_/tmp/tasks-test.db" + createDirectoryIfMissing True "_/tmp" exists <- doesFileExist testFile when exists <| removeFile testFile initTaskDb diff --git a/Omni/Task/Core.hs b/Omni/Task/Core.hs index 3b4eaa0..bf52c2c 100644 --- a/Omni/Task/Core.hs +++ b/Omni/Task/Core.hs @@ -238,9 +238,9 @@ getTasksDbPath = do customPath <- lookupEnv "TASK_DB_PATH" testMode <- lookupEnv "TASK_TEST_MODE" let path = case (testMode, customPath) of - (Just "1", _) -> ".tasks/tasks-test.db" -- Test mode always uses test db + (Just "1", _) -> "_/tmp/tasks-test.db" -- Test mode uses cabdir (_, Just p) -> p -- Custom path for production - _ -> ".tasks/tasks.db" + _ -> "_/tmp/tasks.db" -- Default uses cabdir pure path -- DB Helper @@ -254,7 +254,7 @@ withDb action = do -- Initialize the task database initTaskDb :: IO () initTaskDb = do - createDirectoryIfMissing True ".tasks" + createDirectoryIfMissing True "_/tmp" withDb <| \conn -> do SQL.execute_ conn diff --git a/Omni/Task/README.md b/Omni/Task/README.md index 5113002..463c9e5 100644 --- a/Omni/Task/README.md +++ b/Omni/Task/README.md @@ -333,7 +333,7 @@ To back up or transfer tasks, use `task export` and `task import`. # Set test mode to protect production database export TASK_TEST_MODE=1 -# Now all task operations use .tasks/tasks-test.db +# Now all task operations use _/tmp/tasks-test.db task create "Test task" --type=task task list task tree diff --git a/Omni/Task/RaceTest.hs b/Omni/Task/RaceTest.hs index 5dd7fa1..007046f 100644 --- a/Omni/Task/RaceTest.hs +++ b/Omni/Task/RaceTest.hs @@ -18,11 +18,11 @@ test = Test.group "Omni.Task.Race" [raceTest] raceTest :: Test.Tree raceTest = Test.unit "concurrent child creation (race condition)" <| do - -- Set up test mode (uses .tasks/tasks-test.db) + -- Set up test mode (uses _/tmp/tasks-test.db) setEnv "TASK_TEST_MODE" "1" -- Clean up test database - let testFile = ".tasks/tasks-test.db" + let testFile = "_/tmp/tasks-test.db" exists <- doesFileExist testFile when exists <| removeFile testFile initTaskDb |
