- Added `grpc-stubs` version `1.53.0.6` to `pyproject.toml` and `uv.lock` for enhanced gRPC support.
- Cleared previous linting errors, resulting in zero errors and warnings in the linting reports.
- Updated the linter configuration to reflect recent analysis results, ensuring accurate diagnostics and reporting.
- Changed the types-grpcio dependency from `>=1.0.0.20251009` to `==1.0.0.20251001` in `pyproject.toml` and `uv.lock` for consistency.
- Enhanced the meeting filtering logic in the `MeetingStore` and related classes to support filtering by multiple project IDs, improving query flexibility.
- Updated the gRPC proto definitions to include a new `project_ids` field for the `ListMeetingsRequest` message, allowing for more granular project filtering.
- Adjusted related repository and mixin classes to accommodate the new filtering capabilities.
- Changed server port binding from explicit `0.0.0.0:50051:50051` to `50051:50051` for standard Docker port mapping
- Commented out unused `server-full` and `client-dev` service definitions to reduce configuration complexity
- Added `spacy>=3.8.11` to project dependencies
- Updated `pyproject.toml` to include new optional dependencies for Ollama: `anthropic`, `openai`, and `pywinctl`.
- Modified `compose.yaml` to add a new volume for the server's virtual environment.
- Enhanced the server Dockerfile to install all optional dependencies during the build process, improving flexibility and functionality.
All quality checks pass.
- Refactored constants into domain-specific modules for better organization and maintainability.
- Introduced new test smell collectors to improve test quality enforcement.
- Updated test fixtures to utilize centralized constants, enhancing consistency across tests.
- Added rules to block modifications in protected directories to safeguard test infrastructure.
All quality checks pass.
- Added new logging configuration to improve observability across various services.
- Introduced a `.repomixignore` file to exclude unnecessary files from version control.
- Updated `pyproject.toml` to include additional paths for script discovery.
- Refreshed submodule references for the client to ensure compatibility with recent changes.
All quality checks pass.
- Updated client submodule to the latest commit for improved integration.
- Added `types-psutil` as a dependency in `pyproject.toml` to support type checking for the `psutil` library.
- Enhanced observability by refining the `UsageEventSink` interface to include additional attributes for better event tracking.
- Improved project management documentation to reflect recent changes in project roles and settings.
All quality checks pass.
- Introduced OIDC provider management capabilities, including registration, retrieval, updating, and deletion of providers.
- Added support for OIDC discovery, allowing dynamic fetching of provider configurations from `.well-known/openid-configuration` endpoints.
- Created domain entities for OIDC configuration, including `ClaimMapping`, `OidcProviderConfig`, and presets for common identity providers.
- Implemented gRPC endpoints for OIDC provider management and discovery operations.
- Enhanced tests for OIDC domain entities and gRPC mixins to ensure comprehensive coverage.
All quality checks pass.
- Added `rich` library as a dependency for improved console output formatting.
- Updated `pyproject.toml` and `uv.lock` to include the new dependency.
- Enhanced logging in various services to provide clearer error handling and status updates.
All quality checks pass.
- Introduced `pytest-benchmark` dependency for performance testing of critical code paths.
- Added a new `PartialAudioBuffer` class to optimize audio chunk handling, reducing memory allocations and improving efficiency.
- Implemented benchmark tests for audio processing, validating performance improvements and establishing baselines.
- Enhanced the `Segmenter` class to utilize cached sample counts for faster duration calculations.
- Updated gRPC service to leverage consolidated streaming state, reducing multiple dictionary lookups to a single access.
All quality checks pass.
- Introduced a new `AssetRepository` interface for managing binary assets, including a `FileSystemAssetRepository` implementation for deleting meeting assets.
- Updated the `RetentionService` and `MeetingService` to utilize the new asset management functionality, ensuring proper cleanup of associated assets during meeting deletions.
- Added versioning to the `Meeting` entity to handle concurrent modifications.
- Updated unit and integration tests to cover new asset management features and ensure robust functionality.
All quality checks pass.
- Updated `pyproject.toml` to include `authlib` as a dependency for OAuth integration.
- Modified `uv.lock` to reflect the addition of `authlib` and its versioning.
- Updated documentation to clarify existing components and their statuses in the calendar sync and webhook integration sprints.
- Refactored various methods and properties for improved clarity and consistency in the meeting and export services.
- Enhanced test coverage for export functionality, including assertions for PDF format.
- Updated client submodule reference to ensure alignment with the latest changes.
- Introduced `PdfExporter` class for exporting meeting transcripts to PDF format.
- Updated `ExportService` to support PDF as a new export format.
- Enhanced `proto_to_export_format` to handle PDF format.
- Added WeasyPrint as a dependency in `pyproject.toml` and `uv.lock`.
- Updated documentation to reflect the new PDF export capabilities and resolved issues from Sprint 3.
- Implemented tests for PDF export functionality, ensuring valid PDF output and proper handling of meeting data.
Sprint 0 consolidates all proto schema changes and database migrations
for Sprints 1-6 into a coordinated release.
Infrastructure:
- Add named_entities table migration with updated_at trigger
- Add webhook_configs and webhook_deliveries migrations
- Add httpx dependency for webhooks
- Multi-stage Docker build with NER support (with-ner target)
- Enable depends_on for db service in compose.yaml
Proto schema:
- Add SummarizationOptions message (Sprint 1)
- Add EXPORT_FORMAT_PDF enum value (Sprint 3)
- Add ExtractEntities RPC and messages (Sprint 4)
- Add Calendar RPCs and messages (Sprint 5)
- Proto regeneration script at scripts/regenerate_proto.sh
Tests:
- Add proto compilation tests verifying Sprint 0 messages
- Add feature flag tests with env var parsing
- Add migration structure and trigger tests
Documentation:
- Fix PROTO_CHANGELOG.md CalendarProvider field names
- Update COMPLETION_PLAN.md status to 100%
Client submodule updated with Sprint 0 TypeScript types.
- Added environment file support and a command for the server in `compose.yaml`.
- Updated the database image in `compose.yaml` to use `pgvector/pgvector:pg15`.
- Modified `pyproject.toml` to include additional dependencies for enhanced functionality.
- Updated `uv.lock` to reflect new package versions and added new packages for improved features.
- Enhanced migration scripts to ensure the `noteflow` schema exists before running migrations.
- Improved error handling in the `OllamaSummarizer` to include a new exception type.
- Refactored the `calendar` trigger to streamline imports and improve code clarity.
- Added module-level mocks in test configurations to handle missing dependencies gracefully.
- Updated .dockerignore to include additional cache and environment files, improving build efficiency.
- Changed the Dockerfile reference in compose.yaml to point to the new server-specific Dockerfile.
- Added `diart` as a dependency in pyproject.toml and uv.lock to support enhanced diarization features.
- Created a new server.Dockerfile for a streamlined development environment setup with necessary dependencies.
- Created .dockerignore to exclude unnecessary files from Docker builds.
- Added .repomixignore for managing ignored patterns in Repomix.
- Introduced Dockerfile.dev for development environment setup with Python 3.12.
- Configured docker-compose.yaml to define services, including a PostgreSQL database.
- Established a devcontainer.json for Visual Studio Code integration.
- Implemented postCreate.sh for automatic dependency installation in the dev container.
- Added constants.py to centralize configuration constants for the project.
- Updated pyproject.toml to include new development dependencies.
- Created initial documentation files for project overview and style conventions.
- Added tests for new functionalities to ensure reliability and correctness.
- Introduced speaker diarization functionality using pyannote.audio and diart for both streaming and offline processing.
- Updated `pyproject.toml` to include new dependencies for diarization.
- Enhanced `TranscriptComponent` to handle speaker identification and color coding for speakers.
- Added new settings in `Settings` class for enabling and configuring diarization features.
- Updated `Segment` and gRPC models to include speaker ID and confidence metrics.
- Implemented a `DiarizationEngine` for managing diarization processes and speaker assignments.
- Created necessary database migrations to accommodate new speaker fields in segments.
- Added tests for audio reading and diarization functionalities to ensure reliability and correctness.
- Updated documentation to reflect new features and usage instructions for diarization.
- Introduced `SummarizationService` and `TriggerService` to orchestrate summarization and trigger detection functionalities.
- Added new modules for summarization, including citation verification and cloud-based summarization providers.
- Implemented trigger detection based on audio activity and foreground application status.
- Updated project configuration to include new dependencies for summarization and trigger functionalities.
- Created tests for summarization and trigger services to ensure functionality and reliability.
- Introduced .python-version for Python version management.
- Added AGENTS.md for documentation on agent usage and best practices.
- Created alembic.ini for database migration configurations.
- Implemented main.py as the entry point for the application.
- Established pyproject.toml for project dependencies and configurations.
- Initialized README.md for project overview.
- Generated uv.lock for dependency locking.
- Documented milestones and specifications in docs/milestones.md and docs/spec.md.
- Created logs/status_line.json for logging status information.
- Added initial spike implementations for UI tray hotkeys, audio capture, ASR latency, and encryption validation.
- Set up NoteFlow core structure in src/noteflow with necessary modules and services.
- Developed test suite in tests directory for application, domain, infrastructure, and integration testing.
- Included initial migration scripts in infrastructure/persistence/migrations for database setup.
- Established security protocols in infrastructure/security for key management and encryption.
- Implemented audio infrastructure for capturing and processing audio data.
- Created converters for ASR and ORM in infrastructure/converters.
- Added export functionality for different formats in infrastructure/export.
- Ensured all new files are included in the repository for future development.