### Required

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L63-L63)[\[2\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L115-L115)[\[3\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L116-L116)[\[4\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L142-L142)[\[5\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L148-L148)[\[6\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L203-L203)[\[7\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L204-L204)[\[8\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L291-L291)[\[9\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L61-L61)[\[10\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L113-L113)[\[11\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L127-L127)[\[12\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L128-L128)[\[13\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L151-L151)[\[14\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L181-L181)[\[15\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroupedModelSelector.tsx#L23-L23)[\[16\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroupedModelSelector.tsx#L58-L58)[\[17\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/MessageItem.tsx#L86-L86)[\[18\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ModelSelector.tsx#L22-L22)[\[19\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ModelSelector.tsx#L56-L56)[\[20\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/SupportButton.tsx#L15-L15)[\[21\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/context/PluginSettingsContext.tsx#L36-L36)[\[22\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/localization.ts#L14-L14)[\[23\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L54-L54)[\[24\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L14-L14)[\[25\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L15-L15)[\[26\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/groqService.ts#L193-L193)[\[27\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/groqService.ts#L197-L197)[\[28\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/groqService.ts#L197-L197)[\[29\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/groqService.ts#L202-L202)[\[30\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/groqService.ts#L221-L221)[\[31\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L34-L34)[\[32\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L267-L267)[\[33\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L356-L356)[\[34\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L357-L357)[\[35\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L671-L671)[\[36\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/types/window.d.ts#L3-L3)[\[37\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/utils/modelUtils.ts#L142-L142)[\[38\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/utils/modelUtils.ts#L142-L142)[\[39\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/utils/modelUtils.ts#L143-L143)[\[40\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/utils/modelUtils.ts#L164-L164)[\[41\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/views/GroqChatView.tsx#L65-L65)[\[42\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/views/GroqChatView.tsx#L67-L67)
Unexpected any. Specify a different type.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L88-L88)[\[2\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L209-L209)[\[3\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L306-L306)[\[4\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L85-L85)[\[5\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroupedModelSelector.tsx#L70-L70)[\[6\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ModelSelector.tsx#L66-L66)[\[7\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L52-L52)[\[8\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L110-L110)
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/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L403-L403)[\[2\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ChatPanel.tsx#L467-L467)[\[3\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L40-L40)[\[4\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/MessageItem.tsx#L160-L160)[\[5\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/MessageItem.tsx#L187-L187)[\[6\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/views/GroqChatView.tsx#L59-L59)
Promise-returning function provided to attribute where a void return was expected.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L77-L77)[\[2\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L191-L191)[\[3\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroupedModelSelector.tsx#L78-L78)[\[4\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/ModelSelector.tsx#L74-L74)[\[5\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L424-L424)[\[6\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L434-L434)
This assertion is unnecessary since it does not change the type of the expression.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L143-L186)[\[2\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L225-L233)[\[3\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L139-L147)[\[4\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L513-L524)[\[5\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L700-L700)
Promise returned in function argument where a void return was expected.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L222-L223)
Do not write to DOM directly using innerHTML/outerHTML property

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L23-L23)[\[2\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L32-L32)[\[3\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L35-L35)[\[4\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L44-L44)[\[5\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L48-L48)[\[6\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L69-L69)[\[7\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/main.ts#L75-L75)[\[8\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L55-L55)[\[9\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L61-L61)[\[10\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L64-L64)[\[11\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L98-L98)[\[12\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L142-L142)[\[13\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L145-L145)[\[14\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L150-L150)[\[15\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L111-L111)[\[16\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/views/GroqChatView.tsx#L29-L29)
Use sentence case for UI text.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/authService.ts#L130-L130)[\[2\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L159-L159)[\[3\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L195-L195)
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L130-L130)[\[2\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L153-L153)[\[3\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L164-L164)[\[4\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L170-L170)[\[5\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L175-L175)[\[6\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L200-L200)[\[7\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/services/historyService.ts#L304-L304)
Expected the Promise rejection reason to be an Error.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/views/GroqChatView.tsx#L40-L40)
Async method 'onOpen' has no 'await' expression.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/views/GroqChatView.tsx#L44-L44)
Async method 'onClose' has no 'await' expression.



---

### Optional

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L4-L4)
'FiCode' is defined but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L4-L4)
'FiAlignLeft' is defined but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroqMarkdown.tsx#L21-L21)
'CodeBlock' is assigned a value but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroupedModelSelector.tsx#L6-L6)
'isPreviewModel' is defined but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/GroupedModelSelector.tsx#L35-L35)
'availableModels' is assigned a value but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/MessageInput.tsx#L37-L37)
'handleKeyDown' is assigned a value but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/MessageList.tsx#L63-L63)
'ensureStrictBottom' is assigned a value but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/components/SupportDialog.tsx#L4-L4)
'tHtml' is defined but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L5-L5)
'clearElement' is defined but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L7-L7)
'RateLimitsType' is defined but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L67-L67)
'subtitle' is assigned a value but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L297-L297)
'dropdown' is assigned a value but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/settings/GroqChatSettingsTab.ts#L476-L476)
'rowIndex' is assigned a value but never used.

[\[1\]](https://github.com/semernyakov/polychat/blob/a5ec75599bc0cd7de657424024596988f6f1f297/src/types/plugin.ts#L3-L3)
'Message' is defined but never used.

