From 683c8d597f3570c3c5bacead331298c7925b6bce Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Mon, 24 Nov 2025 22:42:24 -0500 Subject: fix(task): ensure thread safety and isolate tests Re-introduces MVar locking in Task Core to prevent race conditions during Read-Modify-Write cycles (e.g. ID generation). Updates tests to use isolated SQLite databases instead of the production DB or JSONL files. Removes legacy test artifacts. Amp-Thread-ID: https://ampcode.com/threads/T-ac41b9b6-d117-46de-9e4f-842887a22f1d Co-authored-by: Amp --- Omni/Task/RaceTest.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'Omni/Task/RaceTest.hs') diff --git a/Omni/Task/RaceTest.hs b/Omni/Task/RaceTest.hs index 0cd6464..860272d 100644 --- a/Omni/Task/RaceTest.hs +++ b/Omni/Task/RaceTest.hs @@ -20,10 +20,13 @@ raceTest = Test.unit "concurrent child creation (race condition)" <| do -- Set up test mode setEnv "TASK_TEST_MODE" "1" - setEnv "TASK_DB_PATH" ".tasks/race-test.jsonl" + -- Unset TASK_DB_PATH to ensure we use the test mode default (or set it to .tasks/race-test.db) + -- Actually, since Core.hs respects TASK_DB_PATH if set, we should unset it or set it to our target. + -- Let's set it to .tasks/race-test.db for isolation. + setEnv "TASK_DB_PATH" ".tasks/race-test.db" -- Clean up test database - let testFile = ".tasks/race-test.jsonl" + let testFile = ".tasks/race-test.db" exists <- doesFileExist testFile when exists <| removeFile testFile initTaskDb -- cgit v1.2.3