diff --git a/docs/obsidian-review-8004-issuecomment-3839142330.md b/docs/obsidian-review-8004-issuecomment-3839142330.md deleted file mode 100644 index 335da19..0000000 --- a/docs/obsidian-review-8004-issuecomment-3839142330.md +++ /dev/null @@ -1,139 +0,0 @@ -# Obsidian Review Bot Comment (PR #8004) — main 브랜치 기준 - -- Source: https://github.com/obsidianmd/obsidian-releases/pull/8004#issuecomment-3839142330 -- GitHub main SHA: e544a0fb1f370c7a06bafc750c39452f5aca3b5f -- Updated (UTC): 2026-02-03T05:29:19Z - ---- - -## Required Findings (main 브랜치 기준) - -> [!IMPORTANT] -> 아래 링크는 **GitHub main 브랜치 커밋** 기준입니다. - ---- - -### 'audio.sampleRate' may use Object's default stringification format ('[object Object]') when stringified. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/infrastructure/api/SettingsValidator.ts#L299-L299](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/infrastructure/api/SettingsValidator.ts#L299-L299) - 수정 주석: 객체가 될 수 있는 값은 String(...) 또는 JSON.stringify(...)로 명시 변환하고 타입을 좁힙니다. - -### 'value' may use Object's default stringification format ('[object Object]') when stringified. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/progress/StatusMessage.ts#L273-L273](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/progress/StatusMessage.ts#L273-L273) - 수정 주석: 객체가 될 수 있는 값은 String(...) 또는 JSON.stringify(...)로 명시 변환하고 타입을 좁힙니다. - -### Use sentence case for UI text. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L395-L395](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L395-L395) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L396-L396](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L396-L396) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L512-L512](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L512-L512) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L586-L586](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L586-L586) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L623-L623](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L623-L623) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L710-L710](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L710-L710) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L759-L759](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L759-L759) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L155-L155](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L155-L155) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L319-L319](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L319-L319) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L357-L357](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L357-L357) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L368-L368](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L368-L368) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L369-L369](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L369-L369) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L380-L380](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L380-L380) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L403-L403](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L403-L403) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L405-L405](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L405-L405) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L527-L527](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L527-L527) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTabOptimized.ts#L473-L473](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTabOptimized.ts#L473-L473) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTabOptimized.ts#L482-L482](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTabOptimized.ts#L482-L482) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTabRefactored.ts#L156-L156](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTabRefactored.ts#L156-L156) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L42-L42](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L42-L42) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L64-L64](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L64-L64) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L65-L65](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L65-L65) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L81-L81](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L81-L81) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L84-L84](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L84-L84) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L96-L96](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L96-L96) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/DeepgramSettings.ts#L581-L581](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/DeepgramSettings.ts#L581-L581) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L83-L83](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L83-L83) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L84-L84](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L84-L84) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L85-L85](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L85-L85) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L309-L309](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L309-L309) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. - ---- - -## Optional Findings (main 브랜치 기준) - -- (없음) - ---- - -## Original Review Comment - -```markdown -Thank you for your submission, an automated scan of your plugin code's revealed the following issues: - -### Required - -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/infrastructure/api/SettingsValidator.ts#L299-L299) -'audio.sampleRate' may use Object's default stringification format ('[object Object]') when stringified. - -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/progress/StatusMessage.ts#L273-L273) -'value' may use Object's default stringification format ('[object Object]') when stringified. - -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L395-L395)[\[2\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L396-L396)[\[3\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L512-L512)[\[4\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L586-L586)[\[5\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L623-L623)[\[6\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L710-L710)[\[7\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/EnhancedSettingsTab.ts#L759-L759)[\[8\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L155-L155)[\[9\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L319-L319)[\[10\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L357-L357)[\[11\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L368-L368)[\[12\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L369-L369)[\[13\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L380-L380)[\[14\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L403-L403)[\[15\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L405-L405)[\[16\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTab.ts#L527-L527)[\[17\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTabOptimized.ts#L473-L473)[\[18\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTabOptimized.ts#L482-L482)[\[19\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SettingsTabRefactored.ts#L156-L156)[\[20\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L42-L42)[\[21\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L64-L64)[\[22\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L65-L65)[\[23\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L81-L81)[\[24\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L84-L84)[\[25\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/SimpleSettingsTab.ts#L96-L96)[\[26\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/DeepgramSettings.ts#L581-L581)[\[27\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L83-L83)[\[28\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L84-L84)[\[29\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L85-L85)[\[30\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/components/ProviderSettings.ts#L309-L309)[\[31\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197)[\[32\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198)[\[33\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199)[\[34\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289)[\[35\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290)[\[36\]](https://github.com/asyouplz/SpeechNote/blob/e544a0fb1f370c7a06bafc750c39452f5aca3b5f/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291) -Use sentence case for UI text. - - - ---- - -### Optional - - - ---- - - - -Do NOT open a new PR for re-validation. -Once you have pushed some changes to your repository the bot will rescan within 6 hours -If you think some of the required changes are incorrect, please comment with `/skip` and the reason why you think the results are incorrect. -To run these checks locally, install the [eslint plugin](https://github.com/obsidianmd/eslint-plugin) in your project. -Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved. -``` \ No newline at end of file diff --git a/docs/obsidian-review-8004-issuecomment-3839840641.md b/docs/obsidian-review-8004-issuecomment-3840783932.md similarity index 54% rename from docs/obsidian-review-8004-issuecomment-3839840641.md rename to docs/obsidian-review-8004-issuecomment-3840783932.md index 48f4cef..9837cda 100644 --- a/docs/obsidian-review-8004-issuecomment-3839840641.md +++ b/docs/obsidian-review-8004-issuecomment-3840783932.md @@ -1,8 +1,8 @@ # Obsidian Review Bot Comment (PR #8004) — main 브랜치 기준 -- Source: https://github.com/obsidianmd/obsidian-releases/pull/8004#issuecomment-3839840641 -- GitHub main SHA: 18a62e8a59070f874384a7f35b2abcfca81cd44b -- Updated (UTC): 2026-02-03T08:28:29Z +- Source: https://github.com/obsidianmd/obsidian-releases/pull/8004#issuecomment-3840783932 +- GitHub main SHA: 7531c3d2410fa964d6023fde75db6b234b34542c +- Updated (UTC): 2026-02-03T11:34:35Z --- @@ -14,81 +14,81 @@ --- ### 'audio.sampleRate' may use Object's default stringification format ('[object Object]') when stringified. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/infrastructure/api/SettingsValidator.ts#L299-L299](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/infrastructure/api/SettingsValidator.ts#L299-L299) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/infrastructure/api/SettingsValidator.ts#L299-L299](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/infrastructure/api/SettingsValidator.ts#L299-L299) 수정 주석: 객체가 될 수 있는 값은 String(...) 또는 JSON.stringify(...)로 명시 변환하고 타입을 좁힙니다. ### 'value' may use Object's default stringification format ('[object Object]') when stringified. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/progress/StatusMessage.ts#L273-L273](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/progress/StatusMessage.ts#L273-L273) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/progress/StatusMessage.ts#L273-L273](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/progress/StatusMessage.ts#L273-L273) 수정 주석: 객체가 될 수 있는 값은 String(...) 또는 JSON.stringify(...)로 명시 변환하고 타입을 좁힙니다. ### Use sentence case for UI text. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L395-L395](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L395-L395) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L395-L395](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L395-L395) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L512-L512](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L512-L512) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L512-L512](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L512-L512) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L586-L586](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L586-L586) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L586-L586](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L586-L586) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L623-L623](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L623-L623) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L623-L623](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L623-L623) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L710-L710](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L710-L710) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L710-L710](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L710-L710) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L759-L759](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L759-L759) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L759-L759](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L759-L759) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L155-L155](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L155-L155) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L155-L155](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L155-L155) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L319-L319](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L319-L319) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L319-L319](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L319-L319) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L357-L357](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L357-L357) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L357-L357](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L357-L357) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L368-L368](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L368-L368) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L368-L368](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L368-L368) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L369-L369](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L369-L369) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L369-L369](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L369-L369) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L380-L380](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L380-L380) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L380-L380](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L380-L380) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L403-L403](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L403-L403) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L403-L403](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L403-L403) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L405-L405](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L405-L405) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L405-L405](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L405-L405) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTabOptimized.ts#L473-L473](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTabOptimized.ts#L473-L473) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTabOptimized.ts#L473-L473](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTabOptimized.ts#L473-L473) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTabOptimized.ts#L482-L482](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTabOptimized.ts#L482-L482) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTabOptimized.ts#L482-L482](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTabOptimized.ts#L482-L482) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTabRefactored.ts#L156-L156](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTabRefactored.ts#L156-L156) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTabRefactored.ts#L156-L156](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTabRefactored.ts#L156-L156) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L42-L42](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L42-L42) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L42-L42](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L42-L42) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L64-L64](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L64-L64) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L64-L64](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L64-L64) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L65-L65](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L65-L65) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L65-L65](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L65-L65) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L81-L81](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L81-L81) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L81-L81](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L81-L81) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L84-L84](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L84-L84) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L84-L84](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L84-L84) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L96-L96](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L96-L96) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L96-L96](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L96-L96) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/DeepgramSettings.ts#L581-L581](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/DeepgramSettings.ts#L581-L581) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/DeepgramSettings.ts#L581-L581](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/DeepgramSettings.ts#L581-L581) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L83-L83](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L83-L83) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L83-L83](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L83-L83) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L84-L84](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L84-L84) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L84-L84](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L84-L84) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L85-L85](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L85-L85) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L85-L85](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L85-L85) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L309-L309](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L309-L309) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L309-L309](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L309-L309) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. -- [18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291) +- [7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291) 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일하되, 고유명사 표기는 유지합니다. --- @@ -106,13 +106,13 @@ Thank you for your submission, an automated scan of your plugin code's revealed ### Required -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/infrastructure/api/SettingsValidator.ts#L299-L299) +[\[1\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/infrastructure/api/SettingsValidator.ts#L299-L299) 'audio.sampleRate' may use Object's default stringification format ('[object Object]') when stringified. -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/progress/StatusMessage.ts#L273-L273) +[\[1\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/progress/StatusMessage.ts#L273-L273) 'value' may use Object's default stringification format ('[object Object]') when stringified. -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L395-L395)[\[2\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L512-L512)[\[3\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L586-L586)[\[4\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L623-L623)[\[5\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L710-L710)[\[6\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/EnhancedSettingsTab.ts#L759-L759)[\[7\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L155-L155)[\[8\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L319-L319)[\[9\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L357-L357)[\[10\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L368-L368)[\[11\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L369-L369)[\[12\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L380-L380)[\[13\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L403-L403)[\[14\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTab.ts#L405-L405)[\[15\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTabOptimized.ts#L473-L473)[\[16\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTabOptimized.ts#L482-L482)[\[17\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SettingsTabRefactored.ts#L156-L156)[\[18\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L42-L42)[\[19\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L64-L64)[\[20\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L65-L65)[\[21\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L81-L81)[\[22\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L84-L84)[\[23\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/SimpleSettingsTab.ts#L96-L96)[\[24\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/DeepgramSettings.ts#L581-L581)[\[25\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L83-L83)[\[26\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L84-L84)[\[27\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L85-L85)[\[28\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/components/ProviderSettings.ts#L309-L309)[\[29\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197)[\[30\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198)[\[31\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199)[\[32\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289)[\[33\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290)[\[34\]](https://github.com/asyouplz/SpeechNote/blob/18a62e8a59070f874384a7f35b2abcfca81cd44b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291) +[\[1\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L395-L395)[\[2\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L512-L512)[\[3\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L586-L586)[\[4\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L623-L623)[\[5\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L710-L710)[\[6\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/EnhancedSettingsTab.ts#L759-L759)[\[7\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L155-L155)[\[8\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L319-L319)[\[9\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L357-L357)[\[10\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L368-L368)[\[11\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L369-L369)[\[12\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L380-L380)[\[13\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L403-L403)[\[14\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTab.ts#L405-L405)[\[15\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTabOptimized.ts#L473-L473)[\[16\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTabOptimized.ts#L482-L482)[\[17\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SettingsTabRefactored.ts#L156-L156)[\[18\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L42-L42)[\[19\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L64-L64)[\[20\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L65-L65)[\[21\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L81-L81)[\[22\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L84-L84)[\[23\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/SimpleSettingsTab.ts#L96-L96)[\[24\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/DeepgramSettings.ts#L581-L581)[\[25\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L83-L83)[\[26\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L84-L84)[\[27\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L85-L85)[\[28\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/components/ProviderSettings.ts#L309-L309)[\[29\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197)[\[30\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198)[\[31\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199)[\[32\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289)[\[33\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290)[\[34\]](https://github.com/asyouplz/SpeechNote/blob/7531c3d2410fa964d6023fde75db6b234b34542c/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291) Use sentence case for UI text. diff --git a/docs/obsidian-review-8004.md b/docs/obsidian-review-8004.md deleted file mode 100644 index 4cda2ac..0000000 --- a/docs/obsidian-review-8004.md +++ /dev/null @@ -1,255 +0,0 @@ -# Obsidian Review Bot Comment (PR #8004) — main 브랜치 기준 - -- Source: https://github.com/obsidianmd/obsidian-releases/pull/8004#issuecomment-3835510894 -- GitHub main SHA: e7e0e6b2ccb201005ce892843a88bccedd6c7318 -- Updated (UTC): 2026-02-03 01:53:45Z - ---- - -## Required Findings (main 브랜치 기준) - -> [!IMPORTANT] -> 아래 링크는 **GitHub main 브랜치 커밋** 기준입니다. - ---- - -### 'audio.sampleRate' may use Object's default stringification format ('[object Object]') when stringified. -- [src/infrastructure/api/SettingsValidator.ts#L288-L288](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/infrastructure/api/SettingsValidator.ts#L288-L288) - 수정 주석: 객체가 될 수 있는 값은 String(...) 또는 JSON.stringify(...)로 명시 변환하고 타입을 좁힙니다. - -### Expected an error object to be thrown. -- [src/infrastructure/api/providers/deepgram/DeepgramService.ts#L665-L665](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/infrastructure/api/providers/deepgram/DeepgramService.ts#L665-L665) - 수정 주석: 문자열 대신 Error 인스턴스(예: new Error(...))를 throw하거나 기존 error를 그대로 재throw합니다. -- [src/infrastructure/api/providers/deepgram/DeepgramServiceRefactored.ts#L229-L229](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/infrastructure/api/providers/deepgram/DeepgramServiceRefactored.ts#L229-L229) - 수정 주석: 문자열 대신 Error 인스턴스(예: new Error(...))를 throw하거나 기존 error를 그대로 재throw합니다. - -### Disabling '@typescript-eslint/no-explicit-any' is not allowed. -- [src/patterns/Singleton.ts#L69-L69](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/patterns/Singleton.ts#L69-L69) - 수정 주석: eslint-disable를 제거하고 any 대신 명시적 타입/제네릭(예: unknown[])으로 대체합니다. -- [src/patterns/Singleton.ts#L75-L75](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/patterns/Singleton.ts#L75-L75) - 수정 주석: eslint-disable를 제거하고 any 대신 명시적 타입/제네릭(예: unknown[])으로 대체합니다. - -### Unused eslint-disable directive (no problems were reported from '@typescript-eslint/no-unsafe-argument'). -- [src/patterns/Singleton.ts#L80](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/patterns/Singleton.ts#L80) - 수정 주석: 사용되지 않는 eslint-disable 주석을 삭제합니다. - -### Use sentence case for UI text. -- [src/ui/formatting/FormatOptions.ts#L271-L271](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/formatting/FormatOptions.ts#L271-L271) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L395-L395](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L395-L395) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L396-L396](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L396-L396) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L498-L498](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L498-L498) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L586-L586](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L586-L586) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L589-L589](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L589-L589) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L623-L623](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L623-L623) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L710-L710](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L710-L710) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L724-L724](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L724-L724) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L759-L759](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L759-L759) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L922-L922](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L922-L922) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/EnhancedSettingsTab.ts#L930-L930](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L930-L930) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L155-L155](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L155-L155) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L265-L265](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L265-L265) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L319-L319](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L319-L319) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L357-L357](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L357-L357) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L368-L368](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L368-L368) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L369-L369](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L369-L369) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L371-L371](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L371-L371) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L380-L380](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L380-L380) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L403-L403](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L403-L403) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L405-L405](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L405-L405) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTab.ts#L527-L527](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L527-L527) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTabOptimized.ts#L473-L473](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTabOptimized.ts#L473-L473) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTabOptimized.ts#L482-L482](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTabOptimized.ts#L482-L482) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SettingsTabRefactored.ts#L156-L156](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTabRefactored.ts#L156-L156) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SimpleSettingsTab.ts#L42-L42](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L42-L42) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SimpleSettingsTab.ts#L64-L64](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L64-L64) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SimpleSettingsTab.ts#L65-L65](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L65-L65) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SimpleSettingsTab.ts#L68-L68](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L68-L68) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SimpleSettingsTab.ts#L81-L81](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L81-L81) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SimpleSettingsTab.ts#L84-L84](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L84-L84) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/SimpleSettingsTab.ts#L96-L96](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L96-L96) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ApiKeyValidator.ts#L73-L73](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ApiKeyValidator.ts#L73-L73) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/AudioSettings.ts#L41-L41](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/AudioSettings.ts#L41-L41) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/AudioSettings.ts#L64-L64](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/AudioSettings.ts#L64-L64) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/AudioSettings.ts#L65-L65](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/AudioSettings.ts#L65-L65) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/AudioSettings.ts#L114-L114](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/AudioSettings.ts#L114-L114) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/DeepgramSettings.ts#L581-L581](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/DeepgramSettings.ts#L581-L581) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/DeepgramSettings.ts#L617-L617](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/DeepgramSettings.ts#L617-L617) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L83-L83](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L83-L83) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L84-L84](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L84-L84) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L85-L85](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L85-L85) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L222-L222](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L222-L222) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L223-L223](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L223-L223) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L224-L224](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L224-L224) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L225-L225](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L225-L225) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L226-L226](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L226-L226) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L309-L309](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L309-L309) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L352-L352](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L352-L352) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L408-L408](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L408-L408) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L435-L435](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L435-L435) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ProviderSettings.ts#L438-L438](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L438-L438) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/components/ShortcutSettings.ts#L488-L488](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ShortcutSettings.ts#L488-L488) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L98-L98](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L98-L98) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L236-L236](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L236-L236) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L237-L237](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L237-L237) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L238-L238](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L238-L238) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L239-L239](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L239-L239) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L582-L582](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L582-L582) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L585-L585](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L585-L585) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L844-L844](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L844-L844) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L847-L847](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L847-L847) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainer.ts#L859-L859](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L859-L859) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L303-L303](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L303-L303) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L304-L304](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L304-L304) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L305-L305](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L305-L305) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/components/APIKeyManager.ts#L822-L822](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/APIKeyManager.ts#L822-L822) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L66-L66](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L66-L66) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L99-L99](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L99-L99) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L100-L100](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L100-L100) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L101-L101](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L101-L101) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L102-L102](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L102-L102) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L103-L103](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L103-L103) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. -- [src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L883-L883](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L883-L883) - 수정 주석: UI 문구를 sentence case(첫 단어만 대문자)로 통일합니다. - -### 'value' may use Object's default stringification format ('[object Object]') when stringified. -- [src/ui/progress/StatusMessage.ts#L275-L275](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/progress/StatusMessage.ts#L275-L275) - 수정 주석: 객체가 될 수 있는 값은 String(...) 또는 JSON.stringify(...)로 명시 변환하고 타입을 좁힙니다. - ---- - -## Optional Findings (main 브랜치 기준) - -- (없음) - ---- - -## Original Review Comment - -```markdown -Thank you for your submission, an automated scan of your plugin code's revealed the following issues: - -### Required - -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/infrastructure/api/SettingsValidator.ts#L288-L288) -'audio.sampleRate' may use Object's default stringification format ('[object Object]') when stringified. - -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/infrastructure/api/providers/deepgram/DeepgramService.ts#L665-L665)[\[2\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/infrastructure/api/providers/deepgram/DeepgramServiceRefactored.ts#L229-L229) -Expected an error object to be thrown. - -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/patterns/Singleton.ts#L69-L69)[\[2\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/patterns/Singleton.ts#L75-L75) -Disabling '@typescript-eslint/no-explicit-any' is not allowed. - -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/patterns/Singleton.ts#L80) -Unused eslint-disable directive (no problems were reported from '@typescript-eslint/no-unsafe-argument'). - -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/formatting/FormatOptions.ts#L271-L271)[\[2\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L395-L395)[\[3\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L396-L396)[\[4\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L498-L498)[\[5\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L586-L586)[\[6\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L589-L589)[\[7\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L623-L623)[\[8\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L710-L710)[\[9\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L724-L724)[\[10\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L759-L759)[\[11\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L922-L922)[\[12\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/EnhancedSettingsTab.ts#L930-L930)[\[13\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L155-L155)[\[14\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L265-L265)[\[15\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L319-L319)[\[16\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L357-L357)[\[17\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L368-L368)[\[18\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L369-L369)[\[19\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L371-L371)[\[20\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L380-L380)[\[21\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L403-L403)[\[22\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L405-L405)[\[23\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTab.ts#L527-L527)[\[24\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTabOptimized.ts#L473-L473)[\[25\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTabOptimized.ts#L482-L482)[\[26\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SettingsTabRefactored.ts#L156-L156)[\[27\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L42-L42)[\[28\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L64-L64)[\[29\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L65-L65)[\[30\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L68-L68)[\[31\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L81-L81)[\[32\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L84-L84)[\[33\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/SimpleSettingsTab.ts#L96-L96)[\[34\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ApiKeyValidator.ts#L73-L73)[\[35\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/AudioSettings.ts#L41-L41)[\[36\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/AudioSettings.ts#L64-L64)[\[37\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/AudioSettings.ts#L65-L65)[\[38\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/AudioSettings.ts#L114-L114)[\[39\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/DeepgramSettings.ts#L581-L581)[\[40\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/DeepgramSettings.ts#L617-L617)[\[41\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L83-L83)[\[42\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L84-L84)[\[43\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L85-L85)[\[44\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L222-L222)[\[45\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L223-L223)[\[46\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L224-L224)[\[47\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L225-L225)[\[48\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L226-L226)[\[49\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L309-L309)[\[50\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L352-L352)[\[51\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L408-L408)[\[52\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L435-L435)[\[53\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ProviderSettings.ts#L438-L438)[\[54\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/components/ShortcutSettings.ts#L488-L488)[\[55\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L98-L98)[\[56\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L197-L197)[\[57\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L198-L198)[\[58\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L199-L199)[\[59\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L236-L236)[\[60\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L237-L237)[\[61\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L238-L238)[\[62\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L239-L239)[\[63\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L582-L582)[\[64\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L585-L585)[\[65\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L844-L844)[\[66\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L847-L847)[\[67\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainer.ts#L859-L859)[\[68\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L289-L289)[\[69\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L290-L290)[\[70\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L291-L291)[\[71\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L303-L303)[\[72\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L304-L304)[\[73\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts#L305-L305)[\[74\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/APIKeyManager.ts#L822-L822)[\[75\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L66-L66)[\[76\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L99-L99)[\[77\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L100-L100)[\[78\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L101-L101)[\[79\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L102-L102)[\[80\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L103-L103)[\[81\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/settings/provider/components/AdvancedSettingsPanel.ts#L883-L883) -Use sentence case for UI text. - -[\[1\]](https://github.com/asyouplz/SpeechNote/blob/e7e0e6b2ccb201005ce892843a88bccedd6c7318/src/ui/progress/StatusMessage.ts#L275-L275) -'value' may use Object's default stringification format ('[object Object]') when stringified. - - - ---- - -### Optional - - - ---- - - - -Do NOT open a new PR for re-validation. -Once you have pushed some changes to your repository the bot will rescan within 6 hours -If you think some of the required changes are incorrect, please comment with `/skip` and the reason why you think the results are incorrect. -To run these checks locally, install the [eslint plugin](https://github.com/obsidianmd/eslint-plugin) in your project. -Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved. - -``` diff --git a/src/infrastructure/api/SettingsValidator.ts b/src/infrastructure/api/SettingsValidator.ts index 4cfa8b5..ed37758 100644 --- a/src/infrastructure/api/SettingsValidator.ts +++ b/src/infrastructure/api/SettingsValidator.ts @@ -284,19 +284,31 @@ export class SettingsValidator { ) { const sampleRateLabel = (() => { if (typeof audio.sampleRate === 'number') { - return String(audio.sampleRate); + return audio.sampleRate.toString(); } if (typeof audio.sampleRate === 'string') { return audio.sampleRate; } - if (audio.sampleRate !== null && typeof audio.sampleRate === 'object') { - try { - return JSON.stringify(audio.sampleRate); - } catch { - return '[unserializable]'; - } + if (typeof audio.sampleRate === 'boolean') { + return audio.sampleRate ? 'true' : 'false'; + } + if (typeof audio.sampleRate === 'bigint') { + return audio.sampleRate.toString(); + } + if (typeof audio.sampleRate === 'symbol') { + return audio.sampleRate.description ?? 'symbol'; + } + if (audio.sampleRate === null) { + return 'null'; + } + if (audio.sampleRate === undefined) { + return 'undefined'; + } + try { + return JSON.stringify(audio.sampleRate); + } catch { + return '[unserializable]'; } - return String(audio.sampleRate); })(); errors.push({ field: 'audio.sampleRate', diff --git a/src/ui/progress/StatusMessage.ts b/src/ui/progress/StatusMessage.ts index a850646..dde567c 100644 --- a/src/ui/progress/StatusMessage.ts +++ b/src/ui/progress/StatusMessage.ts @@ -263,14 +263,20 @@ export class MessageStore { private static formatParamValue(value: unknown): string { if (value === null) return 'null'; - if (typeof value === 'object') { - try { - return JSON.stringify(value); - } catch { - return '[unserializable]'; - } + if (value === undefined) return 'undefined'; + + if (typeof value === 'string') return value; + if (typeof value === 'number') return Number.isNaN(value) ? 'NaN' : value.toString(); + if (typeof value === 'boolean') return value ? 'true' : 'false'; + if (typeof value === 'bigint') return value.toString(); + if (typeof value === 'symbol') return value.description ?? 'symbol'; + if (typeof value === 'function') return '[function]'; + + try { + return JSON.stringify(value); + } catch { + return '[unserializable]'; } - return String(value); } /** diff --git a/src/ui/settings/EnhancedSettingsTab.ts b/src/ui/settings/EnhancedSettingsTab.ts index 02f1d2b..d0453b9 100644 --- a/src/ui/settings/EnhancedSettingsTab.ts +++ b/src/ui/settings/EnhancedSettingsTab.ts @@ -392,7 +392,7 @@ export class EnhancedSettingsTab extends PluginSettingTab { .setDesc('Select the transcription service provider') .addDropdown((dropdown) => { dropdown - .addOption('openai', 'OpenAI whisper') + .addOption('openai', 'Openai whisper') .addOption('azure', 'Azure speech services') .addOption('custom', 'Custom endpoint'); @@ -509,7 +509,7 @@ export class EnhancedSettingsTab extends PluginSettingTab { if (api.provider === 'openai') { new Setting(section) .setName('Model') - .setDesc('Select the OpenAI model') + .setDesc('Select the openai model') .addDropdown((dropdown) => { dropdown.addOption('whisper-1', 'Whisper v1'); dropdown.setValue(api.model); @@ -583,9 +583,9 @@ export class EnhancedSettingsTab extends PluginSettingTab { .setDesc('Select the audio format for recording') .addDropdown((dropdown) => { dropdown - .addOption('webm', 'WebM (recommended)') - .addOption('mp3', 'MP3') - .addOption('m4a', 'M4A') + .addOption('webm', 'Webm (recommended)') + .addOption('mp3', 'Mp3') + .addOption('m4a', 'M4a') .addOption('wav', 'Wav (lossless)'); dropdown.setValue(audio.format); @@ -620,7 +620,7 @@ export class EnhancedSettingsTab extends PluginSettingTab { // 샘플 레이트 new Setting(section) .setName('Sample rate') - .setDesc('Audio sample rate in Hz') + .setDesc('Audio sample rate in hertz') .addDropdown((dropdown) => { const rates = [8000, 16000, 22050, 44100, 48000]; rates.forEach((rate) => { @@ -707,7 +707,7 @@ export class EnhancedSettingsTab extends PluginSettingTab { new Setting(cacheSection) .setName('Max cache size') - .setDesc('Maximum cache size in MB') + .setDesc('Maximum cache size in megabytes') .addSlider((slider) => { slider .setLimits(10, 500, 10) @@ -756,7 +756,7 @@ export class EnhancedSettingsTab extends PluginSettingTab { new Setting(perfSection) .setName('Chunk size') - .setDesc('File chunk size in MB') + .setDesc('File chunk size in megabytes') .addSlider((slider) => { slider .setLimits(0.5, 10, 0.5) diff --git a/src/ui/settings/SettingsTab.ts b/src/ui/settings/SettingsTab.ts index 87a810a..5822aaa 100644 --- a/src/ui/settings/SettingsTab.ts +++ b/src/ui/settings/SettingsTab.ts @@ -152,7 +152,7 @@ export class SettingsTab extends PluginSettingTab { dropdown .addOption('auto', 'Auto (intelligent selection)') - .addOption('whisper', 'OpenAI whisper') + .addOption('whisper', 'Openai whisper') .addOption('deepgram', 'Deepgram') .setValue(this.plugin.settings.provider || 'auto') .onChange(async (value) => { @@ -316,7 +316,7 @@ export class SettingsTab extends PluginSettingTab { // API Endpoint new Setting(containerEl) .setName('API endpoint') - .setDesc('OpenAI API endpoint (leave the default unless using a custom endpoint)') + .setDesc('Openai API endpoint (leave the default unless using a custom endpoint)') .addText((text) => text .setPlaceholder('https://api.openai.com/v1') @@ -354,7 +354,7 @@ export class SettingsTab extends PluginSettingTab { } catch (error) { console.error('Error rendering Deepgram settings:', error); deepgramContainer.createEl('p', { - text: 'Error loading Deepgram settings.', + text: 'Error loading deepgram settings.', cls: 'mod-warning', }); } @@ -365,8 +365,8 @@ export class SettingsTab extends PluginSettingTab { private renderWhisperApiKey(containerEl: HTMLElement): void { new Setting(containerEl) - .setName('OpenAI API key') - .setDesc('Enter your OpenAI API key for whisper transcription') + .setName('Openai API key') + .setDesc('Enter your openai API key for whisper transcription') .addText((text) => { text.setPlaceholder('Sk-...') .setValue(this.maskApiKey(this.plugin.settings.apiKey || '')) @@ -377,7 +377,7 @@ export class SettingsTab extends PluginSettingTab { await this.plugin.saveSettings(); text.setValue(this.maskApiKey(value)); - new Notice('OpenAI API key saved.'); + new Notice('Openai API key saved.'); } }); @@ -400,9 +400,9 @@ export class SettingsTab extends PluginSettingTab { private renderDeepgramApiKey(containerEl: HTMLElement): void { new Setting(containerEl) .setName('Deepgram API key') - .setDesc('Enter your Deepgram API key for transcription') + .setDesc('Enter your deepgram API key for transcription') .addText((text) => { - text.setPlaceholder('Enter Deepgram API key...') + text.setPlaceholder('Enter deepgram API key...') .setValue(this.maskApiKey(this.plugin.settings.deepgramApiKey || '')) .onChange(async (value) => { if (value && !value.includes('*')) { diff --git a/src/ui/settings/SettingsTabOptimized.ts b/src/ui/settings/SettingsTabOptimized.ts index 0315353..095fce6 100644 --- a/src/ui/settings/SettingsTabOptimized.ts +++ b/src/ui/settings/SettingsTabOptimized.ts @@ -470,7 +470,7 @@ class ApiSettingsSection extends SectionRenderer { const section = this.container.createDiv('settings-section'); new Setting(section).setName('API').setHeading(); section.createEl('p', { - text: 'OpenAI API 설정', + text: 'Openai API 설정', cls: 'setting-item-description', }); return section; @@ -479,7 +479,7 @@ class ApiSettingsSection extends SectionRenderer { private createApiKeyInput(section: HTMLElement): void { const setting = new Setting(section) .setName('API key') - .setDesc('OpenAI API 키를 입력하세요. (sk-로 시작)'); + .setDesc('Openai API 키를 입력하세요. (sk-로 시작)'); const inputContainer = setting.controlEl.createDiv('api-key-container'); const eventManager = this.eventManager; diff --git a/src/ui/settings/SettingsTabRefactored.ts b/src/ui/settings/SettingsTabRefactored.ts index 60c4ca2..96d3158 100644 --- a/src/ui/settings/SettingsTabRefactored.ts +++ b/src/ui/settings/SettingsTabRefactored.ts @@ -149,11 +149,11 @@ export class SettingsTabRefactored extends PluginSettingTab { * API 설정 섹션 (개선된 버전) */ private createApiSection(containerEl: HTMLElement): void { - const sectionEl = this.createSection(containerEl, 'API', 'OpenAI API 설정'); + const sectionEl = this.createSection(containerEl, 'API', 'Openai API 설정'); const apiKeySetting = new Setting(sectionEl) .setName('API key') - .setDesc('OpenAI API 키를 입력하세요. (sk-로 시작)'); + .setDesc('Openai API 키를 입력하세요. (sk-로 시작)'); const inputEl = apiKeySetting.controlEl.createEl('input', { type: 'password', diff --git a/src/ui/settings/SimpleSettingsTab.ts b/src/ui/settings/SimpleSettingsTab.ts index 51ba62a..52b6825 100644 --- a/src/ui/settings/SimpleSettingsTab.ts +++ b/src/ui/settings/SimpleSettingsTab.ts @@ -39,7 +39,7 @@ export class SimpleSettingsTab extends PluginSettingTab { this.debug('Adding options to dropdown...'); dropdown .addOption('auto', 'Auto (intelligent selection)') - .addOption('whisper', 'OpenAI whisper') + .addOption('whisper', 'Openai whisper') .addOption('deepgram', 'Deepgram') .setValue(this.plugin.settings.provider || 'auto') .onChange(async (value) => { @@ -61,8 +61,8 @@ export class SimpleSettingsTab extends PluginSettingTab { // Auto 모드일 때는 양쪽 API 키 모두 표시 if (provider === 'auto' || provider === 'whisper') { new Setting(containerEl) - .setName('OpenAI API key') - .setDesc('Enter your OpenAI API key for whisper') + .setName('Openai API key') + .setDesc('Enter your openai API key for whisper') .addText((text) => text .setPlaceholder('Sk-...') @@ -78,10 +78,10 @@ export class SimpleSettingsTab extends PluginSettingTab { if (provider === 'auto' || provider === 'deepgram') { new Setting(containerEl) .setName('Deepgram API key') - .setDesc('Enter your Deepgram API key') + .setDesc('Enter your deepgram API key') .addText((text) => text - .setPlaceholder('Enter Deepgram API key...') + .setPlaceholder('Enter deepgram API key...') .setValue(this.plugin.settings.deepgramApiKey || '') .onChange(async (value) => { this.plugin.settings.deepgramApiKey = value; @@ -93,7 +93,7 @@ export class SimpleSettingsTab extends PluginSettingTab { if (provider === 'deepgram') { new Setting(containerEl) .setName('Deepgram model') - .setDesc('Select the Deepgram model to use') + .setDesc('Select the deepgram model to use') .addDropdown((dropdown) => dropdown .addOption('nova-2', 'Nova 2 (premium)') diff --git a/src/ui/settings/components/DeepgramSettings.ts b/src/ui/settings/components/DeepgramSettings.ts index 0d9bf63..aa35089 100644 --- a/src/ui/settings/components/DeepgramSettings.ts +++ b/src/ui/settings/components/DeepgramSettings.ts @@ -578,7 +578,7 @@ export class DeepgramSettings { // Maximum chunk size const chunkSizeSetting = new Setting(container) .setName('Maximum chunk size') - .setDesc('Maximum size per chunk in MB (recommended: 50MB)') + .setDesc('Maximum size per chunk in megabytes (recommended: 50 megabytes)') .addSlider((slider) => { slider .setLimits(10, 100, 10) diff --git a/src/ui/settings/components/ProviderSettings.ts b/src/ui/settings/components/ProviderSettings.ts index 124b014..20d8ec7 100644 --- a/src/ui/settings/components/ProviderSettings.ts +++ b/src/ui/settings/components/ProviderSettings.ts @@ -80,9 +80,9 @@ export class ProviderSettings { .setDesc('Choose a specific provider or use automatic selection') .addDropdown((dropdown) => { dropdown - .addOption('auto', '🤖 Automatic (recommended)') - .addOption('whisper', '🎯 OpenAI whisper') - .addOption('deepgram', '🚀 Deepgram') + .addOption('auto', '🤖 automatic (recommended)') + .addOption('whisper', '🎯 openai whisper') + .addOption('deepgram', '🚀 deepgram') .setValue(this.currentProvider) .onChange(async (value) => { if (this.isProviderValue(value)) { @@ -111,8 +111,8 @@ export class ProviderSettings { this.renderSingleApiKey( apiKeysContainer, 'whisper', - 'OpenAI API key', - 'Enter your OpenAI API key (starts with sk-)', + 'Openai API key', + 'Enter your openai API key (starts with sk-)', 'sk-...' ); @@ -121,7 +121,7 @@ export class ProviderSettings { apiKeysContainer, 'deepgram', 'Deepgram API key', - 'Enter your Deepgram API key', + 'Enter your deepgram API key', 'your-deepgram-api-key' ); } @@ -306,7 +306,7 @@ export class ProviderSettings { private renderABTestDetails(containerEl: HTMLElement): void { new Setting(containerEl) .setName('Traffic split') - .setDesc('Percentage of requests to send to whisper vs Deepgram') + .setDesc('Percentage of requests to send to whisper vs deepgram') .addSlider((slider) => { const currentSplit = this.plugin.settings.abTestSplit || 50; diff --git a/src/ui/settings/provider/ProviderSettingsContainer.ts b/src/ui/settings/provider/ProviderSettingsContainer.ts index b5082b3..8aed687 100644 --- a/src/ui/settings/provider/ProviderSettingsContainer.ts +++ b/src/ui/settings/provider/ProviderSettingsContainer.ts @@ -194,9 +194,9 @@ export class ProviderSettingsContainer { .setDesc('Select how to choose the transcription provider') .addDropdown((dropdown) => { dropdown - .addOption('auto', '🤖 Automatic (recommended)') - .addOption('whisper', '🎯 OpenAI whisper only') - .addOption('deepgram', '🚀 Deepgram only') + .addOption('auto', '🤖 automatic (recommended)') + .addOption('whisper', '🎯 openai whisper only') + .addOption('deepgram', '🚀 deepgram only') .setValue(this.currentProvider) .onChange(async (value) => { if (this.isProviderSelection(value)) { diff --git a/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts index a5a005b..baa688d 100644 --- a/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts +++ b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts @@ -286,9 +286,9 @@ export class ProviderSettingsContainerRefactored extends BaseSettingsComponent { 'Select how to choose the transcription provider' ).addDropdown((dropdown) => { dropdown - .addOption('auto', '🤖 Automatic') - .addOption('whisper', '🎯 OpenAI whisper') - .addOption('deepgram', '🚀 Deepgram') + .addOption('auto', '🤖 automatic') + .addOption('whisper', '🎯 openai whisper') + .addOption('deepgram', '🚀 deepgram') .setValue(this.state.get().currentProvider) .onChange((value) => { void this.handleProviderChange(value);