Commit Graph

99 Commits

Author SHA1 Message Date
Ryan Chen
43dd05f9d5 chore(01-01): add FERNET_KEY config and email tables migration
- Add FERNET_KEY to .env.example with generation instructions
- Register email.models in aerich_config.py and app.py
- Register email blueprint in app.py
- Create database migration for email_accounts, email_sync_status, emails
- Migration includes proper foreign keys and indexes
2026-02-08 09:15:23 -05:00
Ryan Chen
bee63d1c60 feat(01-01): create email blueprint with encrypted Tortoise ORM models
- Add EncryptedTextField for transparent Fernet encryption
- Create EmailAccount model with encrypted IMAP credentials
- Create EmailSyncStatus model for sync state tracking
- Create Email model with 30-day retention logic
- Follow existing blueprint patterns from users/conversation
2026-02-08 09:08:32 -05:00
Ryan Chen
800c6fef7f docs(01): create phase plan
Phase 01: Foundation
- 2 plan(s) in 2 wave(s)
- 1 parallel, 1 sequential
- Ready for execution
2026-02-07 13:35:48 -05:00
Ryan Chen
126b53f17d docs(1): research phase domain
Phase 1: Foundation
- Standard stack identified (aioimaplib, email, cryptography, Quart-Tasks)
- Architecture patterns documented (encrypted fields, IMAP lifecycle, parsing)
- Pitfalls catalogued (connection limits, encoding, key loss, sync state, IDLE, HTML bloat)
2026-02-07 13:31:42 -05:00
Ryan Chen
38d7292df7 docs: create roadmap (4 phases)
Phases:
1. Foundation: Database models and IMAP utilities
2. Account Management: Admin UI for email configuration (ACCT-01 to ACCT-07)
3. Email Ingestion: Sync engine and retention cleanup (SYNC-01 to SYNC-09, RETN-01 to RETN-05)
4. Query Tools: LangChain email analytics (QUERY-01 to QUERY-06)

All v1 requirements mapped to phases.
2026-02-07 13:18:57 -05:00
Ryan Chen
8a8617887a docs: define v1 requirements
25 requirements across 4 categories
Email account management, sync, retention, and query features
2026-02-07 13:15:46 -05:00
Ryan Chen
ea1b518497 chore: add project config
Mode: yolo
Depth: quick
Parallelization: enabled
Workflow agents: research=on, plan_check=on, verifier=on
2026-02-04 18:25:01 -05:00
Ryan Chen
f588403612 docs: initialize project
Personal RAG system with email inbox analytics integration
2026-02-04 18:02:40 -05:00
Ryan Chen
b0b02d24f4 docs: map existing codebase
- STACK.md - Technologies and dependencies
- ARCHITECTURE.md - System design and patterns
- STRUCTURE.md - Directory layout
- CONVENTIONS.md - Code style and patterns
- TESTING.md - Test structure
- INTEGRATIONS.md - External services
- CONCERNS.md - Technical debt and issues
2026-02-04 16:53:27 -05:00
Ryan Chen
6ae36b51a0 ynab update 2026-01-31 22:47:43 -05:00
ryan
f0f72cce36 Merge pull request 'Replace Ollama with llama-server (OpenAI-compatible API)' (#14) from feature/llama-cpp-integration into main
Reviewed-on: #14
2026-01-31 21:41:19 -05:00
Ryan Chen
32020a6c60 Replace Ollama with llama-server (OpenAI-compatible API)
- Update llm.py to use OpenAI client with custom base_url for llama-server
- Update agents.py to use ChatOpenAI instead of ChatOllama
- Remove unused ollama imports from main.py, chunker.py, query.py
- Add LLAMA_SERVER_URL and LLAMA_MODEL_NAME env vars
- Remove ollama and langchain-ollama dependencies

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 21:39:23 -05:00
Ryan Chen
713a058c4f Adding roadmap 2026-01-31 17:28:53 -05:00
Ryan Chen
12f7d9ead1 fixing dockerfile 2026-01-31 17:17:56 -05:00
Ryan Chen
ad39904dda reorganization 2026-01-31 17:13:27 -05:00
Ryan Chen
1fd2e860b2 nani 2026-01-31 16:47:57 -05:00
Ryan Chen
7cfad5baba Adding mkdocs and privileged tools 2026-01-31 16:20:35 -05:00
ryan
f68a79bdb7 Add Simba facts to system prompt and Tavily API key config
Expanded the assistant system prompt with comprehensive Simba facts including
medical history, and added TAVILY_KEY env var for web search integration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 16:08:41 -05:00
ryan
52153cdf1e dockerfile 2026-01-11 17:35:43 -05:00
ryan
6eb3775e0f Merge pull request 'Adding web search infra' (#13) from rc/langchain-migration into main
Reviewed-on: #13
2026-01-11 17:35:36 -05:00
Ryan Chen
b3793d2d32 Adding web search infra 2026-01-11 17:35:05 -05:00
ryan
033429798e Merge pull request 'RAG optimizations' (#12) from rc/langchain-migration into main
Reviewed-on: #12
2026-01-11 09:36:59 -05:00
Ryan Chen
733ffae8cf RAG optimizations 2026-01-11 09:36:36 -05:00
ryan
0895668ddd Merge pull request 'rc/langchain-migration' (#11) from rc/langchain-migration into main
Reviewed-on: #11
2026-01-11 09:22:40 -05:00
Ryan Chen
07512409f1 Adding loading indicator 2026-01-11 09:22:28 -05:00
Ryan Chen
12eb110313 linter 2026-01-11 09:12:37 -05:00
ryan
1a026f76a1 Merge pull request 'okok' (#10) from rc/01012025-retitling into main
Reviewed-on: #10
2026-01-01 22:00:32 -05:00
Ryan Chen
da3a464897 okok 2026-01-01 22:00:12 -05:00
Ryan Chen
913875188a oidc 2025-12-25 07:36:26 -08:00
Ryan Chen
f5e2d68cd2 Making UI changes 2025-12-24 17:12:56 -08:00
Ryan Chen
70799ffb7d refactor 2025-11-10 15:51:13 -05:00
Ryan Chen
7f1d4fbdda asdf 2025-10-29 22:17:45 -04:00
Ryan Chen
5ebdd60ea0 Making better 2025-10-29 21:28:23 -04:00
ryan
289045e7d0 Merge pull request 'mobile-responsive-layout' (#9) from mobile-responsive-layout into main
Reviewed-on: #9
2025-10-29 21:15:14 -04:00
ryan
ceea83cb54 Merge branch 'main' into mobile-responsive-layout 2025-10-29 21:15:10 -04:00
Ryan Chen
1b60aab97c sdf 2025-10-29 21:14:52 -04:00
ryan
210bfc1476 Merge pull request 'query classification' (#8) from async-reindexing into main
Reviewed-on: #8
2025-10-29 21:13:42 -04:00
Ryan Chen
454fb1b52c Add authentication validation on login screen load
- Add validateToken() method to userService to check if refresh token is valid
- Automatically redirect to chat if user already has valid session
- Show 'Checking authentication...' loading state during validation
- Prevents unnecessary login if user is already authenticated
- Improves UX by skipping login screen when not needed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 12:24:10 -04:00
Ryan Chen
c3f2501585 Clear text input immediately upon message submission
- Clear input field right after user sends message (before API call)
- Add validation to prevent submitting empty/whitespace-only messages
- Improve UX by allowing user to type next message while waiting for response
- Works for both simba mode and normal mode

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 12:22:32 -04:00
Ryan Chen
1da21fabee Add auto-scroll to bottom for new messages
- Automatically scroll to latest message when new messages arrive
- Uses smooth scrolling behavior for better UX
- Triggers on message array changes
- Improves chat experience by keeping conversation in view

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 12:12:05 -04:00
Ryan Chen
dd5690ee53 Add submit on Enter for chat textarea
- Press Enter to submit message
- Press Shift+Enter to insert new line
- Add helpful placeholder text explaining keyboard shortcuts
- Improve chat UX with standard messaging behavior

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 12:07:47 -04:00
Ryan Chen
5e7ac28b6f Update add_user.py to use configurable database path
- Use DATABASE_PATH and DATABASE_URL environment variables
- Consistent with app.py and aerich_config.py configuration
- Add environment variable documentation to help text
- Default remains database/raggr.db for backward compatibility

Usage:
  DATABASE_PATH=dev.db python add_user.py list

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 12:02:56 -04:00
Ryan Chen
29f8894e4a Add configurable database path via environment variables
- Add DATABASE_PATH environment variable support in app.py and aerich_config.py
- DATABASE_PATH: For simple relative/absolute paths (default: database/raggr.db)
- DATABASE_URL: For full connection strings (overrides DATABASE_PATH if set)
- Create .env.example with all configuration options documented
- Maintains backward compatibility with default database location

Usage:
  # Use default path
  python app.py

  # Use custom path for development
  DATABASE_PATH=dev.db python app.py

  # Use full connection string
  DATABASE_URL=sqlite://custom/path.db python app.py

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 12:01:16 -04:00
Ryan Chen
19d1df2f68 Improve mobile responsiveness with Tailwind breakpoints
- Replace fixed-width containers (min-w-xl max-w-xl) with responsive classes
- Mobile: full width with padding, Tablet: 90% max 768px, Desktop: max 1024px
- Make ChatScreen header stack vertically on mobile, horizontal on desktop
- Add touch-friendly button sizes (min 44x44px tap targets)
- Optimize textarea and form inputs for mobile keyboards
- Add text wrapping (break-words) to message bubbles to prevent overflow
- Apply responsive text sizing (text-sm sm:text-base) throughout
- Improve ConversationList with touch-friendly hit areas
- Add responsive padding/spacing across all components

All components now use standard Tailwind breakpoints:
- sm: 640px+ (tablet)
- md: 768px+ (larger tablet)
- lg: 1024px+ (desktop)
- xl: 1280px+ (large desktop)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 11:57:54 -04:00
Ryan Chen
e577cb335b query classification 2025-10-26 17:29:00 -04:00
Ryan Chen
591788dfa4 reindex pls 2025-10-26 11:06:32 -04:00
Ryan Chen
561b5bddce reindex pls 2025-10-26 11:04:33 -04:00
Ryan Chen
ddd455a4c6 reindex pls 2025-10-26 11:02:51 -04:00
ryan
07424e77e0 Merge pull request 'favicon' (#7) from update-favicon-and-title into main
Reviewed-on: #7
2025-10-26 10:49:27 -04:00
Ryan Chen
a56f752917 favicon 2025-10-26 10:48:59 -04:00