Block a user
feat: LLM output validation + structured JSON retry for tip generation
feat: prompt versioning — track prompt_version + model in tip_scores
refactor: generalize recommendation pipeline — candidate → rank → render stages
infra:
ai compose profile — Ollama + LiteLLM for local dev
feat: AI gateway — wire ml/serving to LiteLLM with model aliases
feat: context assembler — user signals → structured LLM prompt context
feat: AI tip generation via Ollama — contextual advice from user signals
feat: tip kind system — task, advice, insight, reminder
bug: TipFeedback type includes helpful/not_helpful but backend rejects them
bug: Todoist access tokens never refreshed — silent failure after expiration
bug: reward updates to ml/serving silently swallowed on failure
bug: no data retention purge for tip_scores and tip_feedback (GDPR 30-day)
bug: port mismatch — config.ts defaults to 3078, docker-compose uses 3001
research: model benchmark for tip generation — qwen2.5 vs llama3.2 vs gemma3
don’t use models larger than 4b locally because of RAM limits
feat: embedding-based task clustering — nomic-embed-text for semantic dedup + pattern extraction
research: LLM fine-tuning pipeline — tip reactions as training signal
feat: automated prompt optimization loop — sim A/B → promote winner
feat: feature-to-prompt pipeline — batch context materialization via Airflow
research: model benchmark for tip generation — qwen2.5 vs llama3.2 vs gemma3
feat: LLM tip quality monitoring dashboard in admin