diff --git a/.jules/palette.md b/.jules/palette.md new file mode 100644 index 00000000..559dc665 --- /dev/null +++ b/.jules/palette.md @@ -0,0 +1,3 @@ +## 2026-08-29 - Truncation Awareness +**Learning:** When displaying dynamic lists in terminal UIs (such as those using `ink`), if the list is truncated to fit constraints (e.g., a `maxVisible` limit), it is important to include an explicit visual indicator to preserve user situational awareness. +**Action:** Always add an explicit UI element indicating truncation and count, rather than silently hiding items. diff --git a/bun.lock b/bun.lock index f1109aa4..d19f7943 100644 --- a/bun.lock +++ b/bun.lock @@ -1,6 +1,5 @@ { "lockfileVersion": 1, - "configVersion": 1, "workspaces": { "": { "name": "salmon-loop", diff --git a/src/cli/ui/components/TodoDrawer.tsx b/src/cli/ui/components/TodoDrawer.tsx index 8304d871..5ed22b03 100644 --- a/src/cli/ui/components/TodoDrawer.tsx +++ b/src/cli/ui/components/TodoDrawer.tsx @@ -118,21 +118,36 @@ export function TodoDrawer({ No tasks yet. ) : ( - visibleTodos.map((t) => ( - - - {statusIcon(t.status)} + <> + {visibleTodos.map((t) => ( + + + {statusIcon(t.status)} + + + {priorityIcon(t.priority)} + + + + {t.text} + + - - {priorityIcon(t.priority)} + ))} + {todos.length > maxVisible && ( + + + + + + + ... and {todos.length - maxVisible} more task + {todos.length - maxVisible === 1 ? '' : 's'} + + - - - {t.text} - - - - )) + )} + )} )}