feat(portal): 拔掉雲端「疑難排解」匯出按鈕,改導向本機小幫手(t213 收尾)
leo 08-08:「雲端那個要刪掉?不刪用戶搞不清楚要去哪裏下載」;08-09 追認「通知 完畢可以刪除」——封測者已被通知去更新到有地端匯出的版本(arcrun-app「版本與 更新」頁的疑難排解卡,見 products/arcrun-rag commit 9f1ca58 起),放行條件已滿足。 三處改動: 1. 設定頁「疑難排解」面板:移除 #st-diag-export 按鈕與 #st-diag-status, 改成純文字指路到電腦上的 Arcrun App。 2. 對應的前端 JS 點擊處理(打 GET /portal/data/diagnostics 的那段 IIFE)整段刪除 ——按鈕已不存在,留著是死代碼。 3. 語意搜尋降級橫幅(se-banner):原本也教用戶「到設定→疑難排解匯出診斷檔」, 同步改成指向本機小幫手,否則使用者會照著走進一個不存在的按鈕。 GET /portal/data/diagnostics 端點本身未刪(無害、已無任何 UI 呼叫),純粹清路標 不動後端;已知例外——同步小幫手完全連不上、且封測者是老版本沒有本機匯出時, 會真的無路可走,判斷為可接受(他們已被個別通知升級,且雲端 portal 仍能用文字 指路,不是把人晾在原地不給說明)。 驗證:本機起 static server(config.js 指向 dummy apiBase)+瀏覽器 JS 強制顯示 setting/search view,實際截圖確認按鈕消失、#st-diag-export/#st-diag-status 在 DOM 裡是 null、文案渲染正確無破版;console 只有 dummy apiBase 連不上的預期錯誤, 無語法/參照錯誤。cypher-executor vitest(portal-data/admin/auth)114 通過、2 個 既有失敗(HTML 殼 404,改動前後一致,非本次影響——用 git stash 前後對照過)。 未部署(紅線:本輪只到本機驗過+commit+push gitea,prod 需 leo 開閘)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -415,24 +415,25 @@ if (!window.ARCRUN_API_BASE) {
|
||||
文件整理成知識卡的部分,請在<b style="color:var(--ink)">同步小幫手</b>(電腦上的托盤圖示)的「AI 設定…」填一把 Gemini API Key。
|
||||
</div>
|
||||
</div>
|
||||
<!-- 檢修孔(2026-08-07 leo 直接指令):「一顆按鈕在設定裡,按鈕下載一個檔案,
|
||||
把檔案發給我,你看那個檔」。用戶只做兩件事:按一下、把檔案傳出去——不需要
|
||||
理解裡面是什麼。檔案內容只有統計/狀態數字(GET /portal/data/diagnostics),
|
||||
不含任何知識卡內容。
|
||||
<!-- 檢修孔演進史:
|
||||
2026-08-07 leo 直接指令「一顆按鈕在設定裡,按鈕下載一個檔案,把檔案發給我」
|
||||
→「疑難排解」面板+#st-diag-export 按鈕誕生,打 GET /portal/data/diagnostics。
|
||||
|
||||
t213(2026-08-08,InkStoneCo 總管交辦):這顆按鈕在**封測者的瀏覽器**裡執行,
|
||||
2026-08-08(t213,InkStoneCo 總管交辦)發現這顆按鈕在**封測者的瀏覽器**裡執行,
|
||||
跟他電腦上的 daemon 是兩個獨立行程,構不到本機資料(檔案總量/失敗分類/
|
||||
daemon 版本)——那半資料改在 arcrun-app(同步小幫手)本機端匯出(打新端點
|
||||
GET /portal/daemon/diagnostics)。這顆按鈕**保留**當退路:daemon 完全掛掉時,
|
||||
這是唯一還按得到的東西。文案誠實講清楚自己只有一半,導去完整版。
|
||||
(總管原話:「這裡只看得到雲端這半,完整診斷請到你電腦上的 Arcrun 匯出。」) -->
|
||||
daemon 版本)——完整版改在 arcrun-app(同步小幫手)「版本與更新」頁本機端匯出
|
||||
(打新端點 GET /portal/daemon/diagnostics)。當時按鈕先保留當退路,文案改成
|
||||
誠實講清楚自己只有一半、導去完整版。
|
||||
|
||||
2026-08-09(leo 拍板拿掉):leo 08-08「雲端那個要刪掉?不刪用戶搞不清楚要去
|
||||
哪裏下載」,封測者已被通知去更新到有地端匯出的版本後,08-09 追認「通知完畢
|
||||
可以刪除」。⇒ 按鈕與 #st-diag-export/#st-diag-status 一併移除,面板改成純文字
|
||||
指路(同步小幫手才是唯一還按得到、也答得出完整診斷的地方)。
|
||||
GET /portal/data/diagnostics 端點本身留著未刪(無害、未被任何 UI 呼叫,
|
||||
純粹清路標,不動後端)。 -->
|
||||
<div class="panel">
|
||||
<div style="font-size:17px;font-weight:600">疑難排解</div>
|
||||
<div style="margin-top:4px;font-size:14px;line-height:1.65;color:rgba(var(--ink-rgb),.55)">這裡只看得到雲端這半,完整診斷請到你電腦上的 Arcrun 匯出。同步小幫手完全連不上時,才用下面這顆備用(只有統計數字,不含你的任何文件內容)。</div>
|
||||
<div style="margin-top:12px">
|
||||
<button class="btn3" id="st-diag-export" style="padding:11px 18px;border-radius:10px">匯出診斷檔給我們看</button>
|
||||
<div id="st-diag-status" style="margin-top:8px;font-size:13px;min-height:1.2em;color:rgba(var(--ink-rgb),.5)"></div>
|
||||
</div>
|
||||
<div style="margin-top:4px;font-size:14px;line-height:1.65;color:rgba(var(--ink-rgb),.55)">要回報問題,請到你電腦上的 <b style="color:var(--ink)">Arcrun</b>(同步小幫手)「版本與更新」頁——那裡的「疑難排解」按一下就能匯出完整診斷檔給我們(只有統計數字,不含你的任何文件內容)。</div>
|
||||
</div>
|
||||
<button class="btn3" id="st-logout" style="padding:14px;font-size:16px;border-radius:11px">登出</button>
|
||||
</div>
|
||||
@@ -956,38 +957,10 @@ function taipeiMonthDay(ms) { var d = new Date(ms + TAIPEI_OFFSET_MS); return {
|
||||
dropSession();
|
||||
});
|
||||
|
||||
// ── 檢修孔(2026-08-07 leo 直接指令)──────────────────────────────────────
|
||||
// 「按鈕下載一個檔案,把檔案發給我」:按下去打 /portal/data/diagnostics,
|
||||
// 存成單一 JSON 檔(不是要解壓的一包)直接觸發瀏覽器下載。不彈視窗、不要求
|
||||
// 用戶理解內容——他只需要按一下、把跳出來的檔案傳給我們。
|
||||
(function () {
|
||||
var btn = $('st-diag-export');
|
||||
if (!btn) return;
|
||||
btn.addEventListener('click', function () {
|
||||
var st = $('st-diag-status');
|
||||
btn.disabled = true;
|
||||
st.textContent = '匯出中…';
|
||||
fetch(API_BASE + '/portal/data/diagnostics', { headers: authHeaders() })
|
||||
.then(function (r) { return safeJson(r).then(function (d) { return { ok: r.ok, status: r.status, d: d }; }); })
|
||||
.then(function (x) {
|
||||
btn.disabled = false;
|
||||
if (guard401(x.status)) return;
|
||||
if (!x.ok) { st.textContent = '匯出失敗,請稍後再試'; return; }
|
||||
var blob = new Blob([JSON.stringify(x.d, null, 2)], { type: 'application/json' });
|
||||
var url = URL.createObjectURL(blob);
|
||||
var a = document.createElement('a');
|
||||
var stamp = new Date().toISOString().slice(0, 19).replace(/[:T]/g, '-');
|
||||
a.href = url;
|
||||
a.download = 'arcrun-diagnostics-' + stamp + '.json';
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
document.body.removeChild(a);
|
||||
setTimeout(function () { URL.revokeObjectURL(url); }, 2000);
|
||||
st.textContent = '已下載——把這個檔案傳給我們就可以了';
|
||||
})
|
||||
.catch(function (e) { btn.disabled = false; st.textContent = friendlyErr(e); });
|
||||
});
|
||||
})();
|
||||
// 檢修孔前端已於 2026-08-09 移除(t213,leo 拍板「通知完畢可以刪除」)——
|
||||
// #st-diag-export 元素不再存在,匯出診斷檔改在 arcrun-app(同步小幫手)
|
||||
// 「版本與更新」頁本機端做。GET /portal/data/diagnostics 端點本身未刪(無害、
|
||||
// 已無任何 UI 呼叫),只是這裡不再掛按鈕去打它。
|
||||
|
||||
// t87 07-28 leo:知識庫網址 helper(只有 origin,不含 /portal/# 後綴),兩處 UI 共用
|
||||
function copyOriginUrl(btn) {
|
||||
@@ -1189,7 +1162,7 @@ function taipeiMonthDay(ms) { var d = new Date(ms + TAIPEI_OFFSET_MS); return {
|
||||
// (會出現「叫 CC」「vectorize」「redeploy」這類我們內部的修法指令,不是講給
|
||||
// 一般用戶聽的)。前端固定顯示「發生了什麼+現在怎麼辦」,不假裝有語意結果,
|
||||
// 也不留用戶不知道下一步的空白。
|
||||
$('se-banner').innerHTML = '<div class="honest" style="margin-top:18px"><div class="h">語意搜尋還沒開通</div><div class="b">語意搜尋能理解你問題的「意思」找資料,不只是比對關鍵字。<br>這個知識庫目前還沒開通這個功能,以下顯示的是關鍵字搜尋結果(不會假裝有語意結果)。<br>想開通的話,到「設定」→「疑難排解」匯出診斷檔給我們,我們會幫你打開。</div></div>';
|
||||
$('se-banner').innerHTML = '<div class="honest" style="margin-top:18px"><div class="h">語意搜尋還沒開通</div><div class="b">語意搜尋能理解你問題的「意思」找資料,不只是比對關鍵字。<br>這個知識庫目前還沒開通這個功能,以下顯示的是關鍵字搜尋結果(不會假裝有語意結果)。<br>想開通的話,請到你電腦上的 Arcrun(同步小幫手)「版本與更新」頁,用「疑難排解」匯出診斷檔給我們,我們會幫你打開。</div></div>';
|
||||
}
|
||||
var entries = d.entries || [];
|
||||
$('se-count').textContent = '命中 ' + entries.length + ' 筆・模式 ' + searchModeLabel(d.mode || 'keyword') + (d.note ? '・' + d.note : '');
|
||||
|
||||
Reference in New Issue
Block a user