feat: wire recurrence into create_note/update_note and add daily APScheduler job

This commit is contained in:
2026-03-27 22:53:20 -04:00
parent a24257aeed
commit 3179b60eac
2 changed files with 19 additions and 0 deletions
@@ -326,6 +326,23 @@ async def start_briefing_scheduler(loop: asyncio.AbstractEventLoop) -> None:
for user_id, tz in users:
_add_user_jobs(user_id, tz)
from fabledassistant.services.recurrence import spawn_recurring_tasks as _spawn_recurring
def _run_recurrence_spawn() -> None:
future = asyncio.run_coroutine_threadsafe(_spawn_recurring(), _loop)
try:
count = future.result(timeout=300)
logger.info("Recurrence spawn: %d task(s) created", count)
except Exception as exc:
logger.error("Recurrence spawn failed: %s", exc)
_scheduler.add_job(
_run_recurrence_spawn,
CronTrigger(hour=0, minute=0, timezone="UTC"),
id="recurrence_daily",
replace_existing=True,
)
_scheduler.start()
logger.info(
"Briefing scheduler started with %d user(s) across %d job(s)",
+2
View File
@@ -56,6 +56,7 @@ async def create_note(
status: str | None = None,
priority: str | None = None,
due_date: date | None = None,
recurrence_rule: dict | None = None,
) -> Note:
# Auto-populate project_id from milestone when not explicitly provided
if milestone_id is not None and project_id is None:
@@ -80,6 +81,7 @@ async def create_note(
status=status,
priority=priority,
due_date=due_date,
recurrence_rule=recurrence_rule,
)
session.add(note)
await session.commit()