審查報告「立刻做」與「下一步」批次 - #1
Merged
Merged
Conversation
recArchivesByKeywords is a recommendation endpoint, not an upload list: with ps=1 it returns code 0 and an empty archives array for *every* account, so the whole following list was recorded as noVideos — whose inactive age is Infinity, the direction that gets accounts unfollowed by mistake. Only page.count === 0 now means "never uploaded"; a reply that does not add up throws and becomes unknown instead. Activity records bump to schema 2 so the bad rows are swept on open rather than sitting in the cache for the 30-day TTL.
The "do now" batch from the 2026-09-06 review. F01 the error banner only existed on the review screen, which a run that fails before producing any rows can never reach — the page went silent and people just pressed the button again. F03 an invalid base URL was rewritten to api.openai.com with the key still attached, so refusing to save is the only safe fallback. F04 "Connected" only ever meant two fields were non-empty; it now needs Test connection to have passed.
F02 from the same review. The script set zh-Hant and then matched ~30 Chinese strings, so the settings rewrite killed it — and CI never ran it, so nobody noticed. Chapter numbers and tab order cannot drift the way section titles did. Lint and format now skip docs/reviews for the same reason: review attachments are evidence, not project source.
The rows a batch just touched stop matching the active facet, so the main pane went empty right after the least reversible action in the app. Switch to the facet the batch produced and say what it did. ui-preview used to click that facet itself, which hid this.
Every other page greys its buttons and writes the reason next to them; this one dropped the whole group, leaving a first-time visitor to infer "tick something first" from a sentence.
gen-icons runs Playwright's Chromium, not plain Node. PRODUCT.md sent readers to section 3 for the follow endpoints; they are in 11. The badges still pointed at the pre-rename repo. The section number drifted because CLAUDE.md's sync grep covered only src docs CLAUDE.md README.md, which happens to miss PRODUCT.md. Also records the arc/search spot check: created matches view's pubdate to the minute on three real accounts.
Warnings exited 0, so they accumulated into background noise, and none of the three Playwright scripts ran in CI — which is why smoke stayed broken for months without anyone noticing. The deliberate service-worker console calls now carry an inline oxlint-disable with the reason. smoke's only outbound call was the login check; on CI it gets a stubbed signed-out nav so a rate-limited runner IP cannot look like a failed assertion.
The report and the benchmark notes are 91 kB of text worth citing by finding number. Its 56 screenshots are 6.7 MB and would repeat every time a review runs, so shots/ and logs/ stay untracked.
The four tabs were React state only, so a side button, Alt+Left or a two-finger swipe left the app entirely — during a run that takes twenty minutes. Each tab now owns a hash, and the active one carries aria-current for screen readers.
Cancelling a classification dropped straight back to the prepare screen without a word, so a run that took twenty minutes looked like nothing had happened. Cancelling a write left the review filter on a facet that was now empty. Both stores now remember where they stopped, and the banner says what stayed cached. The two paths that already returned partial results — the activity check and the unfollow — are unchanged.
Half-screen next to Bilibili is a natural way to use this, and that width is below the 900px breakpoint: checkboxes were 15x15 and the top-bar recheck icon 13x13. The settings switches keep their 34x20 — they are a different control, and the selectors have equal specificity.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs/reviews/2026-09-06-full/report.md開出 19 條 finding,這個分支修掉其中 10 條。已修
ca03ea08bebe17gen-icons是「純 Node」,實際上要 Playwright 的 Chromium9f602d6PRODUCT.md指到錯的design.md節號,根因是同步 grep 的範圍不含它9f602d605afb1c9f602d6另外帶了一次 L4 抽驗的結果:space/wbi/arc/search的created與x/web-interface/view的
pubdate對三個真實帳號分秒相同,寫進docs/design.md11。這個 PR 想確認的事
05afb1c新增的uijob 從沒在 Linux 上跑過——它跑smoke/ui-preview/quickfav-preview三支 Playwright 腳本,本機只在 Windows headless 驗過。開這個 PR 的主要目的就是讓它實際跑一次。
本機驗證
typecheck✓ ·test242 ✓ ·lint0 warning ✓ ·format:check✓ ·build✓ ·smoke17/17 ✓ ·ui-previewerrors: none ✓ ·quickfav-preview✓