feat(t210): 首頁改統計,不再逐檔解釋——Evan「9000/101/20 兜不起來」的病
地基(progress.go 的 SyncProgress/ClassifyFailure/BuildFailureBreakdown, eeb35ba)已經算好「總量」與「失敗分類」,但沒人接到畫面上:首頁仍在用 本輪計數(extractedOK)+逐檔白話翻譯(humanizeFailure),導致 leo 08-08 轉述的病——三個數字互相對不起來,使用者無法判斷「還在跑」還是「壞了」。 接線(collector/direct.go): - runDirectOnceRoot 現在也回傳這一根資料夾的 SyncProgress/StuckReasons (rootProgress),RunDirectOnce 跨帳號跨資料夾 Add() 累加成總量。 - G-6.2 的 SkippedDocCount(讀不了的檔,根本沒進 manifest)併進 Unreadable/Total——這是 Progress() 算不到的部分,由呼叫端補齊, 維持不變式 Total == Done+Pending+Stuck+Unreadable。 - 「送不上去」的分類統計=Stuck 的 LastError 原文+Unreadable 重用 convert.go 既有的 ErrUnsupported,一起餵給 BuildFailureBreakdown。 分類判斷全程只經過 progress.go 的 ClassifyFailure 一個接縫, direct.go/app.go/前端都不認得任何分類名稱字串(留給 t214 之後 改資料驅動時只動一個檔)。 - SyncStatus 新增 Progress/FailureBreakdown 兩個欄位,兩者都是每輪從 manifest/掃描結果原地重算的現況快照,不進 CarryForwardActivity—— 斷網或閒置一輪不會被清成 0。 畫面(cmd/arcrun-app/app.go+frontend/src/main.js): - 移除 humanizeFailure/buildFailures/UIFailures 那套逐檔白話翻譯, 改用 UIProgress(Total/Done/Pending/CantSync/Groups);前端 cardProgress 只把後端給的 category/count 陣列原樣印出,不分支、不排序、不認分類名。 - 「送不上去」預設摺疊(<details>),展開只有分類與份數,不逐檔列名、 不解釋、不給解法;細節導向「開啟使用說明」。 - 保留 buildSkipped 的「讀不了的檔」卡片(那是另一件事),但份數已併入 Unreadable。 - 移除「總計」卡片裡用本輪計數 extractedOK 的「份已整理」——上方狀態 時間軸的「上次 N 份」與下方矛盾(1 份 vs 0 份已整理)的病因直接消掉, 改用 cardProgress 的累計「已送上去」。 驗證: - go build ./... 與 go test ./...(collector/cmd/arcrun-app/ cmd/arcrun-tray 三個 module)全綠。 - 新增 collector/progress_wiring_test.go:真跑 RunDirectOnce 湊出 Done/Pending/Stuck/Unreadable 四種狀態同時存在,驗四數字相加等於 總數(leo 驗法①);再跑一輪「什麼都沒發生」驗數字不歸零(驗法③)。 - check-render.sh 視覺機械閘綠(lockup 底板/深色模式)。 殘項(誠實標記,未完成): - 真機驗收(leo 08-08 驗法④:拿 Evan 的情境走一遍)未做,需要 leo 或 封測者在實機驗證。 - 「開啟使用說明」目前連到既有 docs 首頁,尚無 t210 分類對應的 FAQ 頁 (tasks.md 已記為相依項)。 - t213 診斷檔尚未消費這組新欄位(tasks.md 記載該任務等本任務讓路)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -221,10 +221,9 @@ input[type=text], input[type=password] {
|
||||
.step .t { flex: 1; }
|
||||
.step .m { font-size: 12.5px; color: rgba(var(--ink-rgb), .45); }
|
||||
|
||||
/* 失敗清單:檔名一行、細節收在三角形裡(leo 2026-08-06:
|
||||
/* 展開收合的細節區塊(<details>,原為 leo 2026-08-06 逐檔失敗卡所寫:
|
||||
「顯示沒通過的名稱,旁邊有個三角形,點擊看到失敗細節,default 摺疊起來」)。
|
||||
先前重用 .step 的橫向格線,害中文檔名被擠成一行一個字。 */
|
||||
.faillist { margin-top: 12px; }
|
||||
t210(2026-08-08)沿用同一套三角形樣式,改包「送不上去」的分類統計。 */
|
||||
.fail { border-top: 1px solid rgba(var(--ink-rgb), .10); }
|
||||
.fail:first-child { border-top: 0; }
|
||||
.fail > summary {
|
||||
@@ -232,14 +231,19 @@ input[type=text], input[type=password] {
|
||||
padding: 10px 2px;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
word-break: break-word; /* 長檔名要能換行,但不是一字一行 */
|
||||
word-break: break-word;
|
||||
list-style: revert; /* 保留原生三角形 */
|
||||
}
|
||||
.fail > summary::marker { color: var(--amber); }
|
||||
.fail[open] > summary { font-weight: 600; }
|
||||
.failwhy {
|
||||
padding: 2px 2px 12px 18px;
|
||||
font-size: 13px;
|
||||
line-height: 1.7;
|
||||
color: rgba(var(--ink-rgb), .68);
|
||||
|
||||
/* 「送不上去」展開後的分類清單:只有分類名稱與份數兩欄,不逐檔列名
|
||||
(t210 leo 08-08:「不解釋細節……想看細節才展開」——展開後也只到分類為止)。 */
|
||||
.breaklist { margin: 8px 0 0; padding: 0; list-style: none; }
|
||||
.breaklist li {
|
||||
display: flex; justify-content: space-between; gap: 12px;
|
||||
font-size: 13.5px; padding: 6px 2px;
|
||||
border-top: 1px solid rgba(var(--ink-rgb), .08);
|
||||
}
|
||||
.breaklist li:first-child { border-top: 0; }
|
||||
.breaklist li span:last-child { color: rgba(var(--ink-rgb), .55); white-space: nowrap; }
|
||||
|
||||
Reference in New Issue
Block a user