fix(arcrun-rag#59): 額度卡與雲端連線兩則假訊息改口
leo21c 畫面同時說「今天已經幫你整理了 0 份」與「額度用完,可以換一個模型, 或升級 Cloudflare」——一份都沒成功,額度其實是被同帳號正在做的向量化 (嵌入固定走 Workers AI,與萃取共用同一份每日免費額度)吃光的,換萃取模型 救不了。改法:buildQuotaNotice 在 dailyCount==0(本輪一份都沒吃到額度就先 撞牆)時換一套出口/保證句——不再建議換模型、不再無條件承諾「明天會自動 接著跑」,只留「升級 Cloudflare」這個結構上真的有效的出口;dailyCount>0 (單純量大用完)維持原三句話不動。 同批修另一則真因已被頂層 wiki 鎖定的假訊息:leo 三個帳號 /health 全部 200, 畫面卻顯示「沒連上雲端」——direct.go 寫 status.json 頂層 cloud_check_ok 時 以前只有剛好一個帳號才會填,2+ 帳號(leo 的常態)時恆為 Go 零值 false。 改成不論帳號數,任一帳號連得上就標頂層為 true。 兩者都有回歸測試:對修改前的程式碼跑會 FAIL(多帳號 CloudCheckOK 案例已 用 git stash 實測驗證),修完後 PASS。額度卡文案另外用真正的 frontend/dist + 假 window.go 灌 leo21c 現場資料,Claude Browser 實際開起來看過,確認新 文案正確渲染、不再出現「可以換一個模型」、console 無紅字。 未做:兩者都只在原始碼層修好,尚未重打 daemon bundle 出貨(0.18.25 用戶 手上還看不到);頂層 cloud_check_ok 的實際消費端(除已知的舊版 tray)未 完全追出,留給下一輪核實。詳見 system-dev/docs/3-specs/daemon-beta/tasks.md t216/t217。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+13
-3
@@ -69,11 +69,18 @@ func TestDirect_QuotaExhausted_ShowsHumanMessageNoRawCode(t *testing.T) {
|
||||
t.Errorf("結果不該出現裸露的錯誤碼 %q:%q", b, r.Error)
|
||||
}
|
||||
}
|
||||
for _, want := range []string{"今天已經幫你整理了", "升級 Cloudflare", "自動恢復"} {
|
||||
// arcrun-rag#59:這支測試裡兩份檔案全部失敗、dailyCount 全程是 0——
|
||||
// 正是 leo 實查那個「一份都沒成功、額度卻用完」的情境,buildQuotaNotice
|
||||
// 改口不再承諾「自動恢復」(那是做不到的承諾)、也不再建議換模型
|
||||
// (結構上做不到:嵌入不管選哪個萃取模型都走 Workers AI),只留「升級」這個真出口。
|
||||
for _, want := range []string{"今天已經幫你整理了", "升級 Cloudflare"} {
|
||||
if !strings.Contains(r.Error, want) {
|
||||
t.Errorf("缺三句話之一 %q:%q", want, r.Error)
|
||||
}
|
||||
}
|
||||
if strings.Contains(r.Error, "可以換一個模型") {
|
||||
t.Errorf("dailyCount==0(這輪一份都沒成功)不該再建議換模型:%q", r.Error)
|
||||
}
|
||||
}
|
||||
|
||||
// status.json 也要是人話,同樣不准有裸碼
|
||||
@@ -148,7 +155,10 @@ func TestDirect_QuotaExhausted_NextRunSkipsWithoutNetworkCall(t *testing.T) {
|
||||
if len(results2) != 1 || results2[0].Status != "skipped" {
|
||||
t.Fatalf("results2=%+v", results2)
|
||||
}
|
||||
if !strings.Contains(results2[0].Error, "自動恢復") {
|
||||
t.Errorf("跳過訊息也該是三句話:%q", results2[0].Error)
|
||||
// arcrun-rag#59:這支測試同樣是 dailyCount==0(單一檔案、全程沒有成功過),
|
||||
// 跳過訊息改口成「升級 Cloudflare」這個真出口,不再是「自動恢復」的舊三句話。
|
||||
if !strings.Contains(results2[0].Error, "今天已經幫你整理了") ||
|
||||
!strings.Contains(results2[0].Error, "升級 Cloudflare") {
|
||||
t.Errorf("跳過訊息也該是三句話(新版):%q", results2[0].Error)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user