FR-071 · 需求索引 · 本頁由 build 掃資料夾生成

FR-071 客戶端診斷包與錯誤收集站

狀態:設計定案,待開卡 文件 3 份
§1

🔴 先看哪一份

文件 性質 什麼時候看
design.md 設計定案(D1–D11 全數拍板) 要開卡、要知道「決定了什麼、為什麼」——看這份
discussion.md 推演過程(選項與被排除方案) 想知道某項決策當時考慮過哪些路;洞一與 D3 有修正框,定案以 design 為準
requirement-draft.md 白話需求原文(2026-09-02) 想知道決策者最初要的是什麼
§2

結論

  • 落地版出錯時要能遠端查:客戶不必會下指令、原廠不必到場。四棒——log 地基/錯誤收集站進出貨包/guidant diag 指令/系統設定的支援頁(最近錯誤列表 + 一鍵匯出)。
  • 錯誤收集站選 GlitchTip 並隨安裝包出貨,每個客戶自帶一套、只給原廠管理員看。Sentry 自架(授權不允許隨產品出貨)與 Loki/Grafana(做的是日誌聚合不是錯誤去重)都排除了。
  • 驗收條款寫死且不可打折:故意弄壞一個功能 → 產包 → 丟給一個什麼都不知道的 AI(只給包+原始碼),它要能指出根本原因與修法。過不了不算完成。
  • 像但不做的:診斷包不加密(與「客戶要能自審交出了什麼」直接衝突,遮罩才是防線);不做 log 檢視畫面、不另開系統日誌選單頁(會與 GlitchTip 成為第三套錯誤檢視介面);不做自動回傳原廠。
§3

📊 總進度

棒次 Notion 卡 做什麼 狀態 時間
FR-071.0 CM-1906 錯誤追蹤試用(Sentry SDK 接進 jedi-log/主專案/前端),本機 GlitchTip 六項驗證 ✅ 已完成 2026-09
討論與設計 — 討論稿 → 設計定案(D1–D11、4 子需求 23 子任務) ✅ 已完成 2026-09-18
FR-071.1 log 地基 待開卡 8 張子任務 ⬜ 未開始 —
FR-071.2 站台進包 待開卡 7 張子任務(第一張是 gate:GlitchTip 無 UI 建專案實測) ⬜ 未開始 —
FR-071.3 指令版 待開卡 3 張子任務 ⬜ 未開始 —
FR-071.4 支援頁 待開卡 4 張子任務 ⬜ 未開始 —
FR-071.5 收口 待開卡 端到端驗收 1 張 ⬜ 未開始 —
§4

需求討論紀錄

  • 2026-09-02:決策者提出白話需求——落地版出錯只能派人到場,要一個「客戶一鍵匯出、原廠遠端分析」的診斷包;驗收條款當場就寫死成「丟給乾淨 AI 要查得出來」。
  • 2026-09-17:看過 FR-071.0 的 GlitchTip 試用效果後拍板往下做,並選積極版(站台隨安裝包出貨,每客戶一套);同時定案開放註冊預設關、POC 試用期不接、Sentry 自架與 Loki/Grafana 排除。
  • 2026-09-18:D1–D10 裁定(多數採討論稿建議,D3 與 D10 改判);新增 D11(支援頁直接列最近 ERROR,理由是一線最常做的就是「看一眼是什麼錯」,不該先開站台登入);追加兩項子任務(出貨環境明訂 RUN_ENV、操作日誌時間區間查詢)。
  • 2026-09-18 被推翻的判斷:討論稿寫「落地版根本沒有 log 檔、prod 沒掛資料庫輸出所以稽核事件可能是空的」——實查後兩者皆錯。出貨端根本沒設 RUN_ENV,預設值讓客戶機房跑的是 dev 那套(檔案與資料庫輸出都開著)。真正的問題是「沒有人明訂過用哪一套」與「稽核事件被除錯 log 以 1,255 : 1 淹沒」。D3 因此從「退役整張表」改判為「表留著、寫入端加 filter」。
  • 決策者定調:客戶端的人不碰 Linux、不碰 docker——他只碰 GlitchTip 站台與支援頁;檔案 log 是診斷包的原料,不是給客戶看的東西。
§5

文件

以下全部由 build 掃資料夾產生,新增檔案重 build 即自動出現。標題連結指向渲染後的 HTML,md 連向源檔。

需求與討論

文件 類型 標題 最後更新
requirement-draft / md 原始需求 FR-071 客戶端診斷包(Support Bundle)——遠端可重現分析(需求草稿) 2026-09-02
discussion / md 需求討論稿 系統在客戶機房出錯時,原廠不必到場也查得出原因 2026-09-18

設計

文件 類型 標題 最後更新
design / md 設計 客戶機房出錯時,原廠不必到場也查得出原因 — 設計定案 2026-09-18