Skip to content

feat: AI-Powered Journal Generation#107

Merged
snehmatic merged 19 commits into
mainfrom
feature/ai-journal-generation
May 13, 2026
Merged

feat: AI-Powered Journal Generation#107
snehmatic merged 19 commits into
mainfrom
feature/ai-journal-generation

Conversation

@snehmatic
Copy link
Copy Markdown
Owner

This PR introduces the AI-Powered Journal Generation feature discussed in #106.

✨ Features

  • Secure Token Storage: API tokens are encrypted (AES-GCM) before being stored in the database, configured via the web UI settings page.
  • Provider Support: Connects directly with LLM providers (Google Gemini & OpenAI supported for V1) to auto-generate reflective summaries based on all tracked activity (focus sessions, habits, intents, tasks).
  • CLI Generation: Generate and save summaries directly from the terminal (e.g. mindloop journal generate -w).
  • Web UI Integration: A new AI Configuration section under Settings, and a convenient dropdown in the Journal page to auto-generate daily, weekly, or yearly entries.
  • Context Aggregation: Uses the existing summary package to efficiently pre-aggregate large volumes of data to fit within standard model context windows.

🧪 Testing

  • Added robust unit tests for the newly created crypto utility.
  • Tested locally for successful integration across both CLI and the web server.

Fixes #106

@snehmatic snehmatic added the DO NOT MERGE Please, for the sake of God, just leave this alone. label May 12, 2026
@snehmatic snehmatic removed the DO NOT MERGE Please, for the sake of God, just leave this alone. label May 13, 2026
@snehmatic snehmatic merged commit c0724bc into main May 13, 2026
3 checks passed
@snehmatic snehmatic deleted the feature/ai-journal-generation branch May 13, 2026 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature to autogenerate daily/weekly/yearly journal entry (based on ALL feature usage)

1 participant