append-only:每棒追加一個 block,寫完不改。要更正舊 block,在新 block 的「推翻了什麼」寫明。現況看
FR-133-STATE.md。
commits:BE a2aa7d9dd(design 定案)… df999ed90(T-R 白名單),全部已 push feature/FR-133;FE 9e4e5d18/6d2d4e56/7d1f64a0;jedi-python-package 6d815fec/e6574acf/9a943a54;evidence-agent 2dea7c8/a26464c/7e6e1e3。本 block 所在的文件 commit 未 push。
18 張卡(卡號/做什麼/commit/驗收結論/打折處)
log_events 開關與 capture_exception(1.3.4)/jedi 6d815fec/合格,突變有牙齒/無1f45680c6/合格,四項驗收過/用本機 envelope 接收器代替站台;socketio 沒實打a5bd492b2/合格,D1、D2 成立/無/bugsink//BE 4fadd8add、FE 9e4e5d18/合格/本機 arm64 無產品 image,只起 db/bugsink/fe 三支,後端送件用替身容器333e5c22d/腳本層合格/build_bundle.sh 全流程未在 188 跑(轉 T-R)1631d4f27/合格/Linux 容器只載入函式、只起 db 與站台,真機 root 安裝未跑bugsink-vacuum/bugsink-set-password/BE ace6a5f1a/合格/harness 載入子命令,guidantai status 未實跑98cc3c934、FE 6d2d4e56/合格,DEV 實打五項/無7d1f64a0/合格,headless 實跑/兩組 DSN 以環境變數暫時指向本機站台16fd0f110/合格/無5dc3dd6cb/合格,含偽造 typ 401/臨時三專案站台與不帶排程的後端2795930fb、Agent 2dea7c8/合格/本機 compose 站台、Agent 跑原始碼非 imageca6b743de、jedi e6574acf/合格,隔離實測/redis 與 seaweedfs 用替身、沒跑真機安裝aa084603f/合格/fetcher 用假 HTTP 層、install.sh 未完整跑9a943a54/合格,突變有牙齒/站台手測延到 190fdec6b758、df999ed90,Agent a26464c、7e6e1e3/進行中,卡在 Nexus npm 快取/—決策
bugsink-manage shell 的 ORM,DSN 從庫讀。guidant-db 另開 bugsink 庫與獨立帳號。.env 拿,不碰 guidant.env。387035254)。教訓
auth_header 變數值是 Bearer <密鑰>)。根因是 jedi-common 的 Bearer 規則只掛在 log 出口那支。驗收斷言要寫「整個事件找不到原始值」。sentry_sdk,但「編譯後實送一次」仍要在 190 做。推翻了什麼
VITE_APP_RELEASE)。留給下一棒:決策者裁 Nexus 快取後,T-R 續跑到 190 升級與 Agent 升級;之後派 T-V。
commits:BE 478db0876(CI verify 改 pull 目前分支)、e5a0a9ef9/0bc75fd88(補開 A4/B5/G1/T-R2 卡)、a614be494(B5)、b19358521(T-R2 釘版)、aba953f67(預設全收);jedi-python-package 95ffe840(jedi-log 1.3.6)、be05c2e4(classifier 1.6.5);evidence-agent 4b088a4(Agent 1.4.2)。四個 repo 的 feature/FR-133 已併回 main 並 push(BE 範圍 84e293101..aba953f67);本 block 所在的收尾文件 commit 未 push。
本棒的卡(卡號/做什麼/commit/驗收結論/打折處)
fdec6b758、df999ed90、478db0876,Agent a26464c、7e6e1e3/合格/A3 遮罩用本機 jedi-log 送 190 驗、不是沙箱真實失敗路徑;Agent 回報改在 190 真環境驗、沒對 DEV 驗95ffe840、be05c2e4,Agent 4b088a4/合格,三份突變都有牙齒,首腦自行 probe 無洩漏/DEV 全收打錯密碼那條沒在 DEV 做(改在 T-R2 的 188/189 做);分類器測試跑在暫存 venv,套件版本不保證與容器鎖定相同a614be494/合格,T-R2 在 190 真機驗過網域仍在/debian 容器只載入函式b19358521(安裝包以 aba953f67 出)、Agent 4b088a4/合格/190 留手動兩行關閉全收,「沒設就預設全收」只在 188 驗到;189 有手動兩行 =true決策
aba953f67):4xx 使用者失誤與 ERROR log 行預設都送站台。理由:UAT 期間要看到使用者在哪裡撞牆。前提是 jedi-log ≥1.3.6 已補位置參數遮罩。被排除的:維持設計初版「預設只收程式錯誤」——看不到使用者被擋在哪。feature/FR-133;STG/POC 當天上版;四台 Agent 升級;189 開全收並解鎖 blsadmin。387035254,第 1 棒已記,本棒沿用)。教訓
@transaction 包裝層的 args 是 (self, username, password, …),遮罩只認欄位名與 Bearer 樣式。兩次盲點(Bearer 值、位置參數)都不是測試抓到,是實送事件後看站台原文抓到。驗收要有「真 SDK 收到的事件」這一層。docker pull,否則 package 紅;B 系列卡沒寫這步。guidant-agent-compose upgrade 跑的是機器上舊版的升級程式;1.1.0 直升時新版才有的步驟不會執行。/tmp 暫存解包,.166 的 /tmp 是記憶體盤,第三次升級塞滿,錯誤訊息誤導成「檔案損毀」。poetry run 會解析到 BE 的 venv,跑出假紅;改用 PYTHONPATH=. python3 -m pytest。guidantai restart 不重讀 env_file,改設定後要用 start。首腦違規自檢
推翻了什麼
aba953f67),開關仍在、設 false 回到只收程式錯誤。三環境最終狀態
190(e2e)、188(STG)、189(POC):api/worker/socketio 都在 1.26.0+aba953f67,sandbox evidence-classifier 1.6.5,bugsink 2.6.1 healthy,三專案在。
四台 Agent(.166/.122/.167/.121)都在 1.4.2,雲端登記 1.4.2。190 本機的 Agent 容器仍是 1.4.1(2026-10-10 實查)。
190 guidant.env 留有手動 ERROR_TRACKING_CAPTURE_CLIENT_ERRORS=false 與 ERROR_TRACKING_LOG_EVENTS=true;189 guidant.env 有手動兩行 =true;188 是純預設。
188、189、.166 有 reboot-required 旗標未重開。
收尾中補做:190 本機 Agent 1.4.1→1.4.2(包從 188 scp、sha256 OK、guidant-agent-compose upgrade、healthy、release 行確認)。T-E(CM-2613)9d0849644 完成並收 Done。
收尾後追加 T-M1(CM-2624):遮罩三份複製品收斂成零相依套件 jedi-masking 0.1.0,三邊改薄殼(jedi-log 1.3.7/分類器 1.6.6/Agent 1.4.3),首腦比對新舊行為一致;程式已推 main、未發版,併下次進版。
留給下一棒:arc 收尾完成,等決策者決定進版時機(version-bump skill);進版時先發 jedi-masking 再依序發三邊。