Skip to content

Testing - #2

Open
EnmaSantos wants to merge 5 commits into
mainfrom
testing
Open

Testing#2
EnmaSantos wants to merge 5 commits into
mainfrom
testing

Conversation

@EnmaSantos

Copy link
Copy Markdown
Owner

No description provided.

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.
Copilot AI review requested due to automatic review settings July 27, 2026 21:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

await page.locator('.nav-item', { hasText: 'All Journals' }).first().click();

P2 Badge Update the screenshot script to match the redesigned UI

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".

Comment thread README.md
Comment on lines +319 to +320
./.venv/bin/python seed_showcase_data.py \
--email enmanueldelossantos64@gmail.com

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

Comment thread auth.py
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")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

Comment on lines +72 to +74
setAIStatus({
mode: 'local',
available: capabilities.ready,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

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.

2 participants