You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Users today run research on demand. Khoj has Automations for this; AnythingLLM users are asking for it in #5349. Perplexity and NotebookLM don't have it.
I'd like to add a scheduled_research table + Celery-beat tick that runs the existing report.py agent on a cron schedule and emails the digest. Frontend exposes a "Schedule this report" button in the existing report-gen flow, and a list view at /dashboard/[search_space_id]/scheduled-research to manage/edit/disable schedules.
Scope (single PR): new table + Alembic migration, CRUD routes, 3 Celery tasks (tick / run / email), a modal + list page in the dashboard. Total ~500–700 LOC.
A few decisions I'd like your input on before I open the PR:
Celery-beat is the obvious fit given app/tasks/celery_tasks/ already exists — OK to add beat alongside the worker, or do you prefer a separate beat service per your deployment model?
Email delivery: reuse the SMTP path used by auth flows, or route through a new adapter in app/services/notifications/?
Cron safety: I'd enforce a minimum-granularity of daily (no sub-daily) in v1 to avoid runaway jobs while we tune. Agree?
Reference: I've shipped 3 frontend PRs on SurfSense (#1215, #1220, #1233) but this would be my first backend PR. I'll target dev and follow the migration + Alembic conventions already in alembic/versions/.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Users today run research on demand. Khoj has Automations for this; AnythingLLM users are asking for it in #5349. Perplexity and NotebookLM don't have it.
I'd like to add a
scheduled_researchtable + Celery-beat tick that runs the existingreport.pyagent on a cron schedule and emails the digest. Frontend exposes a "Schedule this report" button in the existing report-gen flow, and a list view at/dashboard/[search_space_id]/scheduled-researchto manage/edit/disable schedules.Scope (single PR): new table + Alembic migration, CRUD routes, 3 Celery tasks (tick / run / email), a modal + list page in the dashboard. Total ~500–700 LOC.
A few decisions I'd like your input on before I open the PR:
app/tasks/celery_tasks/already exists — OK to add beat alongside the worker, or do you prefer a separate beat service per your deployment model?app/services/notifications/?Reference: I've shipped 3 frontend PRs on SurfSense (#1215, #1220, #1233) but this would be my first backend PR. I'll target
devand follow the migration + Alembic conventions already inalembic/versions/.Beta Was this translation helpful? Give feedback.
All reactions