- 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
4.6 KiB
4.6 KiB
NoteFlow Application Services
Location
src/noteflow/application/services/
Core Services
MeetingService (meeting/)
Meeting lifecycle, segments, annotations, summaries, state.
Files:
meeting_service.py— Composite class combining all mixins_base.py— Core initialization and dependencies_crud_mixin.py— Create, read, update, delete operations_segments_mixin.py— Segment management_summaries_mixin.py— Summary operations_state_mixin.py— State machine transitions_annotations_mixin.py— Annotation CRUD_types.py— Service-specific TypedDicts
Key Methods:
create_meeting(title, project_id) -> Meetingget_meeting(meeting_id) -> Meetinglist_meetings(filters) -> list[Meeting]stop_meeting(meeting_id) -> Meetingadd_segment(meeting_id, segment_data) -> Segmentadd_annotation(meeting_id, annotation_data) -> Annotationgenerate_summary(meeting_id, template_id) -> Summary
IdentityService (identity/)
User/workspace context, defaults, tenancy scoping.
Files:
identity_service.py— Main service_context_mixin.py— Request context handling_workspace_mixin.py— Workspace operations_defaults_mixin.py— Default user/workspace creation
Key Methods:
get_current_user() -> Userget_current_workspace() -> Workspaceswitch_workspace(workspace_id) -> Workspaceensure_defaults() -> tuple[User, Workspace]
CalendarService (calendar/)
OAuth integration, event fetching, sync management.
Files:
calendar_service.py— Main service_connection_mixin.py— OAuth connection handling_events_mixin.py— Event fetching_oauth_mixin.py— OAuth flow management_service_mixin.py— Provider configuration_errors.py— Calendar-specific errors
Key Methods:
initiate_oauth(provider) -> AuthUrlcomplete_oauth(code, state) -> Integrationlist_events(start, end) -> list[CalendarEvent]get_connection_status() -> ConnectionStatus
SummarizationService (summarization/)
Summary generation, template management, cloud consent.
Files:
summarization_service.py— Main servicetemplate_service.py— Template CRUDconsent_manager.py— Cloud consent flow
Key Methods:
generate_summary(meeting_id, template_id) -> Summarycreate_template(data) -> SummarizationTemplatelist_templates() -> list[SummarizationTemplate]grant_consent() -> boolrevoke_consent() -> boolhas_consent() -> bool
ProjectService (project_service/)
Project CRUD, member management, roles, rules.
Files:
__init__.py— Main service exportcrud.py— Project CRUD operationsmembers.py— Member managementroles.py— Role-based accessrules.py— Project rules configurationactive.py— Active project tracking_types.py— Service types
Key Methods:
create_project(name, workspace_id) -> Projectadd_member(project_id, user_id, role) -> ProjectMembershipupdate_member_role(project_id, user_id, role) -> ProjectMembershipremove_member(project_id, user_id) -> boolset_active_project(project_id) -> Project
Supporting Services
NerService (ner_service.py)
Named entity extraction wrapper, model loading.
extract_entities(meeting_id) -> list[NamedEntity]is_ready() -> bool
ExportService (export_service.py)
Transcript export (Markdown, HTML, PDF).
export(meeting_id, format) -> ExportResult
WebhookService (webhook_service.py)
Webhook registration, delivery, retry logic.
register_webhook(config) -> WebhookConfigdeliver_event(event) -> WebhookDelivery
AuthService (auth_service.py)
User authentication, OIDC integration.
initiate_login(provider) -> AuthUrlcomplete_login(code, state) -> Userlogout() -> bool
TriggerService (trigger_service.py)
Calendar/audio/foreground-app trigger detection.
check_triggers() -> list[TriggerSignal]snooze_triggers(duration) -> bool
RetentionService (retention_service.py)
Automatic meeting deletion based on policy.
apply_retention_policy() -> int
RecoveryService (recovery/)
Data recovery (meeting, job, audio).
recover_meeting(meeting_id) -> Meetingrecover_job(job_id) -> DiarizationJob
AsrConfigService (asr_config_service.py)
ASR model configuration and state.
get_config() -> AsrConfigupdate_config(config) -> AsrConfig
HfTokenService (hf_token_service.py)
Hugging Face token management.
set_token(token) -> boolget_status() -> HfTokenStatusvalidate_token() -> bool