Repository navigation
[P1] uiux: 統一 Bash/Zsh/PowerShell 的接入、驗證與修復操作 #434
Description
2026-10-25 最新核對
main 4d528ba5 已合併 #443:首次引導、日常設定與 WSL 接入/驗證/修復共用既有 RecordTerminalFlow,來源狀態回讀不會重複安裝或重設驗證。設定開啟只讀取,不自動改 profile。
本單剩餘重點是實際平台接入驗收:Windows PowerShell 5.1/7 的 edition/profile、真實 WSL,以及完整安裝→新分頁→I/O→重開讀回矩陣。Mac 沒有 WSL;未新增 macOS PowerShell backend。#432 的 Windows 後續修正仍未合併。
使用者結果
使用 Bash、Zsh 或 PowerShell 都沿同一條路徑完成接入,不需要先理解 hook/relay/run/session。首次引導、日常設定、儀表板修復使用同一份操作狀態與驗證結果。
操作一致不代表擷取能力相同:各 shell 保留專用 adapter、profile、語法、依賴與已驗證能力。WSL 是執行環境,不是第四種 shell。
基準與目前缺口
2026-10-22 核對遠端 main 0d79823b 及已推送候選 2b21b690(codex/recording-export-workflow)。這是程式/流程分析;不宣稱本輪跑過三種 shell 的全平台原生驗收。
- RecordTerminalFlow.tsx 已有選 shell、安裝、nonce、逾時與輸出測試,不另重寫一個 onboarding。
- HooksPanel.tsx 的日常設定仍是另一套偵測/啟用/移除流程;安裝結果與收到指令/輸出的驗證不在同一處。
- terminalActivation.ts 的主機選單在非 Windows 只列 Zsh/Bash。若後端在 Mac 偵測到受支援的 PowerShell,不應僅因主機平台就從接入選單消失。
- 終端說明仍一次列出 native/PTY 分類與 CLI 指令;這些是進階診斷,不該是接入前必讀知識。
共用操作
- 偵測執行環境及 shell,推薦目前使用者的環境/shell;可手動改選實際支援的組合。
- 顯示會修改的 profile/安裝位置與本機或客體歸屬,執行接入。
- 必要時明示開新分頁;在使用者選擇的終端執行對應語法的測試。
- 同處顯示「已安裝」「收到指令」「收到測試輸出/退出碼」的實際結果與時間。
- 失敗留在原處重試/重新偵測;已接入來源只重驗需要的步驟。
- 日常可從同一處查看紀錄、重新驗證、修復或移除整合。
這些是呈現不同事實,不是要求每一步增加一次確認。普通開啟設定不得自動改 profile。
驗收
- 首次引導、設定與儀表板修復共用既有接入流程/狀態契約;不維護兩套安裝與驗證語義。
- Bash/Zsh/PowerShell 使用相同操作名稱與順序,但各自使用正確 profile、測試語法、相依條件及能力說明。
- 選單依實際偵測與安裝能力提供項目;Mac 不出現 WSL;後端支援且可用的 Mac PowerShell 不被無條件排除。
- Windows PowerShell 5.1/PowerShell 7 的 edition 與 profile 可辨識;不靠同一個 shell 名稱推論兩者都已接入。
- 切換 shell/環境、專案切換、重試與晚到結果不會誤認為新的驗證成功;主機結果不充作 WSL 客體結果。
- 已安裝不冒充收到指令;收到指令不冒充收到輸出。普通指令、互動程式、原始 stdin/混流邊界如實說明,不做鍵盤側錄。
- 可從設定原地驗證並查看保存證據,不要求返回首次設定或自行去時間軸找 canary。
- 一般用戶預設看到接入與結果;工具分類、手動命令與診斷按需展開。
- 安裝可重入;只撤回 RedLog 自己的 profile 修改,移除不刪既有證據;保留未歸屬/跨專案 spool 隔離。
- 在實際支援的 shell/平台完成安裝→新分頁→stdout/stderr/exit→重開讀回;測試與未測能力分開列示。
範圍與依賴
沿用 Spec 062 US1–3、#317、#288、#226;#433/#327/#326/#345 的 WSL/傳輸缺陷及 PR #432 維持原追蹤,本單不重報其修正。未有後端支援前,不增加任意 executable path 欄位或假裝可安裝。
不合併三種 shell 為萬用腳本,不新增 shell、不加舊 hook 相容層,不為統一 UI 擴建通用工作流引擎。內建終端保留備用。
2026-10-25 已合併 main
PR #443 已合併 main 4d528ba5,包含後續 AI 暫停邊界修正 ccf0347a。本次增量已落地;完整人工/平台矩陣仍待驗收,本 issue 保持開啟。
- 接入、驗證/修復已共用
RecordTerminalFlow,設定開啟時不會安裝;WSL 狀態重讀不會重複安裝或清掉驗證 attempt。 - 以實際 backend 能力選 Bash/Zsh/PowerShell;沒有新增 macOS PowerShell backend 支援。
- Mac 安裝副本已驗證真實 Zsh 指令及輸出;PowerShell/真實 WSL 仍未在本輪真機驗收。
推送前五道 gate 依序通過;unit 4,250 passed/28 skipped。設定/來源/匯出的 14 個行為案例已整併為 4 次啟動,刪除 5 項重複 renderer 檢查。最後 T079 的兩項來源/HUD E2E 通過;非 HUD 測試不再顯示懸浮窗,產品預設不變。
Mac arm64 內測 DMG 已重建,完整性/資源/簽章檢查通過;此新 DMG 未再安裝並重播全部人工流程。先前原生與安裝副本的驗證範圍詳見候選 verification.md。可進行小範圍 Mac 內測,不宣稱 Windows/真實 WSL 或完整跨平台驗收。
Spec 062 T072–T080 記錄此 bounded increment;T008–T013 仍開啟,Spec 保持 Draft。剩餘驗收完成後再判斷關閉。
修正後 PR CI:macOS/Windows/Ubuntu unit、完整 Ubuntu Electron E2E、Windows 與 Linux install smoke 全部通過。首次 Windows 失敗曾阻擋 E2E;已重現並修正檔案系統/Date.now 時鐘差異,不以重跑掩蓋。合併後 main CI(40171701987)的三平台 unit 與 Ubuntu Electron E2E 也已全部通過;不取代人工跨平台驗收。
Activity