feat: restore roast-of-the-day with 14-day prompt history

Separate roast generation from motivation again and pass cached roasts
from the last 14 days into the OpenRouter prompt to reduce repetition.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Frank Schwenk
2026-06-17 08:45:09 +02:00
parent c59c3069c4
commit 24ac7f2f48
4 changed files with 104 additions and 11 deletions
+19 -1
View File
@@ -9,7 +9,7 @@ from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.triggers.cron import CronTrigger
from apscheduler.triggers.date import DateTrigger
from server.ai import generate_daily_motivation
from server.ai import generate_daily_motivation, generate_roast_of_the_day
from server.config_loader import load_meds_config, slot_to_dict, today_str
from server.db import get_db, utc_now_iso
from server.messages import pick
@@ -54,6 +54,17 @@ async def _generate_daily_motivation() -> None:
await db.close()
async def _generate_daily_roast() -> None:
config = load_meds_config()
db = await get_db()
try:
await generate_roast_of_the_day(db, config.timezone)
except Exception:
logger.exception("Daily roast generation failed")
finally:
await db.close()
async def _evening_check() -> None:
logger.info("Evening check triggered")
db = await get_db()
@@ -147,6 +158,13 @@ def start_scheduler() -> None:
replace_existing=True,
)
scheduler.add_job(
_generate_daily_roast,
trigger=CronTrigger(hour=3, minute=5, timezone=tz),
id="daily-roast",
replace_existing=True,
)
if not scheduler.running:
scheduler.start()
logger.info("Scheduler started for timezone %s", tz)