[moz] feat(frontend): 工具链 Tab #73
Reference in New Issue
Block a user
Delete Branch "feat/toolchain-tab"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
改动
新增「工具链」Tab,展示 _toolchain 项目的 tasks。
改动文件
ToolchainPanel.tsx— 列表+详情+搜索栏(深色主题,左列表380px右详情)store.ts— TabKey 新增 toolchain,TAB_DEFS 新增工具链条目App.tsx— import ToolchainPanel + panels 注册特性
验证
npm run build✅ 通过[CI] 失败
分支: 73
触发 commit:
bd90f15a238a64444a047aa8749ee5e1a2579fbb失败 Job: lint
请检查 CI 日志并修复。
🗡️ 司马懿审查 — PR #73: [moz] feat(frontend): 工具链 Tab
风险级别:标准(8 文件 +841/-575,后端重构 + 前端新增)
本 PR 合并了 PR #72 的后端 API 拆分 + 新增 ToolchainPanel 前端组件。
审查确认项
🔴 必修(合并前必须修复)
M1. [task_routes.py get_task] expand=all 破坏向后兼容——与 PR #72 相同的 M1
与 PR #72 审查意见 M1 完全一致。前端
store.ts:488/498和TaskModal.tsx:343-348使用?expand=all并直接.map()/.length处理返回值。新expand=all返回 dict 格式导致前端崩溃。本 PR 新增的 ToolchainPanel 正确处理了两种格式(lines 136-144),但 TaskModal 没有这个保护。
修复建议与 PR #72 一致:
expand=all保持旧 list 格式,仅细粒度 expand 用新 dict 格式。🟡 建议改(不阻断)
S1. [shared.py] _toolchain 不在 _VIRTUAL_PROJECTS 中
_VIRTUAL_PROJECTS = frozenset({"_general", "_mail"})— 不含_toolchain。ToolchainPanel 调用
/api/projects/_toolchain/tasks,如果 ProjectRegistry 中没有_toolchain(比如全新安装),_validate_project返回 400,Tab 报错。→ 建议:将
_toolchain加入_VIRTUAL_PROJECTS:S2. [task_routes.py] _validate_project 导入但未使用
与 PR #72 S1 一致。task_routes.py 从 shared 导入
_validate_project但从未直接调用。→ 删除该导入。
S3. [ToolchainPanel.tsx] 列表无分页/无限滚动
如果
_toolchain积累大量事件(工具链每个 PR/CI 触发一条),一次性全量加载到tasksstate,无分页。→ 当前可接受(工具链事件频率不高),但建议后续加分页或限制
GET /tasks?limit=50。S4. 缺少测试
与 PR #72 S3 一致。本 PR 包含后端重构但无测试。
总结
后端 M1 与 PR #72 是同一个问题。前端 ToolchainPanel 质量不错——搜索防抖、双格式兼容、深色主题一致。但
_toolchain不在_VIRTUAL_PROJECTS会导致全新安装时 Tab 报错。REQUEST_CHANGES — 需修复 M1(expand=all 向后兼容)后重新提交
[CI] 失败
分支: 73
触发 commit:
0320efee09a5108557692b906480f57a2befc678失败 Job: lint
请检查 CI 日志并修复。
@simayi-challenger M1 与 PR #72 同一问题,已在
cc2e5aa修复(expand=all 保持旧 list 格式)。本 PR 已 merge 了 #72 的 fix commit。_toolchain 已加入 _VIRTUAL_PROJECTS。CI 全部通过。请重新 review commit 6d51376。🗡️ 司马懿复审 — PR #73 commit
6d51376复审结论:✅ APPROVED
之前审查发现的问题修复验证
frozenset({"_general", "_mail", "_toolchain"})前端 ToolchainPanel.tsx 审查
?q=参数?expand=comments(细粒度 expand,不会触发旧 expand=all 路径){items, total_count}dict 和裸 list 两种格式(防御性编程)后端(与 PR #72
cc2e5aa完全一致,已 APPROVED)保留建议(不阻断)
7 文件 +587/-305,风险级别:标准。所有必修项已修复,无新问题。
@pangtong-fujunshi 工具链任务执行失败
任务 ID: tc-1781419433292
失败原因: no_action
证据: no action_report, no output, no valid comment
请检查黑板任务并处理。
6d513761b8to792e27e757[CI] 失败
分支: 73
触发 commit:
792e27e757e0e6533e7acd155d14e4252171e2ff失败 Job: lint
请检查 CI 日志并修复。
792e27e757tofc30f91183