Skip to content

審查第四批:僵屍分頁、門檻範圍、整理匯出 - #2

Merged
1morr merged 4 commits into
masterfrom
fix/zombie-tab-and-exports
Sep 8, 2026
Merged

1morr merged 4 commits into
masterfrom
fix/zombie-tab-and-exports

Conversation

@1morr

@1morr 1morr commented Sep 8, 2026

Copy link
Copy Markdown
Owner

上一批(#1)之後剩下六條 finding。這一批做四件,全部是 S,不碰任何 B 站寫入路徑。

1. 僵屍分頁(不在報告裡,做 F08 時順手發現)

background.ts 用存下來的 tab id 找 App 分頁,只問「這個分頁還在不在」,不看它現在是什麼網址。
使用者在 App 分頁裡打開 B 站(表格裡每個帳號與影片都可以點開)之後,工具列圖示就只會把那個 B 站分頁
叫到前面——點幾次都開不出 App,而且完全不說為什麼。

改用 runtime.getContexts({ contextTypes: ['TAB'] }):它就是為了回答「本擴充功能現在有哪些 context、
在哪個分頁」而存在的,不需要任何權限。Tab.url 那條路要 tabs 權限,會在安裝時跳出「讀取瀏覽記錄」的警告。

代價:minimum_chrome_version 114 → 116(getContexts 是 Chrome 116;兩者差三個月、距今三年)。
session storage 那份 id 整個刪掉。取捨寫進 docs/design.md 9.5。

2. F15 · 門檻欄位說得出自己收什麼

填 9999/0 會被彈回上一個合法值,之前畫面一個字都沒有。現在單位旁邊常駐寫著 1–3,650。
同一行的說明也講清楚天數是從最新一支影片算起——arc/search 只回影片,圖文與動態不算。

3. F19 · 整理的審核表可以下載 CSV

toReviewCsv() 在 core/exportRows.ts。匯出整張表,不是只有勾了目標的那幾列:AI 建議了什麼與你最後
選了什麼各佔一欄,加上也留在原位、低信心、已失效、理由、依據、狀態。這裡沒有 confirmedOnly() 那種過濾,
也不需要——這份檔案不會被拿去執行任何寫入。

4. F16 剩下那半 → 誤判,改成回歸守門

ui-preview 現在會在審核畫面按 Tab 走完一整圈:42 站、恰好 1 站在 body,位置在作業列最後一顆與頂列之間,
就是「文件最後一個可聚焦元素之後」的瀏覽器預設落點。報告說「當前分頁按鈕不在 Tab 順序裡」也不成立。
結論寫進報告的 F16。中間多出任何一站 body 就會讓 ui-preview 失敗。

驗證

typecheck ✓ · 252 tests ✓ · lint(--deny-warnings)✓ · format:check ✓ · build ✓
smoke ✓(新增兩條:getContexts 找得到 App 分頁、導去別的網址之後就不算 App 分頁了——舊寫法第二條會紅)
ui-preview errors: none ✓ · quickfav-preview ✓

L4 真實帳號寫入驗收仍然未做(docs/design.md 10 自己標著),這一批不改變那個狀態。

A stored tab id says the tab exists, not that it is still the app.
Navigating away inside it made the toolbar icon a no-op with no
explanation. runtime.getContexts answers the real question and needs
no permission, unlike Tab.url, which would need "tabs" and its
browsing-history warning. Costs minimum_chrome_version 114 -> 116.
Typing 9999 silently bounced back to the last valid value with nothing
on screen, so the number just looked eaten. The hint line also said
"upload" while arc/search only returns videos, which makes an account
that posts articles read as "never uploaded".
Follows could already export; the classification could not, so there
was no way to keep what the model decided and why. Exports every row,
not just the ticked ones: stale videos and the ones you chose not to
move are part of the record, and nothing here is ever written back.
The review flagged a focus stop on <body> after the action bar. A full
keyboard cycle on the review screen is 42 stops with exactly one on
body, between the last bar button and the top bar: that is the
end-of-document stop every page has, not a defect. The walk stays as a
guard, and the report records the re-check.
@1morr
1morr merged commit 196109c into master Sep 8, 2026
2 checks passed
@1morr
1morr deleted the fix/zombie-tab-and-exports branch September 8, 2026 06:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant