07 · OPS/Buglist

Buglist · 跨 run 跨 unit 聚合视图

从 bugs.ndjson (M-14) 渲染。这是单/集成测试发现的所有 bug 的统一台账,含完整状态机轨迹(open → fixing → fixed → verified)。

UI Wireframe

/devloop/p-731042/ops/bugs
Buglist · p-731042 14 total · 3 open · 11 verified all open · 3 fixing · 1 verified · 11 wontfix · 0 🔍 filter by unit / severity open bug-..7f3a · auth-be · unit_test login.invalid-pwd 期望 401 收 500 severity: high · 02 min ago fixing bug-..a91b · oauth-be · integration_test callback 返回 500 而非 302 severity: critical · Coder retry 2/5 verified bug-..3c4d · auth-fe · unit_test login form 没处理空 email severity: medium · L2 verified · 1h ago 点击展开: bug-..7f3a · STATUS TIMELINE ● open · 10:31:42 · tester · login.invalid-pwd ● fixing · 10:32:08 · coder · retry attempt 2 TypeError 修复:先查 user 再 bcrypt 比对 ● fixed (pending) · waiting Tester run ○ verified · waiting L2 integration

过滤与分组

维度取值说明
statusopen / fixing / fixed / verified / wontfix / duplicate顶部 chip 选择,多选 OR
severitycritical / high / medium / low右上 filter
unit_id从 units.json 列表右上 filter,下拉
sourceunit_test / integration_test / triage / humanfilter
since时间窗口filter(默认全部)

排序默认按 discovered_at 倒序,可切「未结束优先」(open + fixing 顶置)。

数据来源

本页是 bugs.ndjson 的纯视图,不写入。所有操作通过:

用户动作触发的 API
列表显示GET /api/devloop/projects/:pid/bugs(内部调 bugTracker.list)
点击展开GET /api/devloop/projects/:pid/bugs/:id/history
人类标 wontfixPOST .../bugs/:id/transition body={to:'wontfix',note}
人类合并 duplicatePOST .../bugs/:id/transition body={to:'duplicate',duplicate_of}

状态机参考

完整流转规则见 P-9 · Bug 状态机。本页 UI 必须严格按状态机渲染:非法转换按钮 disabled。

关联视图

  • 点击 unit_id chip → 跳到 UnitDrawer 看该 Unit 详情
  • 点击 run_id → 跳到对应 result.json 内嵌视图
  • 点击 fix_refs 中的 run_id → 看修复时的 Tester 跑分
  • 右上「↗ 时间线」→ 跳 Loop Log