Skip to content

setup: 略過首次擷取設定後可重新進入,避免無法開始記錄 #331

Closed

Description

@guan4tou2

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 驗證開始記錄;不以「導引看過」代替。

驗收

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秒逾時沒有最終結論,未切付費備援。

時間軸改版仍暫緩。

Refs #317、#226、#298。

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

  1. guan4tou2 commented on Oct 16, 2026

    @guan4tou2
    OwnerAuthor

    已驗證,關閉

    驗收清單除最後一項(平台驗收)外都已勾選,該項由 #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 無關)。
    • 手動走一遍:建立專案後第一個畫面就是 Commands 與 HTTP(S) 兩張卡,皆「○ Not verified」;跑一個指令與一次 HTTP/HTTPS 檢查後兩張都變 ✓,並出現「Start working」。

    未涵蓋:乾淨 Windows(沒有 python/curl/mitmdump)、原生 WSL 的完整設定流程、macOS 下載隔離;這些留在 #226。

    Refs #226

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions