chore: trim dead code, modularize CLI, and archive stale docs

Extract review-plan, report, quarantine, state, and config handlers into
commands/ with shared cli_helpers; remove unused exceptions and duplicate
plan summary wrappers. Archive superseded review markdown, sync docs to
517-test baseline, and fix empty series titles when only a quality tag remains.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
windyboy
2026-05-21 10:36:03 +08:00
co-authored by Claude Sonnet 4.5 Cursor
parent 5f0b531269
commit 79797644e1
40 changed files with 1714 additions and 1165 deletions
+13 -7
View File
@@ -15,7 +15,7 @@ from vlm.review_display import (
)
from vlm.utils import format_size
FILTER_CHOICES = ("all", "manual_review", "sample_source", "conflict", "duplicate")
FILTER_CHOICES = ("all", "manual_review", "sample_source", "spot_check", "conflict", "duplicate")
def _row_matches_filter(row: dict[str, str], filter_key: str) -> bool:
@@ -101,8 +101,8 @@ if TEXTUAL_IMPORT_ERROR is None:
"",
f"将要写入: {self._ctx.output_csv}",
"",
"默认仅审核标记为高危操作(与 CSV 行一致)",
"筛选: 1全部 2需人工 3样片 4冲突 5重复 · g 驳回整组重复",
"高危操作写入 CSV;可选 --sample-safe 追加安全抽检行",
"筛选: 1全部 2需人工 3样片路径 4安全抽检 5冲突 6重复 · g 驳回整组重复",
"",
"Enter 进入审核 · q 退出",
]
@@ -168,8 +168,9 @@ if TEXTUAL_IMPORT_ERROR is None:
Binding("1", "filter_all", show=False),
Binding("2", "filter_manual", show=False),
Binding("3", "filter_sample", show=False),
Binding("4", "filter_conflict", show=False),
Binding("5", "filter_duplicate", show=False),
Binding("4", "filter_spot_check", show=False),
Binding("5", "filter_conflict", show=False),
Binding("6", "filter_duplicate", show=False),
]
def __init__(self, ctx: ReviewTUIContext) -> None:
@@ -199,7 +200,7 @@ if TEXTUAL_IMPORT_ERROR is None:
with ScrollableContainer(id="detail_scroll"):
yield Static("", id="detail_text")
yield Static(
"1-5 筛选 · ↑↓ j/k · a 保留 · r 驳回 · g 驳回重复组 · u 撤销 · s 保存 · q 退出",
"1-6 筛选 · ↑↓ j/k · a 保留 · r 驳回 · g 驳回重复组 · u 撤销 · s 保存 · q 退出",
id="footer_line",
)
yield Footer()
@@ -262,7 +263,8 @@ if TEXTUAL_IMPORT_ERROR is None:
labels = {
"all": "全部",
"manual_review": "需人工",
"sample_source": "样片",
"sample_source": "样片路径",
"spot_check": "安全抽检",
"conflict": "冲突",
"duplicate": "重复",
}
@@ -469,6 +471,10 @@ if TEXTUAL_IMPORT_ERROR is None:
self._filter = "sample_source"
self._rebuild_table()
def action_filter_spot_check(self) -> None:
self._filter = "spot_check"
self._rebuild_table()
def action_filter_conflict(self) -> None:
self._filter = "conflict"
self._rebuild_table()