每棒結束追加一個 block:commits/決策/教訓/推翻了什麼。現況看
FR-114-STATE.md。
做了什麼
_handoff-internalize-5.md 與 SUMMARY.md,盤點 145 件按批分布,回報決策者。dispatch-plan.md(總覽)+七份 batches/plan-b*.md(分批逐卡計畫);22 處待補程式座標派兩支 opus 唯讀實查補齊。fix/security-b1)。workflow.js/cards.json/HANDOFF.md,手動派工 DISPATCH-PROMPTS.md,看板 BOARD.md。commits(BE feature/review):c61254ddc、379cb2396、2a8115bf0、84d217ba7、c57fbfbc7、2ad1a1a04、b40c3b00e、00c60d1de、+本棒收尾一筆。未 push。
決策者裁定(本棒)
推翻了什麼
.env 一致,看起來沒換。列為 D-b4-2 待決策者確認。flow_control_job_repo_impl.py:332 註解明寫永遠對不到;runner 實測 12,573 筆 0 筆。首腦錯,runner 對。教訓
做了什麼
首腦裁定
envs=dev 維持、客戶庫不自動補(三環境實查:缺的都是客戶自建「稽核人員」、八顆全缺,屬建角色沒勾到;但升級自動補權限與 #43 方向矛盾)。改走 1-6 「403 不可安靜變空」+升級手冊提示。發現的連帶
fix/security-b1。第二輪 runner prompt 已寫明套件工作區路徑,若再發生要看 runner 是不是沒讀「工作區」段。flow-engine-banner.json),合回前併 FE 小修補。教訓
ssh … docker exec … psql)才裁得出「客戶庫要不要補」,光看 DEV 不夠。第二輪自動跑驗收(同棒,2026-09-22 晚)
test_detection_orchestration.py 假物件沒跟上,19 個炸;② 1-1 新錯誤碼沒複製進套件鏡像。派 sonnet 補,順手把 FR-112 漏登的兩支 FORCE_START 收掉。首腦裁定(第二輪)
教訓
第三輪自動跑驗收(同棒,2026-09-22 深夜)
api_log.py 守門包法順序與 docstring 相反(能力點該先於總部層級),一行調整 a25933de8。首腦裁定(第三輪)
教訓
收尾(同棒,2026-09-22 深夜)
1b52aa24b。c87d2eea5,首腦驗:36 條狀態對、html 無壞路徑、欄數異常全是主線既有第二張表。commits(BE feature/review,本棒):74a3e6710、8c1d3acba、95d3069b3、5174b119d、eb70c4d7a、618c19557、3d68d7595、f12eeab05、+本筆。未 push。 commits(BE 工作區 fix/security-b1,本棒首腦親手或派工):f6398b680、1825bbda2、ca7619dd4、a25933de8、1b52aa24b、c87d2eea5。套件工作區:e98fea2(cherry-pick)、7a8c3da。
給第 3 棒的一句話:三輪下來 runner 品質穩定(29 張零退回),驗收真正抓到的東西都在「runner 沒跑到的測試」與「跨 repo 連帶」——驗收時多花時間在跑呼叫端模組的測試與 grep FE i18n,少花在重讀 diff 本體。
第四輪自動跑驗收(同棒,2026-09-23)
616577422/5156e8ab)。教訓
收尾交接(同棒,2026-09-23)
第五輪自動跑結果:5 張退回重派卡全跑完,3 過(CM-2035 重編號/CM-2037 分頁列表歸屬/CM-2082 第二個 catch+七文案)、1 沒過(CM-2048 差 import os 與 features-site 鏡像重同步;憑證面首腦核過零真值)、1 需裁(CM-2042)。首腦每張落地時先做唯讀預檢(新號跨 monorepo 唯一/分頁列表真有過濾/五個 catch 全補),與驗證 agent 結論一致。
首腦裁定
detection-profile.read 給缺的角色(DEV 5 個角色缺,全部都有 device.read,證明是資料漏發不是守門錯)。FE 兩處打選單的 catch 順手補 403 提示。envs=* 隨出貨,STG/POC 由 init image migrate 模式帶到、不手動套;客戶庫管理員刻意拿掉的權限會被補回,決策者明知接受。CM-2032 那支從 envs=dev 改 *,併進 CM-2042 第六輪做。攢著合回前做的:CM-2035 新三號 FE 文案缺三條;三張過的卡各有「CM-xxxx 重派」施工日誌型註解要刪;升級手冊「升級前檢查角色讀取權限」要多列掃描設定檔那顆。
另開卡建議(不在本 arc):公版 seed 只有 Administrator 一個角色、118 條授權全給它,客戶自建角色從零勾,以後每加一顆讀取守門都可能踩「安靜變空」;長期正解是公版內建幾個一般角色範本預勾讀取類權限。
教訓
commits(BE feature/review,本棒):24343ae6e(Bifrost 劃掉)、+本筆(第五輪驗收/裁定/第六輪清單)。工作區無首腦親手 commit。
第六輪事故(同棒,2026-09-23)
night-run/HANDOFF.md 貼給執行首腦的 code block 主體改寫成「做卡」,執行首腦操作細節另立一節不進被轉發的主體;code block 尾加「沒有 Workflow 工具就是 runner、直接做卡」的分流句。cards.json 不變,第六輪原清單重派。第六輪重跑驗收(同棒,2026-09-23 下午)
mkdocs --strict 過,把 sync_features.py 白名單改 --all,8497acee3 夾帶 242 檔(FR-069~114 共 46 個 FR)+mkdocs.yml 291 行導覽,文件站 74→120 個 FR。決策者裁「要分開,不要混在一起」。第七輪只拆:疊反向 commit 刪 484 個新增檔、mkdocs.yml 還原、白名單重跑 sync+build(不帶 strict)。文件站擴容+architecture-handbook 斷鏈另開卡給文件線,不在 FR-114。教訓
第五輪三張正式驗收(同棒,2026-09-23 下午)
攢著的(已寫進 STATE「合回前清理清單」與 BOARD「另開卡候選」):FE 三條新文案、施工日誌註解五處、CM-2037 套件側守門收攏、兩支死方法、進度查詢非成員可讀、list_ap_parties 放行寫法、公版 seed 一般角色範本。
教訓
第七輪驗收+裁定(同棒,2026-09-23 傍晚)
教訓
第八輪驗收(同棒,2026-09-23 晚)
has_secret;內部上傳服務專用 reveal service 只注入一處;#124 原封)。BE 81 紅為 detection 五支主線既有。a96497d28,74→121,兩支腳本只加資料清單)。決策者裁 handbook 納站。教訓
收尾交接(同棒,2026-09-23 晚)
264b42262(工作區):35 條改狀態(33 已修、#124 裁不修、#101 部分修)+11 個 M 檔 20 列,首腦核欄數與主線一致、抽七條對、範圍只在 security-report。順帶抓到第四輪 Done 的第 2 批 10 張狀態也沒改(第 2 棒交接時漏),一併補。剩 21 條未修,其中 5 條(#9/66/67/96/97)要對批外清單,留第 4 棒。本棒 BE feature/review commits:24343ae6e、908712ae0、81be299b0、8a5c3837f、4ed143ac2、e87a5b2c8、f0cf8385d、a96497d28(CM-2084 runner)、+本筆。未 push。 本棒工作區 commits(runner):BE 8497acee3/5de8faeec/b047d16e3/0f3ef0e4a/3a651140e/7c904eb6e/264b42262;套件 c69d3e97/0f0baf9c/09cbb7cf;FE bbf0f68/4f1e501/45b3d7c/756783b。
5A-1 派工 prompt(給第 4 棒改 5A-2 用)
做 CM-2052:讓代理程式每次打進來都要證明身分,並讓「撤銷」真的斷得乾淨(SUMMARY #1,全案最嚴重)
https://app.notion.com/p/FR-114-5A-1-SUMMARY-1-3e2346da4cd08135ba63d89e24cfbd8b
model:opus/effort:high/理由:跨 jedi-remote-agent 與 evidence-agent 兩個 repo、要設計短效通行證簽發驗證,方向已裁但實作有判斷
工作目錄:/Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be
先 `python scripts/notion_case.py get <URL>` 讀完整張卡,卡是自足的;卡尾兩段「首腦裁定」(第 2 棒+第 3 棒)是最新指令。
卡上「工作區」段指定的目錄才是你改碼的地方,絕不碰任何主 checkout。兩個 repo 同一棒做完。
卡上「在哪裡」每個 file:line 都要改到;「怎麼修」照順序;「紀律」段是完整規則。
做到一半發現既有工具形狀對不上、或要動客戶機房設備,停下回寫「🔴 需首腦裁」等令。
做完:各 repo 分開 commit → Notion append 白話補充(commit hash、測試、手測清單、SUMMARY 該改成什麼)→ 狀態改「修正待驗證」→ 停下等驗收。
不 push、不切 branch、不發版、不動 docs/security-report/、pyproject.toml 的 path 改動不 add。
給第 4 棒的一句話:八輪下來驗收真正抓到東西的地方都在「runner 沒跑的呼叫端測試」「跨 repo 的連帶(錯誤碼撞號、FE 文案、鏡像同步)」「為了讓某個檢查過而放寬範圍」——5A-1/5A-2 是全案最重的兩張,驗收派 opus 時把這三類寫進 prompt 的「特別盯」段。
做了什麼
AGENT_JWT_PRIVATE_KEY 發長效通行證、每請求驗簽+查 DB 撤銷」,取代 D-b5A-1「短效」;決策者確認並要求對齊業界(首腦查 kubelet/SPIFFE/Wazuh/Fleet:共同模式=啟用碼只用一次換這台專屬長效憑據、每請求帶、中央每次核對、撤銷=中央作廢)。runner 一棒中途壞掉零改動、重派做完。opus 抽 12 條過 11:持有舊私鑰證明可被「先讓 CA 簽出 CN=受害機指紋的真憑證」繞過(ca.py 照抄 CSR subject、_register 簽前沒驗 CN)→ 退回補 CSR CN=device_uuid 檢查+兩條測試 → 第二輪過。終態:套件 c4acc687+9c049540、agent ecdc9f3、BE 7a3bdf1ec。analysis:docs/analysis/2026-09-23-agent-control-plane-identity-token.md。unlock-receipt.json 排除事件、排程再拿它 mark_unlocked 不驗 nonce——有權刪標記檔者手寫一張回執即繞過且洗掉 DB 鎖 → 退回「回執帶原廠 unlock token、閘門與回填都重驗四樣」+三條測試(runner 做了突變驗證)→ 第二輪過。#17 邏輯鏈成立(相依集合扣 cryptography → 不複製、不列 thirdparty、顯式編進 core,斷言無旗標可跳),三點只能等 188 全量 build 證。cffi 順手補進安全關鍵清單。終態:套件 953697c9+ba129ca1、BE 0dda326b8+b64995ac9。server_time_utc,agent 算偏差 >60s 警告(心跳節流 600s)、install.sh 只 warn。首腦親抽,套件 150/agent 720 綠。終態:套件 bad15b7d、agent 9edda49。handoff/2026-09-23-merge-readiness.md(首腦抽驗後 commit,見本 block 末)。首腦裁定
boot_db_lock.py:30 except 範圍比「連不上」大(表不存在/權限不足也放行並警示)→ 本卡不改,攢問決策者。推翻了什麼
教訓
poetry env info -p),用 BE venv 會 11 個 collection error 誤判。timeout 指令,驗收腳本別用。commits(BE feature/review,本棒):ae6eb652b(CM-2052 裁定+analysis)、f80b9f682(CM-2085 開卡)、e05d1a8ab(2052 退回)、d90177999(2052 Done)、6557db361(2053 退回)、9abe5e64e(2053 Done)、44870fb9f(2085 Done)、+整理稿與本 block。未 push。 工作區 commits(runner):套件 c4acc687/9c049540/953697c9/ba129ca1/bad15b7d;agent ecdc9f3/9edda49;BE 7a3bdf1ec/0dda326b8/b64995ac9。
給第 5 棒的一句話:程式面收完,接下來全是「決策者拍板後才動」的事(合回、發版、188 全量 build、總測、出貨基線重產)。整理稿 2026-09-23-merge-readiness.md 末段是裁決清單;決策者 09-24 早上驗收,接手者讀完盤點完停下,等他一項一項發令。
做了什麼
2026-09-23-merge-readiness.md 的七項裁決清單:①現在合回(不等 5B-5/第 6 批)→ 開合回前清理卡 CM-2109,首腦驗收過改 Done;②發版在工作區做(只發套件不發本體、BE 工作區建獨立 venv、188 放行)→ 開發版卡 CM-2110、四 repo fix/security-b1 已推 GitLab;③#96/#97+CM-1605 郵件憑證驗證(A 案:既有設定升級不變、新建預設驗憑證、可貼內部 CA)→ 開 CM-2111,Done;④開機查 DB 只收窄「權限不足」(A 案)→ 開 CM-2112,Done;⑤出貨基線整包重產(合回後、188 build 前)→ 決策者放行(先備份舊基線),首腦實查 5 支 active migration 完成、A 段過;⑥另開卡三張(CM-2116 角色範本、CM-2117 儲存密鑰後端擋、CM-2118 進度查詢補成員檢查)→ 全 Done;⑦monorepo 缺 lock(4 支在用的合回時順手補)→ 已補。f52a53f1e);CM-2114 jedi-survey 改注入判斷(Done,套件 034eef0e/BE 49cbe0b7b);CM-2115 我的任務 view 重建(Done,f709823ad,主線 migration,算進出貨基線重產);CM-2119 其餘四處改接唯一歸屬判斷(Done)。CM-2113 範圍外六處(workflow_execution_service 等)評估後攢給決策者作另開卡候選。role_domain_service.py:127 原本直接 delete 無擋)。Done,套件變動進 iam 1.4.1(後續補到 1.4.3)。FR-050 旁路一併拿掉,開 CM-2120,Done(838599358)。0be9aa24a)推上後、DEV 手測「我的任務」差集為 0,第四段過。~/backup/guidant_ai_baseline_20260924_1249_before_CM-2110.*)再重產,過。919432229),退回一輪重跑;重跑又撞 jedi-iam 1.4.0/1.4.1 缺 .mo(套件庫 .gitignore 排除 *.mo、worktree 從 git 開出沒有)→ 補發 1.4.2。決策者裁「不再零碎補發,剩餘小修全收進 CM-2134 總清理,驗收後只發一次」——CM-2121(CM-2085 漏改的既有測試)、CM-2133 併入 CM-2134。CM-2134 Done,最終只需再發 jedi-iam 1.4.3(.mo 入版控)+jedi-integrity 1.2.1(刪死方法),其餘只動 lock/tests 不發。BE 最終 pin 99b0721c3。fix/security-b1 打包差異,證明探針⑥是假警報(產品開機本來就走同一 import 路徑);找出兩件真壞:產物權限 700/600(build run2 起 umask 077 造成,會出壞 image)、188 FE repo 停在 main 未含前端資安修正;另發現版號仍 1.20.0 會覆蓋已出貨 image/bundle。開 CM-2135(打包鏈一次修完,含 umask 斷言)、CM-2136(驗證 CM-2053 驗收②③成立),決策者裁版號改 1.21.0b1(預發版)→ CM-2137。三張皆 Done。--skip-prod-key-check 出內部測試包(歷來包皆如此做法)。本體 1.21.0b1 出包完成:/opt/guidant-ai-be/.build/bundle/guidant-ai-1.21.0b1.tar.gz(944MB);image be/fe/init:1.21.0b1。首腦裁定
scripts/build/README.md 的規則,非本棒完成(留給第 6 棒收尾文件階段)。推翻了什麼
教訓
.mo 檔)——發前要比對 wheel 內非 .py 檔與上一版差異,不能只看 .py。commits(BE feature/review,本棒):672b9381d(決策者裁現在合回,開 CM-2109)、4f7b83c9b(CM-2109 Done)、85fb5f3fb(開 CM-2110 發版卡)、7acbca2ea(開 CM-2111 郵件卡)、69433d8ac(開 CM-2112)、66b8a525e(開 CM-2113)、038381493(掃描線四件同批)、cbeedfbce(登記 FR-117)、f32ec83fc(開 CM-2116~2118,第一二段過)、416b3aaac(CM-2113 Done、七項全裁完)、c836300d7(CM-2115 Done,開 CM-2119)、4af21780b(CM-2114 Done)、832cdabcb(CM-2119/2117/2118 Done)、7a0ef639e(CM-2116 決策者裁定,開 CM-2120)、9a45966d3(CM-2110 第三段過,CM-2120 Done)、d5ff6bc55(CM-2116 Done,決策者裁補發 1.4.1)、da9b73ae0(1.4.1 前置核過,開 CM-2121)、5ef46e04f(1.4.1 發佈,第四段過)、a7f403856(決策者放行基線重產與 188 build)、197d1e5c5(基線重產驗收過,開 CM-2132)、fb54db0a8(CM-2132 第二輪 Done)、65620f07e(開 CM-2134,暫停零碎補發)、18e190371(CM-2134 Done)、0aeeef031(打包差異盤點,開 CM-2135/2136)、2951898b0(決策者裁版號 1.21.0b1,開 CM-2137)、47070df4a(決策者裁順序:本體→agent→LC)、7ab25f920(決策者:總測等雙邊更新後一起做)、b376d7445(記版本對應表待辦,總測後另開 FR)、d8b85e097(CM-2135 Done)、e2b6e071e(CM-2137 Done)、6dcec9894(CM-2136 Done,188 最終重跑就緒)、82160fd17(188 build 全綠,記 PROD 公鑰缺口)、dc51bd3dd(本體出包完成,+本 block)。未 push。 套件 monorepo commits(發版相關,本棒):iam 1.4.1→1.4.2→1.4.3(.mo 入版控)、integrity 1.2.1(刪死方法)、其餘 16 支各自 bump 見上方 STATE §1 版號清單。 BE 工作區最終 HEAD:99b0721c3(18 支 pin 完成)。
給第 6 棒的一句話:程式面與本體發版打包全收完,剩 agent 輪、LC 輪(含 PROD 公鑰)、雙邊部署 DEV 總測、正式 1.21.0 定版。接手先讀 STATE §1「當前狀態」與「🔴 第 6 棒接手後做什麼」,agent 輪先派唯讀盤點、別邊撞邊修(本體那輪連撞四次是教訓)。
做了什麼
baf0e2d4c;CM-1871/CM-2061/CM-2197/母卡 CM-2170 都已加註。決策(決策者裁)
推翻了什麼
教訓
commits:baf0e2d4c(開 CM-2223)+本交棒 commit。修正線工作區未動(驗收唯讀)。未 push。
給第 8 棒的一句話:現在只有一件事——派 CM-2223,看它回寫的設計、驗實作;通過後才派 CM-2061,最後才發版。prompt 在 STATE 最末節提到的卡上,不要提前派 2061/2197。
做了什麼
決策(決策者裁)
推翻了什麼
教訓
commits:主 checkout 5fc4de4bb/7d572f2e8/14ece8013/c2a7d5912(開卡)+本交棒 commit。修正線 BE 046553756→fa2d59b30(8 個)、套件 87fd5439→35ba8e84、FE 2cb7fb4→53a8d6a,三 repo 已 push。
給第 9 棒的一句話:b3 在 190 等決策者總測。你的工作是收他貼來的錯誤回報(含截圖):每則先查 log 對卡初判、記進收集卡,累積一批再分類開卡派修;不要一則一修、不要合回主線、不要動 STG/POC。
做了什麼
jedi 一組通用;admin 已換密碼;188 三檔(.netrc/auth.toml/.npmrc)已設;本機 auth.toml 維持 jedi。決策(決策者裁)
推翻了什麼
教訓
commits:主 checkout 開卡/STATE 系列到 baa6b1902。修正線 BE 到 ee383bb40、agent 到 1b71a0c(1.1.0b2),套件/FE 見各卡。未 push。
給第 10 棒的一句話:b4 程式面 29 張全部修正待驗證,只剩 CM-2261 套件 003 是否改要裁;出包第 1 步 prompt 已備,等決策者放行;#31 問卷清單只看作用租戶是全站性問題,等裁進 b4 或後。
做了什麼
*_old)、188 BE+agent build、封包、scp、190 升級與 agent 升級、升級後實查。全程唯一卡點是 FE image tag 兩制,手補 docker tag 解。b3-UI可驗清單-22條.html(234 條總表挑出 UI 可驗項)。決策(決策者裁)
推翻了什麼
教訓
*_old 表若不 DROP,02-schema 會帶給新裝客戶——「留一版」設計只適用既有客戶升級路徑,重產基線前要清。-beta.N,bundle 要 bN;b3 靠手補,b4 又踩,該進腳本。.env 密碼欄是 DB_PASSWORD 不是 DB_SECRET(三次抽錯)。commits:主 checkout d74b7d0a1/29041b628/d8fbef3f2/0621c869a+本 block。修正線 BE 6f7e678ca→12dee3157(已推)、FE 55ca905、套件 d94a472d、agent 1b71a0c(四 repo 已推)。
給第 11 棒的一句話:190 是 b4,決策者總測中;你的工作是收回報進收集卡、開「API 批打驗證卡」(149 條)、等統整再開修正卡;不動 STG/POC、不發正式版。
做了什麼
poetry install --sync 換回)。決策(決策者裁)
detection_profile_versions id=1 extraction_error(資料面解鎖)。推翻了什麼
scripts/sql/packages/ 是 build 期產物不入版控,做不到(CM-2271 runner 指出)。教訓
pg_policies 而非只掃修過的表。commits:主 checkout 2061b7a27→aeb986a55(18 支,全 docs);修正線 BE 446f4bcf6/b99f88620/6c74ff0e3;套件 f44d1af7/bf97b904/f679363d/6e0d0d4b。四處皆未 push。
給第 12 棒的一句話:你是進版首腦——等 V3 回報核完、決策者手測收尾,就照 STATE 末節六步做合回+b5 出包(先問 FR-113 掃描線放行沒);CM-2271 帶一支主線 migration,基線要重產。
做了什麼
_resolve_ssp SQL 查 ap.uid,欄叫 uuid)——一字修,開 CM-2272,套件 36290a30。fix/security-b1 合回 feature/review(BE 352 檔衝突全是密碼遮罩措辭,取主線;smoke 腳本環境變數統一 PROBE_*)。決策(決策者裁)
--skip-prod-key-check。推翻了什麼
d94a472d,FR-121 時區改動早已在 b4 wheel 內。fr093-4d 就炸(scope 欄由行序在後的 CM-1790 才加;4d 的 scope 是 CM-1778 驗收後補的,驗證時還沒有)。修 85ae5aadc。教訓
git add -u . 在有既存髒檔的 checkout 上解 merge 會把髒檔掃進 index;解衝突後要逐檔比對「staged 內容=修正線內容」才 commit。ps -p 或 pgrep -x。install.sh --upgrade 會把 CLI 從 guidant 改名 guidantai,升級後驗證腳本要跟著改。commits:主 checkout deb9f00b1(開卡 2272)/fbbbb6d40(merge)/1b2bf92e3(開卡 2273・2274)/e04accb5d(runner,pin)/712fb5b64(runner,基線)/02f680835(進版)/85ae5aadc(4d 修)+本 block;FE feac690(merge)/50bda00;agent 1355869/6c17d21;套件 feac7698(merge)/36290a30/8765bd39(runner)。BE/FE/agent/套件 feature/review 皆已推(決策者令)。
給第 13 棒的一句話:決策者驗收 190 與 STG 後,剩 POC 升級(同一條 1.19→1.21 路徑 STG 已走過)、STG Agent 怎麼處理、git tag、母卡 CM-2019 收尾與回歸測試重整派工;不要在決策者驗收前動任何環境。
推翻了什麼:昨晚 LOG/STATE/CM-2277 寫「STG Agent 0.2.30 配新雲端會被拒,要裁三選項」——錯。188 是主產品機本來就沒有 Agent;那個 zen_sutherland 容器是 8/26 FR-066 T-6.6 打包測試殘留(evidence-agent --version 一次性、無 port/volume、restart=no、四週零 log、從未註冊),決策者一眼指出。 教訓:看到 docker ps 有個 image 名像產品元件的容器,先看 Cmd/RestartPolicy/log 有沒有在動,再判它是不是「這台機器的服務」;主機角色(主產品機/Agent 機)是先驗條件,不是靠容器清單反推。
agent_tasks.payload_ref 沒建、agent 心跳 500(四環境盤點只 189 缺這一項)。563355d22(模板改 is_admin+守衛 2 條)、CM-2281 54d171378(唯讀盤點 SQL+撤假登記 migration+守衛 3 條)。皆突變驗過。主線 migration +1(共 +2)。做了什麼
--upgrade 第 104 支 jedi_iam/002 deadlock(舊 api 查 user_roles 撞 ALTER users)→決策者裁停 api/socketio 重跑→19 支補完。升級後 #42/#43 由第 11 棒接手修(CM-2280/2281)。re-enroll 腳本在清憑證後卡住(compose run 不返回),殺掉後手動換 STG 現行 token 起容器註冊成功;123 升 1.1.0 但雲端位址過期+憑證不配,原生 0.2.30 已停用,等 DEV token。/version 端點裁不動。決策(決策者裁)
/version 免登入端點不動。FR-114 主線結束,交下一棒整理兩週 case 與文件。推翻了什麼
教訓
remote_agent_enroll_tokens 該 token 是否 enabled,否則自動重註冊會 401。guidant-agent-compose re-enroll 的 _certs_volume_sh(compose run 臨時容器)在 60.166 不返回;等價手法是直接改 .env 的 REGISTRATION_TOKEN 後 up -d。commits:主 checkout 9d59e436a(總表+CM-2278)→本 block。第 11 棒:5dfce23de/026b6af13。修正線未合回:563355d22/54d171378。
給第 13 棒的一句話:三環境都是 1.21.0 了;先把修正線那兩支合回並重產基線(裁 hotfix 或 1.21.1),回寫 CM-2279,等 DEV token 修 123,然後開始決策者要的「兩週 case 與文件整理」。
做了什麼
/version 皆 1.21.0(commit 02f68083);修正線尚有 563355d22/54d171378 未合回;CM-2279 已是修正待驗證(STATE 寫 Not started 過期)。docs/spec-site/current/ 無任何頁提到 1.21.0;v1.21.0 快照與 current 只差 2 個檔=內容等於 1.20.0。決策(決策者裁)
推翻了什麼
教訓
commits:本 block 所在 commit(STATE 節+LOG+cards JSON)。
做了什麼:派 Z1/Z3/Z5/尾巴四棒平行,回報後本體開檔核;Z3 過後派 Z2、Z4;六張全核過改 Done,CM-2282 append 結案段改 Done。與掃描首腦分工(他收掃描線 CM-2290/資安總表 CM-2291,我收修正線/docs/security-report/)。順手:CM-2279 過期待辦拿掉;hotfix 母卡撞號 FR-122→FR-123。
決策(決策者裁):修正待驗證一律 Done;CM-2289 hotfix 全部等下一版;v1.21.0 tag 打在 02f68083、之後修正進 1.21.1;jedi-packages 名冊只列現役 21 支。
推翻了什麼:Z3 卡原寫「#89/#129/#131/#132 隨舊線退場」→ 實為第 8 批 CM-2225/2226/2227 已修(掃描首腦提問才查出)。CM-2282「六條掃描線新發現未開修正卡」→ 狀態欄過期。
教訓:另一 session 平行登記 FR 編號時會撞號——開卡前 grep -oE "FR-1[0-9]{2}" docs/features/README.md | sort -u | tail -1 要在建卡當刻再查一次,不能沿用一小時前的數字。驗證卡(CM-2061 類)的「結論」是「問題還在、建議開卡」而非「問題消失」,引用前讀全文。
commits:ff922e07a/6c84c8acd/本 block。