ECHO-564 add verify, 2fa and database migrations#355
Conversation
- Updated README to include a note about common development queries. - Replaced deprecated VSCode extension with a new one in the devcontainer configuration. - Added a new network configuration for Docker services in the docker-compose file. - Implemented PostgreSQL client installation in the setup script with an option to skip it. - Improved troubleshooting documentation for Redis/Valkey startup issues and added PostgreSQL connection instructions. - Refactored test code for better readability and consistency.
… routes to it - add verify feature to the participant portal ________________ Ai generated message below: - Added new components for verification process including `Verify`, `VerifySelection`, `VerifyArtefact`, and `VerifyInstructions`. - Introduced `VerifiedArtefactsList` and `VerifiedArtefactItem` for displaying approved artefacts. - Integrated `ParticipantConversationAudioContent` to handle audio conversation verification. - Updated routing in `Router.tsx` to accommodate new verification paths. - Refactored `ParticipantLayout` to include `ParticipantHeader` for better UI structure. - Enhanced API with mock implementation for generating verification artefacts. - Updated project schema to include verification settings and topics.
…verify-addition' into database-migrations-knex
- show "Verified Artifacts" for individual conversations in dashbaoard
…verify-addition' into database-migrations-knex
…verify-addition' into database-migrations-knex
|
Important Review skippedMore than 25% of the files skipped due to max files limit. The review is being skipped to prevent a low-quality review. 193 files out of 300 files are above the max files limit of 100. Please upgrade to Pro plan to get higher limits. You can disable this status message by setting the Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. ✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
This PR is being reviewed by Cursor Bugbot
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| elif response.status_code == 400: | ||
| raise TranscriptionError(f"Transcription failed: {response.json()['error']}") | ||
| else: | ||
| raise Exception(f"Transcription failed: {response.json()['error']}") |
There was a problem hiding this comment.
Bug: Broken Error Handling in Transcription Service
The transcribe_audio_assemblyai function raises a generic Exception for non-200/400 status codes instead of TranscriptionError. This breaks error handling in transcribe_audio_dembrane_25_09 which specifically catches TranscriptionError to gracefully continue with an empty transcript. The generic Exception bypasses this handler, causing the error to propagate instead of being handled gracefully.
| topics = await _get_verification_topics_for_project(project_id) | ||
| topic_map = {topic.key: topic for topic in topics if topic.key} | ||
|
|
||
| target_topic_key = body.topic_list[0] |
There was a problem hiding this comment.
Bug: Missing List Length Validation
Accessing body.topic_list[0] without checking if the list is empty will raise an IndexError when topic_list is an empty array. The GenerateArtifactsRequest model defines topic_list as List[str] with no minimum length validation, allowing empty lists to pass through.
<!-- CURSOR_SUMMARY --> > [!NOTE] > Large backend refactor: migrate to a centralized settings/LLM abstraction, remove LightRAG/Runpod audio pipeline, add chat/event services and seeding, revamp prompts/reports, and streamline infra/dependencies. > > - **Server/Infra**: > - Replace `dembrane.config` with `dembrane.settings` (pydantic-settings); centralize URLs, flags, storage, embedding, transcription, and LLM configs. > - Add `AsyncioUvicornWorker` and switch run scripts/prod to asyncio loop; simplify startup to seed default languages and verification topics. > - Introduce `uv.lock`; update dependencies (add `pydantic-settings`, bump `litellm`; remove SQLAlchemy/Neo4j/pgvector/asyncpg, runpod tooling). > - **LLMs**: > - Add `dembrane.llms` with `MODELS` and `get_completion_kwargs`; migrate chat/report title/completion calls to provider-agnostic helper. > - **Features/Services**: > - Add `service.chat` and `service.events`; extend `service.conversation` (listing, lazy deps, event publish). > - Tweak processing status logging (write only on duration/error). > - **Prompts/Artifacts**: > - Harden prompt loader; log language support; add `prompt_templates/generate_artifact.en.jinja` and `revise_artifact.en.jinja`. > - **Major removals**: > - Remove LightRAG/audio pipeline and Runpod paths (audio_lightrag/, rag manager, runpod/diarization/transcription, legacy DB/image utils, JSON view templates, lightrag worker). > - **Modules updated**: > - `audio_utils`, `directus`, `embedding`, `chat_utils`, `report_utils`, `sentry`, `s3`, `scheduler`, `main` refactored to new settings/llm APIs. > - **Tests**: > - Drop obsolete tests; update remaining tests to new settings and AssemblyAI path. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 864ce1f. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Usama <reach.usamazafar@gmail.com>
Note
Large backend refactor: migrate to a centralized settings/LLM abstraction, remove LightRAG/Runpod audio pipeline, add chat/event services and seeding, revamp prompts/reports, and streamline infra/dependencies.
dembrane.configwithdembrane.settings(pydantic-settings); centralize URLs, flags, storage, embedding, transcription, and LLM configs.AsyncioUvicornWorkerand switch run scripts/prod to asyncio loop; simplify startup to seed default languages and verification topics.uv.lock; update dependencies (addpydantic-settings, bumplitellm; remove SQLAlchemy/Neo4j/pgvector/asyncpg, runpod tooling).dembrane.llmswithMODELSandget_completion_kwargs; migrate chat/report title/completion calls to provider-agnostic helper.service.chatandservice.events; extendservice.conversation(listing, lazy deps, event publish).prompt_templates/generate_artifact.en.jinjaandrevise_artifact.en.jinja.audio_utils,directus,embedding,chat_utils,report_utils,sentry,s3,scheduler,mainrefactored to new settings/llm APIs.Written by Cursor Bugbot for commit 864ce1f. This will update automatically on new commits. Configure here.