- Introduced memory snapshot logging to track resource usage during summarization and diarization processes.
- Added action item extraction capabilities from meeting segments, improving the summarization output.
- Refactored summarization and diarization mixins to integrate new logging and extraction functionalities.
- Implemented a bounded audio buffer for streaming diarization to manage memory efficiently.
- Enhanced error handling and diagnostics in summarization and diarization workflows.
- Moved all hookify configuration files from `.claude/` to `.claude/hooks/` subdirectory for better organization
- Added four new blocking hooks to prevent common error handling anti-patterns:
- `block-broad-exception-handler`: Prevents catching generic `Exception` with only logging
- `block-datetime-now-fallback`: Blocks returning `datetime.now()` as fallback on parse failures to prevent data corruption
- `block-default
- Introduced `profile_comprehensive.py` for detailed performance analysis of the NoteFlow backend, covering audio processing, ORM conversions, Protobuf operations, async overhead, and gRPC simulations.
- Implemented options for cProfile, verbose output, and memory profiling to enhance profiling capabilities.
- Updated `asr_config_service.py` to improve engine reference handling and added observability tracing during reconfiguration.
- Enhanced gRPC service shutdown procedures to include cancellation of sync tasks and improved lifecycle management.
- Refactored various components to ensure proper cleanup and resource management during shutdown.
- Updated client submodule to the latest commit for improved integration.
- Introduced logging for CRUD operations in repositories to enhance visibility into database interactions.
- Implemented timing logs for BaseRepository and UnitOfWork lifecycle events to track performance.
- Added export logging for size and duration without exposing sensitive content.
- Promoted logging levels for specific operations to improve clarity and reduce noise in logs.
- Established a framework for consistent logging practices across persistence and export functionalities.
- Added additional test artifact patterns to .gitignore including hypothesis, tox, nox, coverage reports, and various test result formats.
- Updated basedpyright linting results (version 1.36.2, 704 files analyzed).
- Updated biome and clippy linting artifacts with latest analysis results.
- Introduced a new script `patch_grpc_stubs.py` to modify gRPC stub files, ensuring compatibility with strict type checks enforced by Basedpyright.
- Updated the Makefile to execute the patch script after installing Python tooling.
- Removed outdated gRPC type definitions from the project, resulting in zero errors in the Basedpyright linting results.
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.
- 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.
- 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.
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 `asset_path` to the `Meeting` entity for audio asset storage.
- Implemented `AudioValidationResult` for audio integrity checks during recovery.
- Updated `RecoveryService` to validate audio file integrity for crashed meetings.
- Enhanced `SummarizationService` to include consent persistence callbacks.
- Introduced new database migrations for `diarization_jobs` and `user_preferences` tables.
- Refactored various components to support the new asset path and audio validation features.
- Improved documentation in `CLAUDE.md` to reflect changes in recovery and summarization functionalities.
- 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.