# FR-174 交接現況（STATE）

> **這份是 living 檔**：每棒就地 Edit，只描述「此刻」。

| 項目 | 值 |
|------|-----|
| 最後更新 | 2026-11-02 深夜（已結案、工作坊 33 closed；出貨基線已重產含 dev-sec 兩列系統檔，新裝實跑 dev-sec 兩版是 file 型有檔；隨 1.28.0 出包） |
| branch | BE `feature/FR-172`（開工前確認，不對就停下問，不切） |
| 母案卡 | **CM-3422** https://app.notion.com/p/FR-174-Profile-Agent-Agent-7-4-40b346da4cd081d38f59d58fed6239a7 ；子卡 CM-3423～CM-3429、CM-3434、CM-3435（9 張 6 批） |
| 階段 | 結案。剩畫面總驗與 SPEC（等決策者令） |

## 🧭 原始需求 / WHY

Agent 主控台 CINC Auditor 的 Profile 下拉要看得到 CINC 的 Profile。決策者 2026-11-01 裁：從 FR-172 CM-3410 移出另開本案，**方向採 A 案**（匯入網址型時存成檔案型、原網址另存「來源網址」欄）。全文與已查證的三處阻擋見 `requirement-notes.md`。

## §0 接手讀序

0. `design.md` §0、§1（定案 D1～D10）、§3（套件改法）
1. `requirement-notes.md` 全讀
2. FR-172 卡 CM-3410（`python3 /Users/chouraymond/Projects/Jedicogy/agent-workshop/scripts/notion_case.py get CM-3410`）卡尾的小弟回寫與首腦紀錄
3. 套件三處：`jedi-detection/jedi_detection/app/service/detection_profile_extraction_service.py` 39–53 行、`migrations/001-detection-tables.sql:204`、repo_impl `list_current_files_visible_to`

## §1 當前狀態

| 項目 | 狀態 |
|---|---|
| 登記 | `docs/features/README.md` FR-174 列已加 |
| 需求紀錄 | 完成 |
| design.md | 定稿（D1～D10），拆卡表由 `handoff/cards.py` 產（兩個斷言過：7 張 4 批、無同批撞檔） |
| 討論稿／雛形 | 略過：方向已由決策者裁、無新增畫面；白話複述三題建議決策者「開吧」照建議定 |
| Notion | 母卡 CM-3422、子卡 CM-3423～3429；`handoff/notion-cards-made.json`；CM-3410 已 append 指向本案，維持暫緩 |
| 工作坊 | **未開**，等決策者在狀態頁新增 |

## §2 已定裁示

| 裁示 | 何時 | 誰 |
|---|---|---|
| 另開 FR，不在 FR-172 做 | 2026-11-01 | 決策者 |
| 方向 A 案：解析成功存成檔案型、網址留作來源 | 2026-11-01 | 決策者 |
| 來源網址**沿用既有 `url` 欄**，約束改「file 可帶 url、url 不帶 file」；不加新欄 | 2026-11-01 | 輔助首腦建議、決策者「開吧」 |
| dev-sec 兩支公版範例改檔案型隨套件 assets 帶（與 TWGCB 同路）；基線補兩列 upload_files 屬決策者裁示 | 2026-11-01 | 同上 |
| 套件從 FR-171 CM-3382 的 1.7.3b1 往上長（1.8.0b1／b2／1.8.0）；**jedi-packages `ws-CM-3379` 已 ff 合進 `feature/FR-172`（a960e479，已推）**，套件卡照預設從 `feature/FR-172` 開 | 2026-11-01 | 決策者選項 1、輔助首腦執行 |
| 「Agent 自己抓網址」掃描路徑整條拔掉（套件 build_payload＋Agent resolve_profile_source） | 2026-11-01 | 同上（Agent 不連外網已裁） |
| 不改 FR-171 設定通道、不改心跳；本案主系統端零程式改動 | 2026-11-01 | 同上 |
| 出貨前無客戶，不做舊版相容 | 2026-11-01 | 決策者（三案通則） |

## §3 下一步

1. 決策者看畫面：主系統 Profile 頁 dev-sec 那列（檔名＋網址小字）、明細「來源網址」、控制項頁快照提示、Agent 主控台 CINC 掃描下拉（工具代號 `inspec`）。
2. SPEC：`system-admin/detection-profile-manage.md`，等決策者令。

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

## §4 風險

- 推翻 jedi-detection 一條明文設計不變式，要同步改套件的設計文件與註解，否則下一個人會照註解改回去。
- 同步通道：本案不碰（D10）。FR-171 B-1 把清單搬去 `GET /agents/config` 時查法照用，轉型後版本自然納入。
- jedi-remote-agent 測試 1 紅（心跳 schema 多 21 鍵）屬 FR-171 K-1b（CM-3421）範圍，本案套件卡跑 jedi-detection 自己的測試即可，別去修它。
- D5 同版換檔會刪舊 `upload_files`：若某個檢測任務的執行紀錄引用舊檔 uid 做「下載原始檔」會斷鏈；P-1 小弟若 grep 到這種引用要回寫，由輔助首腦裁改成不刪。

## §5 現況

| 項目 | 狀態 |
|---|---|
| jedi-detection | 1.8.0 已發 Nexus；主系統 `pyproject.toml` 釘 `==1.8.0`，`poetry.lock` 已更新，site-packages 內含 migration 014 與兩支 dev-sec assets |
| 守衛 | `test_module_boundaries.py`＋`test_fr174_profile_snapshot_guard.py` 121 綠 |
| 全部子卡 | CM-3423～3429、3434、3435 皆已做完 |

### 出貨基線

已重產（FR-172 S-4 `142e327a4`）：`public.upload_files` 補 dev-sec 兩列（id 11／12，形狀照 TWGCB；`gen_seed_sql.sh` 的系統檔數量檢查改 12）。套件 migration 014 不進基線，新裝由 migrate 第二輪套；新裝實跑 dev-sec 兩版 file 型、有檔、網址保留。

## §6 2026-11-02 合回後現況（輔助首腦實查）

- **合回**：`ws-CM-3422` → `feature/FR-172`：BE `fa40a5fba`、Agent `68d47fe`、FE `389fd09e`、套件 `d0bafdef`。四個 repo 主資料夾乾淨。
- **環境**：主資料夾 pin 與 `.venv` 一致（protocol 0.2.0／remote-agent 1.12.0／detection 1.8.0）。8000 已在 `.venv` 重啟，無啟動錯誤。本機 Agent 用主線（含 A-2 `AGENT_CONTENT_CACHE_DIR`）重起：事件、拉設定 200，`Read-only '/data'` 歸零，dev-sec 兩支在快取裡完整。
- **DEV 實查**：dev-sec 兩版 `source_type=file`、`file_id` 6405／6406、`url` 保留、系統公版 upload_files 兩列、sha256 一致；`chk_dpv_source_exclusive` 已是新規則；014 已登記。
- **畫面還沒人親眼看**：主系統 Profile 頁 dev-sec 那列（檔名＋網址小字）、明細「來源網址」、控制項頁快照提示、Agent 主控台 CINC 掃描下拉（工具代號是 `inspec`，卡上寫 `cinc_auditor` 是開卡筆誤）。
- **已知不相干**：DEV 的 TWGCB 九支下載 404（188 新 SeaweedFS 是空的，舊檔不在）。
- 工作坊 33 已 closed。
