From e063ab28e7da363012d05090a0f753a92afcf743 Mon Sep 17 00:00:00 2001 From: yesung Date: Fri, 24 Apr 2026 11:17:47 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20connectai=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EC=A4=80=EB=B9=84=20=EB=B0=8F=20=EC=A0=80=EC=9E=A5=EC=86=8C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20(to=20locallm)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diff.txt | Bin 0 -> 3572 bytes diff_utf8.txt | 37 +++++++++++++++++++++++++++++++++++++ package-lock.json | 4 ++-- src/extension.ts | 17 +++++++++++++++-- 4 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 diff.txt create mode 100644 diff_utf8.txt diff --git a/diff.txt b/diff.txt new file mode 100644 index 0000000000000000000000000000000000000000..6eafee2922b9574ac966a62ec78807f01cd05086 GIT binary patch literal 3572 zcmd5Kn)n0UJq)oW&<8E3DAtFvP!fnH7)>OGl=Aq9r6r}5A{brh7TxH^ zUqDPyg9gGzqeNw+|G>oPpJ1b&Gt`^L6LmbI-kZ`2KB7reqw=kr>(p zMg@GQq+MnuFKP6?lrZN@7Bf?lL+@fdi(R7)>^dk1a4IWfN{%DP(Gt>u8@uu4qWRK= zuQXapIw3WV)ebp^*)HK}>J@8HC+=@mt#R#or5Dm;>fSgsX~WNf4CedbqXwPYs{?1>bY&39STORrrmGwU6iO&M;Oyhe5-?Vv52Ftc)FcXy) ztX0}#B$AH~_A~*hNl2arJ|hZIVxvzwxYNh_9Qv&EVE@fBSBw+A@f=nQ0c|PSktBW->c&1LZyb6}C_8%8y{%Xew?^*$UD@Ok?ICw+ z>ulH8wVu+JgstGH0E`#V+x%rt1TCi527uxaPS4>+<_(QvE&N@qlP?*y*H;XQAodc- z2VD|TK3|e0NND_Y5$Ac*W|h&}U^xxh#FP9yiJQn6@;VDY56iW(_WaTkgIR-Gw#f^jfgb_ReJSG(iNfiwpbz|5_G<{H_=E1O)hX!Hh z{MwBXsXfJfW3+BUO#k#@El%0ur6piXbtD@dbcSiQ#Jkz0GxDRWx5bk?n=7vz`M5LI zoLpyLYTm!?VcwIKC-JxT_|_N~2nuB)WcxU&BfcsgZH`@Q67zT$ks;sJvW9HkiSVG+5`>r~|A*to{0R6h+?AxiE|UY0RI&$^dqZ zs*L0!%gw-NJmI5;M6CXc)U8acT48O2wJEIACES)TYwpT9#B@%*TQa*D(vFhhz41b2 zU!P4n9&Db|4D}?rN`^kzI(68SrTF95j(pvDxRqS>#Bbhy$+gA!)&{xG^+WIL-x;h# z;hXz`bqTn!J_h-svjz8- 0) { ++ defaultModel = models[0]; ++ await vscode.workspace.getConfiguration('connectAiLab').update('defaultModel', defaultModel, vscode.ConfigurationTarget.Global); ++ } ++ ++ // defaultModel????긽 ?쒕∼?ㅼ슫 理쒖긽?⑥뿉 ?ㅻ룄濡??ㅼ젙 ++ const defaultIdx = models.indexOf(defaultModel); ++ if (defaultIdx > 0) { ++ models.splice(defaultIdx, 1); + models.unshift(defaultModel); + } ++ + this._view.webview.postMessage({ type: 'modelsList', value: models }); + } catch { + this._view.webview.postMessage({ type: 'modelsList', value: [defaultModel] }); diff --git a/package-lock.json b/package-lock.json index 6485b2d..06733e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "connect-ai-lab", - "version": "2.2.10", + "version": "2.2.15", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "connect-ai-lab", - "version": "2.2.10", + "version": "2.2.15", "license": "MIT", "dependencies": { "axios": "^1.15.0", diff --git a/src/extension.ts b/src/extension.ts index 7720f87..e47cca3 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1017,7 +1017,8 @@ class SidebarChatProvider implements vscode.WebviewViewProvider { // -------------------------------------------------------- private async _sendModels() { if (!this._view) { return; } - const { ollamaBase, defaultModel } = getConfig(); + const { ollamaBase } = getConfig(); + let defaultModel = getConfig().defaultModel; try { const isLMStudio = ollamaBase.includes('1234') || ollamaBase.includes('v1'); let models: string[] = []; @@ -1034,9 +1035,21 @@ class SidebarChatProvider implements vscode.WebviewViewProvider { if (models.length === 0) { models = [defaultModel]; - } else if (!models.includes(defaultModel)) { + } + + // 가져온 모델 목록에 현재 defaultModel이 없다면, 불러온 첫 번째 모델로 defaultModel을 자동 업데이트 + if (!models.includes(defaultModel) && models.length > 0) { + defaultModel = models[0]; + await vscode.workspace.getConfiguration('connectAiLab').update('defaultModel', defaultModel, vscode.ConfigurationTarget.Global); + } + + // defaultModel이 항상 드롭다운 최상단에 오도록 설정 + const defaultIdx = models.indexOf(defaultModel); + if (defaultIdx > 0) { + models.splice(defaultIdx, 1); models.unshift(defaultModel); } + this._view.webview.postMessage({ type: 'modelsList', value: models }); } catch { this._view.webview.postMessage({ type: 'modelsList', value: [defaultModel] });