### Required

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/main.ts#L42-L51)
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/main.ts#L42-L42)
Async method 'onunload' has no 'await' expression.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/main.ts#L196-L196)
Async method 'callback' has no 'await' expression.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/ai/aiService.ts#L66-L66)
Unexpected use of 'fetch'. Use the built-in `requestUrl` function instead of `fetch` for network requests in Obsidian.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/ai/aiService.ts#L115-L115)[\[2\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/ai/geminiService.ts#L129-L129)[\[3\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/ai/geminiService.ts#L134-L134)[\[4\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/ai/ollamaService.ts#L93-L93)[\[5\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/ai/openaiService.ts#L98-L98)[\[6\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/ai/openaiService.ts#L102-L102)[\[7\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/journalManager.ts#L92-L92)[\[8\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/scheduler.ts#L269-L269)[\[9\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/scheduler.ts#L277-L277)[\[10\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L612-L612)[\[11\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L628-L628)[\[12\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L629-L629)[\[13\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/fileUtils.ts#L103-L103)[\[14\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/fileUtils.ts#L123-L123)[\[15\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/fileUtils.ts#L135-L135)[\[16\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/fileUtils.ts#L136-L136)[\[17\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/fileUtils.ts#L169-L169)[\[18\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/logger.ts#L26-L26)[\[19\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/logger.ts#L32-L32)[\[20\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/logger.ts#L38-L38)[\[21\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/logger.ts#L44-L44)[\[22\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/logger.ts#L44-L44)
Unexpected any. Specify a different type.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/ai/aiServiceFactory.ts#L26-L26)
Invalid type "never" of template literal expression.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/journalManager.ts#L209-L209)
Async method 'getJournalStats' has no 'await' expression.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/noteProcessor.ts#L221-L221)
Async method 'journalEntryExists' has no 'await' expression.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/noteProcessor.ts#L262-L262)
Async method 'validateSourceFolder' has no 'await' expression.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/scheduler.ts#L52-L52)[\[2\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/scheduler.ts#L57-L57)[\[3\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L332-L332)[\[4\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L393-L393)[\[5\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L424-L424)[\[6\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L616-L616)
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L102-L102)[\[2\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L129-L129)[\[3\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L167-L167)[\[4\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L190-L190)[\[5\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L203-L203)[\[6\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L211-L211)[\[7\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L228-L228)[\[8\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L230-L230)[\[9\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L262-L262)[\[10\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L295-L295)[\[11\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L303-L303)[\[12\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L308-L308)[\[13\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L309-L309)[\[14\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L310-L310)[\[15\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L558-L558)[\[16\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L580-L580)[\[17\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L582-L582)[\[18\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L681-L681)[\[19\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L723-L723)[\[20\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L744-L744)[\[21\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L754-L754)[\[22\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L781-L781)
Use sentence case for UI text.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L190-L190)[\[2\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L203-L203)[\[3\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L295-L295)[\[4\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L626-L626)[\[5\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L681-L681)[\[6\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L716-L716)[\[7\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L823-L823)
Use `new Setting(containerEl).setName(...).setHeading()` instead of creating HTML heading elements directly.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L219-L222)[\[2\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L251-L254)
Promise returned in function argument where a void return was expected.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/fileUtils.ts#L2-L2)
Do not import Node.js builtin module "crypto"

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/utils/logger.ts#L34-L34)
Unexpected console statement. Only these console methods are allowed: warn, error, debug.



---

### Optional

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/journalManager.ts#L2-L2)[\[2\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/noteProcessor.ts#L2-L2)
'Coordinate' is defined but never used.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/journalManager.ts#L192-L192)
'folder' is assigned a value but never used.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/services/journalManager.ts#L281-L281)
Use 'FileManager.trashFile()' instead of 'Vault.delete()' to respect the user's file deletion preference.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L1-L1)
'TextAreaComponent' is defined but never used.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L156-L156)[\[2\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L166-L166)
'msg' is assigned a value but never used.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L297-L297)
'providerDropdown' is assigned a value but never used.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L768-L768)
'br' is assigned a value but never used.

[\[1\]](https://github.com/bbotella/obsidian-journal-plugin/blob/67d8eef69d26a362f0ac7355e6fcaa0a1a4b2b37/src/settings/settingsTab.ts#L847-L847)
'supportP3' is assigned a value but never used.

