Removed / breaking in @v0.4.0, gone in @v0.4.1
get_safe_recording_devicesFunctionfrontend/src-tauri/src/audio/devices/fallback.rs
get_safe_recording_devices_macosFunctionfrontend/src-tauri/src/audio/devices/fallback.rs
test_bluetooth_override_logicFunctionfrontend/src-tauri/src/audio/devices/fallback.rs
DeviceEventResponseEnumfrontend/src-tauri/src/audio/recording_commands.rs
DisconnectedDeviceInfoClassfrontend/src-tauri/src/audio/recording_commands.rs
ReconnectionStatusClassfrontend/src-tauri/src/audio/recording_commands.rs
attempt_device_reconnectFunctionfrontend/src-tauri/src/audio/recording_commands.rs
fromMethodfrontend/src-tauri/src/audio/recording_commands.rs
get_reconnection_statusFunctionfrontend/src-tauri/src/audio/recording_commands.rs
poll_audio_device_eventsFunctionfrontend/src-tauri/src/audio/recording_commands.rs
attempt_device_reconnectMethodfrontend/src-tauri/src/audio/recording_manager.rs
handle_device_disconnectMethodfrontend/src-tauri/src/audio/recording_manager.rs
handle_device_reconnectMethodfrontend/src-tauri/src/audio/recording_manager.rs
is_reconnectingMethodfrontend/src-tauri/src/audio/recording_manager.rs
poll_device_eventsMethodfrontend/src-tauri/src/audio/recording_manager.rs
start_recording_with_defaults_and_auto_saveMethodfrontend/src-tauri/src/audio/recording_manager.rs
get_disconnected_deviceMethodfrontend/src-tauri/src/audio/recording_state.rs
is_reconnectingMethodfrontend/src-tauri/src/audio/recording_state.rs
start_reconnectingMethodfrontend/src-tauri/src/audio/recording_state.rs
stop_reconnectingMethodfrontend/src-tauri/src/audio/recording_state.rs
clean_incomplete_model_directoryMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
cancelled_english_normalization_is_not_swallowedFunctionfrontend/src-tauri/src/summary/processor.rs
clean_llm_markdown_outputFunctionfrontend/src-tauri/src/summary/processor.rs
failed_english_normalization_falls_back_to_original_markdownFunctionfrontend/src-tauri/src/summary/processor.rs
autoGenerateFunctionfrontend/src/app/meeting-details/page-content.tsx
checkBuiltInAIModelsAndGenerateFunctionrc/components/MeetingDetails/SummaryGeneratorButtonGroup.tsx
checkOllamaModelsAndGenerateFunctionrc/components/MeetingDetails/SummaryGeneratorButtonGroup.tsx
loadInitialFunctionfrontend/src/hooks/usePaginatedTranscripts.ts
Signature changed
monitor_loopMethodfrontend/src-tauri/src/audio/device_monitor.rs
start_accumulationMethodfrontend/src-tauri/src/audio/recording_saver.rs
create_or_reset_processMethodfrontend/src-tauri/src/database/repositories/summary.rs
update_process_cancelledMethodfrontend/src-tauri/src/database/repositories/summary.rs
update_process_completedMethodfrontend/src-tauri/src/database/repositories/summary.rs
update_process_failedMethodfrontend/src-tauri/src/database/repositories/summary.rs
parakeet_cancel_downloadFunctionfrontend/src-tauri/src/parakeet_engine/commands.rs
validate_model_directoryMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
api_cancel_summaryFunctionfrontend/src-tauri/src/summary/commands.rs
english_markdown_after_normalization_resultFunctionfrontend/src-tauri/src/summary/processor.rs
build_summary_result_jsonFunctionfrontend/src-tauri/src/summary/service.rs
cancel_summaryMethodfrontend/src-tauri/src/summary/service.rs
cleanup_cancellation_tokenMethodfrontend/src-tauri/src/summary/service.rs
process_transcript_backgroundMethodfrontend/src-tauri/src/summary/service.rs
register_cancellation_tokenMethodfrontend/src-tauri/src/summary/service.rs
update_process_failedMethodfrontend/src-tauri/src/summary/service.rs
PageContentFunctionfrontend/src/app/meeting-details/page-content.tsx
EmptyStateSummaryFunctionfrontend/src/components/EmptyStateSummary.tsx
SummaryPanelFunctionfrontend/src/components/MeetingDetails/SummaryPanel.tsx
SummaryUpdaterButtonGroupFunction/src/components/MeetingDetails/SummaryUpdaterButtonGroup.tsx
ModelCardFunctionfrontend/src/components/ParakeetModelManager.tsx
ModelCardFunctionfrontend/src/components/WhisperModelManager.tsx
useSummaryGenerationFunctionfrontend/src/hooks/meeting-details/useSummaryGeneration.ts
Added new API surface in @v0.4.1
CheckPermission.mainMethodfrontend/src-tauri/check_screen_permission.swift
ending_session_completes_and_emits_an_eventFunctionfrontend/src-tauri/src/analytics/analytics.rs
test_decode_he_aac_uses_decoded_rate_not_container_rateFunctionfrontend/src-tauri/src/audio/decoder.rs
DeviceChangeListenerGuardClassfrontend/src-tauri/src/audio/device_monitor.rs
ListenerCallbackDataClassfrontend/src-tauri/src/audio/device_monitor.rs
device_list_changed_callbackFunctionfrontend/src-tauri/src/audio/device_monitor.rs
notify_mic_swappedMethodfrontend/src-tauri/src/audio/device_monitor.rs
register_device_change_listenersFunctionfrontend/src-tauri/src/audio/device_monitor.rs
verify_microphone_accessFunctionfrontend/src-tauri/src/audio/devices/discovery.rs
test_live_vad_redemption_matches_pro_policyFunctionfrontend/src-tauri/src/audio/pipeline.rs
StoppingGuardClassfrontend/src-tauri/src/audio/recording_commands.rs
SwapGuardClassfrontend/src-tauri/src/audio/recording_commands.rs
do_mic_swapFunctionfrontend/src-tauri/src/audio/recording_commands.rs
dropMethodfrontend/src-tauri/src/audio/recording_commands.rs
finalize_recording_startFunctionfrontend/src-tauri/src/audio/recording_commands.rs
map_recording_start_errorFunctionfrontend/src-tauri/src/audio/recording_commands.rs
newMethodfrontend/src-tauri/src/audio/recording_commands.rs
perform_mic_hot_swap_taskFunctionfrontend/src-tauri/src/audio/recording_commands.rs
prepare_audio_for_recordingFunctionfrontend/src-tauri/src/audio/recording_commands.rs
recording_liveFunctionfrontend/src-tauri/src/audio/recording_commands.rs
resolve_mic_or_defaultFunctionfrontend/src-tauri/src/audio/recording_commands.rs
resolve_system_or_defaultFunctionfrontend/src-tauri/src/audio/recording_commands.rs
session_liveFunctionfrontend/src-tauri/src/audio/recording_commands.rs
spawn_device_event_processorFunctionfrontend/src-tauri/src/audio/recording_commands.rs
trigger_mic_fallback_to_defaultFunctionfrontend/src-tauri/src/audio/recording_commands.rs
RecordingStartErrorEnumfrontend/src-tauri/src/audio/recording_manager.rs
set_mic_stream_after_swapMethodfrontend/src-tauri/src/audio/recording_manager.rs
take_device_event_receiverMethodfrontend/src-tauri/src/audio/recording_manager.rs
take_mic_stream_for_swapMethodfrontend/src-tauri/src/audio/recording_manager.rs
wake_audio_connectionFunctionfrontend/src-tauri/src/audio/recording_manager.rs
wake_audio_connection_for_swapFunctionfrontend/src-tauri/src/audio/recording_manager.rs
wake_audio_connection_syncFunctionfrontend/src-tauri/src/audio/recording_manager.rs
wake_fails_gracefully_for_unknown_deviceFunctionfrontend/src-tauri/src/audio/recording_manager.rs
retranscription_metadata_replaces_stale_duration_without_losing_existing_fieldsFunctionfrontend/src-tauri/src/audio/retranscription.rs
set_mic_streamMethodfrontend/src-tauri/src/audio/stream.rs
take_mic_streamMethodfrontend/src-tauri/src/audio/stream.rs
drops_empty_and_whitespace_onlyFunctionfrontend/src-tauri/src/audio/transcription/worker.rs
keeps_short_acknowledgementsFunctionfrontend/src-tauri/src/audio/transcription/worker.rs
should_emit_transcriptFunctionfrontend/src-tauri/src/audio/transcription/worker.rs
generate_late_speech_audioFunctionfrontend/src-tauri/src/audio/vad.rs
test_flush_segment_timestamps_stay_within_audio_durationFunctionfrontend/src-tauri/src/audio/vad.rs
test_speech_start_sample_never_exceeds_processed_samplesFunctionfrontend/src-tauri/src/audio/vad.rs
cancelled_compare_and_set_rejects_stale_start_timeFunctionfrontend/src-tauri/src/database/repositories/summary.rs
seed_pendingFunctionfrontend/src-tauri/src/database/repositories/summary.rs
terminal_compare_and_set_preserves_first_writerFunctionfrontend/src-tauri/src/database/repositories/summary.rs
test_poolFunctionfrontend/src-tauri/src/database/repositories/summary.rs
catch_onnx_runtime_initFunctionfrontend/src-tauri/src/lib.rs
catch_onnx_runtime_init_converts_errors_and_panicsFunctionfrontend/src-tauri/src/lib.rs
ensure_onnx_runtime_availableFunctionfrontend/src-tauri/src/lib.rs
record_onnx_runtime_failureFunctionfrontend/src-tauri/src/lib.rs
ActiveDownloadClassfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
ActiveDownloadStateClassfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
ArtifactSpecClassfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
CancelDownloadOutcomeEnumfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
ContentRangeEnumfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
DownloadCancelledClassfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
DownloadStateTestHookClassfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
ExpectedResponseClassfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
ModelLifecycleTestHookClassfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
ModelSpecClassfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
cancel_download_with_timeoutMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
cancellation_wins_before_terminal_commitFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
cancelled_near_complete_artifact_is_resumed_on_retryFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
completed_sibling_survives_403_then_retry_resumes_partialFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
declared_content_lengthMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
directory_validation_requires_exact_artifact_sizesFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
discover_models_from_specsMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
discovery_retries_when_download_finalizes_after_disk_scanFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
download_artifactsMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
download_model_detailed_from_sourceMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
exact_bytesMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
find_model_specFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
finish_downloadMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
in_flight_progressMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
invalid_or_short_response_never_publishes_availableFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
is_download_cancelledFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
load_test_hookMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
loading_releases_available_models_and_serializes_unloadFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
parse_content_rangeFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
pending_cancellation_keeps_owner_and_blocks_retryFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
range_416_retries_fresh_with_honest_progressFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
range_ignored_replaces_partial_with_honest_progressFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
read_requestFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
reserve_active_downloadMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
responseFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
send_download_requestMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
serve_requestsFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
set_downloading_statusMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
test_engineFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
test_hookMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
test_model_statusFunctionfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
unload_model_lockedMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
validate_full_responseMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
validate_partial_responseMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
validate_unsatisfied_responseMethodfrontend/src-tauri/src/parakeet_engine/parakeet_engine.rs
blocknote_has_visible_textFunctionfrontend/src-tauri/src/summary/commands.rs
legacy_section_has_visible_textFunctionfrontend/src-tauri/src/summary/commands.rs
next_summary_startFunctionfrontend/src-tauri/src/summary/commands.rs
redact_flagged_reasoningFunctionfrontend/src-tauri/src/summary/commands.rs
redacts_only_flagged_historical_reasoningFunctionfrontend/src-tauri/src/summary/commands.rs
… +132 more