Seed demo environment on startup
When DEFAULT_USER is set, automatically create the user and populate
the database with sample series and tasks at boot time. This ensures
the demo always has data, especially important for the in-memory
SQLite database which starts empty on every deploy.

Seeding is idempotent — skipped if the user already has series.

https://claude.ai/code/session_01CBPuSMhSgpvP223kgjj67t
change
commit 70be70c13df293ed58aea9c2d56558903e9484b1
author Claude <noreply@anthropic.com>
date
parent pwrylymx
diff --git a/config.ru b/config.ru
index 224b661..edddd06 100644
--- a/config.ru
+++ b/config.ru
@@ -40,6 +40,13 @@ end
 if CONFIG.default_user
   require_relative "lib/ketchup/dev_auth"
   use Ketchup::DevAuth, CONFIG.default_user
+
+  require_relative "lib/ketchup/seed"
+  user = User.find_or_create(login: CONFIG.default_user)
+  if user.series_dataset.empty?
+    Ketchup::Seed.call(user: user, series: Ketchup::Seed::DATA)
+    $stderr.puts "Seeded #{Ketchup::Seed::DATA.length} series for #{user.login}"
+  end
 end
 
 require_relative "lib/ketchup/web"