- Introduced new linting configurations for Basedpyright and ESLint to enhance code quality checks.
- Added a new JSON file for Basedpyright linting results, indicating no errors or warnings.
- Updated existing JSON files to reflect the latest quality checks and diagnostics.
- Enhanced documentation for sprint gaps to summarize completion and resolved issues.
All quality checks pass.
- Added GetUserIntegrations RPC to facilitate integration cache validation, allowing clients to retrieve all integrations for the current user/workspace.
- Implemented list_all method in integration repositories to return all integrations, improving data access.
- Updated error handling to ensure proper NOT_FOUND status for non-existent integrations.
- Enhanced test coverage for new functionality, ensuring robust validation of integration retrieval and error scenarios.
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.
- Renamed the PostgreSQL service to 'db' for clarity in the docker-compose file.
- Updated the database connection URL to reflect the new service name.
- Added 'extra_hosts' configuration to facilitate communication with the host from within the containers.
- Introduced logging enhancements in the Ollama provider to improve visibility during configuration loading and client creation.
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.
- Updated client submodule reference to the latest commit.
- Revised project management documentation to reflect changes in project roles, settings, and rule inheritance.
- Enhanced roadmap and sprint documentation with detailed objectives and deliverables for upcoming sprints.
- Improved clarity on project scoping and dependencies in the context of workspace management.
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 identity management features, including user and workspace context handling.
- Added `IdentityService` for orchestrating user identity and workspace management.
- Created domain entities and repository protocols for `User` and `Workspace`.
- Implemented SQLAlchemy repositories for user and workspace persistence.
- Enhanced gRPC interceptors to propagate identity context across RPC calls.
- Updated application services to integrate identity management into existing workflows.
All quality checks pass.
- Added observability support with OpenTelemetry integration, including usage event tracking and logging enhancements.
- Introduced new `UsageEvent` and `UsageEventSink` abstractions for analytics and billing.
- Implemented `BufferedDatabaseUsageEventSink` for efficient event storage and retrieval.
- Enhanced error handling with a centralized domain error taxonomy, improving consistency across the application.
- Updated dependencies in `pyproject.toml` to include OpenTelemetry packages.
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.
- Updated client submodule reference to the latest commit.
- Refactored calendar settings to distinguish between integration and trigger settings, renaming `CalendarSettings` to `CalendarIntegrationSettings` and introducing `CalendarTriggerSettings`.
- Enhanced asset deletion logic in `MeetingService` to utilize the correct asset path.
- Updated tests to reflect changes in calendar settings and asset management.
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.
- Mark cancelled diarization jobs as failed during servicer shutdown to ensure proper state management.
- Increase timeout for audio flush thread shutdown to 3 seconds for graceful resource cleanup.
- Explicitly release pipeline references in diarization sessions to facilitate garbage collection and GPU memory release.
- Enhance webhook executor to include timeout handling during HTTP client closure, preventing hangs on slow connections.
- Introduce a memory-based servicer fixture for faster unit testing of concurrency and state management.
All quality checks pass.
- Introduced `UsageEventSink` interface for capturing application-layer usage events.
- Updated `OtelUsageEventSink` to attach span events and emit usage events from application services.
- Enhanced logging by injecting `trace_id` and `span_id` into LogBuffer entries.
- Implemented metadata persistence for `Summary.tokens_used` and `Summary.latency_ms` before saving.
- Updated documentation to reflect changes in observability components and planned features for Sprint 15.
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.
- Added behavioral tests for OAuth integration in `tests/grpc/test_oauth.py` and frontend in `use-oauth-flow.test.ts`, ensuring 19 tests for each.
- Updated Sprint 11 documentation to reflect 100% verification of trigger infrastructure with 108 passing tests across various components.
- Clarified implementation status in the roadmap, confirming all trigger-related tests and quality gates are passing.
- Improved documentation for behavioral test specifications and quality gates in Sprint 10 and Sprint 11 READMEs.
- Introduced gRPC endpoints for user preferences synchronization: GetPreferences and SetPreferences.
- Completed implementation of preferences sync infrastructure, including ETag conflict detection and handling.
- Updated roadmap to reflect the completion status of Sprint 14: Preferences Sync.
- Enhanced documentation for preferences sync, including detailed descriptions of request and response messages.
- Added comprehensive tests for PreferencesMixin, covering retrieval, updates, and conflict resolution scenarios.
All quality checks pass.
- Updated the client submodule reference to align with the latest changes in the project.
- Deleted the feasibility and specification documents that are no longer relevant to the current implementation.
- Ensured that the repository remains clean and focused on active components, maintaining consistency across documentation and codebase.
- Added comprehensive behavioral tests for OAuth gRPC endpoints, including InitiateOAuth, CompleteOAuth, GetOAuthConnectionStatus, and DisconnectOAuth.
- Updated README documentation for Sprint 10 to reflect the implementation status of OAuth features and test coverage.
- Revised integration configuration details in the documentation to include new test files and their coverage.
- Updated client submodule reference to ensure alignment with the latest changes in the OAuth flow implementation.
- Add gRPC endpoints for integration sync: StartIntegrationSync, GetSyncStatus, ListSyncHistory.
- Introduce SyncRun entity to track synchronization operations, including status and duration.
- Implement observability features with logging and performance metrics collection.
- Update documentation to reflect new endpoints and their usage.
- Enhance test coverage with behavioral tests for sync orchestration and observability components.
All quality checks pass.
- Enhanced `example.env` with detailed sections for backend configurations, including ASR, gRPC streaming, and retention settings.
- Added new environment variables for LLM integration, webhooks, and calendar synchronization.
- Updated README files across multiple sprints to reflect validation statuses and completion of features, ensuring clarity on project progress.
- Improved test coverage for edge cases in annotation, meeting, segment, summary, and trigger entities, ensuring robustness in handling various scenarios.
- Updated the client submodule reference to indicate a dirty state, reflecting uncommitted changes.
- 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.
- Updated `pyproject.toml` to include additional mypy exclusions and plugins for improved type checking.
- Added mypy overrides for specific modules to handle complex type parameters and untyped calls.
- Revised roadmap documentation to reflect changes in the Diarization Application Service, renaming it to "Diarization Enhancements" and updating feature descriptions for clarity.
- Adjusted architectural decisions to clarify the application service layer requirements for upcoming sprints.
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.
- Updated the Summary entity to include provider and model names, along with tokens used and latency metrics for better tracking of summarization performance.
- Modified the ORM converters and repository methods to accommodate new attributes, ensuring backward compatibility.
- Introduced word timing position indexing to maintain order within summaries.
- Added a new SQLAlchemy model structure for improved organization of persistence layers, including core, identity, and integration models.
- Removed deprecated models and files to streamline the codebase.
Backend:
- Extract gRPC client into modular mixins (_client_mixins/)
- Add StreamingSession class for audio streaming lifecycle
- Add gRPC config and type modules
- Fix test smells across test suite
Frontend (submodule update):
- Fix code quality issues and eliminate lint warnings
- Centralize CSS class constants
- Extract Settings.tsx sections into components
- Add code quality test suite
Quality:
- Add tests/quality/ suite for code smell detection
- Add QA report and correction plan documentation
- Added a comprehensive MCP Tools Reference section in `CLAUDE.md`, detailing various tools and their use cases for web scraping, reasoning, library documentation, semantic code tools, and more.
- Updated `example.env` to reflect new configuration options for retention, diarization, encryption, and desktop client settings, improving clarity and usability.
- Introduced a new `roadmap.md` file outlining the feature gap analysis and development roadmap for NoteFlow, focusing on core pipeline completion and future enhancements.
- Updated submodule reference in the `client` directory to the latest commit.
- Expanded `.gitignore` to include temporary files and scratch documents.
- Enhanced `AGENTS.md` with guidelines on using Conventional Commits and PR descriptions.
- Added configuration notes to `README.md` for environment variable usage.
- Updated `pyproject.toml` to reflect changes in dependencies and comments.
- Introduced new files for client configuration and testing, including Prettier settings and Playwright tests.
- Removed deprecated client components and adjusted related documentation accordingly.
- Added new tests for various components and functionalities to improve coverage.
- Removed the `support/` and `tests/` directories from the Repomix configuration to streamline included files.
- Updated `repomix-output.md` to reflect the new file structure and clarify included patterns.
- Deleted the outdated `triage.md` document to reduce clutter and improve project organization.
- Introduced a new `ui.md` document detailing the migration plan for transitioning to a Rust/Tauri application, including architecture overview and feature parity checklist.
- Added `repomix-output.md` to `.gitignore` to exclude output files from version control.
- Updated `repomix.config.json` to include the `support/` directory in the include paths.
- Enhanced `TranscriptComponent` to improve search functionality with a debounce mechanism for input.
- Refactored search logic to filter visible segments based on the search query, ensuring better user experience.
- Updated `Meeting` and `Annotation` entities to use `utc_now()` for consistent UTC-aware timestamps.
- Introduced new repository protocols for `DiarizationJob` and `Preferences` to support additional functionalities.
- Implemented in-memory persistence for repositories to facilitate testing and development without a database.
- Added error handling and utility functions to streamline gRPC service responses and improve code maintainability.
- 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.
- Marked Milestone 6 as complete, indicating that all exit criteria have been met.
- Updated documentation to reflect the completion of the evidence-linked summaries feature.
- Integrated the `GenerateSummary` RPC with the `SummarizationService`, enabling real summarization functionality.
- Enhanced the gRPC server and client to auto-detect summarization service providers, improving reliability.
- Refactored the summarization logic to handle fallback scenarios when providers are unavailable.
- Improved the display of annotation text in the UI for better user experience.
- Extracted trigger detection logic from `app.py` into a new `TriggerMixin` class, enhancing code organization and maintainability.
- Introduced `MeetingAudioReader` to handle reading archived audio for meetings, supporting playback review.
- Added `AnnotationDisplayComponent` to display existing annotations during meeting reviews, improving user experience.
- Updated `NoteFlowClientApp` to utilize the new mixin and components, streamlining the application structure.
- Enhanced gRPC client to retrieve meeting segments, facilitating better integration with the UI components.
- 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.