SYMBOL INDEX (2454 symbols across 270 files) FILE: backend/app/db.py class DatabaseManager (line 20) | class DatabaseManager: method __init__ (line 21) | def __init__(self, db_path: str = None): method _init_db (line 28) | def _init_db(self): method _legacy_init_db (line 45) | def _legacy_init_db(self): method _get_connection (line 162) | async def _get_connection(self): method create_process (line 170) | async def create_process(self, meeting_id: str) -> str: method update_process (line 211) | async def update_process(self, meeting_id: str, status: str, result: O... method save_transcript (line 283) | async def save_transcript(self, meeting_id: str, transcript_text: str,... method update_meeting_name (line 329) | async def update_meeting_name(self, meeting_id: str, meeting_name: str): method get_transcript_data (line 349) | async def get_transcript_data(self, meeting_id: str): method save_meeting (line 363) | async def save_meeting(self, meeting_id: str, title: str, folder_path:... method save_meeting_transcript (line 389) | async def save_meeting_transcript(self, meeting_id: str, transcript: s... method get_meeting (line 412) | async def get_meeting(self, meeting_id: str): method update_meeting_title (line 454) | async def update_meeting_title(self, meeting_id: str, new_title: str): method get_all_meetings (line 465) | async def get_all_meetings(self): method delete_meeting (line 480) | async def delete_meeting(self, meeting_id: str): method get_model_config (line 530) | async def get_model_config(self): method save_model_config (line 537) | async def save_model_config(self, provider: str, model: str, whisperMo... method save_api_key (line 582) | async def save_api_key(self, api_key: str, provider: str): method get_api_key (line 627) | async def get_api_key(self, provider: str): method get_transcript_config (line 645) | async def get_transcript_config(self): method save_transcript_config (line 659) | async def save_transcript_config(self, provider: str, model: str): method save_transcript_api_key (line 701) | async def save_transcript_api_key(self, api_key: str, provider: str): method get_transcript_api_key (line 749) | async def get_transcript_api_key(self, provider: str): method search_transcripts (line 769) | async def search_transcripts(self, query: str): method delete_api_key (line 863) | async def delete_api_key(self, provider: str): method update_meeting_summary (line 880) | async def update_meeting_summary(self, meeting_id: str, summary: dict): FILE: backend/app/main.py class Transcript (line 57) | class Transcript(BaseModel): class MeetingResponse (line 66) | class MeetingResponse(BaseModel): class MeetingDetailsResponse (line 70) | class MeetingDetailsResponse(BaseModel): class MeetingTitleUpdate (line 77) | class MeetingTitleUpdate(BaseModel): class DeleteMeetingRequest (line 81) | class DeleteMeetingRequest(BaseModel): class SaveTranscriptRequest (line 84) | class SaveTranscriptRequest(BaseModel): class SaveModelConfigRequest (line 89) | class SaveModelConfigRequest(BaseModel): class SaveTranscriptConfigRequest (line 95) | class SaveTranscriptConfigRequest(BaseModel): class TranscriptRequest (line 100) | class TranscriptRequest(BaseModel): class SummaryProcessor (line 110) | class SummaryProcessor: method __init__ (line 112) | def __init__(self): method process_transcript (line 123) | async def process_transcript(self, text: str, model: str, model_name: ... method cleanup (line 158) | def cleanup(self): function get_meetings (line 173) | async def get_meetings(): function get_meeting (line 183) | async def get_meeting(meeting_id: str): function save_meeting_title (line 197) | async def save_meeting_title(data: MeetingTitleUpdate): function delete_meeting (line 207) | async def delete_meeting(data: DeleteMeetingRequest): function process_transcript_background (line 219) | async def process_transcript_background(process_id: str, transcript: Tra... function process_transcript_api (line 330) | async def process_transcript_api( function get_summary (line 369) | async def get_summary(meeting_id: str): function save_transcript (line 512) | async def save_transcript(request: SaveTranscriptRequest): function get_model_config (line 551) | async def get_model_config(): function save_model_config (line 561) | async def save_model_config(request: SaveModelConfigRequest): function get_transcript_config (line 569) | async def get_transcript_config(): function save_transcript_config (line 579) | async def save_transcript_config(request: SaveTranscriptConfigRequest): class GetApiKeyRequest (line 586) | class GetApiKeyRequest(BaseModel): function get_api_key (line 590) | async def get_api_key(request: GetApiKeyRequest): function get_transcript_api_key (line 597) | async def get_transcript_api_key(request: GetApiKeyRequest): class MeetingSummaryUpdate (line 603) | class MeetingSummaryUpdate(BaseModel): function save_meeting_summary (line 608) | async def save_meeting_summary(data: MeetingSummaryUpdate): class SearchRequest (line 620) | class SearchRequest(BaseModel): function search_transcripts (line 624) | async def search_transcripts(request: SearchRequest): function shutdown_event (line 634) | async def shutdown_event(): FILE: backend/app/schema_validator.py class SchemaValidator (line 7) | class SchemaValidator: method __init__ (line 10) | def __init__(self, db_path: str): method validate_schema (line 13) | def validate_schema(self): method _get_expected_schema (line 30) | def _get_expected_schema(self): method _validate_table_schema (line 94) | def _validate_table_schema(self, cursor, table_name: str, expected_col... FILE: backend/app/transcript_processor.py class Block (line 34) | class Block(BaseModel): class Section (line 52) | class Section(BaseModel): class MeetingNotes (line 57) | class MeetingNotes(BaseModel): class People (line 62) | class People(BaseModel): class SummaryResponse (line 67) | class SummaryResponse(BaseModel): class TranscriptProcessor (line 80) | class TranscriptProcessor: method __init__ (line 82) | def __init__(self): method process_transcript (line 87) | async def process_transcript(self, text: str, model: str, model_name: ... method chat_ollama_model (line 235) | async def chat_ollama_model(self, model_name: str, transcript: str, cu... method cleanup (line 289) | def cleanup(self): FILE: backend/debug_cors.py function test_process_transcript (line 8) | def test_process_transcript(text="This is a test transcript"): FILE: backend/examples/run_summary_workflow.py function process_transcript (line 24) | def process_transcript(base_url, transcript_text, provider, model_name, ... function poll_summary_status (line 69) | def poll_summary_status(base_url, meeting_id_for_polling, interval, max_... FILE: backend/whisper-custom/server/httplib.h function namespace (line 292) | namespace httplib { function scope_exit (line 330) | struct scope_exit { function release (line 344) | void release() { this->execute_on_destruction = false; } type Response (line 364) | struct Response type MultipartFormData (line 367) | struct MultipartFormData { function class (line 376) | class DataSink { type MultipartFormDataProvider (line 416) | struct MultipartFormDataProvider { function class (line 434) | class ContentReader { function const (line 449) | bool operator()(ContentReceiver receiver) const { type Request (line 460) | struct Request { type Response (line 512) | struct Response { function class (line 561) | class Stream { function ContentProviderWithoutLength (line 7336) | inline ContentProviderWithoutLength ClientImpl::get_multipart_content_pr... function process_socket (line 7378) | inline bool function Result (line 7388) | inline Result ClientImpl::Get(const std::string &path) { function Result (line 7392) | inline Result ClientImpl::Get(const std::string &path, Progress progress) { function Result (line 7396) | inline Result ClientImpl::Get(const std::string &path, const Headers &he... function Result (line 7400) | inline Result ClientImpl::Get(const std::string &path, const Headers &he... function Result (line 7411) | inline Result ClientImpl::Get(const std::string &path, function Result (line 7416) | inline Result ClientImpl::Get(const std::string &path, function Result (line 7423) | inline Result ClientImpl::Get(const std::string &path, const Headers &he... function Result (line 7428) | inline Result ClientImpl::Get(const std::string &path, const Headers &he... function Result (line 7435) | inline Result ClientImpl::Get(const std::string &path, function Result (line 7442) | inline Result ClientImpl::Get(const std::string &path, const Headers &he... function Result (line 7449) | inline Result ClientImpl::Get(const std::string &path, function Result (line 7457) | inline Result ClientImpl::Get(const std::string &path, const Headers &he... function Result (line 7476) | inline Result ClientImpl::Get(const std::string &path, const Params &par... function Result (line 7484) | inline Result ClientImpl::Get(const std::string &path, const Params &par... function Result (line 7491) | inline Result ClientImpl::Get(const std::string &path, const Params &par... function Result (line 7505) | inline Result ClientImpl::Head(const std::string &path) { function Result (line 7509) | inline Result ClientImpl::Head(const std::string &path, function Result (line 7519) | inline Result ClientImpl::Post(const std::string &path) { function Result (line 7523) | inline Result ClientImpl::Post(const std::string &path, function Result (line 7528) | inline Result ClientImpl::Post(const std::string &path, const char *body, function Result (line 7534) | inline Result ClientImpl::Post(const std::string &path, const Headers &h... function Result (line 7541) | inline Result ClientImpl::Post(const std::string &path, const std::strin... function Result (line 7546) | inline Result ClientImpl::Post(const std::string &path, const Headers &h... function Result (line 7554) | inline Result ClientImpl::Post(const std::string &path, const Params &pa... function Result (line 7558) | inline Result ClientImpl::Post(const std::string &path, size_t content_l... function Result (line 7565) | inline Result ClientImpl::Post(const std::string &path, function Result (line 7571) | inline Result ClientImpl::Post(const std::string &path, const Headers &h... function Result (line 7580) | inline Result ClientImpl::Post(const std::string &path, const Headers &h... function Result (line 7587) | inline Result ClientImpl::Post(const std::string &path, const Headers &h... function Result (line 7593) | inline Result ClientImpl::Post(const std::string &path, function Result (line 7598) | inline Result ClientImpl::Post(const std::string &path, const Headers &h... function Result (line 7607) | inline Result ClientImpl::Post(const std::string &path, const Headers &h... function Result (line 7620) | inline Result function Result (line 7633) | inline Result ClientImpl::Put(const std::string &path) { function Result (line 7637) | inline Result ClientImpl::Put(const std::string &path, const char *body, function Result (line 7643) | inline Result ClientImpl::Put(const std::string &path, const Headers &he... function Result (line 7650) | inline Result ClientImpl::Put(const std::string &path, const std::string... function Result (line 7655) | inline Result ClientImpl::Put(const std::string &path, const Headers &he... function Result (line 7663) | inline Result ClientImpl::Put(const std::string &path, size_t content_le... function Result (line 7670) | inline Result ClientImpl::Put(const std::string &path, function Result (line 7676) | inline Result ClientImpl::Put(const std::string &path, const Headers &he... function Result (line 7685) | inline Result ClientImpl::Put(const std::string &path, const Headers &he... function Result (line 7692) | inline Result ClientImpl::Put(const std::string &path, const Params &par... function Result (line 7696) | inline Result ClientImpl::Put(const std::string &path, const Headers &he... function Result (line 7702) | inline Result ClientImpl::Put(const std::string &path, function Result (line 7707) | inline Result ClientImpl::Put(const std::string &path, const Headers &he... function Result (line 7716) | inline Result ClientImpl::Put(const std::string &path, const Headers &he... function Result (line 7729) | inline Result function Result (line 7741) | inline Result ClientImpl::Patch(const std::string &path) { function Result (line 7745) | inline Result ClientImpl::Patch(const std::string &path, const char *body, function Result (line 7751) | inline Result ClientImpl::Patch(const std::string &path, const Headers &... function Result (line 7759) | inline Result ClientImpl::Patch(const std::string &path, function Result (line 7765) | inline Result ClientImpl::Patch(const std::string &path, const Headers &... function Result (line 7773) | inline Result ClientImpl::Patch(const std::string &path, size_t content_... function Result (line 7780) | inline Result ClientImpl::Patch(const std::string &path, function Result (line 7786) | inline Result ClientImpl::Patch(const std::string &path, const Headers &... function Result (line 7795) | inline Result ClientImpl::Patch(const std::string &path, const Headers &... function Result (line 7802) | inline Result ClientImpl::Delete(const std::string &path) { function Result (line 7806) | inline Result ClientImpl::Delete(const std::string &path, function Result (line 7811) | inline Result ClientImpl::Delete(const std::string &path, const char *body, function Result (line 7817) | inline Result ClientImpl::Delete(const std::string &path, function Result (line 7832) | inline Result ClientImpl::Delete(const std::string &path, function Result (line 7838) | inline Result ClientImpl::Delete(const std::string &path, function Result (line 7845) | inline Result ClientImpl::Options(const std::string &path) { function Result (line 7849) | inline Result ClientImpl::Options(const std::string &path, function stop (line 7859) | inline void ClientImpl::stop() { function set_connection_timeout (line 7893) | inline void ClientImpl::set_connection_timeout(time_t sec, time_t usec) { function set_read_timeout (line 7898) | inline void ClientImpl::set_read_timeout(time_t sec, time_t usec) { function set_write_timeout (line 7903) | inline void ClientImpl::set_write_timeout(time_t sec, time_t usec) { function set_basic_auth (line 7908) | inline void ClientImpl::set_basic_auth(const std::string &username, function set_bearer_token_auth (line 7914) | inline void ClientImpl::set_bearer_token_auth(const std::string &token) { function set_digest_auth (line 7919) | inline void ClientImpl::set_digest_auth(const std::string &username, function set_keep_alive (line 7926) | inline void ClientImpl::set_keep_alive(bool on) { keep_alive_ = on; } function set_follow_location (line 7928) | inline void ClientImpl::set_follow_location(bool on) { follow_location_ ... function set_url_encode (line 7930) | inline void ClientImpl::set_url_encode(bool on) { url_encode_ = on; } function set_hostname_addr_map (line 7932) | inline void function set_default_headers (line 7937) | inline void ClientImpl::set_default_headers(Headers headers) { function set_header_writer (line 7941) | inline void ClientImpl::set_header_writer( function set_address_family (line 7946) | inline void ClientImpl::set_address_family(int family) { function set_tcp_nodelay (line 7950) | inline void ClientImpl::set_tcp_nodelay(bool on) { tcp_nodelay_ = on; } function set_socket_options (line 7952) | inline void ClientImpl::set_socket_options(SocketOptions socket_options) { function set_compress (line 7956) | inline void ClientImpl::set_compress(bool on) { compress_ = on; } function set_decompress (line 7958) | inline void ClientImpl::set_decompress(bool on) { decompress_ = on; } function set_interface (line 7960) | inline void ClientImpl::set_interface(const std::string &intf) { function set_proxy (line 7964) | inline void ClientImpl::set_proxy(const std::string &host, int port) { function set_proxy_basic_auth (line 7969) | inline void ClientImpl::set_proxy_basic_auth(const std::string &username, function set_proxy_bearer_token_auth (line 7975) | inline void ClientImpl::set_proxy_bearer_token_auth(const std::string &t... function set_proxy_digest_auth (line 7980) | inline void ClientImpl::set_proxy_digest_auth(const std::string &username, function set_ca_cert_path (line 7986) | inline void ClientImpl::set_ca_cert_path(const std::string &ca_cert_file... function set_ca_cert_store (line 7992) | inline void ClientImpl::set_ca_cert_store(X509_STORE *ca_cert_store) { function X509_STORE (line 7998) | inline X509_STORE *ClientImpl::create_ca_cert_store(const char *ca_cert, function enable_server_certificate_verification (line 8025) | inline void ClientImpl::enable_server_certificate_verification(bool enab... function set_logger (line 8030) | inline void ClientImpl::set_logger(Logger logger) { function namespace (line 8038) | namespace detail { function SSLSocketStream (line 8151) | inline SSLSocketStream::~SSLSocketStream() {} function is_readable (line 8153) | inline bool SSLSocketStream::is_readable() const { function write (line 8194) | inline ssize_t SSLSocketStream::write(const char *ptr, size_t size) { function SSLServer (line 8242) | inline SSLServer::SSLServer(const char *cert_path, const char *private_k... function SSLServer (line 8277) | inline SSLServer::SSLServer(X509 *cert, EVP_PKEY *private_key, function SSLServer (line 8301) | inline SSLServer::SSLServer( function SSLServer (line 8312) | inline SSLServer::~SSLServer() { function SSL_CTX (line 8318) | inline SSL_CTX *SSLServer::ssl_context() const { return ctx_; } function process_and_close_socket (line 8320) | inline bool SSLServer::process_and_close_socket(socket_t sock) { function SSLClient (line 8353) | inline SSLClient::SSLClient(const std::string &host) function SSLClient (line 8356) | inline SSLClient::SSLClient(const std::string &host, int port) function SSLClient (line 8359) | inline SSLClient::SSLClient(const std::string &host, int port, function SSLClient (line 8381) | inline SSLClient::SSLClient(const std::string &host, int port, function SSLClient (line 8400) | inline SSLClient::~SSLClient() { function set_ca_cert_store (line 8410) | inline void SSLClient::set_ca_cert_store(X509_STORE *ca_cert_store) { function load_ca_cert_store (line 8423) | inline void SSLClient::load_ca_cert_store(const char *ca_cert, function SSL_CTX (line 8432) | inline SSL_CTX *SSLClient::ssl_context() const { return ctx_; } function create_and_connect_socket (line 8434) | inline bool SSLClient::create_and_connect_socket(Socket &socket, Error &... function connect_with_proxy (line 8439) | inline bool SSLClient::connect_with_proxy(Socket &socket, Response &res, function load_certs (line 8507) | inline bool SSLClient::load_certs() { function initialize_ssl (line 8539) | inline bool SSLClient::initialize_ssl(Socket &socket, Error &error) { function shutdown_ssl (line 8602) | inline void SSLClient::shutdown_ssl(Socket &socket, bool shutdown_gracef... function shutdown_ssl_impl (line 8606) | inline void SSLClient::shutdown_ssl_impl(Socket &socket, function process_socket (line 8619) | inline bool function verify_host (line 8630) | inline bool SSLClient::verify_host(X509 *server_cert) const { function verify_host_with_subject_alt_name (line 8656) | inline bool function verify_host_with_common_name (line 8713) | inline bool SSLClient::verify_host_with_common_name(X509 *server_cert) c... function check_host_name (line 8729) | inline bool SSLClient::check_host_name(const char *pattern, FILE: backend/whisper-custom/server/server.cpp type server_params (line 32) | struct server_params type whisper_params (line 46) | struct whisper_params { function whisper_print_usage (line 97) | void whisper_print_usage(int /*argc*/, char ** argv, const whisper_param... function whisper_params_parse (line 146) | bool whisper_params_parse(int argc, char ** argv, whisper_params & param... type whisper_print_user_data (line 207) | struct whisper_print_user_data { function check_ffmpeg_availibility (line 214) | void check_ffmpeg_availibility() { function convert_to_wav (line 227) | bool convert_to_wav(const std::string & temp_filename, std::string & err... function estimate_diarization_speaker (line 253) | std::string estimate_diarization_speaker(std::vector>... function whisper_print_progress_callback (line 286) | void whisper_print_progress_callback(struct whisper_context * /*ctx*/, s... function whisper_print_segment_callback (line 295) | void whisper_print_segment_callback(struct whisper_context * ctx, struct... function output_str (line 363) | std::string output_str(struct whisper_context * ctx, const whisper_param... function parse_str_to_bool (line 382) | bool parse_str_to_bool(const std::string & s) { function get_req_parameters (line 389) | void get_req_parameters(const Request & req, whisper_params & params) function main (line 495) | int main(int argc, char ** argv) { FILE: frontend/scripts/auto-detect-gpu.js function commandExists (line 10) | function commandExists(cmd) { function detectGPU (line 19) | function detectGPU() { FILE: frontend/src-tauri/build.rs function main (line 4) | fn main() { function detect_and_report_gpu_capabilities (line 25) | fn detect_and_report_gpu_capabilities() { FILE: frontend/src-tauri/build/ffmpeg.rs function ensure_ffmpeg_binary (line 8) | pub fn ensure_ffmpeg_binary() { function download_and_extract_ffmpeg (line 63) | fn download_and_extract_ffmpeg( function get_ffmpeg_url_for_target (line 125) | fn get_ffmpeg_url_for_target(target: &str) -> Result { function extract_ffmpeg_from_archive (line 154) | fn extract_ffmpeg_from_archive( function extract_zip (line 206) | fn extract_zip( function extract_tar_xz (line 265) | fn extract_tar_xz( function find_ffmpeg_in_extracted_dir (line 284) | fn find_ffmpeg_in_extracted_dir( function verify_ffmpeg_binary (line 333) | fn verify_ffmpeg_binary(path: &std::path::PathBuf) -> bool { FILE: frontend/src-tauri/migrations/20250916100000_initial_schema.sql type meetings (line 2) | CREATE TABLE IF NOT EXISTS meetings ( type transcripts (line 10) | CREATE TABLE IF NOT EXISTS transcripts ( type summary_processes (line 22) | CREATE TABLE IF NOT EXISTS summary_processes ( type transcript_chunks (line 38) | CREATE TABLE IF NOT EXISTS transcript_chunks ( type settings (line 51) | CREATE TABLE IF NOT EXISTS settings ( type transcript_settings (line 63) | CREATE TABLE IF NOT EXISTS transcript_settings ( FILE: frontend/src-tauri/migrations/20250920155811_add_openrouter_api_key.sql type settings_new (line 5) | CREATE TABLE IF NOT EXISTS settings_new ( FILE: frontend/src-tauri/migrations/20251105120000_add_pro_license_custom_openai.sql type licensing (line 9) | CREATE TABLE licensing ( FILE: frontend/src-tauri/migrations/20251223000000_add_meeting_notes.sql type meeting_notes (line 2) | CREATE TABLE IF NOT EXISTS meeting_notes ( type idx_meeting_notes_meeting_id (line 12) | CREATE INDEX IF NOT EXISTS idx_meeting_notes_meeting_id ON meeting_notes... FILE: frontend/src-tauri/src/analytics/analytics.rs type AnalyticsConfig (line 10) | pub struct AnalyticsConfig { method default (line 17) | fn default() -> Self { type UserSession (line 27) | pub struct UserSession { method new (line 35) | pub fn new(user_id: String) -> Self { method duration_seconds (line 45) | pub fn duration_seconds(&self) -> i64 { type AnalyticsClient (line 50) | pub struct AnalyticsClient { method new (line 58) | pub async fn new(config: AnalyticsConfig) -> Self { method identify (line 73) | pub async fn identify(&self, user_id: String, properties: Option Result Result<(), String> { method track_daily_active_user (line 176) | pub async fn track_daily_active_user(&self) -> Result<(), String> { method track_user_first_launch (line 193) | pub async fn track_user_first_launch(&self) -> Result<(), String> { method get_current_session (line 201) | pub async fn get_current_session(&self) -> Option { method is_session_active (line 205) | pub async fn is_session_active(&self) -> bool { method track_meeting_started (line 210) | pub async fn track_meeting_started(&self, meeting_id: &str, meeting_ti... method track_recording_started (line 219) | pub async fn track_recording_started(&self, meeting_id: &str) -> Resul... method track_recording_stopped (line 227) | pub async fn track_recording_stopped(&self, meeting_id: &str, duration... method track_meeting_deleted (line 239) | pub async fn track_meeting_deleted(&self, meeting_id: &str) -> Result<... method track_settings_changed (line 247) | pub async fn track_settings_changed(&self, setting_type: &str, new_val... method track_app_started (line 256) | pub async fn track_app_started(&self, version: &str) -> Result<(), Str... method track_feature_used (line 264) | pub async fn track_feature_used(&self, feature_name: &str) -> Result<(... method track_summary_generation_started (line 273) | pub async fn track_summary_generation_started(&self, model_provider: &... method track_summary_generation_completed (line 283) | pub async fn track_summary_generation_completed(&self, model_provider:... method track_summary_regenerated (line 301) | pub async fn track_summary_regenerated(&self, model_provider: &str, mo... method track_model_changed (line 310) | pub async fn track_model_changed(&self, old_provider: &str, old_model:... method track_custom_prompt_used (line 321) | pub async fn track_custom_prompt_used(&self, prompt_length: usize) -> ... method track_meeting_ended (line 329) | pub async fn track_meeting_ended( method track_analytics_enabled (line 375) | pub async fn track_analytics_enabled(&self) -> Result<(), String> { method track_analytics_disabled (line 382) | pub async fn track_analytics_disabled(&self) -> Result<(), String> { method track_analytics_transparency_viewed (line 389) | pub async fn track_analytics_transparency_viewed(&self) -> Result<(), ... method is_enabled (line 396) | pub fn is_enabled(&self) -> bool { method set_user_properties (line 400) | pub async fn set_user_properties(&self, properties: HashMap Analyti... FILE: frontend/src-tauri/src/analytics/commands.rs function init_analytics (line 10) | pub async fn init_analytics() -> Result<(), String> { function disable_analytics (line 26) | pub async fn disable_analytics() -> Result<(), String> { function track_event (line 33) | pub async fn track_event(event_name: String, properties: Option Result<(), S... function track_recording_stopped (line 89) | pub async fn track_recording_stopped(meeting_id: String, duration_second... function track_meeting_deleted (line 103) | pub async fn track_meeting_deleted(meeting_id: String) -> Result<(), Str... function track_settings_changed (line 117) | pub async fn track_settings_changed(setting_type: String, new_value: Str... function track_feature_used (line 131) | pub async fn track_feature_used(feature_name: String) -> Result<(), Stri... function is_analytics_enabled (line 145) | pub async fn is_analytics_enabled() -> bool { function start_analytics_session (line 152) | pub async fn start_analytics_session(user_id: String) -> Result Result<(), String> { function track_daily_active_user (line 180) | pub async fn track_daily_active_user() -> Result<(), String> { function track_user_first_launch (line 194) | pub async fn track_user_first_launch() -> Result<(), String> { function track_summary_generation_started (line 209) | pub async fn track_summary_generation_started(model_provider: String, mo... function track_summary_generation_completed (line 223) | pub async fn track_summary_generation_completed(model_provider: String, ... function track_summary_regenerated (line 237) | pub async fn track_summary_regenerated(model_provider: String, model_nam... function track_model_changed (line 251) | pub async fn track_model_changed(old_provider: String, old_model: String... function track_custom_prompt_used (line 265) | pub async fn track_custom_prompt_used(prompt_length: usize) -> Result<()... function track_meeting_ended (line 279) | pub async fn track_meeting_ended( function track_analytics_enabled (line 320) | pub async fn track_analytics_enabled() -> Result<(), String> { function track_analytics_disabled (line 334) | pub async fn track_analytics_disabled() -> Result<(), String> { function track_analytics_transparency_viewed (line 348) | pub async fn track_analytics_transparency_viewed() -> Result<(), String> { function is_analytics_session_active (line 362) | pub async fn is_analytics_session_active() -> bool { FILE: frontend/src-tauri/src/anthropic/anthropic.rs type AnthropicModel (line 8) | pub struct AnthropicModel { type AnthropicApiModel (line 15) | struct AnthropicApiModel { type AnthropicApiResponse (line 24) | struct AnthropicApiResponse { type CacheEntry (line 29) | struct CacheEntry { constant CACHE_TTL_SECS (line 38) | const CACHE_TTL_SECS: u64 = 300; constant FALLBACK_MODELS (line 41) | const FALLBACK_MODELS: &[(&str, &str)] = &[ function get_fallback_models (line 49) | fn get_fallback_models() -> Vec { function is_chat_model (line 60) | fn is_chat_model(model_id: &str) -> bool { function get_anthropic_models (line 74) | pub async fn get_anthropic_models(api_key: Option) -> Result { type Meeting (line 30) | pub struct Meeting { type SearchRequest (line 36) | pub struct SearchRequest { type TranscriptSearchResult (line 41) | pub struct TranscriptSearchResult { type ProfileRequest (line 50) | pub struct ProfileRequest { type SaveProfileRequest (line 56) | pub struct SaveProfileRequest { type UpdateProfileRequest (line 62) | pub struct UpdateProfileRequest { type ModelConfig (line 70) | pub struct ModelConfig { type SaveModelConfigRequest (line 82) | pub struct SaveModelConfigRequest { type GetApiKeyRequest (line 94) | pub struct GetApiKeyRequest { type TranscriptConfig (line 99) | pub struct TranscriptConfig { type SaveTranscriptConfigRequest (line 107) | pub struct SaveTranscriptConfigRequest { type DeleteMeetingRequest (line 115) | pub struct DeleteMeetingRequest { type MeetingDetails (line 120) | pub struct MeetingDetails { type MeetingTranscript (line 129) | pub struct MeetingTranscript { type MeetingMetadata (line 144) | pub struct MeetingMetadata { type PaginatedTranscriptsResponse (line 155) | pub struct PaginatedTranscriptsResponse { type SaveMeetingTitleRequest (line 162) | pub struct SaveMeetingTitleRequest { type SaveMeetingSummaryRequest (line 168) | pub struct SaveMeetingSummaryRequest { type SaveTranscriptRequest (line 174) | pub struct SaveTranscriptRequest { type TranscriptSegment (line 180) | pub struct TranscriptSegment { type Profile (line 194) | pub struct Profile { function get_auth_token (line 208) | async fn get_auth_token(app: &AppHandle) -> Option { function get_server_address (line 233) | async fn get_server_address(_app: &AppHandle) -> Result Deserialize<'de>>( function api_get_meetings (line 322) | pub async fn api_get_meetings( function api_search_transcripts (line 356) | pub async fn api_search_transcripts( function api_get_profile (line 386) | pub async fn api_get_profile( function api_save_profile (line 406) | pub async fn api_save_profile( function api_update_profile (line 433) | pub async fn api_update_profile( function api_get_model_config (line 467) | pub async fn api_get_model_config( function api_save_model_config (line 517) | pub async fn api_save_model_config( function api_get_api_key (line 574) | pub async fn api_get_api_key( function api_get_transcript_config (line 600) | pub async fn api_get_transcript_config( function api_save_transcript_config (line 650) | pub async fn api_save_transcript_config( function api_get_transcript_api_key (line 687) | pub async fn api_get_transcript_api_key( function api_delete_api_key (line 717) | pub async fn api_delete_api_key( function api_delete_meeting (line 744) | pub async fn api_delete_meeting( function api_get_meeting (line 781) | pub async fn api_get_meeting( function api_get_meeting_metadata (line 813) | pub async fn api_get_meeting_metadata( function api_get_meeting_transcripts (line 846) | pub async fn api_get_meeting_transcripts( function api_save_meeting_title (line 900) | pub async fn api_save_meeting_title( function api_save_transcript (line 930) | pub async fn api_save_transcript( function open_meeting_folder (line 1008) | pub async fn open_meeting_folder( function test_backend_connection (line 1079) | pub async fn test_backend_connection( function debug_backend_connection (line 1111) | pub async fn debug_backend_connection(app: AppHandle) -> ... function open_external_url (line 1149) | pub async fn open_external_url(url: String) -> Result<(), String> { function api_save_custom_openai_config (line 1172) | pub async fn api_save_custom_openai_config( function api_get_custom_openai_config (line 1246) | pub async fn api_get_custom_openai_config( function api_test_custom_openai_connection (line 1274) | pub async fn api_test_custom_openai_connection( FILE: frontend/src-tauri/src/audio/async_logger.rs type AsyncLogger (line 8) | pub struct AsyncLogger { method new (line 24) | pub fn new(buffer_size: usize) -> Self { method log (line 56) | pub fn log(&self, level: Level, target: &str, message: String) { method flush_messages (line 69) | fn flush_messages(messages: &mut Vec) { type LogMessage (line 14) | struct LogMessage { function init_async_logger (line 85) | pub fn init_async_logger() { function get_async_logger (line 94) | pub fn get_async_logger() -> Option> { FILE: frontend/src-tauri/src/audio/audio_processing.rs function sanitize_filename (line 15) | pub fn sanitize_filename(name: &str) -> String { function create_meeting_folder (line 35) | pub fn create_meeting_folder( function normalize_v2 (line 60) | pub fn normalize_v2(audio: &[f32]) -> Vec { type TruePeakLimiter (line 100) | struct TruePeakLimiter { method new (line 108) | fn new(sample_rate: u32) -> Self { method process (line 120) | fn process(&mut self, sample: f32, true_peak_limit: f32) -> f32 { type LoudnessNormalizer (line 147) | pub struct LoudnessNormalizer { method new (line 161) | pub fn new(channels: u32, sample_rate: u32) -> Result { method normalize_loudness (line 186) | pub fn normalize_loudness(&mut self, samples: &[f32]) -> Vec { type NoiseSuppressionProcessor (line 237) | pub struct NoiseSuppressionProcessor { method new (line 248) | pub fn new(sample_rate: u32) -> Result { method process (line 279) | pub fn process(&mut self, samples: &[f32]) -> Vec { method buffered_samples (line 315) | pub fn buffered_samples(&self) -> usize { method flush (line 321) | pub fn flush(&mut self) -> Vec { type HighPassFilter (line 345) | pub struct HighPassFilter { method new (line 362) | pub fn new(sample_rate: u32, cutoff_hz: f32) -> Self { method process (line 381) | pub fn process(&mut self, samples: &[f32]) -> Vec { method reset (line 399) | pub fn reset(&mut self) { function spectral_subtraction (line 405) | pub fn spectral_subtraction(audio: &[f32], d: f32) -> Result> { function average_noise_spectrum (line 466) | pub fn average_noise_spectrum(audio: &[f32]) -> f32 { function audio_to_mono (line 478) | pub fn audio_to_mono(audio: &[f32], channels: u16) -> Vec { function resample (line 510) | pub fn resample(input: &[f32], from_sample_rate: u32, to_sample_rate: u3... function resample_audio (line 598) | pub fn resample_audio(input: &[f32], from_sample_rate: u32, to_sample_ra... function write_audio_to_file (line 610) | pub fn write_audio_to_file( function write_audio_to_file_with_meeting_name (line 620) | pub fn write_audio_to_file_with_meeting_name( function write_transcript_to_file (line 665) | pub fn write_transcript_to_file( function write_transcript_json_to_file (line 696) | pub fn write_transcript_json_to_file( FILE: frontend/src-tauri/src/audio/batch_processor.rs type BatchProcessor (line 8) | pub struct BatchProcessor { function new (line 25) | pub fn new( function add (line 92) | pub fn add(&self, item: T) -> Result<(), mpsc::error::SendError> { function get_results (line 97) | pub async fn get_results(&self) -> Vec { function clear_results (line 103) | pub async fn clear_results(&self) { type AudioMetricsBatcher (line 109) | pub struct AudioMetricsBatcher { method new (line 134) | pub fn new() -> Self { method add_metric (line 180) | pub fn add_metric(&self, metric: AudioMetric) -> Result<(), mpsc::erro... method get_summaries (line 185) | pub async fn get_summaries(&self) -> Vec { method clear_summaries (line 190) | pub async fn clear_summaries(&self) { type AudioMetric (line 114) | pub struct AudioMetric { type AudioMetricsSummary (line 123) | pub struct AudioMetricsSummary { method default (line 196) | fn default() -> Self { FILE: frontend/src-tauri/src/audio/buffer_pool.rs type AudioBufferPool (line 5) | pub struct AudioBufferPool { method new (line 13) | pub fn new(max_size: usize, buffer_capacity: usize) -> Self { method get_buffer (line 22) | pub fn get_buffer(&self) -> Vec { method return_buffer (line 39) | pub fn return_buffer(&self, mut buffer: Vec) { method pool_size (line 53) | pub fn pool_size(&self) -> usize { method clear (line 58) | pub fn clear(&self) { method clone (line 64) | fn clone(&self) -> Self { type PooledBuffer (line 74) | pub struct PooledBuffer { method new (line 81) | pub fn new(pool: AudioBufferPool) -> Self { method as_mut (line 90) | pub fn as_mut(&mut self) -> &mut Vec { method as_ref (line 95) | pub fn as_ref(&self) -> &Vec { method into_inner (line 100) | pub fn into_inner(mut self) -> Vec { type Target (line 114) | type Target = Vec; method deref (line 116) | fn deref(&self) -> &Self::Target { method deref_mut (line 122) | fn deref_mut(&mut self) -> &mut Self::Target { method drop (line 106) | fn drop(&mut self) { function test_buffer_pool (line 132) | fn test_buffer_pool() { function test_pooled_buffer_raii (line 149) | fn test_pooled_buffer_raii() { function test_pool_max_size (line 163) | fn test_pool_max_size() { FILE: frontend/src-tauri/src/audio/capture/backend_config.rs type AudioCaptureBackend (line 10) | pub enum AudioCaptureBackend { method name (line 23) | pub fn name(&self) -> &'static str { method description (line 32) | pub fn description(&self) -> &'static str { method from_string (line 45) | pub fn from_string(s: &str) -> Option { method to_string (line 55) | pub fn to_string(&self) -> String { method available_backends (line 64) | pub fn available_backends() -> Vec { method default (line 77) | pub fn default() -> Self { method fmt (line 93) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { method default (line 87) | fn default() -> Self { type BackendConfig (line 99) | pub struct BackendConfig { method new (line 104) | fn new() -> Self { method get (line 111) | pub fn get(&self) -> AudioCaptureBackend { method set (line 116) | pub fn set(&self, backend: AudioCaptureBackend) { method available (line 122) | pub fn available(&self) -> Vec { method reset (line 127) | pub fn reset(&self) { function get_current_backend (line 138) | pub fn get_current_backend() -> AudioCaptureBackend { function set_current_backend (line 143) | pub fn set_current_backend(backend: AudioCaptureBackend) { function get_available_backends (line 148) | pub fn get_available_backends() -> Vec { function test_backend_to_string (line 157) | fn test_backend_to_string() { function test_backend_from_string (line 164) | fn test_backend_from_string() { function test_available_backends (line 183) | fn test_available_backends() { function test_default_backend (line 192) | fn test_default_backend() { function test_backend_config (line 201) | fn test_backend_config() { FILE: frontend/src-tauri/src/audio/capture/core_audio.rs type WakerState (line 20) | struct WakerState { type CoreAudioCapture (line 27) | pub struct CoreAudioCapture { method new (line 57) | pub fn new() -> Result { method start_device (line 154) | fn start_device( method stream (line 242) | pub fn stream(self) -> Result { method new (line 392) | pub fn new() -> Result { method stream (line 396) | pub fn stream(self) -> Result { type CoreAudioStream (line 34) | pub struct CoreAudioStream { method sample_rate (line 337) | pub fn sample_rate(&self) -> u32 { method sample_rate (line 403) | pub fn sample_rate(&self) -> u32 { type AudioContext (line 45) | struct AudioContext { function process_audio_data (line 300) | fn process_audio_data(ctx: &mut AudioContext, data: &[f32]) { type Item (line 344) | type Item = f32; method poll_next (line 346) | fn poll_next( method drop (line 377) | fn drop(&mut self) { type CoreAudioCapture (line 385) | pub struct CoreAudioCapture; method new (line 57) | pub fn new() -> Result { method start_device (line 154) | fn start_device( method stream (line 242) | pub fn stream(self) -> Result { method new (line 392) | pub fn new() -> Result { method stream (line 396) | pub fn stream(self) -> Result { type CoreAudioStream (line 388) | pub struct CoreAudioStream; method sample_rate (line 337) | pub fn sample_rate(&self) -> u32 { method sample_rate (line 403) | pub fn sample_rate(&self) -> u32 { type Item (line 410) | type Item = f32; method poll_next (line 412) | fn poll_next( function test_core_audio_capture (line 427) | async fn test_core_audio_capture() { FILE: frontend/src-tauri/src/audio/capture/system.rs type SystemAudioCapture (line 16) | pub struct SystemAudioCapture { method new (line 21) | pub fn new() -> Result { method list_system_devices (line 26) | pub fn list_system_devices() -> Result> { method start_system_audio_capture (line 41) | pub fn start_system_audio_capture(&self) -> Result { method check_system_audio_permissions (line 106) | pub fn check_system_audio_permissions() -> bool { type SystemAudioStream (line 115) | pub struct SystemAudioStream { method sample_rate (line 136) | pub fn sample_rate(&self) -> u32 { method drop (line 122) | fn drop(&mut self) { type Item (line 128) | type Item = f32; method poll_next (line 130) | fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll Result { function list_system_audio_devices (line 147) | pub fn list_system_audio_devices() -> Result> { function check_system_audio_permissions (line 151) | pub fn check_system_audio_permissions() -> bool { FILE: frontend/src-tauri/src/audio/common.rs function unload_engine_after_batch (line 10) | pub(crate) async fn unload_engine_after_batch(use_parakeet: bool) { function create_transcript_segments (line 39) | pub(crate) fn create_transcript_segments(transcripts: &[(String, f64, f6... function write_transcripts_json (line 60) | pub(crate) fn write_transcripts_json(folder: &Path, segments: &[Transcri... function split_segment_at_silence (line 98) | pub(crate) fn split_segment_at_silence( FILE: frontend/src-tauri/src/audio/constants.rs constant AUDIO_EXTENSIONS (line 5) | pub const AUDIO_EXTENSIONS: &[&str] = &[ FILE: frontend/src-tauri/src/audio/core-old.rs type AudioTranscriptionEngine (line 24) | pub enum AudioTranscriptionEngine { method fmt (line 33) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { method default (line 45) | fn default() -> Self { type DeviceControl (line 51) | pub struct DeviceControl { type DeviceType (line 57) | pub enum DeviceType { type AudioDevice (line 63) | pub struct AudioDevice { method new (line 69) | pub fn new(name: String, device_type: DeviceType) -> Self { method from_name (line 73) | pub fn from_name(name: &str) -> Result { method fmt (line 99) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { function parse_audio_device (line 112) | pub fn parse_audio_device(name: &str) -> Result { function configure_windows_audio (line 118) | fn configure_windows_audio(host: &cpal::Host) -> Result> { function configure_linux_audio (line 207) | fn configure_linux_audio(host: &cpal::Host) -> Result> { function list_audio_devices (line 235) | pub async fn list_audio_devices() -> Result> { function default_input_device (line 297) | pub fn default_input_device() -> Result { function default_output_device (line 305) | pub fn default_output_device() -> Result { function trigger_audio_permission (line 351) | pub fn trigger_audio_permission() -> Result<()> { type AudioStream (line 382) | pub struct AudioStream { method from_device (line 396) | pub async fn from_device( method subscribe (line 665) | pub async fn subscribe(&self) -> broadcast::Receiver> { method stop (line 669) | pub async fn stop(&self) -> Result<()> { type StreamControl (line 391) | enum StreamControl { function get_windows_device (line 699) | fn get_windows_device(audio_device: &AudioDevice) -> Result<(cpal::Devic... function get_device_and_config (line 861) | pub async fn get_device_and_config( FILE: frontend/src-tauri/src/audio/decoder.rs constant FFMPEG_ONLY_EXTENSIONS (line 23) | const FFMPEG_ONLY_EXTENSIONS: &[&str] = &["mkv", "webm", "wma"]; type ProgressCallback (line 27) | pub type ProgressCallback = Box; type DecodedAudio (line 31) | pub struct DecodedAudio { method to_whisper_format (line 48) | pub fn to_whisper_format(&self) -> Vec { method to_whisper_format_with_progress (line 53) | pub fn to_whisper_format_with_progress(&self, progress_callback: Optio... function chunked_resample_with_progress (line 126) | fn chunked_resample_with_progress( function normalize_audio_samples (line 232) | fn normalize_audio_samples(mut samples: Vec) -> Vec { function needs_ffmpeg_conversion (line 265) | fn needs_ffmpeg_conversion(path: &Path) -> bool { function convert_to_wav_with_ffmpeg (line 276) | fn convert_to_wav_with_ffmpeg( function decode_audio_file (line 392) | pub fn decode_audio_file(path: &Path) -> Result { function decode_audio_file_with_progress (line 397) | pub fn decode_audio_file_with_progress( function test_to_whisper_format_mono_16k (line 585) | fn test_to_whisper_format_mono_16k() { function test_to_whisper_format_stereo_to_mono (line 599) | fn test_to_whisper_format_stereo_to_mono() { function test_to_whisper_format_resamples_48k_to_16k (line 616) | fn test_to_whisper_format_resamples_48k_to_16k() { function test_chunked_resample_same_rate (line 636) | fn test_chunked_resample_same_rate() { function test_chunked_resample_empty_input (line 646) | fn test_chunked_resample_empty_input() { function test_chunked_resample_downsamples_correctly (line 653) | fn test_chunked_resample_downsamples_correctly() { function test_chunked_resample_preserves_signal_range (line 669) | fn test_chunked_resample_preserves_signal_range() { function test_chunked_resample_matches_single_pass (line 686) | fn test_chunked_resample_matches_single_pass() { function test_decoded_audio_duration_calculation (line 720) | fn test_decoded_audio_duration_calculation() { function test_decoded_audio_stereo_duration (line 734) | fn test_decoded_audio_stereo_duration() { function test_to_whisper_format_handles_large_file_threshold (line 749) | fn test_to_whisper_format_handles_large_file_threshold() { function test_normalize_audio_samples_already_normalized (line 767) | fn test_normalize_audio_samples_already_normalized() { function test_normalize_audio_samples_exceeds_range (line 777) | fn test_normalize_audio_samples_exceeds_range() { function test_normalize_audio_samples_handles_nan (line 788) | fn test_normalize_audio_samples_handles_nan() { function test_normalize_audio_samples_handles_infinity (line 797) | fn test_normalize_audio_samples_handles_infinity() { function test_needs_ffmpeg_conversion (line 806) | fn test_needs_ffmpeg_conversion() { FILE: frontend/src-tauri/src/audio/device_detection.rs type InputDeviceKind (line 16) | pub enum InputDeviceKind { method detect (line 37) | pub fn detect(device_name: &str, buffer_size: u32, sample_rate: u32) -... method buffer_timeout (line 79) | pub fn buffer_timeout(&self) -> (Duration, Duration) { method is_bluetooth (line 102) | pub fn is_bluetooth(&self) -> bool { method is_wired (line 107) | pub fn is_wired(&self) -> bool { method detect_by_name (line 116) | fn detect_by_name(device_name: &str) -> Option { method detect_by_buffer_size (line 200) | fn detect_by_buffer_size(buffer_size: u32, sample_rate: u32) -> Option... method detect_macos_native (line 238) | fn detect_macos_native(device_name: &str) -> Option { method detect_windows_native (line 287) | fn detect_windows_native(device_name: &str) -> Option { method detect_linux_native (line 334) | fn detect_linux_native(device_name: &str) -> Option { function calculate_buffer_timeout (line 393) | pub fn calculate_buffer_timeout( function clamp_duration (line 417) | fn clamp_duration(duration: Duration, min: Duration, max: Duration) -> D... function test_airpods_detection (line 436) | fn test_airpods_detection() { function test_builtin_mic_detection (line 442) | fn test_builtin_mic_detection() { function test_bluetooth_by_buffer_size (line 449) | fn test_bluetooth_by_buffer_size() { function test_wired_by_buffer_size (line 456) | fn test_wired_by_buffer_size() { function test_buffer_timeout_wired (line 463) | fn test_buffer_timeout_wired() { function test_buffer_timeout_bluetooth (line 470) | fn test_buffer_timeout_bluetooth() { function test_calculate_buffer_timeout_bluetooth (line 477) | fn test_calculate_buffer_timeout_bluetooth() { function test_calculate_buffer_timeout_wired (line 490) | fn test_calculate_buffer_timeout_wired() { function test_virtual_device_detection (line 505) | fn test_virtual_device_detection() { FILE: frontend/src-tauri/src/audio/device_monitor.rs type DeviceEvent (line 13) | pub enum DeviceEvent { type DeviceMonitorType (line 30) | pub enum DeviceMonitorType { type MonitoredDevice (line 37) | struct MonitoredDevice { method new (line 45) | fn new(name: String, device_type: DeviceMonitorType) -> Self { method disconnect_threshold (line 60) | fn disconnect_threshold(&self) -> u32 { method reconnect_interval (line 71) | fn reconnect_interval(&self) -> Duration { type AudioDeviceMonitor (line 81) | pub struct AudioDeviceMonitor { method new (line 89) | pub fn new() -> (Self, mpsc::UnboundedReceiver) { method start_monitoring (line 104) | pub fn start_monitoring( method stop_monitoring (line 151) | pub async fn stop_monitoring(&mut self) { method monitor_loop (line 163) | async fn monitor_loop( method default (line 256) | fn default() -> Self { method drop (line 262) | fn drop(&mut self) { function test_bluetooth_detection (line 273) | fn test_bluetooth_detection() { function test_monitor_creation (line 290) | async fn test_monitor_creation() { FILE: frontend/src-tauri/src/audio/devices/configuration.rs type AudioTranscriptionEngine (line 17) | pub enum AudioTranscriptionEngine { method fmt (line 26) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { method default (line 38) | fn default() -> Self { type DeviceControl (line 44) | pub struct DeviceControl { type DeviceType (line 50) | pub enum DeviceType { type AudioDevice (line 56) | pub struct AudioDevice { method new (line 62) | pub fn new(name: String, device_type: DeviceType) -> Self { method from_name (line 66) | pub fn from_name(name: &str) -> Result { method fmt (line 92) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { function parse_audio_device (line 106) | pub fn parse_audio_device(name: &str) -> Result { function get_device_and_config (line 111) | pub async fn get_device_and_config( FILE: frontend/src-tauri/src/audio/devices/discovery.rs function list_audio_devices (line 9) | pub async fn list_audio_devices() -> Result> { function trigger_audio_permission (line 46) | pub fn trigger_audio_permission() -> Result { FILE: frontend/src-tauri/src/audio/devices/fallback.rs function get_safe_recording_devices_macos (line 64) | pub fn get_safe_recording_devices_macos() -> Result<(Option... function get_safe_recording_devices (line 157) | pub fn get_safe_recording_devices() -> Result<(Option, Opti... function test_bluetooth_override_logic (line 172) | fn test_bluetooth_override_logic() { FILE: frontend/src-tauri/src/audio/devices/microphone.rs function default_input_device (line 8) | pub fn default_input_device() -> Result { function find_builtin_input_device (line 25) | pub fn find_builtin_input_device() -> Result> { FILE: frontend/src-tauri/src/audio/devices/platform/linux.rs function configure_linux_audio (line 7) | pub fn configure_linux_audio(host: &cpal::Host) -> Result Result Result Result<(cpal::D... FILE: frontend/src-tauri/src/audio/devices/speakers.rs function default_output_device (line 8) | pub fn default_output_device() -> Result { function find_builtin_output_device (line 61) | pub fn find_builtin_output_device() -> Result> { FILE: frontend/src-tauri/src/audio/diagnostics.rs function log_device_capabilities (line 24) | pub fn log_device_capabilities( function check_for_issues (line 96) | fn check_for_issues( function log_macos_specific_info (line 133) | fn log_macos_specific_info(_device: &AudioDevice, _config: &SupportedStr... function log_windows_specific_info (line 164) | fn log_windows_specific_info(device: &AudioDevice, _config: &SupportedSt... function log_linux_specific_info (line 181) | fn log_linux_specific_info(device: &AudioDevice, _config: &SupportedStre... function log_detection_summary (line 202) | pub fn log_detection_summary( function log_buffer_health (line 222) | pub fn log_buffer_health( function log_mixer_status (line 248) | pub fn log_mixer_status( function log_performance_summary (line 262) | pub fn log_performance_summary( function test_diagnostics_dont_panic (line 294) | fn test_diagnostics_dont_panic() { FILE: frontend/src-tauri/src/audio/encode.rs type AudioInput (line 11) | pub struct AudioInput { function encode_single_audio (line 18) | pub fn encode_single_audio( FILE: frontend/src-tauri/src/audio/ffmpeg.rs constant EXECUTABLE_NAME (line 13) | const EXECUTABLE_NAME: &str = "ffmpeg"; constant EXECUTABLE_NAME (line 16) | const EXECUTABLE_NAME: &str = "ffmpeg.exe"; function find_ffmpeg_path (line 20) | pub fn find_ffmpeg_path() -> Option { function find_ffmpeg_path_internal (line 24) | fn find_ffmpeg_path_internal() -> Option { function handle_ffmpeg_installation (line 164) | fn handle_ffmpeg_installation() -> Result<(), anyhow::Error> { function get_ffmpeg_install_dir (line 193) | fn get_ffmpeg_install_dir() -> Result { function get_ffmpeg_install_dir (line 229) | fn get_ffmpeg_install_dir() -> Result { FILE: frontend/src-tauri/src/audio/ffmpeg_mixer.rs constant RNNOISE_APPLY_ENABLED (line 20) | pub const RNNOISE_APPLY_ENABLED: bool = false; type Timestamp (line 25) | struct Timestamp { method new (line 32) | fn new() -> Self { method advance (line 39) | fn advance(&mut self, samples: usize) { method elapsed (line 43) | fn elapsed(&self) -> Duration { type TimestampedChunk (line 50) | struct TimestampedChunk { method new (line 58) | fn new(samples: Vec, sample_rate: u32) -> Self { method duration_ms (line 68) | fn duration_ms(&self) -> f64 { method age (line 73) | fn age(&self) -> Duration { type SourceBuffer (line 79) | struct SourceBuffer { method new (line 106) | fn new(device_name: String, device_kind: InputDeviceKind, sample_rate:... method push (line 135) | fn push(&mut self, samples: Vec) { method has_data (line 169) | fn has_data(&self) -> bool { method pop_samples (line 179) | fn pop_samples(&mut self, sample_count: usize) -> Option> { method buffer_size (line 220) | fn buffer_size(&self) -> usize { method buffer_latency_ms (line 225) | fn buffer_latency_ms(&self) -> f64 { method stats (line 230) | fn stats(&self) -> BufferStats { type BufferStats (line 245) | pub struct BufferStats { type AudioMixer (line 256) | struct AudioMixer { method new (line 268) | fn new(adaptive_ducking: bool) -> Self { method mix (line 282) | fn mix(&mut self, mic: &[f32], system: &[f32]) -> Vec { type FFmpegAudioMixer (line 326) | pub struct FFmpegAudioMixer { method new (line 349) | pub fn new( method push_mic (line 378) | pub fn push_mic(&mut self, samples: Vec) { method push_system (line 383) | pub fn push_system(&mut self, samples: Vec) { method has_data_ready (line 388) | pub fn has_data_ready(&self) -> bool { method pop_mixed (line 395) | pub fn pop_mixed(&mut self) -> Option> { method get_stats (line 418) | pub fn get_stats(&self) -> (BufferStats, BufferStats) { method log_stats (line 423) | fn log_stats(&self) { method mic_buffer_size (line 438) | pub fn mic_buffer_size(&self) -> usize { method system_buffer_size (line 443) | pub fn system_buffer_size(&self) -> usize { function calculate_rms (line 449) | fn calculate_rms(samples: &[f32]) -> f32 { function test_source_buffer_basic (line 463) | fn test_source_buffer_basic() { function test_ffmpeg_mixer_creation (line 478) | fn test_ffmpeg_mixer_creation() { function test_rms_calculation (line 492) | fn test_rms_calculation() { function test_audio_mixer_clipping_prevention (line 499) | fn test_audio_mixer_clipping_prevention() { FILE: frontend/src-tauri/src/audio/hardware_detector.rs type HardwareProfile (line 6) | pub struct HardwareProfile { method detect (line 52) | pub fn detect() -> &'static HardwareProfile { method detect_hardware (line 61) | fn detect_hardware() -> HardwareProfile { method detect_cpu_cores (line 77) | fn detect_cpu_cores() -> u8 { method detect_gpu (line 84) | fn detect_gpu() -> (bool, GpuType) { method detect_memory_gb (line 108) | fn detect_memory_gb() -> u8 { method calculate_performance_tier (line 120) | fn calculate_performance_tier(cpu_cores: u8, gpu_type: &GpuType, memor... method has_metal_support (line 154) | fn has_metal_support() -> bool { method has_cuda_support (line 159) | fn has_cuda_support() -> bool { method has_vulkan_support (line 166) | fn has_vulkan_support() -> bool { method get_whisper_config (line 174) | pub fn get_whisper_config(&self) -> AdaptiveWhisperConfig { method get_recommended_chunk_duration_ms (line 224) | pub fn get_recommended_chunk_duration_ms(&self) -> u32 { method can_handle_realtime (line 234) | pub fn can_handle_realtime(&self, sample_rate: u32, channels: u16) -> ... type GpuType (line 15) | pub enum GpuType { type PerformanceTier (line 24) | pub enum PerformanceTier { type AdaptiveWhisperConfig (line 33) | pub struct AdaptiveWhisperConfig { type ChunkSizePreference (line 42) | pub enum ChunkSizePreference { function test_hardware_detection (line 251) | fn test_hardware_detection() { function test_whisper_config_generation (line 259) | fn test_whisper_config_generation() { function test_performance_tier_logic (line 271) | fn test_performance_tier_logic() { FILE: frontend/src-tauri/src/audio/import.rs type ImportGuard (line 33) | struct ImportGuard; method acquire (line 37) | fn acquire() -> Result { method drop (line 49) | fn drop(&mut self) { constant VAD_REDEMPTION_TIME_MS (line 58) | const VAD_REDEMPTION_TIME_MS: u32 = 2000; constant MAX_FILE_SIZE_BYTES (line 61) | const MAX_FILE_SIZE_BYTES: u64 = 20 * 1024 * 1024 * 1024; type AudioFileInfo (line 65) | pub struct AudioFileInfo { type ImportProgress (line 75) | pub struct ImportProgress { type ImportResult (line 83) | pub struct ImportResult { type ImportError (line 92) | pub struct ImportError { type ImportWarning (line 98) | pub struct ImportWarning { type ImportStarted (line 105) | pub struct ImportStarted { function is_import_in_progress (line 110) | pub fn is_import_in_progress() -> bool { function cancel_import (line 115) | pub fn cancel_import() { function validate_audio_file (line 121) | pub fn validate_audio_file(path: &Path) -> Result { function extract_duration_from_metadata (line 194) | fn extract_duration_from_metadata(path: &Path) -> Result { function start_import (line 254) | pub async fn start_import( function run_import (line 311) | async fn run_import( function emit_progress (line 677) | fn emit_progress(app: &AppHandle, stage: &str, progress: ... function create_meeting_with_transcripts (line 690) | async fn create_meeting_with_transcripts( function get_or_init_whisper (line 751) | async fn get_or_init_whisper( function get_or_init_parakeet (line 797) | async fn get_or_init_parakeet( function get_configured_model (line 843) | async fn get_configured_model(app: &AppHandle, provider_t... function write_import_metadata (line 879) | fn write_import_metadata( function select_and_validate_audio_command (line 918) | pub async fn select_and_validate_audio_command( function validate_audio_file_command (line 957) | pub async fn validate_audio_file_command(path: String) -> Result( function cancel_import_command (line 993) | pub async fn cancel_import_command() -> Result<(), String> { function is_import_in_progress_command (line 1003) | pub async fn is_import_in_progress_command() -> bool { function test_audio_extensions (line 1012) | fn test_audio_extensions() { function test_create_transcript_segments_empty (line 1020) | fn test_create_transcript_segments_empty() { function test_create_transcript_segments_single (line 1027) | fn test_create_transcript_segments_single() { function test_cancellation_flag (line 1038) | fn test_cancellation_flag() { function test_extract_duration_from_metadata_wav (line 1052) | fn test_extract_duration_from_metadata_wav() { function test_extract_duration_from_metadata_mp3 (line 1065) | fn test_extract_duration_from_metadata_mp3() { function test_validate_audio_file_with_metadata (line 1077) | fn test_validate_audio_file_with_metadata() { function test_validate_audio_file_nonexistent (line 1091) | fn test_validate_audio_file_nonexistent() { function test_validate_audio_file_wrong_extension (line 1098) | fn test_validate_audio_file_wrong_extension() { function test_split_segment_at_silence_short_segment (line 1113) | fn test_split_segment_at_silence_short_segment() { function test_split_segment_at_silence_splits_long_segment (line 1127) | fn test_split_segment_at_silence_splits_long_segment() { function test_split_segment_at_silence_no_silence_uses_overlap (line 1156) | fn test_split_segment_at_silence_no_silence_uses_overlap() { function test_write_transcripts_json (line 1174) | fn test_write_transcripts_json() { function test_write_import_metadata (line 1216) | fn test_write_import_metadata() { function test_import_pipeline_decode_vad (line 1247) | fn test_import_pipeline_decode_vad() { FILE: frontend/src-tauri/src/audio/incremental_saver.rs type AudioData (line 12) | struct AudioData { type IncrementalAudioSaver (line 19) | pub struct IncrementalAudioSaver { method new (line 34) | pub fn new(meeting_folder: PathBuf, sample_rate: u32) -> Result { method add_chunk (line 54) | pub fn add_chunk(&mut self, chunk: AudioChunk) -> Result<()> { method save_checkpoint (line 78) | fn save_checkpoint(&mut self) -> Result<()> { method finalize (line 117) | pub async fn finalize(&mut self) -> Result { method merge_checkpoints (line 149) | async fn merge_checkpoints(&self, output: &PathBuf) -> Result<()> { method get_meeting_folder (line 218) | pub fn get_meeting_folder(&self) -> &PathBuf { method get_checkpoint_count (line 223) | pub fn get_checkpoint_count(&self) -> u32 { type AudioRecoveryStatus (line 230) | pub struct AudioRecoveryStatus { function recover_audio_from_checkpoints (line 241) | pub async fn recover_audio_from_checkpoints( function cleanup_checkpoints (line 376) | pub async fn cleanup_checkpoints(meeting_folder: String) -> Result<(), S... function has_audio_checkpoints (line 396) | pub async fn has_audio_checkpoints(meeting_folder: String) -> Result Self { method start_monitoring (line 43) | pub async fn start_monitoring( method stop_monitoring (line 118) | pub async fn stop_monitoring(&self) -> Result<()> { method is_monitoring (line 135) | pub fn is_monitoring(&self) -> bool { method find_device_by_name (line 140) | fn find_device_by_name(&self, host: &cpal::Host, device_name: &str) ->... method create_level_stream (line 167) | async fn create_level_stream( function process_audio_levels (line 285) | fn process_audio_levels( type AudioLevelState (line 334) | struct AudioLevelState { function is_monitoring (line 346) | pub fn is_monitoring() -> bool { function stop_monitoring (line 351) | pub async fn stop_monitoring() -> Result<()> { FILE: frontend/src-tauri/src/audio/permissions.rs function check_screen_recording_permission (line 18) | pub fn check_screen_recording_permission() -> bool { function check_screen_recording_permission (line 28) | pub fn check_screen_recording_permission() -> bool { function request_screen_recording_permission (line 35) | pub fn request_screen_recording_permission() -> Result<()> { function request_screen_recording_permission (line 58) | pub fn request_screen_recording_permission() -> Result<()> { function ensure_screen_recording_permission (line 64) | pub fn ensure_screen_recording_permission() -> bool { function check_screen_recording_permission_command (line 81) | pub async fn check_screen_recording_permission_command() -> bool { function request_screen_recording_permission_command (line 87) | pub async fn request_screen_recording_permission_command() -> Result<(),... function trigger_system_audio_permission (line 95) | pub fn trigger_system_audio_permission() -> Result { function trigger_system_audio_permission (line 128) | pub fn trigger_system_audio_permission() -> Result { function trigger_system_audio_permission_command (line 137) | pub async fn trigger_system_audio_permission_command() -> Result Self { method add_samples (line 49) | fn add_samples(&mut self, device_type: DeviceType, samples: Vec) { method can_mix (line 87) | fn can_mix(&self) -> bool { method extract_window (line 92) | fn extract_window(&mut self) -> Option<(Vec, Vec)> { type ProfessionalAudioMixer (line 147) | struct ProfessionalAudioMixer; method new (line 150) | fn new(_sample_rate: u32) -> Self { method mix_window (line 154) | fn mix_window(&mut self, mic_window: &[f32], sys_window: &[f32]) -> Ve... type AudioCapture (line 194) | pub struct AudioCapture { method new (line 217) | pub fn new( method process_audio_data (line 386) | pub fn process_audio_data(&self, data: &[f32]) { method handle_stream_error (line 648) | pub fn handle_stream_error(&self, error: cpal::StreamError) { type AudioPipeline (line 680) | pub struct AudioPipeline { method new (line 700) | pub fn new( method run (line 767) | pub async fn run(mut self) -> Result<()> { method flush_remaining_audio (line 900) | fn flush_remaining_audio(&mut self) -> Result<()> { type AudioPipelineManager (line 944) | pub struct AudioPipelineManager { method new (line 950) | pub fn new() -> Self { method start (line 958) | pub fn start( method stop (line 1010) | pub async fn stop(&mut self) -> Result<()> { method force_flush_and_stop (line 1030) | pub async fn force_flush_and_stop(&mut self) -> Result<()> { method default (line 1077) | fn default() -> Self { FILE: frontend/src-tauri/src/audio/playback_monitor.rs type AudioOutputInfo (line 9) | pub struct AudioOutputInfo { function get_active_audio_output (line 17) | pub async fn get_active_audio_output() -> Result { function get_macos_output (line 35) | async fn get_macos_output() -> Result { function get_windows_output (line 82) | async fn get_windows_output() -> Result { function get_linux_output (line 121) | async fn get_linux_output() -> Result { function test_get_output_device (line 164) | async fn test_get_output_device() { FILE: frontend/src-tauri/src/audio/post_processor.rs type PostProcessRequest (line 8) | pub struct PostProcessRequest { type PostProcessResponse (line 17) | pub struct PostProcessResponse { type PostProcessor (line 27) | pub struct PostProcessor { method new (line 35) | pub fn new() -> Self { method process_async (line 98) | pub fn process_async(&self, request: PostProcessRequest) -> Result<()> { method try_recv (line 105) | pub async fn try_recv(&self) -> Option { method recv (line 111) | pub async fn recv(&self) -> Option { method process_text (line 117) | async fn process_text(request: &PostProcessRequest) -> Result { method clean_repetitive_text (line 145) | fn clean_repetitive_text(text: &str) -> String { method remove_artifacts (line 196) | fn remove_artifacts(text: &str) -> String { method normalize_text (line 217) | fn normalize_text(text: &str) -> String { method apply_contextual_improvements (line 242) | fn apply_contextual_improvements(text: &str) -> String { method default (line 273) | fn default() -> Self { FILE: frontend/src-tauri/src/audio/recording_commands.rs type RecordingArgs (line 53) | pub struct RecordingArgs { type TranscriptionStatus (line 58) | pub struct TranscriptionStatus { function start_recording (line 69) | pub async fn start_recording(app: AppHandle) -> Result<()... function start_recording_with_meeting_name (line 74) | pub async fn start_recording_with_meeting_name( function start_recording_with_devices (line 306) | pub async fn start_recording_with_devices( function start_recording_with_devices_and_meeting (line 315) | pub async fn start_recording_with_devices_and_meeting( function stop_recording (line 477) | pub async fn stop_recording( function is_recording (line 894) | pub async fn is_recording() -> bool { function get_transcription_status (line 899) | pub async fn get_transcription_status() -> TranscriptionStatus { function pause_recording (line 909) | pub async fn pause_recording(app: AppHandle) -> Result<()... function resume_recording (line 943) | pub async fn resume_recording(app: AppHandle) -> Result<(... function is_recording_paused (line 977) | pub async fn is_recording_paused() -> bool { function get_recording_state (line 988) | pub async fn get_recording_state() -> serde_json::Value { function get_meeting_folder_path (line 1018) | pub async fn get_meeting_folder_path() -> Result, String> { function get_transcript_history (line 1030) | pub async fn get_transcript_history() -> Result Result, Stri... type DeviceEventResponse (line 1060) | pub enum DeviceEventResponse { method from (line 1073) | fn from(event: DeviceEvent) -> Self { type ReconnectionStatus (line 1094) | pub struct ReconnectionStatus { type DisconnectedDeviceInfo (line 1101) | pub struct DisconnectedDeviceInfo { function poll_audio_device_events (line 1109) | pub async fn poll_audio_device_events() -> Result Result Result Self { method start_recording (line 63) | pub async fn start_recording( method start_recording_with_defaults_and_auto_save (line 170) | pub async fn start_recording_with_defaults_and_auto_save(&mut self, au... method stop_streams_only (line 229) | pub async fn stop_streams_only(&mut self) -> Result<()> { method stop_streams_and_force_flush (line 255) | pub async fn stop_streams_and_force_flush(&mut self) -> Result<()> { method save_recording_only (line 288) | pub async fn save_recording_only(&mut self, app: &t... method stop_recording (line 314) | pub async fn stop_recording(&mut self, app: &tauri:... method get_recording_stats (line 353) | pub fn get_recording_stats(&self) -> (usize, u32) { method is_recording (line 358) | pub fn is_recording(&self) -> bool { method pause_recording (line 363) | pub fn pause_recording(&self) -> Result<()> { method resume_recording (line 369) | pub fn resume_recording(&self) -> Result<()> { method is_paused (line 375) | pub fn is_paused(&self) -> bool { method is_active (line 380) | pub fn is_active(&self) -> bool { method get_stats (line 385) | pub fn get_stats(&self) -> super::recording_state::RecordingStats { method get_recording_duration (line 390) | pub fn get_recording_duration(&self) -> Option { method get_active_recording_duration (line 395) | pub fn get_active_recording_duration(&self) -> Option { method get_total_pause_duration (line 400) | pub fn get_total_pause_duration(&self) -> f64 { method get_current_pause_duration (line 405) | pub fn get_current_pause_duration(&self) -> Option { method get_error_info (line 410) | pub fn get_error_info(&self) -> (u32, Option usize { method set_error_callback (line 420) | pub fn set_error_callback(&self, callback: F) method has_fatal_error (line 428) | pub fn has_fatal_error(&self) -> bool { method set_meeting_name (line 433) | pub fn set_meeting_name(&mut self, name: Option) { method add_transcript_segment (line 438) | pub fn add_transcript_segment(&self, segment: super::recording_saver::... method add_transcript_chunk (line 443) | pub fn add_transcript_chunk(&self, text: String) { method get_transcript_segments (line 449) | pub fn get_transcript_segments(&self) -> Vec Option { method cleanup_without_save (line 460) | pub async fn cleanup_without_save(&mut self) { method get_meeting_folder (line 482) | pub fn get_meeting_folder(&self) -> Option { method poll_device_events (line 488) | pub fn poll_device_events(&mut self) -> Option { method attempt_device_reconnect (line 498) | pub async fn attempt_device_reconnect(&mut self, device_name: &str, de... method handle_device_disconnect (line 553) | pub async fn handle_device_disconnect(&mut self, device_name: String, ... method handle_device_reconnect (line 572) | pub async fn handle_device_reconnect(&mut self, device_name: String, d... method is_reconnecting (line 594) | pub fn is_reconnecting(&self) -> bool { method get_state (line 599) | pub fn get_state(&self) -> &Arc { method default (line 605) | fn default() -> Self { method drop (line 611) | fn drop(&mut self) { FILE: frontend/src-tauri/src/audio/recording_preferences.rs type RecordingPreferences (line 15) | pub struct RecordingPreferences { method default (line 29) | fn default() -> Self { function get_default_recordings_folder (line 43) | pub fn get_default_recordings_folder() -> PathBuf { function ensure_recordings_directory (line 80) | pub fn ensure_recordings_directory(path: &PathBuf) -> Result<()> { function generate_recording_filename (line 89) | pub fn generate_recording_filename(format: &str) -> String { function load_recording_preferences (line 96) | pub async fn load_recording_preferences( function save_recording_preferences (line 138) | pub async fn save_recording_preferences( function get_recording_preferences (line 182) | pub async fn get_recording_preferences( function set_recording_preferences (line 191) | pub async fn set_recording_preferences( function get_default_recordings_folder_path (line 201) | pub async fn get_default_recordings_folder_path() -> Result(app: AppHandle) -> Re... function select_recording_folder (line 247) | pub async fn select_recording_folder( function get_available_audio_backends (line 261) | pub async fn get_available_audio_backends() -> Result, Strin... function get_current_audio_backend (line 277) | pub async fn get_current_audio_backend() -> Result { function set_audio_backend (line 292) | pub async fn set_audio_backend(backend: String) -> Result<(), String> { type BackendInfo (line 349) | pub struct BackendInfo { function get_audio_backend_info (line 356) | pub async fn get_audio_backend_info() -> Result, String> { FILE: frontend/src-tauri/src/audio/recording_saver.rs type TranscriptSegment (line 16) | pub struct TranscriptSegment { type MeetingMetadata (line 29) | pub struct MeetingMetadata { type DeviceInfo (line 44) | pub struct DeviceInfo { type RecordingSaver (line 50) | pub struct RecordingSaver { method new (line 61) | pub fn new() -> Self { method set_meeting_name (line 74) | pub fn set_meeting_name(&mut self, name: Option) { method set_device_info (line 79) | pub fn set_device_info(&mut self, mic_name: Option, sys_name: ... method add_transcript_segment (line 96) | pub fn add_transcript_segment(&self, segment: TranscriptSegment) { method add_transcript_chunk (line 122) | pub fn add_transcript_chunk(&self, text: String) { method start_accumulation (line 140) | pub fn start_accumulation(&mut self, auto_save: bool) -> mpsc::Unbound... method initialize_meeting_folder (line 230) | fn initialize_meeting_folder(&mut self, meeting_name: &str, create_che... method write_metadata (line 274) | fn write_metadata(&self, folder: &PathBuf, metadata: &MeetingMetadata)... method write_transcripts_json (line 286) | fn write_transcripts_json(&self, folder: &PathBuf) -> Result<()> { method get_stats (line 341) | pub fn get_stats(&self) -> (usize, u32) { method stop_and_save (line 358) | pub async fn stop_and_save( method get_meeting_folder (line 462) | pub fn get_meeting_folder(&self) -> Option<&PathBuf> { method get_transcript_segments (line 467) | pub fn get_transcript_segments(&self) -> Vec { method get_meeting_name (line 476) | pub fn get_meeting_name(&self) -> Option { method default (line 482) | fn default() -> Self { FILE: frontend/src-tauri/src/audio/recording_saver_old.rs type TranscriptSegment (line 14) | pub struct TranscriptSegment { type AudioData (line 27) | struct AudioData { function with_mic_chunks (line 37) | fn with_mic_chunks(f: F) -> Option function with_system_chunks (line 47) | fn with_system_chunks(f: F) -> Option type RecordingSaver (line 58) | pub struct RecordingSaver { method new (line 66) | pub fn new() -> Self { method set_meeting_name (line 76) | pub fn set_meeting_name(&mut self, name: Option) { method add_transcript_segment (line 81) | pub fn add_transcript_segment(&self, segment: TranscriptSegment) { method add_transcript_chunk (line 98) | pub fn add_transcript_chunk(&self, text: String) { method start_accumulation (line 114) | pub fn start_accumulation(&mut self) -> mpsc::UnboundedSender (usize, u32) { method stop_and_save (line 258) | pub async fn stop_and_save(&mut self, app: &AppHandle) ... method default (line 402) | fn default() -> Self { FILE: frontend/src-tauri/src/audio/recording_state.rs type DeviceType (line 12) | pub enum DeviceType { type AudioChunk (line 19) | pub struct AudioChunk { type ProcessedAudioChunk (line 29) | pub struct ProcessedAudioChunk { type AudioError (line 38) | pub enum AudioError { method is_recoverable (line 53) | pub fn is_recoverable(&self) -> bool { method user_message (line 70) | pub fn user_message(&self) -> &'static str { type RecordingStats (line 88) | pub struct RecordingStats { type RecordingState (line 95) | pub struct RecordingState { method new (line 130) | pub fn new() -> Arc { method start_recording (line 152) | pub fn start_recording(&self) -> Result<()> { method stop_recording (line 161) | pub fn stop_recording(&self) { method pause_recording (line 177) | pub fn pause_recording(&self) -> Result<()> { method resume_recording (line 191) | pub fn resume_recording(&self) -> Result<()> { method is_recording (line 210) | pub fn is_recording(&self) -> bool { method is_paused (line 214) | pub fn is_paused(&self) -> bool { method is_active (line 218) | pub fn is_active(&self) -> bool { method start_reconnecting (line 223) | pub fn start_reconnecting(&self, device: Arc, device_type... method stop_reconnecting (line 229) | pub fn stop_reconnecting(&self) { method is_reconnecting (line 235) | pub fn is_reconnecting(&self) -> bool { method get_disconnected_device (line 239) | pub fn get_disconnected_device(&self) -> Option<(Arc, Dev... method set_microphone_device (line 244) | pub fn set_microphone_device(&self, device: Arc) { method set_system_device (line 248) | pub fn set_system_device(&self, device: Arc) { method get_microphone_device (line 252) | pub fn get_microphone_device(&self) -> Option> { method get_system_device (line 256) | pub fn get_system_device(&self) -> Option> { method set_audio_sender (line 261) | pub fn set_audio_sender(&self, sender: mpsc::UnboundedSender Result<()> { method set_error_callback (line 286) | pub fn set_error_callback(&self, callback: F) method report_error (line 293) | pub fn report_error(&self, error: AudioError) { method get_error_count (line 326) | pub fn get_error_count(&self) -> u32 { method get_recoverable_error_count (line 330) | pub fn get_recoverable_error_count(&self) -> u32 { method get_last_error (line 334) | pub fn get_last_error(&self) -> Option { method has_fatal_error (line 338) | pub fn has_fatal_error(&self) -> bool { method get_stats (line 347) | pub fn get_stats(&self) -> RecordingStats { method get_recording_duration (line 351) | pub fn get_recording_duration(&self) -> Option { method get_active_recording_duration (line 358) | pub fn get_active_recording_duration(&self) -> Option { method get_total_pause_duration (line 375) | pub fn get_total_pause_duration(&self) -> f64 { method get_current_pause_duration (line 379) | pub fn get_current_pause_duration(&self) -> Option { method get_buffer_pool (line 391) | pub fn get_buffer_pool(&self) -> AudioBufferPool { method cleanup (line 396) | pub fn cleanup(&self) { method default (line 418) | fn default() -> Self { method clone (line 442) | fn clone(&self) -> Self { FILE: frontend/src-tauri/src/audio/retranscription.rs type RetranscriptionGuard (line 27) | struct RetranscriptionGuard; method acquire (line 31) | fn acquire() -> Result { method drop (line 43) | fn drop(&mut self) { constant VAD_REDEMPTION_TIME_MS (line 52) | const VAD_REDEMPTION_TIME_MS: u32 = 2000; type RetranscriptionProgress (line 56) | pub struct RetranscriptionProgress { type RetranscriptionResult (line 65) | pub struct RetranscriptionResult { type RetranscriptionError (line 74) | pub struct RetranscriptionError { function is_retranscription_in_progress (line 80) | pub fn is_retranscription_in_progress() -> bool { function cancel_retranscription (line 85) | pub fn cancel_retranscription() { function start_retranscription (line 90) | pub async fn start_retranscription( function find_audio_file (line 141) | fn find_audio_file(folder: &Path) -> Result { function run_retranscription (line 172) | async fn run_retranscription( function emit_progress (line 502) | fn emit_progress( function get_or_init_whisper (line 522) | async fn get_or_init_whisper( function get_configured_whisper_model (line 580) | async fn get_configured_whisper_model(app: &AppHandle) ->... function get_or_init_parakeet (line 624) | async fn get_or_init_parakeet( function get_configured_parakeet_model (line 682) | async fn get_configured_parakeet_model(app: &AppHandle) -... function write_retranscription_metadata (line 724) | fn write_retranscription_metadata( type RetranscriptionStarted (line 771) | pub struct RetranscriptionStarted { function start_retranscription_command (line 778) | pub async fn start_retranscription_command( function cancel_retranscription_command (line 821) | pub async fn cancel_retranscription_command() -> Result<(), String> { function is_retranscription_in_progress_command (line 830) | pub async fn is_retranscription_in_progress_command() -> bool { function test_create_transcript_segments_empty (line 839) | fn test_create_transcript_segments_empty() { function test_create_transcript_segments_single (line 846) | fn test_create_transcript_segments_single() { function test_create_transcript_segments_multiple (line 860) | fn test_create_transcript_segments_multiple() { function test_create_transcript_segments_trims_whitespace (line 890) | fn test_create_transcript_segments_trims_whitespace() { function test_create_transcript_segments_generates_unique_ids (line 901) | fn test_create_transcript_segments_generates_unique_ids() { function test_cancellation_flag (line 915) | fn test_cancellation_flag() { function test_vad_redemption_time_constant (line 931) | fn test_vad_redemption_time_constant() { function test_find_audio_file_common_candidates (line 937) | fn test_find_audio_file_common_candidates() { function test_find_audio_file_non_mp4_extensions (line 950) | fn test_find_audio_file_non_mp4_extensions() { function test_find_audio_file_fallback_scan (line 960) | fn test_find_audio_file_fallback_scan() { function test_find_audio_file_priority_order (line 973) | fn test_find_audio_file_priority_order() { function test_find_audio_file_empty_folder (line 984) | fn test_find_audio_file_empty_folder() { function test_find_audio_file_nonexistent_folder (line 992) | fn test_find_audio_file_nonexistent_folder() { function test_audio_extensions_constant (line 998) | fn test_audio_extensions_constant() { FILE: frontend/src-tauri/src/audio/simple_level_monitor.rs type AudioLevelData (line 8) | pub struct AudioLevelData { type AudioLevelUpdate (line 17) | pub struct AudioLevelUpdate { function start_monitoring (line 26) | pub async fn start_monitoring( function stop_monitoring (line 83) | pub async fn stop_monitoring() -> Result<()> { function is_monitoring (line 90) | pub fn is_monitoring() -> bool { FILE: frontend/src-tauri/src/audio/stream.rs type StreamBackend (line 17) | pub enum StreamBackend { type AudioStream (line 32) | pub struct AudioStream { method create (line 42) | pub async fn create( method create_with_backend (line 54) | pub async fn create_with_backend( method create_cpal_stream (line 106) | async fn create_cpal_stream( method create_core_audio_stream (line 145) | async fn create_core_audio_stream( method build_stream (line 237) | fn build_stream( method device (line 315) | pub fn device(&self) -> &AudioDevice { method stop (line 320) | pub fn stop(self) -> Result<()> { type AudioStreamManager (line 356) | pub struct AudioStreamManager { method new (line 366) | pub fn new(state: Arc) -> Self { method start_streams (line 375) | pub async fn start_streams( method stop_streams (line 430) | pub fn stop_streams(&mut self) -> Result<()> { method active_stream_count (line 460) | pub fn active_stream_count(&self) -> usize { method has_active_streams (line 472) | pub fn has_active_streams(&self) -> bool { method drop (line 478) | fn drop(&mut self) { FILE: frontend/src-tauri/src/audio/stt.rs function stt_sync (line 29) | pub fn stt_sync( function stt (line 60) | pub async fn stt( type AudioInput (line 108) | pub struct AudioInput { type TranscriptionResult (line 116) | pub struct TranscriptionResult { method cleanup_overlap (line 129) | pub fn cleanup_overlap(&mut self, previous_transcript: String) -> Opti... function create_whisper_channel (line 152) | pub async fn create_whisper_channel( function run_stt (line 305) | pub fn run_stt( function longest_common_word_substring (line 362) | pub fn longest_common_word_substring(s1: &str, s2: &str) -> Option<(usiz... FILE: frontend/src-tauri/src/audio/system_audio_commands.rs type SystemAudioDetectorState (line 10) | type SystemAudioDetectorState = Arc>>; function start_system_audio_capture_command (line 14) | pub async fn start_system_audio_capture_command() -> Result Result, ... function check_system_audio_permissions_command (line 33) | pub async fn check_system_audio_permissions_command() -> bool { function start_system_audio_monitoring (line 39) | pub async fn start_system_audio_monitoring( function stop_system_audio_monitoring (line 74) | pub async fn stop_system_audio_monitoring( function get_system_audio_monitoring_status (line 90) | pub async fn get_system_audio_monitoring_status( function init_system_audio_state (line 100) | pub fn init_system_audio_state() -> SystemAudioDetectorState { type SystemAudioStartedPayload (line 106) | pub struct SystemAudioStartedPayload { type SystemAudioStoppedPayload (line 111) | pub struct SystemAudioStoppedPayload; function test_list_system_audio_devices (line 118) | async fn test_list_system_audio_devices() { function test_check_permissions (line 133) | async fn test_check_permissions() { FILE: frontend/src-tauri/src/audio/system_audio_stream.rs type SystemAudioStreamManager (line 12) | pub struct SystemAudioStreamManager { method create (line 20) | pub async fn create( method device (line 79) | pub fn device(&self) -> &AudioDevice { method stop (line 84) | pub fn stop(mut self) -> Result<()> { type EnhancedAudioStreamManager (line 100) | pub struct EnhancedAudioStreamManager { method new (line 107) | pub fn new(state: Arc) -> Self { method start_streams (line 116) | pub async fn start_streams( method stop_streams (line 173) | pub async fn stop_streams(&mut self) -> Result<()> { method active_stream_count (line 189) | pub fn active_stream_count(&self) -> usize { function should_use_enhanced_system_audio (line 203) | fn should_use_enhanced_system_audio(device: &AudioDevice) -> bool { function test_should_use_enhanced_system_audio (line 223) | fn test_should_use_enhanced_system_audio() { FILE: frontend/src-tauri/src/audio/system_audio_types.ts type SystemAudioCommands (line 3) | interface SystemAudioCommands { type SystemAudioEvents (line 24) | interface SystemAudioEvents { FILE: frontend/src-tauri/src/audio/system_detector.rs type SystemAudioEvent (line 9) | pub enum SystemAudioEvent { type SystemAudioCallback (line 14) | pub type SystemAudioCallback = std::sync::Arc(f: F) -> SystemAudioCallback type BackgroundTask (line 25) | pub struct BackgroundTask { method start (line 31) | pub fn start(&mut self, task: F) method stop (line 56) | pub fn stop(&mut self) { method drop (line 68) | fn drop(&mut self) { type MacOSSystemAudioDetector (line 75) | pub struct MacOSSystemAudioDetector { method start (line 130) | pub fn start(&mut self, callback: SystemAudioCallback) { method stop (line 352) | pub fn stop(&mut self) { method start (line 394) | pub fn start(&mut self, _callback: SystemAudioCallback) { method stop (line 398) | pub fn stop(&mut self) {} method default (line 81) | fn default() -> Self { constant DEVICE_IS_RUNNING_SOMEWHERE (line 89) | const DEVICE_IS_RUNNING_SOMEWHERE: ca::PropAddr = ca::PropAddr { type DetectorState (line 96) | struct DetectorState { method new (line 104) | fn new() -> Self { method should_trigger (line 112) | fn should_trigger(&mut self, new_state: bool) -> bool { function list_system_audio_using_apps (line 358) | fn list_system_audio_using_apps() -> Vec { type MacOSSystemAudioDetector (line 383) | pub struct MacOSSystemAudioDetector; method start (line 130) | pub fn start(&mut self, callback: SystemAudioCallback) { method stop (line 352) | pub fn stop(&mut self) { method start (line 394) | pub fn start(&mut self, _callback: SystemAudioCallback) { method stop (line 398) | pub fn stop(&mut self) {} method default (line 387) | fn default() -> Self { type SystemAudioDetector (line 403) | pub struct SystemAudioDetector { method new (line 408) | pub fn new() -> Self { method start (line 412) | pub fn start(&mut self, callback: SystemAudioCallback) { method stop (line 416) | pub fn stop(&mut self) { function test_system_audio_detector (line 427) | async fn test_system_audio_detector() { FILE: frontend/src-tauri/src/audio/transcription/engine.rs type TranscriptionEngine (line 15) | pub enum TranscriptionEngine { method is_model_loaded (line 23) | pub async fn is_model_loaded(&self) -> bool { method get_current_model (line 32) | pub async fn get_current_model(&self) -> Option { method provider_name (line 41) | pub fn provider_name(&self) -> &str { function validate_transcription_model_ready (line 55) | pub async fn validate_transcription_model_ready(app: &AppHan... function get_or_init_transcription_engine (line 149) | pub async fn get_or_init_transcription_engine( function get_or_init_whisper (line 225) | pub async fn get_or_init_whisper( FILE: frontend/src-tauri/src/audio/transcription/parakeet_provider.rs type ParakeetProvider (line 11) | pub struct ParakeetProvider { method new (line 16) | pub fn new(engine: Arc) -> Self { method transcribe (line 23) | async fn transcribe( method is_model_loaded (line 46) | async fn is_model_loaded(&self) -> bool { method get_current_model (line 50) | async fn get_current_model(&self) -> Option { method provider_name (line 54) | fn provider_name(&self) -> &'static str { FILE: frontend/src-tauri/src/audio/transcription/provider.rs type TranscriptionError (line 14) | pub enum TranscriptionError { method fmt (line 22) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type TranscriptResult (line 42) | pub struct TranscriptResult { type TranscriptionProvider (line 50) | pub trait TranscriptionProvider: Send + Sync { method transcribe (line 59) | async fn transcribe( method is_model_loaded (line 66) | async fn is_model_loaded(&self) -> bool; method get_current_model (line 69) | async fn get_current_model(&self) -> Option; method provider_name (line 72) | fn provider_name(&self) -> &'static str; FILE: frontend/src-tauri/src/audio/transcription/whisper_provider.rs type WhisperProvider (line 10) | pub struct WhisperProvider { method new (line 15) | pub fn new(engine: Arc) -> Self { method transcribe (line 22) | async fn transcribe( method is_model_loaded (line 41) | async fn is_model_loaded(&self) -> bool { method get_current_model (line 45) | async fn get_current_model(&self) -> Option { method provider_name (line 49) | fn provider_name(&self) -> &'static str { FILE: frontend/src-tauri/src/audio/transcription/worker.rs function reset_speech_detected_flag (line 21) | pub fn reset_speech_detected_flag() { type TranscriptUpdate (line 27) | pub struct TranscriptUpdate { function start_transcription_task (line 45) | pub fn start_transcription_task( function transcribe_chunk_with_provider (line 408) | async fn transcribe_chunk_with_provider( function format_current_timestamp (line 576) | fn format_current_timestamp() -> String { function format_recording_time (line 590) | fn format_recording_time(seconds: f64) -> String { FILE: frontend/src-tauri/src/audio/vad.rs type SpeechSegment (line 9) | pub struct SpeechSegment { type ContinuousVadProcessor (line 17) | pub struct ContinuousVadProcessor { method new (line 32) | pub fn new(input_sample_rate: u32, redemption_time_ms: u32) -> Result<... method process_audio (line 87) | pub fn process_audio(&mut self, samples: &[f32]) -> Result Result> { method flush (line 163) | pub fn flush(&mut self) -> Result> { method process_chunk (line 212) | fn process_chunk(&mut self, chunk: &[f32]) -> Result<()> { function extract_speech_16k (line 288) | pub fn extract_speech_16k(samples_mono_16k: &[f32]) -> Result> { function get_speech_chunks (line 329) | pub fn get_speech_chunks(samples_mono_16k: &[f32], redemption_time_ms: u... function get_speech_chunks_with_progress (line 335) | pub fn get_speech_chunks_with_progress( function generate_test_audio_with_speech (line 416) | fn generate_test_audio_with_speech(duration_seconds: f32, sample_rate: u... function test_vad_chunked_vs_single_processing (line 450) | fn test_vad_chunked_vs_single_processing() { function test_vad_large_file_progress (line 475) | fn test_vad_large_file_progress() { function test_vad_cancellation (line 501) | fn test_vad_cancellation() { function test_vad_continuous_processor_state_across_chunks (line 516) | fn test_vad_continuous_processor_state_across_chunks() { function test_vad_400ms_vs_2000ms_segmentation (line 543) | fn test_vad_400ms_vs_2000ms_segmentation() { FILE: frontend/src-tauri/src/audio_v2/compatibility.rs type LegacyBridge (line 15) | pub struct LegacyBridge { method new (line 34) | pub fn new(mode: AudioMode) -> Self { method initialize (line 43) | pub async fn initialize(&mut self) -> Result<()> { method start_recording (line 69) | pub async fn start_recording( method stop_recording (line 116) | pub async fn stop_recording( method mode (line 162) | pub fn mode(&self) -> &AudioMode { method switch_mode (line 167) | pub async fn switch_mode(&mut self, new_mode: AudioMode) -> Result<()> { method get_quality_metrics (line 174) | pub fn get_quality_metrics(&self) -> Option { type AudioMode (line 23) | pub enum AudioMode { type AudioQualityMetrics (line 187) | pub struct AudioQualityMetrics { method default (line 203) | fn default() -> Self { function is_legacy_enabled (line 211) | pub fn is_legacy_enabled() -> bool { function is_modern_enabled (line 216) | pub fn is_modern_enabled() -> bool { function is_hybrid_enabled (line 221) | pub fn is_hybrid_enabled() -> bool { function default_mode (line 226) | pub fn default_mode() -> super::AudioMode { FILE: frontend/src-tauri/src/audio_v2/lib.rs type AudioConfig (line 30) | pub struct AudioConfig { type MixingMode (line 45) | pub enum MixingMode { method default (line 55) | fn default() -> Self { type ModernAudioSystem (line 67) | pub struct ModernAudioSystem { method new (line 75) | pub fn new() -> Self { method with_config (line 84) | pub fn with_config(config: AudioConfig) -> Self { method initialize (line 93) | pub async fn initialize(&mut self) -> Result<()> { method start_recording (line 100) | pub async fn start_recording(&mut self) -> Result<()> { method stop_recording (line 107) | pub async fn stop_recording(&mut self) -> Result> { method config (line 114) | pub fn config(&self) -> &AudioConfig { method update_config (line 119) | pub fn update_config(&mut self, config: AudioConfig) { method default (line 125) | fn default() -> Self { FILE: frontend/src-tauri/src/audio_v2/limiter.rs type TruePeakLimiter (line 7) | pub struct TruePeakLimiter { method new (line 14) | pub fn new(sample_rate: u32, lookahead_ms: usize) -> Self { method process (line 19) | pub fn process(&mut self, sample: f32, limit: f32) -> f32 { FILE: frontend/src-tauri/src/audio_v2/mixer.rs type AudioMixer (line 10) | pub struct AudioMixer { method new (line 54) | pub fn new(mixing_mode: MixingMode) -> Self { method mix (line 66) | pub fn mix(&mut self, mic: &[f32], system: &[f32]) -> Vec { method calculate_dynamic_ratios (line 121) | fn calculate_dynamic_ratios(&self, mic_rms: f32, system_rms: f32) -> (... method mixing_mode (line 143) | pub fn mixing_mode(&self) -> &MixingMode { method set_mixing_mode (line 148) | pub fn set_mixing_mode(&mut self, mode: MixingMode) { method get_level_stats (line 153) | pub fn get_level_stats(&self) -> AudioLevelStats { type MixingMode (line 21) | pub enum MixingMode { type RmsAnalyzer (line 31) | struct RmsAnalyzer { method new (line 172) | fn new(window_size: usize) -> Self { method analyze (line 180) | fn analyze(&mut self, samples: &[f32]) -> f32 { type DuckingProcessor (line 38) | struct DuckingProcessor { method new (line 201) | fn new(threshold: f32, attack_time: f32, release_time: f32) -> Self { method process (line 211) | fn process(&mut self, mic_sample: f32, system_sample: f32) -> f32 { type CrossfadeProcessor (line 47) | struct CrossfadeProcessor { method new (line 239) | fn new(fade_length: usize) -> Self { method process (line 246) | fn process(&mut self, mic_sample: f32, system_sample: f32) -> f32 { type AudioLevelStats (line 261) | pub struct AudioLevelStats { method default (line 268) | fn default() -> Self { FILE: frontend/src-tauri/src/audio_v2/normalizer.rs type AudioNormalizer (line 9) | pub struct AudioNormalizer { method new (line 17) | pub fn new(target_lufs: f64) -> Self { method normalize (line 25) | pub fn normalize(&mut self, audio: &[f32]) -> Vec { FILE: frontend/src-tauri/src/audio_v2/recorder.rs type ModernRecorder (line 20) | pub struct ModernRecorder { method new (line 33) | pub fn new(sample_rate: u32) -> Self { method start (line 47) | pub async fn start( method process_buffers (line 111) | async fn process_buffers( method stop (line 150) | pub async fn stop(&mut self) -> Result> { method is_recording (line 169) | pub fn is_recording(&self) -> bool { method get_level_stats (line 174) | pub fn get_level_stats(&self) -> super::mixer::AudioLevelStats { method set_mixing_mode (line 179) | pub fn set_mixing_mode(&mut self, mode: MixingMode) { method active_stream_count (line 184) | pub fn active_stream_count(&self) -> usize { method default (line 190) | fn default() -> Self { FILE: frontend/src-tauri/src/audio_v2/resampler.rs type DynamicResampler (line 9) | pub struct DynamicResampler { method new (line 16) | pub fn new(target_rate: u32) -> Self { method handle_rate_change (line 21) | pub fn handle_rate_change(&mut self) { method resample (line 26) | pub fn resample(&mut self, audio: &[f32], from_rate: u32, to_rate: u32... FILE: frontend/src-tauri/src/audio_v2/stream.rs type ProcessedAudio (line 21) | pub struct ProcessedAudio { type ModernAudioStream (line 29) | pub struct ModernAudioStream { method new (line 41) | pub async fn new( method build_stream (line 85) | fn build_stream( method device (line 163) | pub fn device(&self) -> &AudioDevice { method sample_rate (line 168) | pub fn sample_rate(&self) -> u32 { method device_type (line 173) | pub fn device_type(&self) -> &DeviceType { method stop (line 178) | pub fn stop(self) -> Result<()> { type Item (line 186) | type Item = ProcessedAudio; method poll_next (line 188) | fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll Self { method start_streams (line 263) | pub async fn start_streams( method stop_streams (line 309) | pub fn stop_streams(&mut self) -> Result<()> { method get_unified_stream (line 343) | pub fn get_unified_stream(&mut self) -> Option { method active_stream_count (line 355) | pub fn active_stream_count(&self) -> usize { method drop (line 368) | fn drop(&mut self) { type UnifiedAudioStream (line 376) | pub struct UnifiedAudioStream<'a> { type Item (line 382) | type Item = ProcessedAudio; method poll_next (line 384) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll Self { method synchronize (line 30) | pub fn synchronize(&mut self) -> Result> { FILE: frontend/src-tauri/src/config.rs constant DEFAULT_WHISPER_MODEL (line 8) | pub const DEFAULT_WHISPER_MODEL: &str = "large-v3-turbo"; constant DEFAULT_PARAKEET_MODEL (line 12) | pub const DEFAULT_PARAKEET_MODEL: &str = "parakeet-tdt-0.6b-v3-int8"; constant WHISPER_MODEL_CATALOG (line 18) | pub const WHISPER_MODEL_CATALOG: &[(&str, &str, u32, &str, &str, &str)] ... FILE: frontend/src-tauri/src/console_utils/console_utils.rs function AllocConsole (line 11) | fn AllocConsole() -> i32; function FreeConsole (line 13) | fn FreeConsole() -> i32; function GetConsoleWindow (line 14) | fn GetConsoleWindow() -> *mut std::ffi::c_void; function ShowWindow (line 15) | fn ShowWindow(hwnd: *mut std::ffi::c_void, n_cmd_show: i32) -> i32; constant SW_HIDE (line 19) | const SW_HIDE: i32 = 0; constant SW_SHOW (line 21) | const SW_SHOW: i32 = 5; function show_console (line 24) | pub fn show_console() -> Result { function hide_console (line 69) | pub fn hide_console() -> Result { function toggle_console (line 110) | pub fn toggle_console() -> Result { FILE: frontend/src-tauri/src/database/commands.rs type DatabaseCheckResult (line 10) | pub struct DatabaseCheckResult { function check_first_launch (line 17) | pub async fn check_first_launch(app: AppHandle) -> Result { function select_legacy_database_path (line 25) | pub async fn select_legacy_database_path(app: AppHandle) -> Result Result Result Result Result<(), Str... function get_database_directory (line 224) | pub async fn get_database_directory(app: AppHandle) -> Result Result<(), String> { FILE: frontend/src-tauri/src/database/manager.rs type DatabaseManager (line 7) | pub struct DatabaseManager { method new (line 12) | pub async fn new(tauri_db_path: &str, backend_db_path: &str) -> Result... method new_from_app_handle (line 44) | pub async fn new_from_app_handle(app_handle: &tauri::AppHandle) -> Res... method is_first_launch (line 121) | pub async fn is_first_launch(app_handle: &tauri::AppHandle) -> Result<... method import_legacy_database (line 133) | pub async fn import_legacy_database( method pool (line 160) | pub fn pool(&self) -> &SqlitePool { method with_transaction (line 164) | pub async fn with_transaction(&self, f: F) -> Result method cleanup (line 189) | pub async fn cleanup(&self) -> Result<()> { FILE: frontend/src-tauri/src/database/models.rs type MeetingModel (line 6) | pub struct MeetingModel { type DateTimeUtc (line 16) | pub struct DateTimeUtc(pub DateTime); method from (line 19) | fn from(naive: NaiveDateTime) -> Self { type Transcript (line 26) | pub struct Transcript { type SummaryProcess (line 41) | pub struct SummaryProcess { type TranscriptChunk (line 58) | pub struct TranscriptChunk { type Setting (line 70) | pub struct Setting { method get_custom_openai_config (line 103) | pub fn get_custom_openai_config(&self) -> Option Result Re... method get_meeting (line 50) | pub async fn get_meeting( method get_meeting_metadata (line 112) | pub async fn get_meeting_metadata( method get_meeting_transcripts_paginated (line 132) | pub async fn get_meeting_transcripts_paginated( method update_meeting_title (line 168) | pub async fn update_meeting_title( method update_meeting_name (line 199) | pub async fn update_meeting_name( function delete_meeting_with_transaction (line 233) | async fn delete_meeting_with_transaction( FILE: frontend/src-tauri/src/database/repositories/setting.rs type SaveModelConfigRequest (line 6) | pub struct SaveModelConfigRequest { type SaveTranscriptConfigRequest (line 18) | pub struct SaveTranscriptConfigRequest { type SettingsRepository (line 25) | pub struct SettingsRepository; method get_model_config (line 32) | pub async fn get_model_config( method save_model_config (line 41) | pub async fn save_model_config( method save_api_key (line 70) | pub async fn save_api_key( method get_api_key (line 110) | pub async fn get_api_key( method get_transcript_config (line 142) | pub async fn get_transcript_config( method save_transcript_config (line 153) | pub async fn save_transcript_config( method save_transcript_api_key (line 175) | pub async fn save_transcript_api_key( method get_transcript_api_key (line 208) | pub async fn get_transcript_api_key( method delete_api_key (line 234) | pub async fn delete_api_key( method get_custom_openai_config (line 277) | pub async fn get_custom_openai_config( method save_custom_openai_config (line 322) | pub async fn save_custom_openai_config( FILE: frontend/src-tauri/src/database/repositories/summary.rs type SummaryProcessesRepository (line 7) | pub struct SummaryProcessesRepository; method get_summary_data (line 11) | pub async fn get_summary_data( method update_meeting_summary (line 21) | pub async fn update_meeting_summary( method get_summary_data_for_meeting (line 73) | pub async fn get_summary_data_for_meeting( method create_or_reset_process (line 85) | pub async fn create_or_reset_process( method update_process_completed (line 121) | pub async fn update_process_completed( method update_process_failed (line 154) | pub async fn update_process_failed( method update_process_cancelled (line 189) | pub async fn update_process_cancelled( FILE: frontend/src-tauri/src/database/repositories/transcript.rs type TranscriptsRepository (line 7) | pub struct TranscriptsRepository; method save_transcript (line 13) | pub async fn save_transcript( method search_transcripts (line 87) | pub async fn search_transcripts( method get_match_context (line 124) | fn get_match_context(transcript: &str, query: &str) -> String { FILE: frontend/src-tauri/src/database/repositories/transcript_chunk.rs type TranscriptChunksRepository (line 6) | pub struct TranscriptChunksRepository; method save_transcript_data (line 10) | pub async fn save_transcript_data( FILE: frontend/src-tauri/src/database/setup.rs function initialize_database_on_startup (line 9) | pub async fn initialize_database_on_startup(app: &AppHandle) -> Result<(... FILE: frontend/src-tauri/src/groq/groq.rs type GroqModel (line 8) | pub struct GroqModel { type GroqApiModel (line 15) | struct GroqApiModel { type GroqApiResponse (line 24) | struct GroqApiResponse { type CacheEntry (line 29) | struct CacheEntry { constant CACHE_TTL_SECS (line 38) | const CACHE_TTL_SECS: u64 = 300; constant FALLBACK_MODELS (line 41) | const FALLBACK_MODELS: &[&str] = &["llama-3.3-70b-versatile"]; function get_fallback_models (line 44) | fn get_fallback_models() -> Vec { function is_chat_model (line 55) | fn is_chat_model(model_id: &str) -> bool { function get_groq_models (line 72) | pub async fn get_groq_models(api_key: Option) -> Result( function stop_recording (line 145) | async fn stop_recording(app: AppHandle, args: RecordingAr... function is_recording (line 209) | async fn is_recording() -> bool { function get_transcription_status (line 214) | fn get_transcription_status() -> TranscriptionStatus { function read_audio_file (line 223) | fn read_audio_file(file_path: String) -> Result, String> { function save_transcript (line 231) | async fn save_transcript(file_path: String, content: String) -> Result<(... function start_audio_level_monitoring (line 252) | async fn start_audio_level_monitoring( function stop_audio_level_monitoring (line 267) | async fn stop_audio_level_monitoring() -> Result<(), String> { function is_audio_level_monitoring (line 276) | async fn is_audio_level_monitoring() -> bool { function get_audio_devices (line 285) | async fn get_audio_devices() -> Result, String> { function trigger_microphone_permission (line 292) | async fn trigger_microphone_permission() -> Result { function start_recording_with_devices (line 298) | async fn start_recording_with_devices( function start_recording_with_devices_and_meeting (line 307) | async fn start_recording_with_devices_and_meeting( function set_language_preference (line 376) | async fn set_language_preference(language: String) -> Result<(), String> { function get_language_preference_internal (line 386) | pub fn get_language_preference_internal() -> Option { function run (line 390) | pub fn run() { FILE: frontend/src-tauri/src/lib_old_complex.rs constant CHUNK_DURATION_MS (line 54) | const CHUNK_DURATION_MS: u32 = 30000; constant WHISPER_SAMPLE_RATE (line 55) | const WHISPER_SAMPLE_RATE: u32 = 16000; constant WAV_SAMPLE_RATE (line 56) | const WAV_SAMPLE_RATE: u32 = 44100; constant WAV_CHANNELS (line 57) | const WAV_CHANNELS: u16 = 2; constant WHISPER_CHANNELS (line 58) | const WHISPER_CHANNELS: u16 = 1; constant SENTENCE_TIMEOUT_MS (line 59) | const SENTENCE_TIMEOUT_MS: u64 = 1000; constant MIN_CHUNK_DURATION_MS (line 60) | const MIN_CHUNK_DURATION_MS: u32 = 2000; constant MIN_RECORDING_DURATION_MS (line 61) | const MIN_RECORDING_DURATION_MS: u64 = 2000; constant MAX_AUDIO_QUEUE_SIZE (line 62) | const MAX_AUDIO_QUEUE_SIZE: usize = 50; constant VAD_SILENCE_THRESHOLD (line 66) | const VAD_SILENCE_THRESHOLD: f32 = 0.003; constant VAD_RMS_SILENCE_THRESHOLD (line 67) | const VAD_RMS_SILENCE_THRESHOLD: f32 = 0.002; constant CHUNK_SILENCE_THRESHOLD (line 68) | const CHUNK_SILENCE_THRESHOLD: f32 = 0.002; constant CHUNK_AVG_SILENCE_THRESHOLD (line 69) | const CHUNK_AVG_SILENCE_THRESHOLD: f32 = 0.003; constant TRANSCRIPT_SERVER_URL (line 72) | const TRANSCRIPT_SERVER_URL: &str = "http://127.0.0.1:8178"; type RecordingArgs (line 75) | struct RecordingArgs { type TranscriptionStatus (line 80) | struct TranscriptionStatus { type TranscriptUpdate (line 87) | struct TranscriptUpdate { type AudioChunk (line 97) | struct AudioChunk { type TranscriptSegment (line 106) | struct TranscriptSegment { type TranscriptResponse (line 113) | struct TranscriptResponse { type TranscriptAccumulator (line 120) | struct TranscriptAccumulator { method new (line 131) | fn new() -> Self { method set_chunk_context (line 143) | fn set_chunk_context(&mut self, chunk_id: u64, chunk_start_time: f64, ... method add_segment (line 150) | fn add_segment(&mut self, segment: &TranscriptSegment) -> Option Option { function audio_collection_task (line 270) | async fn audio_collection_task( function send_audio_chunk (line 732) | async fn send_audio_chunk(chunk: Vec, client: &reqwest::Client, str... function transcribe_audio_chunk_whisper_rs (line 789) | async fn transcribe_audio_chunk_whisper_rs(chunk: Vec) -> Result( function whisper_rs_transcription_worker (line 1112) | async fn whisper_rs_transcription_worker( function start_recording (line 1307) | async fn start_recording(app: AppHandle) -> Result<(), St... function stop_recording (line 1480) | async fn stop_recording(app: AppHandle, args: RecordingAr... function is_recording (line 1748) | fn is_recording() -> bool { function get_transcription_status (line 1753) | fn get_transcription_status() -> TranscriptionStatus { function read_audio_file (line 1787) | fn read_audio_file(file_path: String) -> Result, String> { function save_transcript (line 1795) | async fn save_transcript(file_path: String, content: String) -> Result<(... function init_analytics (line 1816) | async fn init_analytics() -> Result<(), String> { function disable_analytics (line 1833) | async fn disable_analytics() -> Result<(), String> { function track_event (line 1842) | async fn track_event(event_name: String, properties: Option Result<(), Strin... function track_recording_stopped (line 1886) | async fn track_recording_stopped(meeting_id: String, duration_seconds: O... function track_meeting_deleted (line 1897) | async fn track_meeting_deleted(meeting_id: String) -> Result<(), String> { function track_search_performed (line 1908) | async fn track_search_performed(query: String, results_count: usize) -> ... function track_settings_changed (line 1919) | async fn track_settings_changed(setting_type: String, new_value: String)... function track_feature_used (line 1930) | async fn track_feature_used(feature_name: String) -> Result<(), String> { function is_analytics_enabled (line 1941) | async fn is_analytics_enabled() -> bool { function start_analytics_session (line 1953) | async fn start_analytics_session(user_id: String) -> Result Result<(), String> { function track_daily_active_user (line 1977) | async fn track_daily_active_user() -> Result<(), String> { function track_user_first_launch (line 1988) | async fn track_user_first_launch() -> Result<(), String> { function track_summary_generation_started (line 2000) | async fn track_summary_generation_started(model_provider: String, model_... function track_summary_generation_completed (line 2011) | async fn track_summary_generation_completed(model_provider: String, mode... function track_summary_regenerated (line 2022) | async fn track_summary_regenerated(model_provider: String, model_name: S... function track_model_changed (line 2033) | async fn track_model_changed(old_provider: String, old_model: String, ne... function track_custom_prompt_used (line 2044) | async fn track_custom_prompt_used(prompt_length: usize) -> Result<(), St... function is_analytics_session_active (line 2055) | async fn is_analytics_session_active() -> bool { function stereo_to_mono (line 2066) | fn stereo_to_mono(stereo: &[i16]) -> Vec { function run (line 2077) | pub fn run() { function resample_audio (line 2178) | fn resample_audio(samples: &[f32], from_rate: u32, to_rate: u32) -> Vec<... function whisper_init (line 2201) | async fn whisper_init() -> Result<(), String> { function whisper_get_available_models (line 2216) | async fn whisper_get_available_models() -> Result, String> { function whisper_load_model (line 2228) | async fn whisper_load_model(model_name: String) -> Result<(), String> { function whisper_get_current_model (line 2240) | async fn whisper_get_current_model() -> Result, String> { function whisper_is_model_loaded (line 2251) | async fn whisper_is_model_loaded() -> Result { function whisper_transcribe_audio (line 2262) | async fn whisper_transcribe_audio(audio_data: Vec) -> Result Result { function whisper_download_model (line 2286) | async fn whisper_download_model(app_handle: tauri::AppHandle, model_name... function whisper_cancel_download (line 2337) | async fn whisper_cancel_download(model_name: String) -> Result<(), Strin... function get_audio_devices (line 2349) | async fn get_audio_devices() -> Result, String> { function start_recording_with_devices (line 2354) | async fn start_recording_with_devices( function start_recording_with_custom_devices (line 2391) | async fn start_recording_with_custom_devices( FILE: frontend/src-tauri/src/main.rs function main (line 9) | fn main() { FILE: frontend/src-tauri/src/notifications/commands.rs type NotificationManagerState (line 15) | pub type NotificationManagerState = Arc( function get_notification_settings (line 32) | pub async fn get_notification_settings( function set_notification_settings (line 47) | pub async fn set_notification_settings( function request_notification_permission (line 64) | pub async fn request_notification_permission( function show_notification (line 80) | pub async fn show_notification( function show_test_notification (line 97) | pub async fn show_test_notification( function is_dnd_active (line 113) | pub async fn is_dnd_active( function get_system_dnd_status (line 126) | pub async fn get_system_dnd_status( function set_manual_dnd (line 139) | pub async fn set_manual_dnd( function set_notification_consent (line 156) | pub async fn set_notification_consent( function clear_notifications (line 173) | pub async fn clear_notifications( function is_notification_system_ready (line 189) | pub async fn is_notification_system_ready( function initialize_notification_manager_manual (line 202) | pub async fn initialize_notification_manager_manual( function test_notification_with_auto_consent (line 231) | pub async fn test_notification_with_auto_consent( function get_notification_stats (line 269) | pub async fn get_notification_stats( function show_recording_started_notification (line 286) | pub async fn show_recording_started_notification( function show_recording_stopped_notification (line 363) | pub async fn show_recording_stopped_notification( function show_recording_paused_notification (line 408) | pub async fn show_recording_paused_notification( function show_recording_resumed_notification (line 421) | pub async fn show_recording_resumed_notification( function show_transcription_complete_notification (line 434) | pub async fn show_transcription_complete_notification( function show_system_error_notification (line 448) | pub async fn show_system_error_notification( FILE: frontend/src-tauri/src/notifications/manager.rs type NotificationManager (line 13) | pub struct NotificationManager { function new (line 24) | pub async fn new(app_handle: AppHandle) -> Result { function initialize (line 45) | pub async fn initialize(&self) -> Result<()> { function show_notification (line 81) | pub async fn show_notification(&self, notification: Notification) -> Res... function show_recording_started (line 101) | pub async fn show_recording_started(&self, meeting_name: Option)... function show_recording_stopped (line 116) | pub async fn show_recording_stopped(&self) -> Result<()> { function show_recording_paused (line 127) | pub async fn show_recording_paused(&self) -> Result<()> { function show_recording_resumed (line 138) | pub async fn show_recording_resumed(&self) -> Result<()> { function show_transcription_complete (line 149) | pub async fn show_transcription_complete(&self, file_path: Option Result<()> { function show_test_notification (line 187) | pub async fn show_test_notification(&self) -> Result<()> { function get_settings (line 193) | pub async fn get_settings(&self) -> NotificationSettings { function update_settings (line 198) | pub async fn update_settings(&self, new_settings: NotificationSettings) ... function is_dnd_active (line 219) | pub async fn is_dnd_active(&self) -> bool { function get_system_dnd_status (line 236) | pub async fn get_system_dnd_status(&self) -> bool { function set_manual_dnd (line 241) | pub async fn set_manual_dnd(&self, enabled: bool) -> Result<()> { function request_permission (line 253) | pub async fn request_permission(&self) -> Result { function set_consent (line 265) | pub async fn set_consent(&self, consent: bool) -> Result<()> { function should_show_notification (line 277) | async fn should_show_notification(&self, notification: &Notification) ->... function clear_notifications (line 308) | pub async fn clear_notifications(&self) -> Result<()> { function is_ready (line 313) | pub async fn is_ready(&self) -> bool { function get_stats (line 318) | pub async fn get_stats(&self) -> NotificationStats { type NotificationStats (line 334) | pub struct NotificationStats { FILE: frontend/src-tauri/src/notifications/settings.rs type NotificationSettings (line 9) | pub struct NotificationSettings { type NotificationPreferences (line 39) | pub struct NotificationPreferences { method default (line 66) | fn default() -> Self { method default (line 82) | fn default() -> Self { type ConsentManager (line 97) | pub struct ConsentManager { function new (line 104) | pub fn new(app_handle: AppHandle) -> Result { function get_settings_path (line 114) | fn get_settings_path() -> Result { function load_settings (line 130) | pub async fn load_settings(&self) -> Result { function save_settings (line 144) | pub async fn save_settings(&self, settings: &NotificationSettings) -> Re... function has_consent (line 153) | pub async fn has_consent(&self) -> bool { function has_system_permission (line 161) | pub async fn has_system_permission(&self) -> bool { function set_consent (line 169) | pub async fn set_consent(&self, consent: bool) -> Result<()> { function set_system_permission (line 179) | pub async fn set_system_permission(&self, granted: bool) -> Result<()> { function update_preferences (line 189) | pub async fn update_preferences(&self, preferences: NotificationPreferen... function set_dnd_mode (line 199) | pub async fn set_dnd_mode(&self, enabled: bool) -> Result<()> { function should_show_notifications (line 209) | pub async fn should_show_notifications(&self) -> bool { function initialize_on_first_launch (line 221) | pub async fn initialize_on_first_launch(&self) -> Result Result NotificationSettings { function validate_settings (line 251) | pub fn validate_settings(settings: &NotificationSettings) -> Result<()> { function merge_with_defaults (line 263) | pub fn merge_with_defaults(partial: NotificationSettings) -> Notificatio... FILE: frontend/src-tauri/src/notifications/system.rs type SystemNotificationHandler (line 9) | pub struct SystemNotificationHandler { function new (line 14) | pub fn new(app_handle: AppHandle) -> Self { function show_notification (line 21) | pub async fn show_notification(&self, notification: Notification) -> Res... function is_dnd_active (line 51) | pub async fn is_dnd_active(&self) -> bool { function get_system_dnd_status (line 59) | pub async fn get_system_dnd_status(&self) -> bool { function request_permission (line 66) | pub async fn request_permission(&self) -> Result { function show_test_notification (line 77) | async fn show_test_notification(&self) -> Result<()> { function should_respect_dnd (line 83) | fn should_respect_dnd(&self, notification: &Notification) -> bool { function clear_notifications (line 91) | pub async fn clear_notifications(&self) -> Result<()> { function from (line 104) | fn from(timeout: &NotificationTimeout) -> Self { FILE: frontend/src-tauri/src/notifications/types.rs type Notification (line 4) | pub struct Notification { method new (line 57) | pub fn new(title: impl Into, body: impl Into, notifica... method with_priority (line 71) | pub fn with_priority(mut self, priority: NotificationPriority) -> Self { method with_timeout (line 76) | pub fn with_timeout(mut self, timeout: NotificationTimeout) -> Self { method with_sound (line 81) | pub fn with_sound(mut self, sound: bool) -> Self { method with_icon (line 86) | pub fn with_icon(mut self, icon: impl Into) -> Self { method with_id (line 91) | pub fn with_id(mut self, id: impl Into) -> Self { method add_action (line 96) | pub fn add_action(mut self, action: NotificationAction) -> Self { method recording_started (line 116) | pub fn recording_started(meeting_name: Option) -> Self { method recording_stopped (line 127) | pub fn recording_stopped() -> Self { method recording_paused (line 137) | pub fn recording_paused() -> Self { method recording_resumed (line 147) | pub fn recording_resumed() -> Self { method transcription_complete (line 157) | pub fn transcription_complete(file_path: Option) -> Self { method meeting_reminder (line 168) | pub fn meeting_reminder(minutes_until: u64, meeting_title: Option) -> Self { method test_notification (line 190) | pub fn test_notification() -> Self { type NotificationType (line 17) | pub enum NotificationType { type NotificationPriority (line 29) | pub enum NotificationPriority { type NotificationTimeout (line 37) | pub enum NotificationTimeout { type NotificationAction (line 44) | pub struct NotificationAction { type NotificationActionType (line 51) | pub enum NotificationActionType { method default (line 103) | fn default() -> Self { method default (line 109) | fn default() -> Self { FILE: frontend/src-tauri/src/ollama/metadata.rs type ModelMetadata (line 12) | pub struct ModelMetadata { type OllamaShowResponse (line 21) | struct OllamaShowResponse { type ModelDetails (line 30) | struct ModelDetails { type CacheEntry (line 38) | struct CacheEntry { type ModelMetadataCache (line 44) | pub struct ModelMetadataCache { method new (line 51) | pub fn new(ttl: Duration) -> Self { method get_or_fetch (line 66) | pub async fn get_or_fetch( method clear (line 110) | pub async fn clear(&self) { constant DEFAULT_CONTEXT_SIZES (line 118) | const DEFAULT_CONTEXT_SIZES: &[(&str, usize)] = &[ constant ULTIMATE_FALLBACK (line 130) | const ULTIMATE_FALLBACK: usize = 4000; function fetch_model_info (line 140) | async fn fetch_model_info( function extract_context_from_model_info (line 225) | fn extract_context_from_model_info( function parse_num_ctx_from_modelfile (line 257) | fn parse_num_ctx_from_modelfile(modelfile: &str) -> usize { function get_fallback_metadata (line 282) | fn get_fallback_metadata(model_name: &str) -> ModelMetadata { function test_parse_num_ctx_standard (line 319) | fn test_parse_num_ctx_standard() { function test_parse_num_ctx_with_spaces (line 325) | fn test_parse_num_ctx_with_spaces() { function test_parse_num_ctx_missing (line 331) | fn test_parse_num_ctx_missing() { function test_parse_num_ctx_multiple_params (line 337) | fn test_parse_num_ctx_multiple_params() { function test_fallback_metadata_llama (line 343) | fn test_fallback_metadata_llama() { function test_fallback_metadata_mistral (line 350) | fn test_fallback_metadata_mistral() { function test_fallback_metadata_unknown (line 356) | fn test_fallback_metadata_unknown() { function test_fallback_metadata_phi (line 362) | fn test_fallback_metadata_phi() { FILE: frontend/src-tauri/src/ollama/ollama.rs type OllamaError (line 25) | pub enum OllamaError { method fmt (line 35) | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { type OllamaModel (line 48) | pub struct OllamaModel { type OllamaApiResponse (line 56) | struct OllamaApiResponse { type OllamaApiModel (line 61) | struct OllamaApiModel { function is_localhost_endpoint (line 69) | fn is_localhost_endpoint(endpoint: Option<&str>) -> bool { function validate_endpoint_url (line 81) | fn validate_endpoint_url(url: &str) -> Result<(), OllamaError> { function get_ollama_models (line 97) | pub async fn get_ollama_models(endpoint: Option) -> Result) -> Resul... function get_models_via_http_async (line 161) | async fn get_models_via_http_async(endpoint: Option<&str>) -> Result Result, String> { function format_size (line 240) | fn format_size(size: i64) -> String { type DownloadProgress (line 253) | pub struct DownloadProgress { function pull_ollama_model (line 260) | pub async fn pull_ollama_model( function delete_ollama_model (line 436) | pub async fn delete_ollama_model( function get_ollama_model_context (line 489) | pub async fn get_ollama_model_context( FILE: frontend/src-tauri/src/onboarding.rs type OnboardingStatus (line 12) | pub struct OnboardingStatus { type ModelStatus (line 21) | pub struct ModelStatus { method default (line 27) | fn default() -> Self { function load_onboarding_status (line 43) | pub async fn load_onboarding_status( function save_onboarding_status (line 77) | pub async fn save_onboarding_status( function reset_onboarding_status (line 108) | pub async fn reset_onboarding_status( function get_onboarding_status (line 129) | pub async fn get_onboarding_status( function save_onboarding_status_cmd (line 149) | pub async fn save_onboarding_status_cmd( function reset_onboarding_status_cmd (line 159) | pub async fn reset_onboarding_status_cmd( function complete_onboarding (line 168) | pub async fn complete_onboarding( FILE: frontend/src-tauri/src/openai/openai.rs type OpenAIModel (line 8) | pub struct OpenAIModel { type OpenAIApiModel (line 14) | struct OpenAIApiModel { type OpenAIApiResponse (line 24) | struct OpenAIApiResponse { type CacheEntry (line 29) | struct CacheEntry { constant CACHE_TTL_SECS (line 38) | const CACHE_TTL_SECS: u64 = 300; constant FALLBACK_MODELS (line 41) | const FALLBACK_MODELS: &[&str] = &[ function get_fallback_models (line 68) | fn get_fallback_models() -> Vec { function is_chat_model (line 76) | fn is_chat_model(model_id: &str) -> bool { function get_openai_models (line 104) | pub async fn get_openai_models(api_key: Option) -> Result Result, String> { FILE: frontend/src-tauri/src/parakeet_engine/commands.rs function set_models_directory (line 15) | pub fn set_models_directory(app: &AppHandle) { function get_models_directory (line 36) | fn get_models_directory() -> Option { function parakeet_init (line 41) | pub async fn parakeet_init() -> Result<(), String> { function parakeet_get_available_models (line 55) | pub async fn parakeet_get_available_models() -> Result, S... function parakeet_load_model (line 72) | pub async fn parakeet_load_model( function parakeet_get_current_model (line 126) | pub async fn parakeet_get_current_model() -> Result, Stri... function parakeet_is_model_loaded (line 140) | pub async fn parakeet_is_model_loaded() -> Result { function parakeet_has_available_models (line 154) | pub async fn parakeet_has_available_models() -> Result { function parakeet_validate_model_ready (line 179) | pub async fn parakeet_validate_model_ready() -> Result { function parakeet_validate_model_ready_with_config (line 230) | pub async fn parakeet_validate_model_ready_with_config( function parakeet_transcribe_audio (line 347) | pub async fn parakeet_transcribe_audio(audio_data: Vec) -> Result Result { function parakeet_download_model (line 379) | pub async fn parakeet_download_model( function parakeet_cancel_download (line 467) | pub async fn parakeet_cancel_download( function parakeet_retry_download (line 500) | pub async fn parakeet_retry_download( function parakeet_delete_corrupted_model (line 542) | pub async fn parakeet_delete_corrupted_model(model_name: String) -> Resu... function open_parakeet_models_folder (line 560) | pub async fn open_parakeet_models_folder() -> Result<(), String> { FILE: frontend/src-tauri/src/parakeet_engine/model.rs type DecoderState (line 13) | pub type DecoderState = (Array3, Array3); constant SUBSAMPLING_FACTOR (line 15) | const SUBSAMPLING_FACTOR: usize = 8; constant WINDOW_SIZE (line 16) | const WINDOW_SIZE: f32 = 0.01; constant MAX_TOKENS_PER_STEP (line 17) | const MAX_TOKENS_PER_STEP: usize = 10; type TimestampedResult (line 23) | pub struct TimestampedResult { type ParakeetError (line 30) | pub enum ParakeetError { type ParakeetModel (line 45) | pub struct ParakeetModel { method new (line 61) | pub fn new>(model_dir: P, quantized: bool) -> Result>( method load_vocab (line 139) | fn load_vocab>(model_dir: P) -> Result<(Vec, i3... method preprocess (line 177) | pub fn preprocess( method encode (line 201) | pub fn encode( method create_decoder_state (line 227) | pub fn create_decoder_state(&self) -> Result, timestamps: Vec) -> Time... method transcribe_samples (line 455) | pub fn transcribe_samples( method drop (line 55) | fn drop(&mut self) { FILE: frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs type QuantizationType (line 15) | pub enum QuantizationType { method default (line 21) | fn default() -> Self { type ModelStatus (line 28) | pub enum ModelStatus { type DownloadProgress (line 38) | pub struct DownloadProgress { method new (line 54) | pub fn new(downloaded: u64, total: u64, speed_mbps: f64) -> Self { type ModelInfo (line 73) | pub struct ModelInfo { type ParakeetEngineError (line 84) | pub enum ParakeetEngineError { method fmt (line 94) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { method from (line 109) | fn from(err: std::io::Error) -> Self { type ParakeetEngine (line 114) | pub struct ParakeetEngine { method new_with_models_dir (line 126) | pub fn new_with_models_dir(models_dir: Option) -> Result { method discover_models (line 167) | pub async fn discover_models(&self) -> Result> { method validate_model_directory (line 262) | async fn validate_model_directory(&self, model_dir: &PathBuf) -> Resul... method clean_incomplete_model_directory (line 330) | async fn clean_incomplete_model_directory(&self, model_dir: &PathBuf) ... method load_model (line 376) | pub async fn load_model(&self, model_name: &str) -> Result<()> { method unload_model (line 430) | pub async fn unload_model(&self) -> bool { method get_current_model (line 444) | pub async fn get_current_model(&self) -> Option { method is_model_loaded (line 449) | pub async fn is_model_loaded(&self) -> bool { method transcribe_audio (line 454) | pub async fn transcribe_audio(&self, audio_data: Vec) -> Result PathBuf { method delete_model (line 483) | pub async fn delete_model(&self, model_name: &str) -> Result { method download_model (line 529) | pub async fn download_model( method download_model_detailed (line 543) | pub async fn download_model_detailed( method cancel_download (line 1051) | pub async fn cancel_download(&self, model_name: &str) -> Result<()> { FILE: frontend/src-tauri/src/state.rs type AppState (line 3) | pub struct AppState { FILE: frontend/src-tauri/src/summary/commands.rs type SummaryResponse (line 12) | pub struct SummaryResponse { type ProcessTranscriptResponse (line 24) | pub struct ProcessTranscriptResponse { function api_save_meeting_summary (line 33) | pub async fn api_save_meeting_summary( function api_get_summary (line 71) | pub async fn api_get_summary( function api_process_transcript (line 167) | pub async fn api_process_transcript( function api_cancel_summary (line 247) | pub async fn api_cancel_summary( FILE: frontend/src-tauri/src/summary/llm_client.rs constant REQUEST_TIMEOUT_DURATION (line 8) | const REQUEST_TIMEOUT_DURATION: Duration = Duration::from_secs(300); type ChatMessage (line 12) | pub struct ChatMessage { type ChatRequest (line 19) | pub struct ChatRequest { type ChatResponse (line 32) | pub struct ChatResponse { type Choice (line 37) | pub struct Choice { type MessageContent (line 42) | pub struct MessageContent { type ClaudeRequest (line 48) | pub struct ClaudeRequest { type ClaudeChatResponse (line 57) | pub struct ClaudeChatResponse { type ClaudeChatContent (line 62) | pub struct ClaudeChatContent { type LLMProvider (line 68) | pub enum LLMProvider { method from_str (line 80) | pub fn from_str(s: &str) -> Result { function generate_summary (line 113) | pub async fn generate_summary( function provider_name (line 336) | fn provider_name(provider: &LLMProvider) -> &str { FILE: frontend/src-tauri/src/summary/mod.rs type CustomOpenAIConfig (line 15) | pub struct CustomOpenAIConfig { FILE: frontend/src-tauri/src/summary/processor.rs function rough_token_count (line 16) | pub fn rough_token_count(s: &str) -> usize { function chunk_text (line 31) | pub fn chunk_text(text: &str, chunk_size_tokens: usize, overlap_tokens: ... function clean_llm_markdown_output (line 102) | pub fn clean_llm_markdown_output(markdown: &str) -> String { function extract_meeting_name_from_markdown (line 131) | pub fn extract_meeting_name_from_markdown(markdown: &str) -> Option CancellationToken { method cancel_summary (line 40) | pub fn cancel_summary(meeting_id: &str) -> bool { method cleanup_cancellation_token (line 53) | fn cleanup_cancellation_token(meeting_id: &str) { method process_transcript_background (line 75) | pub async fn process_transcript_background( method update_process_failed (line 344) | async fn update_process_failed(pool: &SqlitePool, meeting_id: &str, er... FILE: frontend/src-tauri/src/summary/summary_engine/client.rs type Request (line 25) | enum Request { type Response (line 41) | enum Response { function init_sidecar_manager (line 60) | pub async fn init_sidecar_manager(app_data_dir: PathBuf) -> Result<()> { function get_sidecar_manager (line 68) | async fn get_sidecar_manager() -> Result> { function get_cached_model_path (line 76) | fn get_cached_model_path(app_data_dir: &PathBuf, model_name: &str) -> Re... function generate_with_builtin (line 129) | pub async fn generate_with_builtin( function shutdown_sidecar_gracefully (line 241) | pub async fn shutdown_sidecar_gracefully() -> Result<()> { function force_shutdown_sidecar (line 264) | pub async fn force_shutdown_sidecar() -> Result<()> { function is_sidecar_healthy (line 280) | pub async fn is_sidecar_healthy() -> bool { function test_request_serialization (line 297) | fn test_request_serialization() { function test_response_deserialization (line 317) | fn test_response_deserialization() { function test_error_response_deserialization (line 331) | fn test_error_response_deserialization() { FILE: frontend/src-tauri/src/summary/summary_engine/commands.rs type ModelManagerState (line 16) | pub struct ModelManagerState(pub Arc>>>); function init_model_manager (line 19) | pub async fn init_model_manager(app: &AppHandle) -> anyho... function builtin_ai_list_models (line 39) | pub async fn builtin_ai_list_models( function builtin_ai_get_model_info (line 68) | pub async fn builtin_ai_get_model_info( function builtin_ai_download_model (line 98) | pub async fn builtin_ai_download_model( function builtin_ai_cancel_download (line 185) | pub async fn builtin_ai_cancel_download( function builtin_ai_delete_model (line 217) | pub async fn builtin_ai_delete_model( function builtin_ai_is_model_ready (line 237) | pub async fn builtin_ai_is_model_ready( function builtin_ai_get_available_summary_model (line 278) | pub async fn builtin_ai_get_available_summary_model( function init_model_manager_at_startup (line 331) | pub async fn init_model_manager_at_startup( function builtin_ai_get_recommended_model (line 362) | pub async fn builtin_ai_get_recommended_model() -> Result { function get_system_ram_gb (line 383) | fn get_system_ram_gb() -> Result { FILE: frontend/src-tauri/src/summary/summary_engine/model_manager.rs type DownloadProgress (line 25) | pub struct DownloadProgress { method new (line 41) | pub fn new(downloaded: u64, total: u64, speed_mbps: f64) -> Self { type ModelStatus (line 61) | pub enum ModelStatus { type ModelInfo (line 80) | pub struct ModelInfo { type ModelManager (line 110) | pub struct ModelManager { method new (line 126) | pub fn new() -> Result { method new_with_models_dir (line 131) | pub fn new_with_models_dir(models_dir: Option) -> Result { method init (line 168) | pub async fn init(&self) -> Result<()> { method scan_models (line 182) | pub async fn scan_models(&self) -> Result<()> { method list_models (line 301) | pub async fn list_models(&self) -> Vec { method get_model_info (line 311) | pub async fn get_model_info(&self, model_name: &str) -> Option... method download_model (line 337) | pub async fn download_model( method download_model_detailed (line 351) | pub async fn download_model_detailed( method validate_gguf_file (line 773) | async fn validate_gguf_file(&self, path: &PathBuf) -> Result<()> { method cancel_download (line 796) | pub async fn cancel_download(&self, model_name: &str) -> Result<()> { method delete_model (line 823) | pub async fn delete_model(&self, model_name: &str) -> Result<()> { method get_models_directory (line 848) | pub fn get_models_directory(&self) -> PathBuf { FILE: frontend/src-tauri/src/summary/summary_engine/models.rs type SamplingParams (line 14) | pub struct SamplingParams { type ModelDef (line 30) | pub struct ModelDef { function get_available_models (line 66) | pub fn get_available_models() -> Vec { function get_model_by_name (line 107) | pub fn get_model_by_name(name: &str) -> Option { function get_default_model (line 112) | pub fn get_default_model() -> ModelDef { function get_model_path (line 120) | pub fn get_model_path(app_data_dir: &PathBuf, model_name: &str) -> Resul... function get_models_directory (line 131) | pub fn get_models_directory(app_data_dir: &PathBuf) -> PathBuf { constant GEMMA3_TEMPLATE (line 140) | pub const GEMMA3_TEMPLATE: &str = "\ function format_prompt (line 157) | pub fn format_prompt( constant DEFAULT_MAX_TOKENS (line 179) | pub const DEFAULT_MAX_TOKENS: i32 = 4096; constant DEFAULT_IDLE_TIMEOUT_SECS (line 182) | pub const DEFAULT_IDLE_TIMEOUT_SECS: u64 = 300; constant GENERATION_TIMEOUT_SECS (line 185) | pub const GENERATION_TIMEOUT_SECS: u64 = 900; FILE: frontend/src-tauri/src/summary/summary_engine/sidecar.rs type SidecarManager (line 25) | pub struct SidecarManager { method new (line 78) | pub fn new(_app_data_dir: PathBuf) -> Result { method resolve_helper_binary (line 108) | fn resolve_helper_binary() -> Result { method ensure_running (line 263) | pub async fn ensure_running(&self, model_path: PathBuf) -> Result<()> { method spawn (line 279) | async fn spawn(&self, model_path: PathBuf) -> Result<()> { method send_request (line 352) | pub async fn send_request(&self, request_json: String, timeout: Durati... method read_response (line 393) | async fn read_response(&self) -> Result { method send_ping (line 413) | async fn send_ping(&self) -> Result<()> { method shutdown_gracefully (line 445) | pub async fn shutdown_gracefully(&self) -> Result<()> { method shutdown (line 476) | pub async fn shutdown(&self) -> Result<()> { method is_healthy (line 540) | pub fn is_healthy(&self) -> bool { method update_activity (line 545) | async fn update_activity(&self) { method seconds_since_activity (line 551) | async fn seconds_since_activity(&self) -> u64 { method start_health_check_loop (line 557) | fn start_health_check_loop(&self) { method start_idle_check_loop (line 605) | fn start_idle_check_loop(&self) { type RequestGuard (line 59) | struct RequestGuard { method new (line 64) | fn new(counter: Arc) -> Self { method drop (line 71) | fn drop(&mut self) { method drop (line 662) | fn drop(&mut self) { FILE: frontend/src-tauri/src/summary/template_commands.rs type TemplateInfo (line 8) | pub struct TemplateInfo { type TemplateDetails (line 21) | pub struct TemplateDetails { function api_list_templates (line 43) | pub async fn api_list_templates( function api_get_template_details (line 72) | pub async fn api_get_template_details( function api_validate_template (line 108) | pub async fn api_validate_template( function test_list_templates (line 131) | async fn test_list_templates() { function test_validate_template_valid (line 140) | async fn test_validate_template_valid() { function test_validate_template_invalid (line 161) | async fn test_validate_template_invalid() { FILE: frontend/src-tauri/src/summary/templates/defaults.rs constant DAILY_STANDUP (line 7) | pub const DAILY_STANDUP: &str = include_str!("../../../templates/daily_s... constant STANDARD_MEETING (line 10) | pub const STANDARD_MEETING: &str = include_str!("../../../templates/stan... function get_builtin_templates (line 15) | pub fn get_builtin_templates() -> Vec<(&'static str, &'static str)> { function get_builtin_template (line 29) | pub fn get_builtin_template(id: &str) -> Option<&'static str> { function list_builtin_template_ids (line 38) | pub fn list_builtin_template_ids() -> Vec<&'static str> { function test_builtin_templates_valid_json (line 47) | fn test_builtin_templates_valid_json() { function test_get_builtin_template (line 60) | fn test_get_builtin_template() { FILE: frontend/src-tauri/src/summary/templates/loader.rs function set_bundled_templates_dir (line 12) | pub fn set_bundled_templates_dir(path: PathBuf) { function get_custom_templates_dir (line 25) | fn get_custom_templates_dir() -> Option { function load_bundled_template (line 39) | fn load_bundled_template(template_id: &str) -> Option { function load_custom_template (line 64) | fn load_custom_template(template_id: &str) -> Option { function get_template (line 95) | pub fn get_template(template_id: &str) -> Result { function validate_and_parse_template (line 127) | pub fn validate_and_parse_template(json_content: &str) -> Result Vec { function list_templates (line 203) | pub fn list_templates() -> Vec<(String, String, String)> { function test_get_builtin_template (line 225) | fn test_get_builtin_template() { function test_get_nonexistent_template (line 235) | fn test_get_nonexistent_template() { function test_list_template_ids (line 241) | fn test_list_template_ids() { function test_validate_invalid_json (line 248) | fn test_validate_invalid_json() { FILE: frontend/src-tauri/src/summary/templates/mod.rs function test_module_integration (line 56) | fn test_module_integration() { function test_template_metadata (line 73) | fn test_template_metadata() { FILE: frontend/src-tauri/src/summary/templates/types.rs type TemplateSection (line 5) | pub struct TemplateSection { type Template (line 26) | pub struct Template { method validate (line 39) | pub fn validate(&self) -> Result<(), String> { method to_markdown_structure (line 74) | pub fn to_markdown_structure(&self) -> String { method to_section_instructions (line 85) | pub fn to_section_instructions(&self) -> String { function test_validate_valid_template (line 117) | fn test_validate_valid_template() { function test_validate_empty_name (line 136) | fn test_validate_empty_name() { function test_validate_invalid_format (line 147) | fn test_validate_invalid_format() { FILE: frontend/src-tauri/src/tray.rs type RecordingState (line 9) | pub enum RecordingState { function create_tray (line 19) | pub fn create_tray(app: &AppHandle) -> tauri::Result<()> { function handle_menu_event (line 37) | fn handle_menu_event(app: &AppHandle, item_id: &str) { function toggle_recording_handler (line 55) | fn toggle_recording_handler(app: &AppHandle) { function pause_recording_handler (line 117) | fn pause_recording_handler(app: &AppHandle) { function resume_recording_handler (line 134) | fn resume_recording_handler(app: &AppHandle) { function stop_recording_handler (line 152) | fn stop_recording_handler(app: &AppHandle) { function check_updates_handler (line 203) | fn check_updates_handler(app: &AppHandle) { function update_tray_menu (line 212) | pub fn update_tray_menu(app: &AppHandle) { function set_tray_state (line 222) | pub fn set_tray_state(app: &AppHandle, state: RecordingSt... function get_current_recording_state (line 237) | async fn get_current_recording_state() -> RecordingState { function check_can_record (line 267) | async fn check_can_record(app: &AppHandle) -> bool { function update_tray_menu_async (line 293) | pub async fn update_tray_menu_async(app: &AppHandle) { function build_menu (line 316) | fn build_menu( function focus_main_window (line 394) | fn focus_main_window(app: &AppHandle) { FILE: frontend/src-tauri/src/utils.rs function format_timestamp (line 1) | pub fn format_timestamp(seconds: f64) -> String { function open_system_settings (line 12) | pub async fn open_system_settings(preference_pane: String) -> Result<(),... FILE: frontend/src-tauri/src/whisper_engine/commands.rs function set_models_directory (line 15) | pub fn set_models_directory(app: &AppHandle) { function get_models_directory (line 36) | fn get_models_directory() -> Option { function whisper_init (line 41) | pub async fn whisper_init() -> Result<(), String> { function whisper_get_available_models (line 55) | pub async fn whisper_get_available_models() -> Result, St... function discover_models_standalone (line 75) | fn discover_models_standalone() -> Result, String> { function whisper_load_model (line 127) | pub async fn whisper_load_model( function whisper_get_current_model (line 181) | pub async fn whisper_get_current_model() -> Result, Strin... function whisper_is_model_loaded (line 195) | pub async fn whisper_is_model_loaded() -> Result { function whisper_has_available_models (line 209) | pub async fn whisper_has_available_models() -> Result { function whisper_validate_model_ready (line 234) | pub async fn whisper_validate_model_ready() -> Result { function whisper_validate_model_ready_with_config (line 280) | pub async fn whisper_validate_model_ready_with_config( function whisper_transcribe_audio (line 388) | pub async fn whisper_transcribe_audio(audio_data: Vec) -> Result Result { function whisper_download_model (line 422) | pub async fn whisper_download_model( function whisper_cancel_download (line 488) | pub async fn whisper_cancel_download(model_name: String) -> Result<(), S... function whisper_delete_corrupted_model (line 505) | pub async fn whisper_delete_corrupted_model(model_name: String) -> Resul... function open_models_folder (line 523) | pub async fn open_models_folder() -> Result<(), String> { FILE: frontend/src-tauri/src/whisper_engine/parallel_commands.rs type ParallelProcessorState (line 12) | pub struct ParallelProcessorState { method new (line 18) | pub fn new() -> Self { function initialize_parallel_processor (line 27) | pub async fn initialize_parallel_processor( function start_parallel_processing (line 62) | pub async fn start_parallel_processing( function pause_parallel_processing (line 86) | pub async fn pause_parallel_processing( function resume_parallel_processing (line 98) | pub async fn resume_parallel_processing( function stop_parallel_processing (line 110) | pub async fn stop_parallel_processing( function get_parallel_processing_status (line 122) | pub async fn get_parallel_processing_status( function get_system_resources (line 134) | pub async fn get_system_resources( function check_resource_constraints (line 150) | pub async fn check_resource_constraints( function calculate_optimal_workers (line 162) | pub async fn calculate_optimal_workers( function prepare_audio_chunks (line 172) | pub async fn prepare_audio_chunks( function test_parallel_processing_setup (line 204) | pub async fn test_parallel_processing_setup( FILE: frontend/src-tauri/src/whisper_engine/parallel_processor.rs type AudioChunk (line 12) | pub struct AudioChunk { type TranscriptionResult (line 21) | pub struct TranscriptionResult { type ProcessingError (line 31) | pub struct ProcessingError { type ProcessingEvent (line 39) | pub enum ProcessingEvent { type ParallelConfig (line 52) | pub struct ParallelConfig { method default (line 62) | fn default() -> Self { type ParallelProcessor (line 75) | pub struct ParallelProcessor { method new (line 102) | pub fn new( method calculate_safe_worker_count (line 134) | pub async fn calculate_safe_worker_count(&self) -> Result { method start_processing (line 145) | pub async fn start_processing( method spawn_workers (line 188) | async fn spawn_workers(&mut self, worker_count: usize, model_name: Str... method create_worker (line 199) | async fn create_worker(&self, worker_id: u32, model_name: String) -> R... method process_chunk_safely (line 328) | async fn process_chunk_safely( method start_resource_monitoring (line 372) | async fn start_resource_monitoring(&self) { method pause_processing (line 415) | pub async fn pause_processing(&self) { method resume_processing (line 421) | pub async fn resume_processing(&self) { method stop_processing (line 427) | pub async fn stop_processing(&mut self) { method get_processing_status (line 444) | pub async fn get_processing_status(&self) -> ProcessingStatus { type Worker (line 86) | struct Worker { type ChunkQueue (line 93) | struct ChunkQueue { method new (line 460) | fn new() -> Self { type ProcessingStatus (line 472) | pub struct ProcessingStatus { FILE: frontend/src-tauri/src/whisper_engine/system_monitor.rs type SystemResources (line 9) | pub struct SystemResources { type ResourceLimits (line 19) | pub struct ResourceLimits { method default (line 27) | fn default() -> Self { type SystemMonitor (line 37) | pub struct SystemMonitor { method new (line 44) | pub fn new() -> Self { method with_limits (line 56) | pub fn with_limits(limits: ResourceLimits) -> Self { method refresh_system_info (line 62) | pub async fn refresh_system_info(&self) -> Result<()> { method get_current_resources (line 77) | pub async fn get_current_resources(&self) -> Result { method get_cpu_temperature (line 109) | async fn get_cpu_temperature(&self, _system: &System) -> Option { method check_resource_constraints (line 117) | pub async fn check_resource_constraints(&self) -> Result Result { method set_monitoring_enabled (line 191) | pub fn set_monitoring_enabled(&mut self, enabled: bool) { method get_limits (line 200) | pub fn get_limits(&self) -> &ResourceLimits { method update_limits (line 204) | pub fn update_limits(&mut self, limits: ResourceLimits) { type ResourceStatus (line 212) | pub struct ResourceStatus { method is_healthy (line 221) | pub fn is_healthy(&self) -> bool { method get_primary_constraint (line 225) | pub fn get_primary_constraint(&self) -> Option { function create_system_monitor (line 239) | pub fn create_system_monitor() -> SystemMonitor { function create_system_monitor_with_limits (line 244) | pub fn create_system_monitor_with_limits( function test_system_monitor_creation (line 263) | async fn test_system_monitor_creation() { function test_get_current_resources (line 269) | async fn test_get_current_resources() { function test_safe_worker_count (line 281) | async fn test_safe_worker_count() { FILE: frontend/src-tauri/src/whisper_engine/whisper_engine.rs type ModelStatus (line 16) | pub enum ModelStatus { type ModelInfo (line 25) | pub struct ModelInfo { type WhisperEngine (line 35) | pub struct WhisperEngine { method detect_gpu_acceleration (line 53) | fn detect_gpu_acceleration() -> bool { method new (line 77) | pub fn new() -> Result { method new_with_models_dir (line 83) | pub fn new_with_models_dir(models_dir: Option) -> Result { method discover_models (line 169) | pub async fn discover_models(&self) -> Result> { method load_model (line 259) | pub async fn load_model(&self, model_name: &str) -> Result<()> { method unload_model (line 345) | pub async fn unload_model(&self) -> bool { method get_current_model (line 358) | pub async fn get_current_model(&self) -> Option { method is_model_loaded (line 362) | pub async fn is_model_loaded(&self) -> bool { method clean_repetitive_text (line 367) | fn clean_repetitive_text(text: &str) -> String { method is_meaningless_output (line 402) | fn is_meaningless_output(text: &str) -> bool { method remove_word_repetitions (line 434) | fn remove_word_repetitions<'a>(words: &'a [&'a str]) -> Vec<&'a str> { method remove_phrase_repetitions (line 461) | fn remove_phrase_repetitions<'a>(words: &'a [&'a str]) -> Vec<&'a str> { method calculate_repetition_ratio (line 498) | fn calculate_repetition_ratio(text: &str) -> f32 { method transcribe_audio_with_confidence (line 516) | pub async fn transcribe_audio_with_confidence(&self, audio_data: Vec, language: O... method get_models_directory (line 806) | pub async fn get_models_directory(&self) -> PathBuf { method validate_model_file (line 811) | async fn validate_model_file(&self, model_path: &PathBuf) -> Result<()> { method delete_model (line 832) | pub async fn delete_model(&self, model_name: &str) -> Result { method download_model (line 897) | pub async fn download_model(&self, model_name: &str, progress_callback... method cancel_download (line 1099) | pub async fn cancel_download(&self, model_name: &str) -> Result<()> { FILE: frontend/src/app/_components/SettingsModal.tsx type modalType (line 11) | type modalType = "modelSettings" | "deviceSettings" | "languageSettings"... type SettingsModalsProps (line 20) | interface SettingsModalsProps { function SettingsModals (line 37) | function SettingsModals({ FILE: frontend/src/app/_components/StatusOverlays.tsx type StatusOverlaysProps (line 1) | interface StatusOverlaysProps { type StatusOverlayProps (line 11) | interface StatusOverlayProps { function StatusOverlay (line 17) | function StatusOverlay({ show, message, sidebarCollapsed }: StatusOverla... function StatusOverlays (line 40) | function StatusOverlays({ FILE: frontend/src/app/_components/TranscriptPanel.tsx type TranscriptPanelProps (line 21) | interface TranscriptPanelProps { function TranscriptPanel (line 28) | function TranscriptPanel({ FILE: frontend/src/app/layout.tsx function ConditionalImportDialog (line 39) | function ConditionalImportDialog({ function RootLayout (line 66) | function RootLayout({ FILE: frontend/src/app/meeting-details/page-content.tsx function PageContent (line 21) | function PageContent({ FILE: frontend/src/app/meeting-details/page.tsx type MeetingDetailsResponse (line 13) | interface MeetingDetailsResponse { function MeetingDetailsContent (line 22) | function MeetingDetailsContent() { function MeetingDetails (line 383) | function MeetingDetails() { FILE: frontend/src/app/notes/[id]/page.tsx type PageProps (line 4) | interface PageProps { type Note (line 10) | interface Note { function generateStaticParams (line 19) | function generateStaticParams() { FILE: frontend/src/app/page.tsx function Home (line 25) | function Home() { FILE: frontend/src/app/settings/page.tsx constant TABS (line 17) | const TABS = [ function SettingsPage (line 25) | function SettingsPage() { FILE: frontend/src/components/AISummary/Block.tsx type BlockProps (line 6) | interface BlockProps { type CommandOption (line 21) | interface CommandOption { constant COMMANDS (line 29) | const COMMANDS: CommandOption[] = [ FILE: frontend/src/components/AISummary/BlockNoteSummaryView.tsx type BlockNoteSummaryViewProps (line 15) | interface BlockNoteSummaryViewProps { type BlockNoteSummaryViewRef (line 30) | interface BlockNoteSummaryViewRef { function detectSummaryFormat (line 37) | function detectSummaryFormat(data: any): { format: SummaryFormat; data: ... FILE: frontend/src/components/AISummary/Section.tsx type SectionProps (line 9) | interface SectionProps { FILE: frontend/src/components/AISummary/index.tsx type Props (line 9) | interface Props { FILE: frontend/src/components/About.tsx function About (line 13) | function About() { FILE: frontend/src/components/AnalyticsConsentSwitch.tsx function AnalyticsConsentSwitch (line 12) | function AnalyticsConsentSwitch() { FILE: frontend/src/components/AnalyticsDataModal.tsx type AnalyticsDataModalProps (line 6) | interface AnalyticsDataModalProps { function AnalyticsDataModal (line 12) | function AnalyticsDataModal({ isOpen, onClose, onConfirmDisable }: Analy... FILE: frontend/src/components/AnalyticsProvider.tsx type AnalyticsProviderProps (line 8) | interface AnalyticsProviderProps { type AnalyticsContextType (line 12) | interface AnalyticsContextType { function AnalyticsProvider (line 22) | function AnalyticsProvider({ children }: AnalyticsProviderProps) { FILE: frontend/src/components/AudioBackendSelector.tsx type BackendInfo (line 5) | interface BackendInfo { type AudioBackendSelectorProps (line 11) | interface AudioBackendSelectorProps { function AudioBackendSelector (line 17) | function AudioBackendSelector({ FILE: frontend/src/components/AudioLevelMeter.tsx type AudioLevelMeterProps (line 3) | interface AudioLevelMeterProps { function AudioLevelMeter (line 12) | function AudioLevelMeter({ type CompactAudioLevelMeterProps (line 108) | interface CompactAudioLevelMeterProps { function CompactAudioLevelMeter (line 116) | function CompactAudioLevelMeter({ FILE: frontend/src/components/BetaSettings.tsx function BetaSettings (line 12) | function BetaSettings() { FILE: frontend/src/components/BlockNoteEditor/BasicBlockNoteTest.tsx function BasicBlockNoteTest (line 9) | function BasicBlockNoteTest() { FILE: frontend/src/components/BlockNoteEditor/Editor.tsx type EditorProps (line 8) | interface EditorProps { function Editor (line 14) | function Editor({ initialContent, onChange, editable = true }: EditorPro... FILE: frontend/src/components/BluetoothPlaybackWarning.tsx type AudioOutputInfo (line 8) | interface AudioOutputInfo { type BluetoothPlaybackWarningProps (line 15) | interface BluetoothPlaybackWarningProps { function BluetoothPlaybackWarning (line 22) | function BluetoothPlaybackWarning({ FILE: frontend/src/components/BuiltInModelManager.tsx type ModelInfo (line 12) | interface ModelInfo { type DownloadProgressInfo (line 25) | interface DownloadProgressInfo { type BuiltInModelManagerProps (line 31) | interface BuiltInModelManagerProps { function BuiltInModelManager (line 36) | function BuiltInModelManager({ selectedModel, onModelSelect }: BuiltInMo... FILE: frontend/src/components/ChunkProgressDisplay.tsx type ChunkStatus (line 3) | interface ChunkStatus { type ProcessingProgress (line 13) | interface ProcessingProgress { type ChunkProgressDisplayProps (line 22) | interface ChunkProgressDisplayProps { function ChunkProgressDisplay (line 31) | function ChunkProgressDisplay({ function ChunkProgressMini (line 261) | function ChunkProgressMini({ progress, className = '' }: { progress: Pro... FILE: frontend/src/components/ComplianceNotification.tsx type ComplianceNotificationProps (line 7) | interface ComplianceNotificationProps { FILE: frontend/src/components/ConfidenceIndicator.tsx type ConfidenceIndicatorProps (line 3) | interface ConfidenceIndicatorProps { FILE: frontend/src/components/ConfirmationModel/confirmation-modal.tsx type ConfirmationModalProps (line 3) | interface ConfirmationModalProps { function ConfirmationModal (line 10) | function ConfirmationModal({ onConfirm, onCancel, text, isOpen }: Confir... FILE: frontend/src/components/ConsoleToggle.tsx function ConsoleToggle (line 7) | function ConsoleToggle() { FILE: frontend/src/components/CustomDialog.tsx type DialogProps (line 7) | interface DialogProps { function CustomDialog (line 13) | function CustomDialog({ triggerComponent, dialogContent, dialogTitle = "... FILE: frontend/src/components/DatabaseImport/HomebrewDatabaseDetector.tsx type HomebrewDatabaseDetectorProps (line 8) | interface HomebrewDatabaseDetectorProps { constant HOMEBREW_PATHS (line 14) | const HOMEBREW_PATHS = [ function HomebrewDatabaseDetector (line 19) | function HomebrewDatabaseDetector({ onImportSuccess, onDecline }: Homebr... FILE: frontend/src/components/DatabaseImport/LegacyDatabaseImport.tsx type LegacyDatabaseImportProps (line 10) | interface LegacyDatabaseImportProps { type ImportState (line 15) | type ImportState = 'idle' | 'selecting' | 'detecting' | 'importing' | 's... function LegacyDatabaseImport (line 17) | function LegacyDatabaseImport({ isOpen, onComplete }: LegacyDatabaseImpo... FILE: frontend/src/components/DeviceSelection.tsx type AudioDevice (line 11) | interface AudioDevice { type SelectedDevices (line 16) | interface SelectedDevices { type AudioLevelData (line 21) | interface AudioLevelData { type AudioLevelUpdate (line 29) | interface AudioLevelUpdate { type DeviceSelectionProps (line 34) | interface DeviceSelectionProps { function DeviceSelection (line 40) | function DeviceSelection({ selectedDevices, onDeviceChange, disabled = f... FILE: frontend/src/components/EditableTitle.tsx type EditableTitleProps (line 5) | interface EditableTitleProps { FILE: frontend/src/components/EmptyStateSummary.tsx type EmptyStateSummaryProps (line 13) | interface EmptyStateSummaryProps { function EmptyStateSummary (line 19) | function EmptyStateSummary({ onGenerate, hasModel, isGenerating = false ... FILE: frontend/src/components/ImportAudio/ImportAudioDialog.tsx type ImportAudioDialogProps (line 42) | interface ImportAudioDialogProps { function formatDuration (line 49) | function formatDuration(seconds: number): string { function formatFileSize (line 60) | function formatFileSize(bytes: number): string { function ImportAudioDialog (line 67) | function ImportAudioDialog({ FILE: frontend/src/components/ImportAudio/ImportDropOverlay.tsx type ImportDropOverlayProps (line 5) | interface ImportDropOverlayProps { function ImportDropOverlay (line 9) | function ImportDropOverlay({ visible }: ImportDropOverlayProps) { FILE: frontend/src/components/Info.tsx type InfoProps (line 7) | interface InfoProps { FILE: frontend/src/components/LanguageSelection.tsx type Language (line 7) | interface Language { constant LANGUAGES (line 13) | const LANGUAGES: Language[] = [ type LanguageSelectionProps (line 117) | interface LanguageSelectionProps { function LanguageSelection (line 124) | function LanguageSelection({ FILE: frontend/src/components/Logo.tsx type LogoProps (line 7) | interface LogoProps { FILE: frontend/src/components/MainContent/index.tsx type MainContentProps (line 6) | interface MainContentProps { FILE: frontend/src/components/MainNav/index.tsx type MainNavProps (line 5) | interface MainNavProps { FILE: frontend/src/components/MeetingDetails/RetranscribeDialog.tsx type RetranscribeDialogProps (line 27) | interface RetranscribeDialogProps { type RetranscriptionProgress (line 35) | interface RetranscriptionProgress { type RetranscriptionResult (line 42) | interface RetranscriptionResult { type RetranscriptionError (line 49) | interface RetranscriptionError { function RetranscribeDialog (line 54) | function RetranscribeDialog({ FILE: frontend/src/components/MeetingDetails/SummaryGeneratorButtonGroup.tsx type SummaryGeneratorButtonGroupProps (line 27) | interface SummaryGeneratorButtonGroupProps { function SummaryGeneratorButtonGroup (line 43) | function SummaryGeneratorButtonGroup({ FILE: frontend/src/components/MeetingDetails/SummaryPanel.tsx type SummaryPanelProps (line 13) | interface SummaryPanelProps { function SummaryPanel (line 53) | function SummaryPanel({ FILE: frontend/src/components/MeetingDetails/SummaryUpdaterButtonGroup.tsx type SummaryUpdaterButtonGroupProps (line 8) | interface SummaryUpdaterButtonGroupProps { function SummaryUpdaterButtonGroup (line 18) | function SummaryUpdaterButtonGroup({ FILE: frontend/src/components/MeetingDetails/TranscriptButtonGroup.tsx type TranscriptButtonGroupProps (line 12) | interface TranscriptButtonGroupProps { function TranscriptButtonGroup (line 22) | function TranscriptButtonGroup({ FILE: frontend/src/components/MeetingDetails/TranscriptPanel.tsx type TranscriptPanelProps (line 9) | interface TranscriptPanelProps { function TranscriptPanel (line 33) | function TranscriptPanel({ FILE: frontend/src/components/MessageToast.tsx type MessageToastProps (line 3) | interface MessageToastProps { function MessageToast (line 10) | function MessageToast({ message, type, show, setShow }: MessageToastProp... FILE: frontend/src/components/ModelDownloadProgress.tsx type ModelDownloadProgressProps (line 5) | interface ModelDownloadProgressProps { function ModelDownloadProgress (line 11) | function ModelDownloadProgress({ status, modelName, onCancel }: ModelDow... type ProgressRingProps (line 54) | interface ProgressRingProps { function ProgressRing (line 60) | function ProgressRing({ progress, size = 40, strokeWidth = 3 }: Progress... type DownloadSummaryProps (line 101) | interface DownloadSummaryProps { function DownloadSummary (line 107) | function DownloadSummary({ totalModels, downloadedModels, totalSizeMb }:... FILE: frontend/src/components/ModelSettingsModal.tsx type ModelConfig (line 33) | interface ModelConfig { type OllamaModel (line 48) | interface OllamaModel { type OpenRouterModel (line 55) | interface OpenRouterModel { type OpenAIModel (line 63) | interface OpenAIModel { type AnthropicModel (line 67) | interface AnthropicModel { type GroqModel (line 72) | interface GroqModel { constant OPENAI_FALLBACK_MODELS (line 78) | const OPENAI_FALLBACK_MODELS = [ constant CLAUDE_FALLBACK_MODELS (line 90) | const CLAUDE_FALLBACK_MODELS = [ constant GROQ_FALLBACK_MODELS (line 97) | const GROQ_FALLBACK_MODELS = [ type ModelSettingsModalProps (line 104) | interface ModelSettingsModalProps { function ModelSettingsModal (line 111) | function ModelSettingsModal({ FILE: frontend/src/components/ParakeetModelManager.tsx type ParakeetModelManagerProps (line 15) | interface ParakeetModelManagerProps { function ParakeetModelManager (line 22) | function ParakeetModelManager({ type ModelCardProps (line 416) | interface ModelCardProps { function ModelCard (line 427) | function ModelCard({ FILE: frontend/src/components/PermissionWarning.tsx type PermissionWarningProps (line 7) | interface PermissionWarningProps { function PermissionWarning (line 14) | function PermissionWarning({ FILE: frontend/src/components/PreferenceSettings.tsx function PreferenceSettings (line 11) | function PreferenceSettings() { FILE: frontend/src/components/RecordingControls.tsx type RecordingControlsProps (line 14) | interface RecordingControlsProps { FILE: frontend/src/components/RecordingSettings.tsx type RecordingPreferences (line 9) | interface RecordingPreferences { type RecordingSettingsProps (line 17) | interface RecordingSettingsProps { function RecordingSettings (line 21) | function RecordingSettings({ onSave }: RecordingSettingsProps) { FILE: frontend/src/components/RecordingStatusBar.tsx type RecordingStatusBarProps (line 7) | interface RecordingStatusBarProps { FILE: frontend/src/components/SettingTabs.tsx type SettingTabsProps (line 7) | interface SettingTabsProps { function SettingTabs (line 18) | function SettingTabs({ FILE: frontend/src/components/Sidebar/SidebarProvider.tsx type SidebarItem (line 10) | interface SidebarItem { type CurrentMeeting (line 17) | interface CurrentMeeting { type TranscriptSearchResult (line 23) | interface TranscriptSearchResult { type SidebarContextType (line 30) | interface SidebarContextType { function SidebarProvider (line 67) | function SidebarProvider({ children }: { children: React.ReactNode }) { FILE: frontend/src/components/Sidebar/index.tsx type SidebarItem (line 35) | interface SidebarItem { FILE: frontend/src/components/SummaryModelSettings.tsx type SummaryModelSettingsProps (line 10) | interface SummaryModelSettingsProps { function SummaryModelSettings (line 14) | function SummaryModelSettings({ refetchTrigger }: SummaryModelSettingsPr... FILE: frontend/src/components/TranscriptRecovery/TranscriptRecovery.tsx type TranscriptRecoveryProps (line 25) | interface TranscriptRecoveryProps { function TranscriptRecovery (line 34) | function TranscriptRecovery({ FILE: frontend/src/components/TranscriptSettings.tsx type TranscriptModelProps (line 12) | interface TranscriptModelProps { type TranscriptSettingsProps (line 18) | interface TranscriptSettingsProps { function TranscriptSettings (line 24) | function TranscriptSettings({ transcriptModelConfig, setTranscriptModelC... FILE: frontend/src/components/TranscriptView.tsx type TranscriptViewProps (line 10) | interface TranscriptViewProps { type SpeechDetectedEvent (line 19) | interface SpeechDetectedEvent { function formatRecordingTime (line 24) | function formatRecordingTime(seconds: number | undefined): string { function cleanRepetitions (line 35) | function cleanRepetitions(text: string): string { function cleanStopWords (line 82) | function cleanStopWords(text: string): string { FILE: frontend/src/components/UpdateCheckProvider.tsx type UpdateCheckContextType (line 9) | interface UpdateCheckContextType { function UpdateCheckProvider (line 18) | function UpdateCheckProvider({ children }: { children: React.ReactNode }) { function useUpdateCheckContext (line 72) | function useUpdateCheckContext() { FILE: frontend/src/components/UpdateDialog.tsx type UpdateDialogProps (line 17) | interface UpdateDialogProps { function UpdateDialog (line 23) | function UpdateDialog({ open, onOpenChange, updateInfo }: UpdateDialogPr... function formatBytes (line 300) | function formatBytes(bytes: number): string { FILE: frontend/src/components/UpdateNotification.tsx function setUpdateDialogCallback (line 8) | function setUpdateDialogCallback(callback: () => void) { function showUpdateNotification (line 12) | function showUpdateNotification(updateInfo: UpdateInfo, onUpdateClick?: ... FILE: frontend/src/components/VirtualizedTranscriptView.tsx type VirtualizedTranscriptViewProps (line 13) | interface VirtualizedTranscriptViewProps { constant VIRTUALIZATION_THRESHOLD (line 40) | const VIRTUALIZATION_THRESHOLD = 10; function formatRecordingTime (line 43) | function formatRecordingTime(seconds: number | undefined): string { function cleanStopWords (line 54) | function cleanStopWords(text: string): string { FILE: frontend/src/components/WhisperModelManager.tsx type ModelManagerProps (line 18) | interface ModelManagerProps { function ModelManager (line 25) | function ModelManager({ type ModelCardProps (line 493) | interface ModelCardProps { function ModelCard (line 505) | function ModelCard({ FILE: frontend/src/components/molecules/form-components/form-input-item.tsx type IInpuItemProps (line 13) | type IInpuItemProps = { FILE: frontend/src/components/molecules/form-components/form-input-switch.tsx type IInpuItemProps (line 11) | type IInpuItemProps = { FILE: frontend/src/components/molecules/form-components/form-select-item.tsx type ISelectItemProps (line 18) | type ISelectItemProps = { FILE: frontend/src/components/onboarding/OnboardingContainer.tsx function OnboardingContainer (line 8) | function OnboardingContainer({ FILE: frontend/src/components/onboarding/OnboardingFlow.tsx type OnboardingFlowProps (line 10) | interface OnboardingFlowProps { function OnboardingFlow (line 14) | function OnboardingFlow({ onComplete }: OnboardingFlowProps) { FILE: frontend/src/components/onboarding/shared/PermissionRow.tsx function PermissionRow (line 7) | function PermissionRow({ icon, title, description, status, isPending = f... FILE: frontend/src/components/onboarding/shared/ProgressIndicator.tsx type ProgressIndicatorProps (line 4) | interface ProgressIndicatorProps { function ProgressIndicator (line 17) | function ProgressIndicator({ current, total, onStepClick }: ProgressIndi... FILE: frontend/src/components/onboarding/shared/StatusIndicator.tsx function StatusIndicator (line 5) | function StatusIndicator({ status, size = 'md' }: StatusIndicatorProps) { FILE: frontend/src/components/onboarding/steps/DownloadProgressStep.tsx constant PARAKEET_MODEL (line 11) | const PARAKEET_MODEL = 'parakeet-tdt-0.6b-v3-int8'; type DownloadStatus (line 13) | type DownloadStatus = 'waiting' | 'downloading' | 'completed' | 'error'; type DownloadState (line 15) | interface DownloadState { function DownloadProgressStep (line 24) | function DownloadProgressStep() { FILE: frontend/src/components/onboarding/steps/PermissionsStep.tsx function PermissionsStep (line 9) | function PermissionsStep() { FILE: frontend/src/components/onboarding/steps/SetupOverviewStep.tsx function SetupOverviewStep (line 14) | function SetupOverviewStep() { FILE: frontend/src/components/onboarding/steps/WelcomeStep.tsx function WelcomeStep (line 7) | function WelcomeStep() { FILE: frontend/src/components/shared/DownloadProgressToast.tsx type DownloadProgress (line 8) | interface DownloadProgress { function categorizeError (line 20) | function categorizeError(error: string): string { function DownloadToastContent (line 49) | function DownloadToastContent({ function useDownloadProgressToast (line 123) | function useDownloadProgressToast() { function DownloadProgressToastProvider (line 351) | function DownloadProgressToastProvider() { FILE: frontend/src/components/ui/accordion.tsx function Accordion (line 9) | function Accordion({ function AccordionItem (line 15) | function AccordionItem({ function AccordionTrigger (line 28) | function AccordionTrigger({ function AccordionContent (line 54) | function AccordionContent({ FILE: frontend/src/components/ui/button-group.tsx function ButtonGroup (line 24) | function ButtonGroup({ function ButtonGroupText (line 40) | function ButtonGroupText({ function ButtonGroupSeparator (line 60) | function ButtonGroupSeparator({ FILE: frontend/src/components/ui/button.tsx type ButtonProps (line 41) | interface ButtonProps FILE: frontend/src/components/ui/form.tsx type FormFieldContextValue (line 20) | type FormFieldContextValue< type FormItemContextValue (line 67) | type FormItemContextValue = { FILE: frontend/src/components/ui/input-group.tsx function InputGroup (line 11) | function InputGroup({ className, ...props }: React.ComponentProps<"div">) { function InputGroupAddon (line 60) | function InputGroupAddon({ function InputGroupButton (line 100) | function InputGroupButton({ function InputGroupText (line 119) | function InputGroupText({ className, ...props }: React.ComponentProps<"s... function InputGroupInput (line 131) | function InputGroupInput({ function InputGroupTextarea (line 147) | function InputGroupTextarea({ FILE: frontend/src/components/ui/sheet.tsx type SheetContentProps (line 52) | interface SheetContentProps FILE: frontend/src/constants/audioFormats.ts constant AUDIO_EXTENSIONS (line 9) | const AUDIO_EXTENSIONS = [ type AudioExtension (line 13) | type AudioExtension = typeof AUDIO_EXTENSIONS[number]; constant AUDIO_FORMAT_DISPLAY_NAMES (line 22) | const AUDIO_FORMAT_DISPLAY_NAMES: Record = { function getAudioFormatsDisplayList (line 39) | function getAudioFormatsDisplayList(): string { FILE: frontend/src/constants/languages.ts constant LANGUAGES (line 2) | const LANGUAGES = [ FILE: frontend/src/constants/modelDefaults.ts constant DEFAULT_WHISPER_MODEL (line 10) | const DEFAULT_WHISPER_MODEL = 'large-v3-turbo'; constant DEFAULT_PARAKEET_MODEL (line 16) | const DEFAULT_PARAKEET_MODEL = 'parakeet-tdt-0.6b-v3-int8'; constant MODEL_DEFAULTS (line 21) | const MODEL_DEFAULTS = { FILE: frontend/src/contexts/ConfigContext.tsx type OllamaModel (line 11) | interface OllamaModel { type StorageLocations (line 18) | interface StorageLocations { type NotificationSettings (line 24) | interface NotificationSettings { type ConfigContextType (line 45) | interface ConfigContextType { function ConfigProvider (line 99) | function ConfigProvider({ children }: { children: ReactNode }) { function useConfig (line 541) | function useConfig() { FILE: frontend/src/contexts/ImportDialogContext.tsx type ImportDialogContextType (line 7) | interface ImportDialogContextType { type ImportDialogProviderProps (line 19) | interface ImportDialogProviderProps { function ImportDialogProvider (line 24) | function ImportDialogProvider({ children, onOpen }: ImportDialogProvider... FILE: frontend/src/contexts/OllamaDownloadContext.tsx type OllamaDownloadState (line 16) | interface OllamaDownloadState { type OllamaDownloadContextType (line 21) | interface OllamaDownloadContextType extends OllamaDownloadState { function OllamaDownloadProvider (line 36) | function OllamaDownloadProvider({ children }: { children: React.ReactNod... FILE: frontend/src/contexts/OnboardingContext.tsx constant PARAKEET_MODEL (line 8) | const PARAKEET_MODEL = 'parakeet-tdt-0.6b-v3-int8'; type OnboardingStatus (line 10) | interface OnboardingStatus { type SummaryModelProgressInfo (line 21) | interface SummaryModelProgressInfo { type ParakeetProgressInfo (line 28) | interface ParakeetProgressInfo { type OnboardingContextType (line 35) | interface OnboardingContextType { function OnboardingProvider (line 67) | function OnboardingProvider({ children }: { children: React.ReactNode }) { function useOnboarding (line 541) | function useOnboarding() { FILE: frontend/src/contexts/RecordingPostProcessingProvider.tsx function RecordingPostProcessingProvider (line 20) | function RecordingPostProcessingProvider({ children }: { children: React... FILE: frontend/src/contexts/RecordingStateContext.tsx type RecordingStatus (line 16) | enum RecordingStatus { type RecordingState (line 27) | interface RecordingState { type RecordingStateContextType (line 39) | interface RecordingStateContextType extends RecordingState { function RecordingStateProvider (line 59) | function RecordingStateProvider({ children }: { children: React.ReactNod... FILE: frontend/src/contexts/TranscriptContext.tsx type TranscriptContextType (line 11) | interface TranscriptContextType { function TranscriptProvider (line 27) | function TranscriptProvider({ children }: { children: ReactNode }) { function useTranscripts (line 533) | function useTranscripts() { FILE: frontend/src/hooks/meeting-details/useCopyOperations.ts type UseCopyOperationsProps (line 8) | interface UseCopyOperationsProps { function useCopyOperations (line 16) | function useCopyOperations({ FILE: frontend/src/hooks/meeting-details/useMeetingData.ts type UseMeetingDataProps (line 8) | interface UseMeetingDataProps { function useMeetingData (line 14) | function useMeetingData({ meeting, summaryData, onMeetingUpdated }: UseM... FILE: frontend/src/hooks/meeting-details/useMeetingOperations.ts type UseMeetingOperationsProps (line 5) | interface UseMeetingOperationsProps { function useMeetingOperations (line 9) | function useMeetingOperations({ FILE: frontend/src/hooks/meeting-details/useModelConfiguration.ts type UseModelConfigurationProps (line 7) | interface UseModelConfigurationProps { function useModelConfiguration (line 11) | function useModelConfiguration({ serverAddress }: UseModelConfigurationP... FILE: frontend/src/hooks/meeting-details/useSummaryGeneration.ts type SummaryStatus (line 11) | type SummaryStatus = 'idle' | 'processing' | 'summarizing' | 'regenerati... type UseSummaryGenerationProps (line 13) | interface UseSummaryGenerationProps { function useSummaryGeneration (line 25) | function useSummaryGeneration({ FILE: frontend/src/hooks/meeting-details/useTemplates.ts function useTemplates (line 6) | function useTemplates() { FILE: frontend/src/hooks/useAutoScroll.ts type UseAutoScrollProps (line 4) | interface UseAutoScrollProps { type UseAutoScrollReturn (line 15) | interface UseAutoScrollReturn { constant SCROLL_THRESHOLD (line 22) | const SCROLL_THRESHOLD = 100; function useAutoScroll (line 38) | function useAutoScroll({ FILE: frontend/src/hooks/useImportAudio.ts type AudioFileInfo (line 6) | interface AudioFileInfo { type ImportProgress (line 14) | interface ImportProgress { type ImportResult (line 20) | interface ImportResult { type ImportError (line 27) | interface ImportError { type ImportStatus (line 31) | type ImportStatus = 'idle' | 'validating' | 'processing' | 'complete' | ... type UseImportAudioOptions (line 33) | interface UseImportAudioOptions { type UseImportAudioReturn (line 38) | interface UseImportAudioReturn { function useImportAudio (line 58) | function useImportAudio({ FILE: frontend/src/hooks/useModalState.ts type ModalType (line 6) | type ModalType = type ModalState (line 14) | interface ModalState { type ModalMessages (line 23) | interface ModalMessages { type UseModalStateReturn (line 29) | interface UseModalStateReturn { function useModalState (line 46) | function useModalState(transcriptModelConfig?: TranscriptModelProps): Us... FILE: frontend/src/hooks/usePaginatedTranscripts.ts constant DEFAULT_PAGE_SIZE (line 5) | const DEFAULT_PAGE_SIZE = 100; type UsePaginatedTranscriptsProps (line 7) | interface UsePaginatedTranscriptsProps { type UsePaginatedTranscriptsReturn (line 13) | interface UsePaginatedTranscriptsReturn { function convertTranscriptsToSegments (line 33) | function convertTranscriptsToSegments(transcripts: Transcript[]): Transc... function usePaginatedTranscripts (line 43) | function usePaginatedTranscripts({ FILE: frontend/src/hooks/usePermissionCheck.ts type PermissionStatus (line 4) | interface PermissionStatus { function usePermissionCheck (line 11) | function usePermissionCheck() { FILE: frontend/src/hooks/usePlatform.ts type Platform (line 3) | type Platform = 'macos' | 'windows' | 'linux' | 'unknown'; type Window (line 7) | interface Window { function detectPlatformFromUserAgent (line 15) | function detectPlatformFromUserAgent(): Platform { function usePlatform (line 34) | function usePlatform(): Platform { function useIsLinux (line 83) | function useIsLinux(): boolean { FILE: frontend/src/hooks/useProcessingProgress.ts type ProcessingSession (line 4) | interface ProcessingSession { function useProcessingProgress (line 13) | function useProcessingProgress() { FILE: frontend/src/hooks/useRecordingStart.ts type UseRecordingStartReturn (line 12) | interface UseRecordingStartReturn { function useRecordingStart (line 28) | function useRecordingStart( FILE: frontend/src/hooks/useRecordingStateSync.ts type UseRecordingStateSyncReturn (line 4) | interface UseRecordingStateSyncReturn { function useRecordingStateSync (line 18) | function useRecordingStateSync( FILE: frontend/src/hooks/useRecordingStop.ts type SummaryStatus (line 12) | type SummaryStatus = 'idle' | 'processing' | 'summarizing' | 'regenerati... type UseRecordingStopReturn (line 14) | interface UseRecordingStopReturn { function useRecordingStop (line 36) | function useRecordingStop( FILE: frontend/src/hooks/useTranscriptRecovery.ts type AudioRecoveryStatus (line 13) | interface AudioRecoveryStatus { type UseTranscriptRecoveryReturn (line 21) | interface UseTranscriptRecoveryReturn { function useTranscriptRecovery (line 31) | function useTranscriptRecovery(): UseTranscriptRecoveryReturn { FILE: frontend/src/hooks/useTranscriptStreaming.ts constant INTERVAL_MS (line 4) | const INTERVAL_MS = 15; constant DURATION_MS (line 5) | const DURATION_MS = 800; constant INITIAL_CHARS (line 6) | const INITIAL_CHARS = 5; type StreamingSegment (line 8) | interface StreamingSegment { function useTranscriptStreaming (line 18) | function useTranscriptStreaming( FILE: frontend/src/hooks/useTranscriptionModels.ts type RawModelInfo (line 4) | interface RawModelInfo { type ModelOption (line 10) | interface ModelOption { type TranscriptModelConfig (line 17) | interface TranscriptModelConfig { function useTranscriptionModels (line 31) | function useTranscriptionModels(transcriptModelConfig: TranscriptModelCo... FILE: frontend/src/hooks/useUpdateCheck.ts type UseUpdateCheckOptions (line 5) | interface UseUpdateCheckOptions { function useUpdateCheck (line 11) | function useUpdateCheck(options: UseUpdateCheckOptions = {}) { FILE: frontend/src/lib/analytics.ts type AnalyticsProperties (line 3) | interface AnalyticsProperties { type DeviceInfo (line 7) | interface DeviceInfo { type UserSession (line 13) | interface UserSession { class Analytics (line 21) | class Analytics { method init (line 29) | static async init(): Promise { method doInit (line 44) | private static async doInit(): Promise { method disable (line 57) | static async disable(): Promise { method isEnabled (line 69) | static async isEnabled(): Promise { method track (line 78) | static async track(eventName: string, properties?: AnalyticsProperties... method identify (line 91) | static async identify(userId: string, properties?: AnalyticsProperties... method startSession (line 106) | static async startSession(userId: string): Promise { method endSession (line 123) | static async endSession(): Promise { method trackDailyActiveUser (line 133) | static async trackDailyActiveUser(): Promise { method trackUserFirstLaunch (line 143) | static async trackUserFirstLaunch(): Promise { method isSessionActive (line 153) | static async isSessionActive(): Promise { method getPersistentUserId (line 165) | static async getPersistentUserId(): Promise { method checkAndTrackFirstLaunch (line 195) | static async checkAndTrackFirstLaunch(): Promise { method checkAndTrackDailyUsage (line 218) | static async checkAndTrackDailyUsage(): Promise { method getCurrentUserId (line 236) | static getCurrentUserId(): string | null { method getPlatform (line 241) | static async getPlatform(): Promise { method getOSVersion (line 255) | static async getOSVersion(): Promise { method getDeviceInfo (line 267) | static async getDeviceInfo(): Promise { method calculateDaysSince (line 303) | static async calculateDaysSince(dateKey: string): Promise { method getMeetingsCountToday (line 337) | static async getMeetingsCountToday(): Promise { method hasUsedFeatureBefore (line 350) | static async hasUsedFeatureBefore(featureName: string): Promise { method trackSessionStarted (line 385) | static async trackSessionStarted(sessionId: string): Promise { method trackSessionEnded (line 412) | static async trackSessionEnded(sessionId: string): Promise { method trackMeetingCompleted (line 432) | static async trackMeetingCompleted(meetingId: string, metrics: { method trackFeatureUsedEnhanced (line 464) | static async trackFeatureUsedEnhanced(featureName: string, properties?... method trackCopy (line 493) | static async trackCopy(copyType: 'transcript' | 'summary', properties?... method trackMeetingStarted (line 534) | static async trackMeetingStarted(meetingId: string, meetingTitle: stri... method trackRecordingStarted (line 544) | static async trackRecordingStarted(meetingId: string): Promise { method trackRecordingStopped (line 554) | static async trackRecordingStopped(meetingId: string, durationSeconds?... method trackMeetingDeleted (line 564) | static async trackMeetingDeleted(meetingId: string): Promise { method trackSettingsChanged (line 574) | static async trackSettingsChanged(settingType: string, newValue: strin... method trackFeatureUsed (line 584) | static async trackFeatureUsed(featureName: string): Promise { method trackPageView (line 595) | static async trackPageView(pageName: string): Promise { method trackButtonClick (line 599) | static async trackButtonClick(buttonName: string, location?: string): ... method trackError (line 605) | static async trackError(errorType: string, errorMessage: string): Prom... method trackAppStarted (line 612) | static async trackAppStarted(): Promise { method cleanup (line 619) | static async cleanup(): Promise { method reset (line 624) | static reset(): void { method waitForInitialization (line 631) | static async waitForInitialization(timeout: number = 5000): Promise { method getModelInfo (line 71) | static async getModelInfo(modelName: string): Promise { method downloadModel (line 83) | static async downloadModel(modelName: string): Promise { method cancelDownload (line 87) | static async cancelDownload(modelName: string): Promise { method deleteModel (line 91) | static async deleteModel(modelName: string): Promise { method getModelsDirectory (line 95) | static async getModelsDirectory(): Promise { FILE: frontend/src/lib/parakeet.ts type ParakeetModelInfo (line 2) | interface ParakeetModelInfo { type QuantizationType (line 13) | type QuantizationType = 'FP32' | 'Int8'; type ModelAccuracy (line 14) | type ModelAccuracy = 'High' | 'Good' | 'Decent'; type ProcessingSpeed (line 15) | type ProcessingSpeed = 'Slow' | 'Medium' | 'Fast' | 'Very Fast' | 'Ultra... type ModelStatus (line 17) | type ModelStatus = type ParakeetEngineState (line 24) | interface ParakeetEngineState { type ModelDisplayInfo (line 32) | interface ModelDisplayInfo { constant MODEL_DISPLAY_CONFIG (line 40) | const MODEL_DISPLAY_CONFIG: Record = { constant PARAKEET_MODEL_CONFIGS (line 65) | const PARAKEET_MODEL_CONFIGS: Record>... function getModelIcon (line 90) | function getModelIcon(accuracy: ModelAccuracy): string { function getModelDisplayName (line 100) | function getModelDisplayName(modelName: string): string { function getModelDisplayInfo (line 106) | function getModelDisplayInfo(modelName: string): ModelDisplayInfo | null { function getStatusColor (line 110) | function getStatusColor(status: ModelStatus): string { function formatFileSize (line 118) | function formatFileSize(sizeMb: number): string { function isQuantizedModel (line 126) | function isQuantizedModel(modelName: string): boolean { function getModelPerformanceBadge (line 131) | function getModelPerformanceBadge(quantization: QuantizationType): { lab... function getRecommendedModel (line 142) | function getRecommendedModel(systemSpecs?: { ram: number; cores: number ... class ParakeetAPI (line 154) | class ParakeetAPI { method init (line 155) | static async init(): Promise { method getAvailableModels (line 159) | static async getAvailableModels(): Promise { method loadModel (line 163) | static async loadModel(modelName: string): Promise { method getCurrentModel (line 167) | static async getCurrentModel(): Promise { method isModelLoaded (line 171) | static async isModelLoaded(): Promise { method transcribeAudio (line 175) | static async transcribeAudio(audioData: number[]): Promise { method getModelsDirectory (line 179) | static async getModelsDirectory(): Promise { method downloadModel (line 183) | static async downloadModel(modelName: string): Promise { method cancelDownload (line 187) | static async cancelDownload(modelName: string): Promise { method deleteCorruptedModel (line 191) | static async deleteCorruptedModel(modelName: string): Promise { method hasAvailableModels (line 195) | static async hasAvailableModels(): Promise { method validateModelReady (line 199) | static async validateModelReady(): Promise { method openModelsFolder (line 203) | static async openModelsFolder(): Promise { FILE: frontend/src/lib/recordingNotification.tsx function showRecordingNotification (line 13) | async function showRecordingNotification(): Promise { FILE: frontend/src/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { function isOllamaNotInstalledError (line 13) | function isOllamaNotInstalledError(errorMessage: string): boolean { FILE: frontend/src/lib/whisper.ts type ModelInfo (line 2) | interface ModelInfo { type ModelAccuracy (line 12) | type ModelAccuracy = 'High' | 'Good' | 'Decent'; type ProcessingSpeed (line 13) | type ProcessingSpeed = 'Slow' | 'Medium' | 'Fast' | 'Very Fast'; type ModelStatus (line 15) | type ModelStatus = type ModelDownloadProgress (line 22) | interface ModelDownloadProgress { type WhisperEngineState (line 30) | interface WhisperEngineState { type DownloadModelRequest (line 38) | interface DownloadModelRequest { type SwitchModelRequest (line 42) | interface SwitchModelRequest { type TranscribeAudioRequest (line 46) | interface TranscribeAudioRequest { constant MODEL_CONFIGS (line 52) | const MODEL_CONFIGS: Record> = { function getModelIcon (line 133) | function getModelIcon(accuracy: ModelAccuracy): string { function getStatusColor (line 142) | function getStatusColor(status: ModelStatus): string { function formatFileSize (line 150) | function formatFileSize(sizeMb: number): string { function getModelType (line 158) | function getModelType(modelName: string): 'f16' | 'q5_1' | 'q5_0' | 'q4_... function getModelBaseName (line 166) | function getModelBaseName(modelName: string): string { function isQuantizedModel (line 171) | function isQuantizedModel(modelName: string): boolean { function getModelPerformanceBadge (line 176) | function getModelPerformanceBadge(modelName: string): { label: string; c... function getModelTagline (line 193) | function getModelTagline(modelName: string, speed: ProcessingSpeed, accu... function groupModelsByBase (line 244) | function groupModelsByBase(models: ModelInfo[]): Record { method getAvailableModels (line 287) | static async getAvailableModels(): Promise { method loadModel (line 291) | static async loadModel(modelName: string): Promise { method getCurrentModel (line 295) | static async getCurrentModel(): Promise { method isModelLoaded (line 299) | static async isModelLoaded(): Promise { method transcribeAudio (line 303) | static async transcribeAudio(audioData: number[]): Promise { method getModelsDirectory (line 307) | static async getModelsDirectory(): Promise { method downloadModel (line 311) | static async downloadModel(modelName: string): Promise { method cancelDownload (line 315) | static async cancelDownload(modelName: string): Promise { method deleteCorruptedModel (line 319) | static async deleteCorruptedModel(modelName: string): Promise { method hasAvailableModels (line 323) | static async hasAvailableModels(): Promise { method validateModelReady (line 327) | static async validateModelReady(): Promise { method openModelsFolder (line 331) | static async openModelsFolder(): Promise { FILE: frontend/src/services/configService.ts type ModelConfig (line 11) | interface ModelConfig { type CustomOpenAIConfig (line 30) | interface CustomOpenAIConfig { type RecordingPreferences (line 39) | interface RecordingPreferences { class ConfigService (line 48) | class ConfigService { method getTranscriptConfig (line 53) | async getTranscriptConfig(): Promise { method getModelConfig (line 61) | async getModelConfig(): Promise { method getRecordingPreferences (line 69) | async getRecordingPreferences(): Promise { method getCustomOpenAIConfig (line 77) | async getCustomOpenAIConfig(): Promise { method saveCustomOpenAIConfig (line 86) | async saveCustomOpenAIConfig(config: CustomOpenAIConfig): Promise<{ st... method testCustomOpenAIConnection (line 104) | async testCustomOpenAIConnection( FILE: frontend/src/services/indexedDBService.ts type MeetingMetadata (line 8) | interface MeetingMetadata { type StoredTranscript (line 18) | interface StoredTranscript { class IndexedDBService (line 32) | class IndexedDBService { method init (line 41) | async init(): Promise { method saveMeetingMetadata (line 100) | async saveMeetingMetadata(metadata: MeetingMetadata): Promise { method getMeetingMetadata (line 121) | async getMeetingMetadata(meetingId: string): Promise { method markMeetingSaved (line 171) | async markMeetingSaved(meetingId: string): Promise { method deleteMeeting (line 202) | async deleteMeeting(meetingId: string): Promise { method saveTranscript (line 230) | async saveTranscript(meetingId: string, transcript: any): Promise { method getTranscripts (line 276) | async getTranscripts(meetingId: string): Promise { method getTranscriptCount (line 303) | async getTranscriptCount(meetingId: string): Promise { method deleteOldMeetings (line 329) | async deleteOldMeetings(daysOld: number): Promise { method deleteSavedMeetings (line 376) | async deleteSavedMeetings(hoursOld: number): Promise { method deleteTranscriptsForMeetingInternal (line 424) | private async deleteTranscriptsForMeetingInternal( FILE: frontend/src/services/recordingService.ts type RecordingState (line 11) | interface RecordingState { type RecordingStoppedPayload (line 19) | interface RecordingStoppedPayload { class RecordingService (line 29) | class RecordingService { method isRecording (line 34) | async isRecording(): Promise { method getRecordingState (line 42) | async getRecordingState(): Promise { method getRecordingMeetingName (line 50) | async getRecordingMeetingName(): Promise { method startRecording (line 58) | async startRecording(): Promise { method startRecordingWithDevices (line 69) | async startRecordingWithDevices( method stopRecording (line 86) | async stopRecording(savePath: string): Promise { method pauseRecording (line 96) | async pauseRecording(): Promise { method resumeRecording (line 104) | async resumeRecording(): Promise { method onRecordingStarted (line 115) | async onRecordingStarted(callback: () => void): Promise { method onRecordingStopped (line 124) | async onRecordingStopped(callback: (payload: RecordingStoppedPayload) ... method onRecordingPaused (line 135) | async onRecordingPaused(callback: () => void): Promise { method onRecordingResumed (line 144) | async onRecordingResumed(callback: () => void): Promise { method onChunkDropWarning (line 153) | async onChunkDropWarning(callback: (warning: string) => void): Promise... method onSpeechDetected (line 164) | async onSpeechDetected(callback: () => void): Promise { FILE: frontend/src/services/storageService.ts type SaveMeetingRequest (line 11) | interface SaveMeetingRequest { type SaveMeetingResponse (line 17) | interface SaveMeetingResponse { type Meeting (line 21) | interface Meeting { class StorageService (line 31) | class StorageService { method saveMeeting (line 39) | async saveMeeting( method getMeeting (line 56) | async getMeeting(meetingId: string): Promise { method getMeetings (line 64) | async getMeetings(): Promise { FILE: frontend/src/services/transcriptService.ts type TranscriptionStatus (line 12) | interface TranscriptionStatus { type TranscriptionErrorPayload (line 18) | interface TranscriptionErrorPayload { type ModelDownloadCompletePayload (line 24) | interface ModelDownloadCompletePayload { class TranscriptService (line 32) | class TranscriptService { method getTranscriptHistory (line 37) | async getTranscriptHistory(): Promise { method getTranscriptionStatus (line 45) | async getTranscriptionStatus(): Promise { method onTranscriptUpdate (line 56) | async onTranscriptUpdate(callback: (update: TranscriptUpdate) => void)... method onTranscriptionComplete (line 67) | async onTranscriptionComplete(callback: () => void): Promise void): Promise void): ... method onParakeetModelDownloadComplete (line 109) | async onParakeetModelDownloadComplete(callback: (modelName: string) =>... FILE: frontend/src/services/updateService.ts type UpdateInfo (line 12) | interface UpdateInfo { type UpdateProgress (line 21) | interface UpdateProgress { class UpdateService (line 31) | class UpdateService { method checkForUpdates (line 41) | async checkForUpdates(force = false): Promise { method downloadAndInstall (line 94) | async downloadAndInstall( method getCurrentVersion (line 120) | async getCurrentVersion(): Promise { method wasCheckedRecently (line 128) | wasCheckedRecently(): boolean { FILE: frontend/src/types/betaFeatures.ts type BetaFeatures (line 19) | interface BetaFeatures { constant DEFAULT_BETA_FEATURES (line 27) | const DEFAULT_BETA_FEATURES: BetaFeatures = { constant BETA_FEATURE_NAMES (line 35) | const BETA_FEATURE_NAMES: Record = { constant BETA_FEATURE_DESCRIPTIONS (line 42) | const BETA_FEATURE_DESCRIPTIONS: Record = { type BetaFeatureKey (line 50) | type BetaFeatureKey = keyof BetaFeatures; function loadBetaFeatures (line 57) | function loadBetaFeatures(): BetaFeatures { function saveBetaFeatures (line 81) | function saveBetaFeatures(features: BetaFeatures): void { FILE: frontend/src/types/index.ts type Message (line 1) | interface Message { type Transcript (line 7) | interface Transcript { type TranscriptUpdate (line 21) | interface TranscriptUpdate { type Block (line 35) | interface Block { type Section (line 42) | interface Section { type Summary (line 47) | interface Summary { type ApiResponse (line 51) | interface ApiResponse { type SummaryResponse (line 57) | interface SummaryResponse { type SummaryFormat (line 69) | type SummaryFormat = 'legacy' | 'markdown' | 'blocknote'; type BlockNoteBlock (line 71) | interface BlockNoteBlock { type SummaryDataResponse (line 79) | interface SummaryDataResponse { type MeetingMetadata (line 89) | interface MeetingMetadata { type PaginatedTranscriptsResponse (line 97) | interface PaginatedTranscriptsResponse { type TranscriptSegmentData (line 104) | interface TranscriptSegmentData { FILE: frontend/src/types/onboarding.ts type OnboardingStep (line 1) | type OnboardingStep = 1 | 2 | 3 | 4; type PermissionStatus (line 3) | type PermissionStatus = 'checking' | 'not_determined' | 'authorized' | '... type OnboardingPermissions (line 5) | interface OnboardingPermissions { type OnboardingContainerProps (line 11) | interface OnboardingContainerProps { type PermissionRowProps (line 27) | interface PermissionRowProps { type StatusIndicatorProps (line 36) | interface StatusIndicatorProps { FILE: frontend/src/types/summary.ts type Summary (line 1) | interface Summary { type SummaryResponse (line 9) | interface SummaryResponse { type ProcessRequest (line 14) | interface ProcessRequest { FILE: llama-helper/src/main.rs type Request (line 24) | enum Request { type Response (line 42) | enum Response { function detect_vram_gb (line 54) | fn detect_vram_gb() -> f32 { function detect_metal_vram (line 80) | fn detect_metal_vram() -> Option { function detect_cuda_vram (line 99) | fn detect_cuda_vram() -> Option { function calculate_gpu_layers (line 115) | fn calculate_gpu_layers( function get_default_gpu_layers (line 185) | fn get_default_gpu_layers(model_path: &PathBuf, context_size: u32) -> u32 { type ModelState (line 204) | struct ModelState { method new (line 213) | fn new() -> Result { method current_timestamp (line 224) | fn current_timestamp() -> u64 { method update_activity (line 231) | fn update_activity(&self) { method seconds_since_activity (line 236) | fn seconds_since_activity(&self) -> u64 { method load_model_if_needed (line 240) | fn load_model_if_needed(&mut self, model_path: PathBuf, context_size: ... method generate (line 271) | fn generate( function send_response (line 435) | fn send_response(response: &Response) -> Result<()> { function main (line 442) | fn main() -> Result<()> { FILE: scripts/generate-update-manifest-github.js function detectMacOSArchitecture (line 27) | function detectMacOSArchitecture(bundleDir) { FILE: scripts/inject_transcript.py function get_default_db_path (line 29) | def get_default_db_path() -> Path: function estimate_duration (line 47) | def estimate_duration(text: str) -> float: function read_csv (line 60) | def read_csv(csv_path: str) -> list[dict]: function process_segments (line 82) | def process_segments(segments: list[dict], start_time: datetime) -> list... function inject_meeting (line 117) | def inject_meeting( function verify_injection (line 182) | def verify_injection(db_path: str, meeting_id: str) -> dict: function main (line 228) | def main(): FILE: scripts/test-update-locally.js constant PORT (line 21) | const PORT = 8080; constant LATEST_JSON_PATH (line 22) | const LATEST_JSON_PATH = path.join(__dirname, '..', 'latest.json');