Issue
Two different methods are used to list markdown files:
filepath.Walk (used in most places):
task/task.go:83 - GetTasks
task/task.go:117 - MarkTaskDone
task/task.go:318 - IncrementPomodoroCountForActiveTask
utils.ListMarkdownFiles (used in):
task/finish.go:82 - FinishTask
Problem
- Inconsistent approach
ListMarkdownFiles is less efficient (allocates full array)
- Hard to maintain two patterns
Solution
Standardize on filepath.Walk across entire codebase OR make ListMarkdownFiles a utility wrapper.
Consider:
// In utils/storage.go
func WalkMarkdownFiles(root string, fn func(path string, info os.FileInfo) error) error {
return filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil || info.IsDir() || !strings.HasSuffix(info.Name(), ".md") {
return nil
}
return fn(path, info)
})
}
Benefits
- Single pattern for file iteration
- More efficient than array allocation
- Easier to optimize in one place
Impact
🟢 Low - Code consistency