Show all upcoming tasks in dashboard agenda
Remove the 7-day window filter so every future task appears in the
agenda column, grouped by date. The week strip still shows the
next 7 days as a quick visual summary.

https://claude.ai/code/session_01MLb9dbs42AmKNU8GCRVciE
change
commit b9c98a752c05aa99ccf0eddb927bc228b23c8ce9
author Claude <noreply@anthropic.com>
date
parent pwrylymx
diff --git a/lib/ketchup/views/dashboard.rb b/lib/ketchup/views/dashboard.rb
index 6290e6b..2ed2e35 100644
--- a/lib/ketchup/views/dashboard.rb
+++ b/lib/ketchup/views/dashboard.rb
@@ -18,9 +18,7 @@ module Views
 
     def view_template
       overdue = @current_user.overdue_tasks.all.sort_by { |t| -t.urgency }
-      upcoming = @current_user.upcoming_tasks
-        .where { due_date <= Date.today + AGENDA_DAYS }
-        .all
+      upcoming = @current_user.upcoming_tasks.all
 
       render Layout.new(current_user: @current_user) do
         div(class: "dashboard") do
@@ -108,13 +106,12 @@ module Views
           end
         end
 
-        AGENDA_DAYS.times do |i|
-          date = today + i
-          day_tasks = tasks_by_date[date] || []
-          next if day_tasks.empty?
+        tasks_by_date.keys.sort.each do |date|
+          day_tasks = tasks_by_date[date]
+          offset = (date - today).to_i
 
-          div(class: ["agenda-day", ("agenda-day--today" if i == 0)]) do
-            div(class: "agenda-day-header") { friendly_day(date, i) }
+          div(class: ["agenda-day", ("agenda-day--today" if offset == 0)]) do
+            div(class: "agenda-day-header") { friendly_day(date, offset) }
             day_tasks.each do |task|
               task_name = task[:note].lines.first&.strip || task[:note]
               a(