diff --git a/docs/obsidian-review-8004-issuecomment-3839142330.md b/docs/obsidian-review-8004-issuecomment-3839142330.md new file mode 100644 index 0000000..335da19 --- /dev/null +++ b/docs/obsidian-review-8004-issuecomment-3839142330.md @@ -0,0 +1,139 @@ +# 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.md b/docs/obsidian-review-8004.md new file mode 100644 index 0000000..4cda2ac --- /dev/null +++ b/docs/obsidian-review-8004.md @@ -0,0 +1,255 @@ +# 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/ui/settings/EnhancedSettingsTab.ts b/src/ui/settings/EnhancedSettingsTab.ts index db3ef2e..02f1d2b 100644 --- a/src/ui/settings/EnhancedSettingsTab.ts +++ b/src/ui/settings/EnhancedSettingsTab.ts @@ -392,8 +392,8 @@ export class EnhancedSettingsTab extends PluginSettingTab { .setDesc('Select the transcription service provider') .addDropdown((dropdown) => { dropdown - .addOption('openai', 'OpenAI Whisper') - .addOption('azure', 'Azure Speech Services') + .addOption('openai', 'OpenAI whisper') + .addOption('azure', 'Azure speech services') .addOption('custom', 'Custom endpoint'); void this.settingsAPI.get('api').then((api) => { diff --git a/src/ui/settings/SettingsTab.ts b/src/ui/settings/SettingsTab.ts index 064a670..3f3f2c3 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) => { @@ -366,7 +366,7 @@ 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') + .setDesc('Enter your OpenAI API key for whisper transcription') .addText((text) => { text.setPlaceholder('Sk-...') .setValue(this.maskApiKey(this.plugin.settings.apiKey || '')) @@ -439,7 +439,7 @@ export class SettingsTab extends PluginSettingTab { const descriptions = { auto: '🤖 Intelligent selection between providers based on your configured strategy. Automatically chooses the best provider for each request.', whisper: - '🎯 OpenAI Whisper - high-quality transcription with support for multiple languages. Best for general-purpose transcription.', + '🎯 OpenAI whisper - high-quality transcription with support for multiple languages. Best for general-purpose transcription.', deepgram: '⚡ Deepgram - fast, accurate transcription with advanced AI features. Best for real-time processing and speaker diarization.', }; @@ -524,7 +524,7 @@ export class SettingsTab extends PluginSettingTab { if (provider === 'whisper' || provider === 'auto') { new Setting(containerEl) .setName('Whisper model') - .setDesc('Select the Whisper model to use') + .setDesc('Select the whisper model to use') .addDropdown((dropdown) => dropdown .addOption('whisper-1', 'Whisper v1 (default)') diff --git a/src/ui/settings/SimpleSettingsTab.ts b/src/ui/settings/SimpleSettingsTab.ts index 03c4205..51ba62a 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) => { @@ -62,7 +62,7 @@ export class SimpleSettingsTab extends PluginSettingTab { if (provider === 'auto' || provider === 'whisper') { new Setting(containerEl) .setName('OpenAI API key') - .setDesc('Enter your OpenAI API key for Whisper') + .setDesc('Enter your OpenAI API key for whisper') .addText((text) => text .setPlaceholder('Sk-...') diff --git a/src/ui/settings/components/ProviderSettings.ts b/src/ui/settings/components/ProviderSettings.ts index 1999809..124b014 100644 --- a/src/ui/settings/components/ProviderSettings.ts +++ b/src/ui/settings/components/ProviderSettings.ts @@ -81,7 +81,7 @@ export class ProviderSettings { .addDropdown((dropdown) => { dropdown .addOption('auto', '🤖 Automatic (recommended)') - .addOption('whisper', '🎯 OpenAI Whisper') + .addOption('whisper', '🎯 OpenAI whisper') .addOption('deepgram', '🚀 Deepgram') .setValue(this.currentProvider) .onChange(async (value) => { @@ -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; @@ -574,7 +574,7 @@ export class ProviderSettings { private showProviderInfo(provider: string): void { const info: Record = { auto: '🤖 System will automatically select the best provider based on performance and availability', - whisper: '🎯 OpenAI Whisper - high accuracy, supports 50+ languages', + whisper: '🎯 OpenAI whisper - high accuracy, supports 50+ languages', deepgram: '🚀 Deepgram - fast real-time transcription with excellent accuracy', }; @@ -601,7 +601,7 @@ export class ProviderSettings { */ private getProviderDisplayName(provider: TranscriptionProvider): string { const names: Record = { - whisper: 'OpenAI Whisper', + whisper: 'OpenAI whisper', deepgram: 'Deepgram', }; return names[provider] || provider; diff --git a/src/ui/settings/provider/ProviderSettingsContainer.ts b/src/ui/settings/provider/ProviderSettingsContainer.ts index bf64c88..f4e20e0 100644 --- a/src/ui/settings/provider/ProviderSettingsContainer.ts +++ b/src/ui/settings/provider/ProviderSettingsContainer.ts @@ -195,7 +195,7 @@ export class ProviderSettingsContainer { .addDropdown((dropdown) => { dropdown .addOption('auto', '🤖 Automatic (recommended)') - .addOption('whisper', '🎯 OpenAI Whisper only') + .addOption('whisper', '🎯 OpenAI whisper only') .addOption('deepgram', '🚀 Deepgram only') .setValue(this.currentProvider) .onChange(async (value) => { @@ -358,7 +358,7 @@ export class ProviderSettingsContainer { */ private getProviderDisplayName(provider: string): string { const names: Record = { - whisper: 'OpenAI Whisper', + whisper: 'OpenAI whisper', deepgram: 'Deepgram', auto: 'Automatic', }; @@ -400,7 +400,7 @@ export class ProviderSettingsContainer { private showProviderNotice(provider: string): void { const messages: Record = { auto: '🤖 System will automatically select the best provider', - whisper: '🎯 Using OpenAI Whisper exclusively', + whisper: '🎯 Using OpenAI whisper exclusively', deepgram: '🚀 Using Deepgram exclusively', }; new Notice(messages[provider] || 'Provider updated'); @@ -427,7 +427,7 @@ export class ProviderSettingsContainer { ], }, { - title: '🎯 OpenAI Whisper', + title: '🎯 OpenAI whisper', bullets: [ 'Excellent accuracy for 50+ languages', 'Best for long-form content', @@ -438,7 +438,7 @@ export class ProviderSettingsContainer { title: '🚀 Deepgram', bullets: [ 'Ultra-fast real-time transcription', - 'Lower latency than Whisper', + 'Lower latency than whisper', 'Cost-effective for high volume', ], }, @@ -776,7 +776,7 @@ class ProviderDetailsModal extends Modal { } private getProviderName(): string { - return this.provider === 'whisper' ? 'OpenAI Whisper' : 'Deepgram'; + return this.provider === 'whisper' ? 'OpenAI whisper' : 'Deepgram'; } private renderStatus(containerEl: HTMLElement): void { diff --git a/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts index 3137e80..a5a005b 100644 --- a/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts +++ b/src/ui/settings/provider/ProviderSettingsContainerRefactored.ts @@ -287,7 +287,7 @@ export class ProviderSettingsContainerRefactored extends BaseSettingsComponent { ).addDropdown((dropdown) => { dropdown .addOption('auto', '🤖 Automatic') - .addOption('whisper', '🎯 OpenAI Whisper') + .addOption('whisper', '🎯 OpenAI whisper') .addOption('deepgram', '🚀 Deepgram') .setValue(this.state.get().currentProvider) .onChange((value) => { @@ -567,7 +567,7 @@ export class ProviderSettingsContainerRefactored extends BaseSettingsComponent { */ private getProviderDisplayName(provider: string): string { const names: Record = { - whisper: 'OpenAI Whisper', + whisper: 'OpenAI whisper', deepgram: 'Deepgram', auto: '자동', }; @@ -828,7 +828,7 @@ class ProviderDetailsModal extends Modal { } private getProviderName(): string { - return this.provider === 'whisper' ? 'OpenAI Whisper' : 'Deepgram'; + return this.provider === 'whisper' ? 'OpenAI whisper' : 'Deepgram'; } private createStatusContent(): HTMLElement { diff --git a/src/ui/settings/provider/components/APIKeyManager.ts b/src/ui/settings/provider/components/APIKeyManager.ts index b3e4610..a54fa43 100644 --- a/src/ui/settings/provider/components/APIKeyManager.ts +++ b/src/ui/settings/provider/components/APIKeyManager.ts @@ -81,7 +81,7 @@ export class APIKeyManager { inputsEl, 'whisper', 'OpenAI API key', - 'Your OpenAI API key for Whisper', + 'Your OpenAI API key for whisper', 'sk-...', /^sk-[A-Za-z0-9]{48,}$/ ); @@ -684,7 +684,7 @@ export class APIKeyManager { * Provider 이름 가져오기 */ private getProviderName(provider: TranscriptionProvider): string { - return provider === 'whisper' ? 'OpenAI Whisper' : 'Deepgram'; + return provider === 'whisper' ? 'OpenAI whisper' : 'Deepgram'; } /** @@ -806,7 +806,7 @@ export class APIKeyManager { const whisperItem = envList.createEl('li'); whisperItem.createEl('code', { text: 'OPENAI_API_KEY' }); - whisperItem.appendText(' for Whisper'); + whisperItem.appendText(' for whisper'); const deepgramItem = envList.createEl('li'); deepgramItem.createEl('code', { text: 'DEEPGRAM_API_KEY' }); diff --git a/src/ui/settings/provider/components/APIKeyManagerRefactored.ts b/src/ui/settings/provider/components/APIKeyManagerRefactored.ts index 9e0a726..87e783d 100644 --- a/src/ui/settings/provider/components/APIKeyManagerRefactored.ts +++ b/src/ui/settings/provider/components/APIKeyManagerRefactored.ts @@ -66,7 +66,7 @@ export class APIKeyManagerRefactored extends BaseSettingsComponent { [ 'whisper', { - name: 'OpenAI Whisper', + name: 'OpenAI whisper', placeholder: 'sk-...', pattern: /^sk-[A-Za-z0-9]{48,}$/, validateEndpoint: 'https://api.openai.com/v1/models',