From 8ae33333b0fc0ca0876681dbcd54f962b89328fe Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Sun, 9 Nov 2025 07:53:04 -0500 Subject: Protect production task database from tests and add migration - Add TASK_TEST_MODE environment variable to use separate test database - All file operations now use getTasksFilePath to respect test mode - Tests use .tasks/tasks-test.jsonl instead of production database - Add automatic migration from old task format (taskProject field) to new format - Migrated tasks convert taskProject to WorkTask type with empty parent - Old [Text] dependencies converted to [Dependency] with Blocks type - Restore actual tasks from commit 3bf1691 (were lost during testing) This prevents accidental data loss when running tests and provides backward compatibility for existing task databases. --- .tasks/tasks-test.jsonl | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .tasks/tasks-test.jsonl (limited to '.tasks/tasks-test.jsonl') diff --git a/.tasks/tasks-test.jsonl b/.tasks/tasks-test.jsonl new file mode 100644 index 0000000..abc13ef --- /dev/null +++ b/.tasks/tasks-test.jsonl @@ -0,0 +1,8 @@ +{"taskCreatedAt":"2025-11-09T12:51:46.56267588Z","taskDependencies":[],"taskId":"t-OxPCj7","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Test task","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:51:46.56267588Z"} +{"taskCreatedAt":"2025-11-09T12:51:46.564712781Z","taskDependencies":[],"taskId":"t-OxPCPZ","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Test task for list","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:51:46.564712781Z"} +{"taskCreatedAt":"2025-11-09T12:51:46.573780484Z","taskDependencies":[],"taskId":"t-OxPFce","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"First task","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:51:46.573780484Z"} +{"taskCreatedAt":"2025-11-09T12:51:46.57535537Z","taskDependencies":[{"depId":"t-OxPFce","depType":"Blocks"}],"taskId":"t-OxPFBE","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Blocked task","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:51:46.57535537Z"} +{"taskCreatedAt":"2025-11-09T12:51:46.57629654Z","taskDependencies":[],"taskId":"t-OxPFQO","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Original task","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:51:46.57629654Z"} +{"taskCreatedAt":"2025-11-09T12:51:46.576622253Z","taskDependencies":[{"depId":"t-OxPFQO","depType":"DiscoveredFrom"}],"taskId":"t-OxPFW5","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Discovered work","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:51:46.576622253Z"} +{"taskCreatedAt":"2025-11-09T12:51:46.577425682Z","taskDependencies":[],"taskId":"t-OxPG92","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Task A","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:51:46.577425682Z"} +{"taskCreatedAt":"2025-11-09T12:51:46.577613884Z","taskDependencies":[{"depId":"t-OxPG92","depType":"Related"}],"taskId":"t-OxPGc4","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Task B","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:51:46.577613884Z"} -- cgit v1.2.3