From beb0653e15b36da9a73f1062b0af6e48c669a1ae Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 25 Jul 2026 08:51:54 +0000 Subject: [PATCH] =?UTF-8?q?fix(console/t36):=20=E8=AA=9E=E6=84=8F=E6=90=9C?= =?UTF-8?q?=E5=B0=8B=E6=94=B9=E7=8B=80=E6=85=8B=E5=88=97=E2=80=94=E2=80=94?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=8C=89=E4=B8=8D=E5=8B=95=E7=9A=84=E5=81=87?= =?UTF-8?q?=E9=96=8B=E9=97=9C=E8=88=87=20CLI=20=E6=8C=87=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit leo 2026-07-25 定案:語意搜尋預設開啟、不做開關(費用實算後屬雜訊——1 萬張卡規模 下 Vectorize 約 $0.18/月,佔 CF 帳單 3~4%;關掉省幾毛錢卻換來很爛的搜尋體驗)。 設定頁那顆「語意搜尋(vectorize)」開關其實不能按(title 自承「不能遠端改,只如實 顯示狀態」),旁邊還教用戶去部署端改 config.yaml 跑 acr update——對一鍵安裝進來的 用戶那是天書(與 t35 同一種白癡化違規),而且安裝器現在裝機時就把語意索引開好了, 那段指示本身已不成立。 改成單純狀態列:啟用時只說「已啟用,搜尋頁切語意就能用」不給任何操作指示;未啟用 才給一句人話與下一步(重跑安裝流程會補上,已建資料不重來)。 ⚠️ 連帶必修:一併移除綁在該開關上的 click handler——留著會讓 $('st-vec-switch') 回 null、addEventListener 當場拋錯,把後面所有綁定(含登出)一起打斷。 驗:三個 script 區塊語法檢查通過、全檔已無 st-vec-switch/st-vec-state 殘留參照。 --- console-ui/public/console/index.html | 46 ++++++++++++++++------------ 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/console-ui/public/console/index.html b/console-ui/public/console/index.html index ef360fc..4b97e4a 100644 --- a/console-ui/public/console/index.html +++ b/console-ui/public/console/index.html @@ -412,16 +412,14 @@
-
-
-
語意搜尋(vectorize)
-
狀態偵測中…
-
-
-
-
- 誠實提示:開關真相=部署端 ~/.arcrun/config.yamlkbdb_embed: trueacr update 重部署(#32 教訓:wrangler 直推改的形態 config 要同步)。Console 只如實顯示狀態,不假裝能遠端開啟。目前狀態:偵測中… -
+ +
語意搜尋
+
狀態偵測中…
+
MCP token 有效期(TTL)
@@ -1451,16 +1449,26 @@ function taipeiMonthDay(ms) { var d = new Date(ms + TAIPEI_OFFSET_MS); return { fetch(API_BASE + '/kbdb/search?q=mira&mode=semantic', { headers: apiHeaders() }) .then(function (r) { return r.json(); }) .then(function (d) { + // t36:狀態照實顯示(live 探測 mode,不是讀設定值)。啟用時不再顯示任何操作指示—— + // 沒有東西要用戶操作;未啟用才給一句人話與下一步。 var on = d.mode === 'semantic'; - $('st-vec-switch').classList.toggle('on', on); $('st-vec').textContent = on - ? '已啟用・語意搜尋可用(搜尋頁切「語意」)' - : '未啟用・' + (d.capability_hint || '部署端尚未開啟 Vectorize(kbdb_embed)'); - $('st-vec-state').textContent = on ? '已啟用(live 探測 mode=semantic)' : '未啟用(live 探測降級 keyword)'; + ? '● 已啟用——搜尋頁切到「語意」就能用意思找資料。' + : '○ 尚未啟用——目前用關鍵字搜尋,不會假裝有語意結果。'; + var hint = $('st-vec-hint'); + if (on) { + hint.style.display = 'none'; + } else { + hint.style.display = ''; + hint.innerHTML = '一鍵安裝的實例會在安裝時自動開通語意索引。' + + '如果你這個實例是較早裝的、或安裝當下開通沒成功,重新跑一次安裝流程即可補上(已建好的資料不會重來)。'; + } }) .catch(function () { - $('st-vec').textContent = '狀態偵測失敗(KBDB 不可達)'; - $('st-vec-state').textContent = '偵測失敗'; + $('st-vec').textContent = '狀態偵測失敗(知識庫服務目前連不上)'; + var hint = $('st-vec-hint'); + hint.style.display = ''; + hint.textContent = '這通常是暫時的,稍後重新整理這一頁再看。'; }); // MCP token TTL(誠實佔位:只顯示目前生效值,不假裝能改) fetch(API_BASE + '/console/settings-data') @@ -1510,9 +1518,9 @@ function taipeiMonthDay(ms) { var d = new Date(ms + TAIPEI_OFFSET_MS); return { }) .catch(function (e) { st.innerHTML = '請求失敗:' + esc(friendlyErr(e)) + ''; }); }); - $('st-vec-switch').addEventListener('click', function () { - toast('此開關不能遠端改——部署端 config.yaml 開 kbdb_embed 後 acr update 重部署'); - }); + // t36:原本這裡綁在那顆假開關上(點了只會 toast 一段 CLI 指示)。開關已移除, + // 這個 handler 也必須一起拿掉——留著會讓 $('st-vec-switch') 回 null、addEventListener + // 當場拋錯,把後面所有綁定(含登出)一起打斷。 $('st-logout').addEventListener('click', function () { var t = S.token; if (t) fetch(API_BASE + '/console/logout', { method: 'POST', headers: { Authorization: 'Bearer ' + t } }).catch(function () {});