Add scheduled messages and strip markdown from iMessage responses

Strip markdown formatting (bold, italic, headers, code, links, lists) from
LLM responses before sending via iMessage. Add scheduled messages feature
with CRUD API, background scheduler loop, and admin frontend panel.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 23:25:10 -04:00
parent 3ba93c55f4
commit f5203e0466
12 changed files with 684 additions and 9 deletions
+7
View File
@@ -15,6 +15,7 @@ import blueprints.rag
import blueprints.users
import blueprints.whatsapp
import blueprints.imessage
import blueprints.scheduled_messages
import blueprints.users.models
from config.db import TORTOISE_CONFIG
@@ -52,6 +53,7 @@ app.register_blueprint(blueprints.email.email_blueprint)
app.register_blueprint(blueprints.rag.rag_blueprint)
app.register_blueprint(blueprints.whatsapp.whatsapp_blueprint)
app.register_blueprint(blueprints.imessage.imessage_blueprint)
app.register_blueprint(blueprints.scheduled_messages.scheduled_messages_blueprint)
async def _obsidian_sync_loop():
@@ -86,8 +88,13 @@ async def lifespan():
if os.getenv("OBSIDIAN_CONTINUOUS_SYNC") == "true":
watcher_task = asyncio.create_task(_obsidian_sync_loop())
from blueprints.scheduled_messages.scheduler import scheduled_messages_loop
scheduler_task = asyncio.create_task(scheduled_messages_loop())
yield
scheduler_task.cancel()
if watcher_task is not None:
watcher_task.cancel()