Repository navigation
setup: 略過首次擷取設定後可重新進入,避免無法開始記錄 #331
Description
2026-10-16 最新狀態:PR #339(錄製修復)及 #338(測試整理)已合併;v0.18.3 已正式發布。四份公開安裝資產下載後 SHA-256 與 Windows 更新 metadata 核對通過;正式 Mac DMG 隔離副本的 100 道普通 Zsh 指令、HTTP(S)/匯出/重啟與取消安裝三流程 PASS。v0.18.2 保留為有已知缺口的預發行,v0.18.1 未發布包。原生 WSL、完整人工 Kali/首次安裝計時及 Mac quarantine/Dock/公證仍未驗收。
問題
「Get this engagement fully recorded」是新專案的首次擷取設定畫面。原本只有儀表板在沒有證據時自動顯示,沒有固定的重新進入入口。操作者誤按「稍後處理」、切換頁面,或先收到一筆事件後重啟,就可能找不到它。
略過導引不能被當成擷取已設定或已驗證;也不應要求刪除專案/證據來重跑設定。
範圍:先讓操作者真的能開始 log
- 儀表板「擷取健康度」保留固定「擷取設定 / Capture setup」入口。
- 首次開啟、略過、已有證據、App 重啟都可重新進入同一個設定畫面。
- 重進只檢查/接入來源,不清空事件、config 或專案身分。
- 依賴檢查/安裝/來源啟動失敗必須留原因與下一步;不能只有消失的 toast 或假成功。
- 用實際指令與輸出、HTTP/HTTPS 驗證開始記錄;不以「導引看過」代替。
驗收
- 無事件時略過,再回儀表板仍可進入設定。
- 略過後有事件,導引不再自動顯示時,固定入口可重開。
- 重啟已記錄專案後,入口仍可重開。
- 重開、離開、再次重開不遺失證據、不重設 scope/專案、不產生重複終端。
- 未驗證項目不因略過變成已完成;失敗有 retry 和可操作的修復。
- 鍵盤與最低支援寬度 800×720 可操作;macOS DMG 副本的核心指令/HTTP(S)→重啟→基本匯出通過。
- 剩餘原生 WSL 與完整平台人工驗收見 release readiness: 對齊安裝包、能力宣稱與 Kali/Windows/macOS 真機驗收 #226;修復已合併並於 v0.18.2 發布,capture: macOS packaged redlog-session 單次 exit 0 卻無 canary 輸出,根因待確認 #333 原始單次追蹤限制獨立保留。
2026-10-14 紀錄收尾進度(取代較早候選狀態)
已 commit/push,見 PR #335。基線 main@3d89ffc;產品程式與 macOS 候選包為 1606a2c,驗收 HEAD 為 bae0415(最後兩檔只修測試)。尚未合併/發布。
已實作:
- 固定設定入口與 Prepare → Prove:只準備缺少的相關工具,失敗保留原因、manual remedy、前置工具與 retry;重查 PATH,安裝/略過不算已驗證。
- 受管 HTTP 要收到本次 owned addon 的私有 readiness 回應才 running。程序存活、外來 listener、console 訊息與舊回應都不算;冷啟動上限30秒,失敗只停止自己的程序。Probe 不進證據,也不冒充 HTTP/HTTPS nonce。
- POSIX 同秒與 PowerShell 同毫秒 spool 使用唯一ID;修正 receiving-profile/shell身分/WSL逾時,以及真正 PTY EOF/EIO 提早關閉的資料遺失。
- 保留活著的終端 PID/cwd/scrollback;不同專案錄製分段、落盤後 hash,跨界完成標 partial;每 pane stop 同時停止原始 cast。簽章 keypair 不因新專案被覆寫。
- frozen filtered export/附件內容變更檢查/projection verifier;交付副本與完整來源鏈的驗證邊界明示。
驗證:
- 1606a2c 本機:3593 tests PASS/24 SKIP;typecheck、Spec Kit、architecture、i18n、build、packaged-resource gate PASS。
- 同一最終 macOS DMG 27 個實際 installed journeys PASS;100道普通Zsh各自入庫(90 exit0/10 exit3/20 stderr,48,796ms),真實缺 mitmdump 安裝、HTTP/HTTPS、loopback前後證據、隨包verifier、重啟與 project rotation。
- 早期「22 installed」已更正:當時是7 packaged+15 source;最終直接launchers honor packaged executable並assert app.isPackaged,才計為27 installed。UI seeded/control IPC只證明UI,producer另有真實shell/HTTP驗收。
- 1606a2c Windows NSIS PASS:乾淨runner預檢→安裝→自己profile首啟→原生PS/HTTP(S)/projection bundle→禁止意外skip→卸載。Windows unit3281 PASS/340 SKIP、Ubuntu unit3596 PASS/21 SKIP。
- 1606a2c Linux E2E有2項失敗(129 PASS/5 SKIP):舊proxy fixture只有印字後sleep;隔離Zsh HOME沒startup file。bae0415補owned-response fixture、進入proof及隔離.zshrc,保留失敗診斷;本機兩流程PASS。新的 CI/NSIS PASS:Linux操作131 PASS/5 SKIP,Windows安裝與no-skip/卸載全PASS;精確數字為此head。
- Kali2026.3 ARM shell容器的Zsh/Bash stdout/stderr/exit PASS;不是桌面安裝包或nativeVM驗收。
DMG SHA-256:9d964ea671e39d3441e1c3c8f216841feacdedee6582655dca49783572180686。唯讀掛載、隔離複製;未動既有App/profile/系統CA。
仍未完成:原生WSL、Kali desktopVM/nc shell-upgrade/首次接入計時、macOS下載quarantine/Gatekeeper/Dock/公證、merge/release。Spec047/055/056為Implemented;原生矩陣仍未勾,不宣稱Verified。#333最初单次失敗沒有syscall trace,後來的修正及綠燈不能追认全部同因。
六檔OpenCode免費覆核已獲授權;先前403,本次180秒逾時沒有最終結論,未切付費備援。
時間軸改版仍暫緩。
2026-10-15 原生 Kali 與 macOS 封裝收尾
PR #335 已推送至 1fd2879(封裝/腳本修正 a8dea39+驗收文件)。尚未合併/發布。
- macOS 舊 DMG
9d964e…後續被 strict codesign 發現缺少 resource seal,已撤換候選地位;歷史錄製結果保留。新包實際 ad-hoc seal、安裝副本 strict verification PASS;改動 shipped hook 的丟棄副本會被拒。新 DMG SHA-256:7a6dbbea8ce02022727ba3af710ad5f3e6da1565a1973df3e447dad942f431af。ad-hoc 不等於開發者身分或公證,Gatekeeper 只讀評估仍拒絕。 - 新 macOS 包:26 PASS/1 dependency-install opt-in SKIP;隔離 Electron user data 後,100 指令與 PTY/profile removal 兩流程再驗 PASS(100 指令62,432ms)。另兩次真正缺工具安裝均於180秒逾時,保留 FAILED 與畫面上的 Retry/manual remedy。公開依賴另行下載耗時超過8分鐘;不拿舊包安裝成功冒充新包本次結果。
- 原生 Kali 2026.3 ARM64 桌面 VM:使用者安裝 experimental DEB(產品 bae0415),5 installed journeys 整組 PASS:100 道普通指令逐一核對stdout/stderr/exit、native nc、PTY/helper/profile移除、真實HTTP/HTTPS→projection匯出/隨包verifier→重啟、pane切換/停止隔離。最終100指令83,956ms;enrollment+verification84,047ms,不含裝包與人工設定。JSON HTTP覆驗無SKIP/not-exercised,實際步驟均執行。工具另行備妥,VM對外網路保持關閉。
- 使用者另以可見終端手動 Ctrl-Z → raw/fg,附圖證實恢復後持續收資料;獨立輪詢確認stop/resume及三個tty fd,App local chain通過。controller等待10分鐘後才收到確認marker,原始completed:false保留;不冒稱全自動跑完。斷網時外部時間戳錨定失敗有記錄。
- 本機3593 PASS/24 SKIP,五道順序gate、build、strict packaged-resource gate通過。同一head
1fd2879的 CI/Windows NSIS 全部PASS:Ubuntu unit3596 PASS/21 SKIP、Windows unit3281 PASS/340 SKIP、Linux Electron131 PASS/6明確SKIP;多出的installed-only nc未設定packaged executable故skip,已另在真實Kali安裝包通過。NSIS實際乾淨安裝、自己profile首啟、PS/HTTP(S)/loopback projection、no-skip gate及卸載均PASS。較早bae0415結果只保留為歷史,不冒充此head。 - 仍需:完整人工quickstart與首次安裝計時、published Linux x64、Windows portable/native WSL、macOS真正quarantine下載/Dock/公證。ARM驗收不充作x64結果;Spec047/055/056仍Implemented、052仍Draft,未把剩餘task改勾。#333最初單次trace限制與免費覆核無結論仍保留。
時間軸改版暫緩;完整證據與限制已更新 docs/PACKAGED-SMOKE.md 及對應spec verification。
2026-10-15 安裝收尾覆驗(80cbfea)
PR #335 HEAD 80cbfea075d4ba77e58798882e3edb475ae26d7b,未合併/發版。
- CI PASS:Ubuntu unit 3608 PASS/21 SKIP;Windows unit 3293 PASS/340 SKIP;Electron 操作 132 PASS/7 明確 SKIP。另本機五道順序 gate 全過,3605 PASS/24 SKIP。略過項目未算成通過。
- Windows 原生 PASS:NSIS 安裝/自己 profile 首啟/PS/HTTP(S)/projection bundle 隨包 verifier/卸載;portable 真正自解壓 EXE 從含空白路徑啟動、內建 stdout/cast、外部 PowerShell 指令與退出碼、匯出驗證及終止後重啟持久性。兩組 strict JSON gate 均無 SKIP/not-exercised。Portable 不宣稱優雅關閉後的暫存目錄清理或 WSL。
- Linux x64 原生 PASS:實際 apt 安裝/移除 DEB;6 項流程(100 指令 stdout/stderr/exits、native nc 恢復、PTY/helper、HTTP(S)/交付/重啟、專案切換及取消程序);100 指令 40,105ms,含接入驗證 40,137ms,不含裝包/人工設定。搬到含空白路徑的真正 AppImage 再跑 2 項,兩組無 SKIP/not-exercised。AppImage 用
APPIMAGE_EXTRACT_AND_RUN=1,不冒充 FUSE 掛載/桌面雙擊驗收;Ubuntu x64 不替代完整人工 Kali quickstart。 - macOS 新 DMG 安裝副本 13 項 PASS(10 項控制 IPC 的設定/恢復,另 3 項實際程序清理、私有 fresh tools+HTTP(S)、Bash 第一筆/cast+匯出/verifier/重啟)。Fresh install 42,381ms;不把較快網路歸因於 timeout 修正。新 DMG SHA-256:
39acaebdb1b8c85f1be53f2d87a6320752f59216d21f6c1b9b15e5b7cf13a9a6;strict ad-hoc seal PASS,仍未 Developer ID/公證。 - 原始 180 秒下載失敗、renderer reload 留程序、ddea520 DEB 首道指令缺失及 portable driver 失敗均保留。Bash 安裝包 RED cast 證實 0.224s 執行指令、0.604s 才載 hook;改為先排入初始化,再交出 pane,沒有加測試 sleep 掩蓋。取消/離開/reload/quit 只停 owned tree,無關程序保留。安裝/略過不算擷取已驗證。
剩餘:native WSL、完整人工 Kali quickstart/首次裝包到開始記錄的計時、macOS 真正 quarantine 下載/Dock/Developer ID/公證,以及合併與發布。047/055/056 仍 Implemented,052 仍 Draft;未把完整平台驗收勾完。套件、原始報告與 artifact digest 已另外保存;舊候選包與舊 head 的綠燈不冒充本版本。
2026-10-16 合併與正式發版
v0.18.2 Release 對應 9b8a8c263986a23874289c9630c8f24d3d13ed53;三平台建置與單一發布工作 全部 PASS,安裝包、SHA256SUMS 與 Windows 更新資訊齊全。公開下載與 Mac 安裝副本覆驗另留結果,不將先前候選包當成本次發布位元組。
PR #337 CI:Mac unit 3,619 PASS/21 SKIP,Ubuntu 3,615/21,Windows 3,298/342;Electron 132 PASS/6 明確 SKIP。NSIS 實際安裝/記錄/匯出/卸載 1 PASS,DEB 實際安裝/記錄/匯出/取消/移除 6 PASS,兩者 strict JSON 無 skip/not-exercised。
macOS 錄製器現在保留 PTY slave 至指令完成並排空資料,避免最後關閉端清掉未讀 stdout/stderr;確定的 RED→GREEN 原生回歸已加入。這不回溯斷言 #333 最初無 syscall trace 的單次失敗全部同因。完整人工矩陣與原生 WSL 仍留 open,不把 Spec 047/055/056 升成 Verified,052 維持 Draft。
2026-10-16 v0.18.3 正式下載覆驗
正式 Release 的 NSIS、DEB、DMG、Mac ZIP 均下載並核對 SHA-256;latest.yml 的版本、檔名、大小及實際 NSIS SHA-512 也吻合。Mac DMG 唯讀掛載後複製到隔離安裝目錄,strict codesign 通過,實際 runtime 是 0.18.3/isPackaged=true。三個 installed journeys 全 PASS,strict JSON 無 SKIP/not-exercised/flaky:100/100 普通 Zsh 含輸出與失敗邊界、內建終端/真實 HTTP(S)/投影交付及隨包 verifier/重啟、安裝取消/離開/reload 只清 owned tree。沒有改個人 profile 或系統 CA。
測試整理保留上述 producer/隔離/證據測試,刪除重複或已無效的案例;全套本機為 3,605 PASS/24 明確 SKIP,相關 Electron HUD/project 9 PASS。舊矩陣移入 archive;現行測試與人工安裝驗收指引另列。剩餘人工平台矩陣仍 open,#333 原始單次缺 trace 的限制不回溯歸因。
Activity
guan4tou2 commentedon Oct 16, 2026
已驗證,關閉
驗收清單除最後一項(平台驗收)外都已勾選,該項由 #226 追蹤,不再放在這個 issue。
v0.18.3 的實測(Windows x64,安裝包解出的 exe,隔離 profile)
e2e/packaged-smoke.spec.ts最後一個步驟是:重啟後開專案 → 點 Dashboard 的 Capture setup 入口 → 看到「Get this engagement fully recorded」,且事件仍在。14 次執行中 13 次通過;唯一一次失敗發生在較前面的匯出步驟,沒有走到這一步(該間歇失敗另行追蹤,與本 issue 無關)。未涵蓋:乾淨 Windows(沒有 python/curl/mitmdump)、原生 WSL 的完整設定流程、macOS 下載隔離;這些留在 #226。
Refs #226