# FR-133 交接現況（STATE）

> **這份是 living 檔**：每棒就地改，只描述「此刻」。歷史脈絡看同資料夾的 `FR-133-LOG.md`。

| 項目 | 值 |
|---|---|
| 最後更新 | 2026-10-10（第 2 棒，首腦，收尾結案版） |
| 母案卡 | CM-2601 https://app.notion.com/p/FR-133-Guidant-AI-Bugsink-12-3f4346da4cd0818084f8c209c274310b |
| 設計文件 | [`design.md`](../design.md)（v3，D1–D11、拆分表含 T-M1） |
| 卡片索引 | `notion-cards.json`（CM-2601～CM-2624；22 Done、G1 暫緩） |
| 收尾 SUMMARY | [`2026-10-10-FR-133-SUMMARY.md`](2026-10-10-FR-133-SUMMARY.md) |
| Notion 回寫規範 | `docs/claude/notion-issue-tracker.md` |

## 🧭 原始需求 / WHY

產品進客戶 UAT，出錯時要在**客戶自己的機器上**看得到錯在哪一行、當下變數值、誰踩的、哪一筆請求。後端送錯誤報告的接線早已在產品內，缺的是收件站、篩選、前端接回與診斷包接口。本案讓每套 Guidant AI 隨安裝包自帶 Bugsink 2.6.1，裝機人員不輸入任何東西就建好站台、管理員、三個專案與連線字串；使用者失誤（4xx）與 ERROR log 行預設也送（2026-10-10 改案，可用環境變數關回只收程式錯誤）；瀏覽器與受檢主機 Agent 經同一支要驗身分的轉送端點送進來；診斷包改從站台撈事件。

## §1 現況

**FR-133 arc 收尾完成（2026-10-10）**：20 張子卡驗收合格並改 Done，G1（CM-2622）暫緩，母卡 CM-2601 Done；T-E（CM-2613）文件由收尾批另一支 agent 處理。三環境與四台外部 Agent 都在最終版；**不進版**（主專案版號仍 1.26.0，image tag 為 1.26.0＋新 commit）。

### 四個 repo（皆在 `main`、與 origin 同步，`feature/FR-133` 已併回）

| repo | 最新 commit |
|---|---|
| BE | `aba953f67` 產品預設改全收（加上本檔所在的收尾文件 commit，未 push） |
| FE | `7d1f64a0` 前端錯誤回報登入後才接回（C2） |
| 套件 `~/Projects/Jedicogy/module/jedi-python-package` | `be05c2e4` classifier 1.6.5；jedi-log 1.3.6 在 `95ffe840` |
| Agent `evidence-agent` | `4b088a4` 1.4.2 遮罩補位置參數 |

套件版號：jedi-log 1.3.6、jedi-evidence-classification 1.6.5（皆在 Nexus）；Agent 1.4.2（188 `/opt/guidant-ai-agent/.build/compose/`）。

### 環境狀態

**三環境（190 e2e／188 STG／189 POC）**
- api／worker／socketio 在 1.26.0＋`aba953f67`，sandbox 1.6.5，bugsink 2.6.1 healthy，三專案（guidant-ai／guidant-ai-fe／guidant-agent）在。
- 190 guidant.env 仍有 T-R 時手動加的 `ERROR_TRACKING_CAPTURE_CLIENT_ERRORS=false`、`ERROR_TRACKING_LOG_EVENTS=true`（root 擁有）——190 目前**不是**產品預設的全收。
- 189 guidant.env 有手動兩行 =true（與新預設同值，無害）。188 是純預設。
- 190 的允許主機名含 `guidantai-e2e.jedicotech.com`（B5 升級後仍在）。
- 190 guidant-ai 專案留一筆 A3 測試 issue（訊息含「fr133 A3 mask test 2」），測試資料、無真憑證，可從站台介面刪。
- 備份：三台 `~/backup/guidant_ai_<主機>_20261010_*_before_T-R2.dump`（另有 10/09 T-R 前的三份）。

**Agent**
- 四台外部 Agent（192.168.60.166／192.168.50.122／192.168.60.167／192.168.50.121）在 1.4.2，雲端登記 1.4.2。
- 190 本機的 `guidant-ai-agent` 已補升 1.4.2（2026-10-10 13:11 首腦執行，log「錯誤回報已啟用 release=guidant-agent@1.4.2」）；五台 Agent 全 1.4.2。

**DEV（本機）**
- B1 驗收 stack（compose project `guidant`）仍開著，`guidant-fe` 佔本機 80／443；收掉：`docker compose -p guidant down -v`。
- B0 測試資源仍在：容器 `b0-bugsink-fresh`、`b0-tunnel`、`b0-backend`（`b0-nginx` 已停）、network `b0-net`、volume `b0-bugsink-data`；本機 Postgres 的 `bugsink`、`bugsink_b0_fresh` 兩個庫與 `bugsink` 帳號。清理指令在 `b0-findings.md` 最後一段。
- DEV `guidant-bugsink` 管理員密碼在 `~/.guidant-dev-bugsink-admin.secret`（600，不入版控；B4 測試改過、與包內烙印值不同）。
- C3 驗收留一顆註冊 token（標籤 `FR133_C3_acceptance`）與一台已核准的測試 Agent；C1b 驗收留一筆 blsit 登入紀錄。
- DEV `.env` 的 `SENTRY_DSN` 仍指向 190 已停的舊站，DEV 錯誤回報實際送不出去。

## §2 已定裁示（不要重新討論）

D1–D10 與沙箱接入，全文見 design.md §3。要點：站台走 443 子路徑；管理員密碼全客戶一組、build 時烙印；三個專案；內網元件直連、外網客戶端經轉送端點；沙箱只多一個通站台的網段、不碰 guidant.env；發版流程不跑 e2e 回歸 gate（`387035254`）。

第 2 棒追加：產品**預設全收**（`aba953f67`，設 false 回到只收程式錯誤）；G1 暫緩（未出貨、無舊版客戶）；本輪不進版。

## §3 待決策者

1. **188、189、.166 重開機**：三台有 reboot-required 旗標；重開後 `sudo guidantai status`（Agent 機 `sudo guidant-agent-compose status`）確認服務回來。
2. **190 guidant.env 的兩行舊值**：要 sudo 刪掉並 `sudo guidantai start`（不是 restart）才回到產品預設全收。或保留作為「關閉全收」的對照機。
4. **T-V 乾淨機首裝未驗**：T-V 以三環境升級實跑代替；乾淨機從零裝（首裝建站、烙印密碼建管理員）只在 Linux 容器載入函式驗過，沒在真機跑過。下次有乾淨機可順手跑。
5. **遮罩已收斂成 jedi-masking 0.1.0（T-M1 CM-2624，jedi 337f7fa1、Agent d05d92b）**，待發版：jedi-masking 推 Nexus → jedi-log 1.3.7 → 分類器 1.6.6 image → Agent 1.4.3 image → BE 釘版重出包 → 三環境＋五台 Agent 升級；併下次進版。Agent poetry.lock 與分類器 requirements 要等 Nexus 有套件後才鎖。
6. **Agent 升級不清 `/tmp` 暫存解包**、失敗訊息誤導成「檔案損毀」：要不要開卡。
7. **進版時機**：本輪的 FR-133 全部內容尚未進版號，下一次進版的 release note 要涵蓋。

## §4 下一步

**🔴 下一個動作**：等決策者決定進版（走 `version-bump` skill）。進版時 release note 要寫進 FR-133 全部行為差異（見 SUMMARY「行為差異」段）。

> 這節是建議清單，不是執行授權。接手方讀完盤點完即停，等決策者發令。

## §5 待辦與風險

- `test_route_guard_inventory` 既存紅：`GET /survey` 兩支未登記，與本案無關，需另開卡。
- 錯誤碼鏡像測試既存紅（主專案比 jedi_compliance_audit 多三碼），決策者已裁下次發套件一起補。
- 遮罩改一處要同步三處；漏改的症狀是某一份把密碼送進站台，不報錯。
- 全收模式下站台事件量會大增；每專案上限 1 萬筆（smart retention），被灌滿時設 `ERROR_TRACKING_CAPTURE_CLIENT_ERRORS=false`。

## §6 Pre-flight

```bash
for d in ~/Projects/Billows/Audit-Manager/compliance-manager-be ~/Projects/Billows/Audit-Manager/compliance-manager-fe \
         ~/Projects/Jedicogy/module/jedi-python-package ~/Projects/Billows/Audit-Manager/evidence-agent; do
  echo "== $d"; git -C "$d" branch --show-current; git -C "$d" status -sb | head -1; git -C "$d" log -1 --oneline; done
docker ps --format '{{.Names}}\t{{.Status}}' | grep -E 'bugsink|b0-|guidant'
```

憑證一律查 `.env` 或部署文件，不寫進本檔。

## §7 行為規範提醒

- 不切 branch、不自動 push；顯式 git add。
- 只動 DEV；STG／POC 與 190 的任何寫入都等決策者當次明示。
- jedi 套件發版、Agent image 部署等決策者明示。
- 收尾類（母卡 Done、SPEC、FINAL-SPEC）等令。

## §8 不在本期 scope

- 告警（D8，下一版）。
- 登入前的前端錯誤、Agent 註冊前的錯誤。
- reviewer 對 C1b 的兩條建議（見 design.md §9），列 follow-up 不在本案做。
- G1：Agent 1.1.0 直升 1.4.x 的儲存憑證缺口（CM-2622 暫緩，處置是移除重裝新版）。
