Testing - #2
Conversation
feat: enhance Google OAuth integration with improved client ID validation refactor: remove unused sentiment utility function chore: update database file feat: add CORS middleware with configurable origins in FastAPI feat: implement Google authentication endpoint with validation feat: create reusable Button component for consistent UI feat: add EmptyState component for improved user experience feat: implement LoadingState component for loading indicators feat: create PageHeader component for consistent page layouts test: add unit tests for entry presentation utilities feat: implement entry presentation and formatting utilities feat: seed showcase data script for demo content population chore: add start script for local development environment
- Added local AI functionality with dedicated endpoints for transcription, emotion analysis, and chat. - Introduced new models for text and voice emotion analysis, along with semantic retrieval. - Updated journal entry model to include additional fields for emotion labels, scores, summaries, and AI processing metadata. - Refactored migration logic to add new columns to the journal_entries table without data loss. - Enhanced frontend integration for local AI features and updated environment configurations. - Created a model downloader script to facilitate local model management. - Updated requirements to separate core and AI dependencies for better modularity.
There was a problem hiding this comment.
💡 Codex Review
The screenshot workflow cannot reach the notebooks section because the redesigned sidebar in Sidebar.tsx labels this navigation item Notebooks, while this locator still searches for All Journals; Playwright therefore finds no element and the advertised npm run screenshots command times out here. The subsequent Auto-Generate and .create-notebook-modal selectors are stale as well, so the script should be updated to the current Library controls.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ./.venv/bin/python seed_showcase_data.py \ | ||
| --email enmanueldelossantos64@gmail.com |
There was a problem hiding this comment.
Remove the personal account from demo artifacts
This uses a real-looking personal email as the showcase target, and the modified tracked kairo.db contains the corresponding Google-created user record, including the person's full name, avatar URL, and password hash. Anyone receiving or cloning the repository therefore receives personal account data; use a disposable example account and remove the personal row from the database and documentation.
Useful? React with 👍 / 👎.
| SECRET_KEY = os.getenv("SECRET_KEY") | ||
| ALGORITHM = os.getenv("ALGORITHM") | ||
| ACCESS_TOKEN_EXPIRE_MINUTES = int(os.getenv("ACCESS_TOKEN_EXPIRE_MINUTES")) | ||
| SECRET_KEY = os.getenv("SECRET_KEY", "dev-secret-key-change-me") |
There was a problem hiding this comment.
Require an explicit JWT secret outside development
When SECRET_KEY is absent or misspelled, including on a hosted deployment, the API now starts with a publicly known signing key. An attacker who can reach that API can mint a valid HS256 token containing any user_id and read or modify that user's journal; fail startup unless an explicit secret is configured, or restrict this fallback to a clearly enforced development mode.
Useful? React with 👍 / 👎.
| setAIStatus({ | ||
| mode: 'local', | ||
| available: capabilities.ready, |
There was a problem hiding this comment.
Enable AI features according to their required models
When a user downloads only selected model groups, which download_models.py explicitly supports, capabilities.ready is false unless all five models exist and this value becomes the single availability flag for every AI control. For example, a fully installed transcription model cannot be used unless the unrelated embedding and generation models are also installed; derive availability per feature from capabilities.models instead of globally disabling all tools.
Useful? React with 👍 / 👎.
No description provided.