diff options
| -rw-r--r-- | .tasks/tasks.jsonl | 1 | ||||
| -rw-r--r-- | Omni/Task/Core.hs | 14 |
2 files changed, 12 insertions, 3 deletions
diff --git a/.tasks/tasks.jsonl b/.tasks/tasks.jsonl index 72da314..0ac3fa8 100644 --- a/.tasks/tasks.jsonl +++ b/.tasks/tasks.jsonl @@ -22,3 +22,4 @@ {"taskCreatedAt":"2025-11-09T13:05:18.445111257Z","taskDependencies":[],"taskId":"t-PqMc17","taskNamespace":"Omni/Task.hs","taskParent":"t-PpXWsU","taskStatus":"Done","taskTitle":"Add enhanced dependency types (blocks, discovered-from, related)","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T13:05:18.50495798Z"} {"taskCreatedAt":"2025-11-09T13:05:18.543055749Z","taskDependencies":[],"taskId":"t-PqMBuS","taskNamespace":"Omni/Task.hs","taskParent":"t-PpXWsU","taskStatus":"Done","taskTitle":"Protect production database from tests","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T13:05:18.602787251Z"} {"taskCreatedAt":"2025-11-09T13:05:18.64074361Z","taskDependencies":[],"taskId":"t-PqN0Uu","taskNamespace":"Omni/Task.hs","taskParent":"t-PpXWsU","taskStatus":"Done","taskTitle":"Add migration support for old task format","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T13:05:18.703048004Z"} +{"taskCreatedAt":"2025-11-09T14:22:32.038937583Z","taskDependencies":[{"depId":"t-PpZlbL","depType":"DiscoveredFrom"}],"taskId":"t-Uumhrq","taskNamespace":"Omni/Task.hs","taskParent":null,"taskStatus":"Open","taskTitle":"Investigate and implement prettier tree drawing with box characters","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T14:22:32.038937583Z"} diff --git a/Omni/Task/Core.hs b/Omni/Task/Core.hs index 1a9cb2e..ef60ead 100644 --- a/Omni/Task/Core.hs +++ b/Omni/Task/Core.hs @@ -279,9 +279,10 @@ showTaskTree maybeId = do printTreeNode :: [Task] -> Task -> Int -> IO () printTreeNode allTasks task indent = do let prefix = T.pack (replicate (indent * 2) ' ') + -- Only show type label for epics typeStr = case taskType task of - Epic -> "[Epic]" - WorkTask -> "[Task]" + Epic -> "[Epic] " + WorkTask -> "" statusStr = case taskStatus task of Open -> "[ ]" InProgress -> "[~]" @@ -289,7 +290,14 @@ showTaskTree maybeId = do nsStr = case taskNamespace task of Nothing -> "" Just ns -> " [" <> ns <> "]" - putText <| prefix <> taskId task <> " " <> typeStr <> " " <> statusStr <> " " <> taskTitle task <> nsStr + -- Calculate available width for title (80 cols - prefix - id - labels) + usedWidth = T.length prefix + T.length (taskId task) + T.length typeStr + T.length statusStr + T.length nsStr + 3 + availableWidth = max 20 (80 - usedWidth) + truncatedTitle = + if T.length (taskTitle task) > availableWidth + then T.take (availableWidth - 3) (taskTitle task) <> "..." + else taskTitle task + putText <| prefix <> taskId task <> " " <> typeStr <> statusStr <> " " <> truncatedTitle <> nsStr -- Find and print children (tasks with this task as parent) let children = filter (\t -> taskParent t == Just (taskId task)) allTasks |
