現況看同資料夾
FR-066-STATE.md;本檔只記脈絡:commits/決策(含被排除的)/教訓/推翻了什麼。
commits: BE c0d137be(discussion+design+README 登記,D1–D9 定案)/d9ec17f4(D8 補 Windows 可行性初判附錄)。evidence-agent 零改動(已切 feature/FR-066,HEAD 0c47463)。 Notion: 母案 CM-1284+子需求 CM-1285~1288+子任務 CM-1289~1300,17 卡連號一次建齊,全 Not started。
做了什麼:
upload_files 一張表、指紋 workaround、DI 靜態清單;②FR-063/064/065 可複用資產盤點——build 管線/私房 wheel/簽章泛用層/install.sh 七步)→ 討論稿 D1–D9 → user 逐項拍板 → design.md 落地(含分工概述節)→ 17 卡建立。決策(含被排除的,全文見 design.md §3):
create(checkfirst=True) 自建無 migration,遂裁換 SQLite。被排除:要求宿主裝 PG(違背一鍵安裝);bundle PG(為一張表多維運一個服務)。Q2 方言掃描列 T-1.1 前置守門。d9ec17f4),明標「初判非定案」作 T-4.3 起點。教訓: Case No 連號一次建完有效——母→子需求→子任務依序建,17 卡號段乾淨無散落,跨 session 溝通只講卡號即可。
推翻了什麼: 無(本 arc 首棒)。
留給下一棒: 等 user 發令派第一棒 T-1.1(CM-1289 SQLite 化,含 Q2 前置掃描);T-4.3(CM-1300 Windows 評估)無依賴可平行先派。改 code 一律在 evidence-agent repo(feature/FR-066),BE 只放文件。
commits(皆已 push): evidence-agent e6aff6a(SQLite 化)/b003db9(程式改造)/7c3ea0c(依賴對齊+欄位自癒清單驅動)/6e48236+cab945a(build 管線+Q3)/1425a61(lock 入版控)/265f5f8(jedi_* 判定統一)。jedi-common 53e03e1+ec3d4ee(0.0.31 已發 Nexus)。 Notion: 追加開 CM-1303(T-1.3.1)/CM-1304(T-1.3.2);CM-1289/1290/1291 收 修正待驗證。
做了什麼: 派 4 棒 runner 走完 FR-066.1 三張原卡+兩張追加卡。每棒親驗不採信自報(自己跑 pytest/自己造舊 DB 測自癒/自己解析 lock/自己做突變測試)。
決策(含被排除的):
jedi-common session_scope() 無條件下 SET LOCAL(PG 專屬),停下報 A(agent 端 monkey patch)/ B(改套件)。首腦查證後推翻 runner 的成本估計——B 對主專案零風險(主專案釘 0.0.30、agent 釘 0.0.25,本來就版本隔離;改法依 dialect 判斷,PG 路徑行為恆等),且開發期走 path dependency 不卡卡。排除 A:等於在 Nuitka 二進位裡藏對第三方套件內部實作的覆寫,落地版產品不該留。nullable=False,既有 agent.db 升 jedi-file-upload 0.0.22 後所有上傳直接 OperationalError。同時實測 SQLite 接受帶 DEFAULT 的 NOT NULL ADD COLUMN。並要求改成欄位清單驅動而非再寫死一支。python-dotenv 擋點(與 Flask 同源,皆 c6188f7 資安修抬下限),停下報 A(升 jedi-file-upload 0.0.22)/ B(升 0.0.19 最小可解)/ C(放寬下限)。裁 A:B 省下的不是風險而是版本分岔,日後每次升級都要重解同題且跨度更大;C 與 Flask 同源,退回資安修補。.gitignore:213 證據顯示 BE 2026-08-15 踩過同一顆雷、原文用詞「歷史誤加」,理由同為落地版產線的可重現保證。agent 照 BE 收斂,並讓解析改吃 lock(比 BE 原版更穩,兩種宣告格式皆適用)。教訓:
推翻了什麼:
assert_protection(:533)判為「假通過、必須改用統一 helper」。runner 未照做並回報反駁;首腦親手實測驗證 runner 正確——加 __init__.py 濾網會跳過「Nuitka 只漏子模組、頂層無 __init__.py」這種真實漏收形態(實測:現行寫法 leaked=1 擋下,加濾網 leaked=0 放行)。處①③ 是身分清單(名字要 import/餵 --include-package,撈到 metadata 當場炸),處② 是洩漏掃描器(失敗方向是漏掃,範圍越寬越好),方向相反不該統一。首腦當初看到「三處不一致」就要求統一,是把形式一致看得比語意重要。runner 的 helper 也優於首腦建議(合法識別字白名單 vs 黑名單排除 *.dist-info)。nmap.py _NMAP_BIN 誤列為「agent 本機執行、要配置化」,實為受測機工具(全程 client.exec_command)。runner 查證後正確拒改並回報,已於 T-1.3 卡更正。python-dotenv 擋點(只查了 Flask 那半邊)。留給下一棒: 唯一待辦=188 完整 build + 五項 smoke(CM-1304 ③④)。265f5f8 已 push,188 git pull 即可。此關通過即 FR-066.1 收口,接著進 .2。T-4.3(CM-1300)仍可平行。
⚠️ 本棒收工時未更新 STATE/LOG(違反交接紀律),本 block 由第 4 棒接手後從 git/188/Notion 卡反推補記——細節以各卡(CM-1305~1308)上的首腦驗收紀錄為準。
commits(evidence-agent,皆已 push): af56f2d(CM-1305 smoke_agent_release.sh 五項驗證)/ee0b1e0(CM-1306 EXCLUDE_COMPILE_PKGS 清空——排除編譯會讓產物啟動即死)/57ed03f+4fa0e0b(CM-1307 身分守門+空白名單誤判修正)/9a7a9ef+9f0b804+238d067(CM-1306/1308 smoke 第 4 項三修)/7b751ea(build 自動寫 log)。 Notion: 追加開 CM-1305~1308 四張卡,皆做完收 修正待驗證(各卡附首腦獨立驗收紀錄)。
做了什麼: 188 完整 build 通關(265f5f8,Step1 含 Nexus 依賴全綠、Nuitka 6m29s、產物 278M→後續 316M);建立 smoke 五項量尺並連環抓出量尺自身三個假綠。
決策:
教訓(三次同型病,全靠突變測試抓出):
推翻了什麼: 第二棒 STATE 寫「唯一待辦=188 build+smoke」低估了收口成本——build 一次過,但量尺可信度花了四張追加卡。
留給下一棒: smoke 得 4/5(第 4 項 4c 假紅,決策者 2026-08-20 09:41 親跑撞出)→ 開 CM-1309。
commits: evidence-agent 0fc80c8(CM-1309 smoke 第 4 項改抓路徑而非中文字串,本機=origin=188 三處同步)。BE:本棒 STATE/LOG 補帳。 Notion: CM-1309 開卡並收 修正待驗證;CM-1284 母卡/CM-1286(.2)改 In progress;CM-1285(.1)改 修正待驗證;CM-1292(T-2.1)補四項裁示後派出。
做了什麼:
決策(.2 開工裁示,全文在 CM-1292 卡):
教訓:
推翻了什麼: 首腦原提「工具包放 188 固定目錄+文件記載」被 user 的「build 時自動拉」方案取代(更優:可重現、防忘、防篡改三者兼得)。
留給下一棒: CM-1292 runner 進行中(等回報→首腦親驗);後續 T-2.2(CM-1293)→T-2.3;T-4.3 可隨時平行;user 複驗 .1 後收 CM-1285+10 張子卡 Done。
commits(evidence-agent,皆已 push): T-2.1 系 393eef6~a73fc64(CM-1292/1310/1311/1312)/T-2.2 a19e68d+LC 6c1d916(CM-1293)/T-2.3 a11ccf2+7925258(CM-1294,追加 CM-1313)/T-2.4 f20a7e1(build_all)/T-3.1 fc9cd23+0bc41b9+91cef8f(CM-1295)/T-3.2 a6dc132+f823e50+ff3429c(CM-1296)/T-3.3 d255fc1~9e0142e 7 顆(CM-1297)/T-3.4 34f7386(CM-1314)/T-3.5 ab849ce(CM-1315)。BE:a821638d(§2 概述判定欄)+8b83de06(雙層 manifest 回寫)。 Notion: 開 CM-1313(build_all)/1314(位址偵測)/1315(TOFU)/1316(installer PKI,掛 FR-065 CM-1189)/1317(時區 bug);1292 收 Done、其餘 .2/.3 卡皆修正待驗證。
做了什麼: 一天內走完 .2 後半+.3 全部+真機驗收主體。每卡首腦親驗(自跑 smoke/自比 kid/自查 188 清理/DB 反查),三次抓到自己環境操作錯誤而非 runner 錯誤。決策者親手走「compile→打包→搬 123→裝→上線」全鏈,撞出三個只有真實部署才現形的缺口,全數當日立卡、兩張當日修復。
決策(各卡詳情在卡上):
教訓:
推翻了什麼: 「.1 產物不可覆蓋」紅線由決策者主動撤銷(產線自證可重現後基準無意義)——首腦原本還在為它鋪 BUILD_ROOT 繞路,應更早主動提議解除。
留給下一棒: CM-1317(BE 時區)+CM-1316(installer PKI)兩棒跑中等驗;.4 三張(T-4.1 收口/T-4.2 手冊/T-4.3 Windows);design D6 註記;DEV 測試資料收尾清。
commits(BE,均在 feature/FR-066): eee68284(CM-1316 installer agent 對接段,scripts/installer/ 專屬)/7c037530(CM-1317 時區分流:agent 心跳統一 UTC+公告日期改營運時區+backfill SQL,DEV 已套)。 Notion: CM-1316/1317 收 修正待驗證;CM-1299(手冊)範圍升級為含憑證金鑰全景清單(決策者拍板,動機「這麼多要簽的東西沒紀錄,除錯要重頭挖很恐怖」)。
做了什麼: 兩棒衍生修正親驗收訖;188 手補 PKI 走到終態(換 RSA JWT 鑰+123 重 enroll);憑證文件化裁示落卡。
決策:
教訓:
推翻了什麼: CM-1317 開卡的根因假設(時區混算致離線)——實際離線成因是 BE 缺 cloud client 憑證(健康檢查覆蓋心跳判定),時區是另一顆方向相反的真 bug。兩者都已收。
留給下一棒: §3 的端到端閉環驗證(新 installer 從零裝→agent 接→派真任務)=T-4.1 主體;T-4.2(含憑證全景)/T-4.3 待派;D6 註記;收卡與 DEV 資料清理。本棒為第五棒收官,首腦交接在即——接手者走 §0 讀序即可冷接。
(第五棒尾註,2026-08-21 晨追記): 決策者走 OpenSCAP 首單(123 掃 151)時撞出capability 申報鏈缺口:測試連線回「本租戶尚無可用的檢測 Agent」——detection_tool_service.py 篩 detection_scan capability,但 enroll 從不寫 capabilities、DB 恆為預設 ["file_storage"]。已盤點入 STATE §3 第 0 條(含待查證項:FR-057 當時怎麼過的),留給下一棒查證開卡。SSH 稽核鑰模型已與決策者對齊(一把共用鑰:公鑰灑受測機、私鑰貼工具設定、UI 單憑證組是產品缺口候選)。Rocky Linux 支援現況也已對齊(Ubuntu/Debian 正式支援、EL 系未驗證不主動擋、有需求再開 EL9 驗證卡)。
commits(BE,均已 push): d723e064(CM-937 心跳接收 capabilities)/02aa4e27(PDF 預覽 500)/23772d2f(CM-1322 基線補漏:stage_objects+哨兵+PGTZ)/e87b35b0(CM-1322 Profile 進基線+id 重排)。evidence-agent: ee31c4c(CM-937 自報 capabilities,0.2.28)。 Notion: CM-937(7 月舊卡復活修畢)+CM-1322(新開)皆收 Done;CM-1322 卡上累積 8 段追加(裁決軌跡完整)。
做了什麼: 接手日即實戰日——決策者在 188 走 OpenSCAP 首單,一路撞出的缺口當日全收:①capability 申報鏈(enroll 從不寫→CM-937 心跳自報,runner 修畢)②188 落地版 stage_objects 全缺(基線漏收→手灌解封+CM-1322 根治)③FR-059 Profile 庫 seed 全缺(同病)④分類字典不在基線⑤BE image 缺 CINC(解析失敗→override 掛宿主)⑥build_bundle storage-seed 非空跳過重建(靜默漏 8 支 profile 檔→清目錄重打)。三工具首單全通:OpenSCAP 103 findings 回收入池、CINC(sudo NOPASSWD:ALL 換 oscap 單項後通)、GCB(正規匯入+重解析後通);ZAP 為工具自身連線池壞死(重啟解);160 實為 Windows 機(WinRM 路線)。
決策:
教訓:
推翻了什麼: D11.4(帶檔+UI 匯入)整條路線;CM-1322 開卡時的兩項指令(flow_templates 4 筆/Profile 進基線的原始理由);首腦「瀏覽/派掃正常只有下載壞」的錯誤斷言(GCB 派工即讀檔)。
留給下一棒: ①build_bundle storage-seed 完整性檢查(對映表並集比對)未派——prompt 已擬在對話中;②「188 同時是運行庫與 seed 真相來源」結構問題,runner 已正式提報建議另開卡;③PROD 簽發鑰四步組(FR-062 既有待辦,正式客戶包前必辦);④e2e 機(guidant-ai-e2e)上的驗裝與 cm-e2e 舊 agent 三容器並存,正式 T-4.1 驗收仍應乾淨機重走;⑤1316/1317 等「修正待驗證」卡與 .4 三張照舊。決策者宣告本段結束,下一戰線=agent 改結構。
commits(詳各卡): evidence-agent 05c181a(T-6.2)→1132150+2584e25(T-6.1)→b08a14c(T-6.5)→85275e1~ac5045a 6顆(T-6.3)→dd62b00~b50e52a 6顆(T-6.6)→86a04dd~6f86303 5顆(T-6.7)。BE daa982b7(.5 拆卡)→2ecf1e5d(.6 拆卡)→13141f62(T-6.5/D14)→664912e7(T-6.6/D15)→4fa4d18c(T-6.7)→7058a9b6(CM-1331 守門)→ffca7c41(CM-1333 恢復)→429a4c21(skill 收工硬檢查)。FE af04fe1(409001 i18n)→1143e37(恢復按鈕)。三 repo 皆已 push。 Notion: 開 1318~1321(.5,全暫緩)/1323~1330(.6 主線)/1331~1332(守門修正+主體包)/1333~1335(恢復預設三張)。1324/1325/1326/1328/1330/1331/1333/1334 修正待驗證(皆首腦親驗);1335 已派跑動中。
做了什麼: 兩天走完三波需求變化——.5(Rocky/RHEL)開卡即被 PM 暫緩;PM 揭示 agent 本源是跨網段證據存放(FR-039),拍板 .6:compose 形態+SeaweedFS 內建儲存+指紋二源化;接著三個 UX 追加(互動安裝程式/顯示名稱/恢復預設)與一顆守門 bug(191 撞出)。
決策(詳 design.md §3):
教訓:
推翻了什麼: .5 的「於 .4 收口前完成」(PM 暫緩改最後);T-6.3 首版交付形態(手填 .env 被 D15 打回,產物保留當積木);CM-1317 之前「188:443=PRD」的疑慮(查實為 FR-066 測試環境,容器標籤而已)。
留給下一棒: ①1335 跑動中(回報後親驗,含收 1330/1332/1333 未驗清單+191 break-glass 收回+190 sudo 收回);②T-6.4(1327)端到端=1335 後下一棒;③T-4.3(1300)零依賴可平行派;④T-4.1(1298)含斷網驗證;⑤T-4.2(1299)手冊(含憑證全景+雙形態)等前面收完;⑥design D6 註記;⑦總複測收卡等決策者。新環境座標:190=agent 驗收機(臨時免密 sudo 待收)、191=落地版 PRD 驗收機(blsadmin 臨時 super_admin 待收)。
commits(BE): 4d172cae(CM-1300 Windows 評估文件,runner 產出)+本棒 design/STATE/LOG 更新(commit 待收)。evidence-agent: a89a701(CM-1335 runner:交付包收斂一顆,已 push)。 Notion: .6 全系 1323~1328/1330~1335 收 Done(決策者裁示 .6 通過);1298 改暫緩(D16)+卡上補裁示註記;1299 補範圍調整註記(compose 為主);1286/1287 對齊「修正待驗證」、1288 改 In progress;1300 修正待驗證(首腦親驗合格,等決策者過目)。
做了什麼: 接手即三事——①派 T-4.3(CM-1300)Windows 評估(決策者追加四項:docker 過渡/互動設定對應/工時/宿主覆蓋),runner 產出後親驗抽查實碼引用全對;②1335 回報進來親驗(191 break-glass 收回 DB 實查 f、升級補快照實跑通過、四頁守門決策者手測);③決策者揭示「原生暫不出貨」裁示未落文件——查證屬實(LOG/design 全無此記錄),補立 D16 落 design.md+全卡對齊。
決策:
教訓:
推翻了什麼: D12 的出貨面(雙形態同時出貨→compose 單軌,D16);CM-1330 裁示①(兩包制→一顆通吃);T-4.3 初判的 NSSM 建議。
留給下一棒: ①190 砍掉重裝驗證(onepack 首裝全鏈+恢復循環+upgrade,1335 未驗假設①②);②T-4.2 手冊(範圍已定,可派);③1300 等決策者過目收 Done;④design D6 註記;⑤殘餘修正待驗證卡(1286/1287/1293~1297/1316/1317)等總複測;⑥懸置裁示項:斷網驗證歸屬、191 免密 sudo 收回、PROD 簽章鑰。
commits(BE): d481ee49(.7 立案 D17)→239641f8(驗收機 161→160)→bdc21d2d(T-7.1 探路報告,runner)→50af617e(T-7.1 附錄:時鐘偏差 JWT P0,runner)→0cfb886a(.8 立案 D18)→0004a4f2(T-7.4 判死報告,runner)→9187d91d(D19 全凍)+STATE/LOG 本更新。 Notion: 開 1336~1339(.7)/1340~1345(.8)/1346(T-7.4)/1347(主產品手冊對齊);1337/1346 探路完成收 Done;其餘 Windows 卡全暫緩+凍結註記;1299 復活(Linux only 範圍)。
做了什麼: 一天內走完 Windows 三路線的立案→實測→翻盤→收束:D17(Docker Desktop 先行)→決策者實際使用發現登出全滅→T-7.1 實測確認 P0+D18(原生版唯一出貨路線+code signing 階段策略)→PM 轉向 B→T-7.4 生死驗證判死→PM 最終拍板 D19 全凍、Linux 為主。轉向手冊戰線:開 1347、復活 1299、雙派工 prompt 備妥。
決策(詳 design.md D17/D18/D19):
教訓:
推翻了什麼: D17(Docker Desktop 先行——當日即被 T-7.1 P0 推翻);D18 的「C 唯一路線」執行面(PM 裁投資等訊號);首腦誤收母卡(Windows/手冊未完,決策者糾正後撤銷);首腦 Hyper-V 提案(決策者駁回)。
留給下一棒: ①雙手冊派工(1347/1299,prompt 在對話中已交付決策者);②手冊收完+user 過目→母卡收口;③design D6 註記仍欠;④掛置項見 STATE §3 第 5 條。
(第八棒續尾註,2026-08-23): 決策者拍板 189 路線:手冊收完→v1.16.0 進版→189 由源碼裸跑遷 FR-065 bundle 形態,之後全環境統一 --upgrade 升級模式。189 盤點發現:跑已退役 main_app.py、main HEAD 8c82e8e6(~1.13 era)、DB 在機上 postgres 容器 25432。前置與順序已入 STATE §3 v2。版本事實:main=v1.15.0 正式;feature/FR-066 有 4 顆功能 commit 未 merge(BE 1331/1333、FE 1324/1333);191 跑的 1.15.0 bundle 內容超前 main 同版號(烙印 429a4c21),進版時收斂。context 過半,本 session 收到「雙手冊親驗完」為止,其後交下一棒。
(第八棒收官尾註,2026-08-23 午後): 手冊戰線四卡收 Done——1347(onprem 對齊 55 commit 落差,抓到「檢測 Agent 全線在手冊不存在」最大缺口)/1299(agent 手冊 11 章:憑證三世界全景+資料保護責任+時鐘同步排錯)/1348(決策者初審「看不懂」打回 → 21 章全面白話化,每章導言+術語括號註解+指令前後白話句)/1349(build 工具洞:HTML 內 .md 互連未改寫致連結全壞——修渲染層非修文件;衍生 SPEC 站白名單補 license-guide+system-integrity 兩頁清 pre-existing 死連結,runner 撞「不可動」清單正確停下請示、決策者裁選項 1)。教訓:①手冊受眾校準要在派工 prompt 就給白話範本(design §2 文風),首版沒給就返工一輪;②文件站 build 產物要實際點過連結才算驗(本棒自己漏了,決策者點出)。BE 領先 origin 16 顆待 push。交接:決策者要討論新需求(另開 session),本 session 止於此;下一棒接 §3 主線(v1.16.0 前置),開工先問決策者「發版前要先處理的需求」是什麼。
(第八棒終註——全案收口,2026-08-23): 決策者下令收尾。母卡 CM-1284 收 Done(卡上有完整交付清單+殘項);FR-065 側同日收 1246(.4)/1264(T-4.2)/1275(.5)——1264 首腦驗後按縮減範圍收:①全鏈與③負面案由既有棒次驗證涵蓋,②PROD 鑰窄驗證移出(實查 public_keys.py 僅 DEV/STG/POC 三把,PROD 鑰未生成)移轉 189 遷移線補做;1265(FR-065 Windows 評估)標暫緩由 FR-066 三份文件取代。FR-065 剩母卡 CM-1189 收口(等 SUMMARY+189 線)。FR-066 未做 SUMMARY——決策者未下令,殘項與教訓已在母卡與本 LOG 齊備,需要時由 LOG 濃縮。BE 領先 origin 17+ 顆待 push。