第二十二節 資料與備份

[!ref] 詳解見使用者手冊「升級、備份與同步」節。

22.1 備份內容

說明
工作區列表 名稱、路徑、歸檔狀態
工作階段歷史 全量訊息流,含工具呼叫、計畫、待辦、簽核
助手人設 內置 + 自定義
技能 全域 + 工作區 + 外掛提供
工具政策 三態權限 + 白名單
外部服務 憑證以加密形式存儲
通道綁定 IM 對端 ↔ 工作區
設置項 一般 + 工作區

22.2 備份與復原

操作 步驟
備份 關閉應用 → 設置 → 資料 → 資料目錄 → 整目錄打包
復原 關閉應用 → 取代原資料目錄 → 啟動應用
跨設備遷移 備份後還原到新設備同名目錄
同步(實驗性) 設置 → 資料 → 同步 啟用後多設備共享

22.3 完整清理

關閉應用 → 刪除應用本體 → 刪除資料目錄

資料目錄包含登入憑證、工作階段歷史、外部服務憑證;刪除後不可復原

22.4 SSH 遠端工作區協議

欄位 類型 預設 說明
協議 enum zworkspace zworkspace / ssh
主機 string user@host[:port]
認證 enum password password / private_key / private_key_with_passphrase
私鑰路徑 string 文件選擇器挑選;本機解析
遠端根目錄 string ~ 支持 ~ 自動展開為遠端家目錄。拒絕 /.. 逃逸與 ~/..(含 ~//../)一層穿透均已封堵;展開並解析真實路徑後再按同一口徑二次校驗
憑證加密 SM4-GCM 國密落盤 + 本機綁定;每次儲存使用隨機鹽
憑證保留 bool 記住 「記住密碼 / 通行碼」複選框。未勾選則為臨時憑證:連線期內保留(保重連),應用啟動與結束時清除。工作區粒度,落盤為 ssh_secrets.yamlremember 標記;存量無此欄位視同已記住
主機指紋 首連確認 首次連線展示 SHA256 指紋,由你核對確認後才釘住 known_hosts,確認前不發送密碼;已知主機換鑰硬拒(疑似中間人)

SSH 工作區與本機工作區的差異:

能力 本機 SSH
fs.* 文件操作 本機 走 SFTP / 遠端 shell
fs.grep Go RE2 遠端系統 grep(提速)
fs.exec 同步 本機 遠端 shell
fs.exec.start 後台長駐 啟用(工作階段隨 Interpreter 生命週期結束) 啟用(工作階段狀態存遠端 <root>/.avlcode/sessions/,跨斷線重連與應用重新啟動存活;setsid 自成程序組,kill 連子孫一併收;記錄檔為完整文件、無本機版 256 MiB 環形丟尾;不做 venv 感知
文件變更面板 git 本機 git 遠端 git(無 git 時隱藏面板)
Skills / Plugins / Hooks 本機 .avlcode/ 遠端 .avlcode/
文件威脅掃描 本機位元組 SFTP 取位元組後掃描
sys.info 報告身份 本機 遠端真實身份
「關閉並清除資料」選單項 顯示 不顯示 + 後端拒絕(避免誤刪遠端文件)
「移除工作區」 刪本機記錄與憑證 刪本機記錄與憑證(不碰遠端文件)
跨 OS 用戶端相容 遠端命令不注入本機環境變數(用遠端登入 shell 自帶環境);遠端路徑一律按 POSIX 文法構造(Windows ↔ Linux 已徹底打通)

22.5 工作階段附加目錄

欄位 類型 預設 說明
入口 輸入框「+」選單:附加目錄(只讀) / 附加目錄(讀寫)
權限 enum ro(讀 / 列舉 / 搜尋) / rw(額外允許寫 / 刪 / 建立)
作用域 工作階段 僅當前工作階段;其它工作階段不受影響
持久化 工作階段內 隨工作階段儲存;重新啟動後台自動重新生效
顯示 輸入框上方「附加路徑」條 可隨時移除
路徑標註 絕對路徑 搜尋 / 列舉結果標絕對路徑,來源一目了然
工作階段身份注入 系統在呼叫鏈注入 _session_id AI 不可偽造身份冒用別工作階段的附加權限

22.6 專案指令(AGENTS.md)

工作區根目錄放 AGENT.md / AGENTS.md / CLAUDE.md(按優先級取一份),自動作為系統提示裡的「# 專案指令」塊。

欄位 行為
檔名優先級 AGENT.md > AGENTS.md > CLAUDE.md(取第一個存在的)
注入位置 系統提示詞獨立「# 專案指令」塊
重新讀取 每輪重新讀,改了立即生效
子目錄注入 AI 讀寫某子目錄下文件時,自動把路徑上各級 AGENT.md 一並注入(每工作階段每子目錄一次,去重不刷屏)
截斷政策 UTF-8 字元邊界安全截斷 + 截斷標記
軟鏈護欄 EvalSymlinks 真實路徑校驗,不在工作區內則拒絕
內置編輯器 工作階段選單 / 工作區選單「編輯 AGENTS.md」;Cmd/Ctrl+S 儲存、Tab / Shift+Tab 縮排、未儲存保護、空狀態模板

22.7 訊息內鏈接與檔案路徑點擊行為

類別 識別 點擊行為
工作區內檔案路徑 帶常見副檔名(如 src/main.go / README.md 系統檔案管理員定位並選中
外部鏈接 http(s) URL 預設瀏覽器開啟
反引號內聯程式碼裡的路徑 帶副檔名 與普通鏈接同等識別
工具結果 / 回答裡的 文件:行 path:line(:col)? 帶行號的工作區文件 → 「檢視」開啟源碼預覽並滾到該行
程式碼區塊裡單條 .md / .mdx 路徑 文件存在(非同步校驗後升級為可點) 開啟 Markdown 預覽抽屜
普通內聯程式碼 不識別為鏈接
危險協議 http(s) 攔截
純目錄 / 無副檔名片段 a/b/etc/hosts 不可點

點擊後彈出非模態浮動工具條(主動作「檢視 / 開啟」+「複製」),用 Popover API 渲染在頂層,彈窗內點擊同樣不被遮擋。「檢視」對帶行號的源碼走 PreviewSourceFile(target, line) 在程式碼視圖定位到該行,讓 code.search / code.ask 給出的 文件:行 證據可核對。