用途与实际影响
这项功能怎样使用
为什么需要它
“解密了”没有说明内容去了哪里。临时提取文件可能在强杀后留下,复制到剪贴板的内容也不是原文缓冲区的一部分。把这些位置分清,才能决定本次查看需要哪条路线、结束后还剩什么。
举个实际例子
“找出清单里写到打印机的那一段;然后只取出对应 PDF 给我打开。”先做文本内容搜索,PDF 则通过明确提取交给阅读器,而不是把 PDF 二进制硬显示成乱码。
最后我会得到什么
在本机看到真实文本或明确的文件列表;选择提取后得到 decrypted/ 内本次文件及清理说明。无法作为文本读取的成员会保留类型边界,不用替换字符假装读懂。
正常时
支持的文本可显示和搜索,筛选提取只交付匹配文件;结束时说明相应缓冲区和目录处理结果。
发现问题时
冲突、部分导出、格式不支持、清理失败或进程中断时,分别列出已存在、已写入、冲突与保留范围;不覆盖同名文件,不用退出码代替内容完整性。
入口不可用或证据不足时
密码或密钥文件不匹配时不显示内容;来源不存在或格式损坏时不生成空白成功页。
从哪里开始
在已接通本机 vault-workflow 的 AI 对话中指定库与要看的文字;使用 LocalView,本人仅在本地窗口解锁。要给外部程序用的文件再明确提取。
需要准备什么
- 要查看的库和文字线索
- 若需提取文件,指定成员与落盘位置
- 本人在本地窗口输入的解锁凭据
从开始到拿到结果
- 1
只打开所需范围
本人本地解锁后按名称或内容找目标,不一次性导出整库。
- 2
选择查看或提取
支持的文本在本地界面阅读;外部程序必需的文件才按明确名称写到指定目录。
- 3
结束时核对残留
区分内存、剪贴板与已提取文件;中断时报告实际残留,不能称自动清完。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
查看、搜索与选择性提取已实现关键规则与设计选择
内存查看不等于所有系统副本都无法恢复。
CLI(命令行工具) 文本显示受类型与 64 KiB 限制;外部附件应明确提取。
复制后的 20 秒清理需要当前进程存活;本地 GUI 的 15 秒规则是另一条实现。
本模块用到的名词
- no-disk(不主动落盘查看)
- 程序不主动把内容提取成原文文件;不保证解释器、系统或其他进程绝无副本。
- selective extraction(选择性提取)
- 只把名称筛选命中的成员写到明确的提取目录,随后由外部程序使用。
- best effort(尽力处理)
- 锁页、清零和某些退出清理只能在程序仍能执行相应步骤时完成,不是断电保证。
专业定义
文字先在本地内存里查看;图片、PDF 和附件按需取出,并说明清理条件。
解决什么
防止为了有限阅读解压无关文件,以及把内存、剪贴板和磁盘清理混为一个绝对保证。
当前怎样实现
- decrypt_mode 的普通交互可选内存查看或磁盘提取;选择[2]后才有名称筛选。--no-disk 强制内存查看,--extract 则跳过筛选并全部提取本次打开层。_view_in_memory 按支持的文本扩展名和64 KiB限制显示。CLI(命令行工具)把明文打印到stdout,只供本人不被模型捕获的本地终端阅读。
- 普通关键字筛文件名,/前缀进入文本内容搜索;:copy 使用首个名称匹配的可读文本,复制对象与多个匹配的边界要明确。
- CLI(命令行工具) 剪贴板清除由进程内守护线程等待 CLIPBOARD_CLEAR_SECONDS=20 后执行,进程提前退出就不能保证该安排完成。
- 提取按明确选择逐文件临时写入、校验、无覆盖提交。相同现有内容计already_count,不同或并发新建同名目标计conflict_count;冲突或不支持成员返回partial。归档成员数与声明解压总量受独立预算约束。
- 主明文缓冲区尽力 VirtualLock/mlock,结束时清零可变缓冲区并清屏;Python、tar 和界面仍可能产生其他副本。Ctrl+X 只在指定等待界面起作用。
- 交互提取结束可清理本次输出;强杀或断电可能留下明文。普通启动及诊断不再顺带清理旧decrypted/,旧残留需独立clean-plaintext --confirm。中途失败仍记录是否已经写过明文字节,不能用完成文件数0冒称未落盘。
- 清理前检查精确目标树,硬链接、符号链接、重解析点等不按普通自有暂存文件递归删除;遇到不适合清理的对象应报告,不扩大到其他目录。
执行流程
- 1
本人在本地提供所需凭据,实际打开相应内容。
- 2
先用名称或内容搜索缩小要看的文本。
- 3
只阅读、明确复制,或按名称提取需要外部软件的文件。
- 4
按内存、剪贴板和磁盘三种位置分别处理结束。
- 5
意外中断时确认具体残留,不把下次清理能力冒充这次已经清理。
边界
- CLI(命令行工具)查看会输出明文,不应由AI捕获;LocalView/LocalEdit的本地GUI才只给AI返回状态。不落盘与不进入模型是两条不同边界。
- SSD 的覆写删除不保证物理介质上每个旧副本都被抹除。
- 没有实测强杀、断电或全部桌面程序的清理效果,就不能写成已经通过。
失败与恢复
- 图片、PDF、二进制或超出显示限制的文本
- 说明不能在该文本入口完整显示,改由本人明确选择是否提取,不把部分文本当完整附件。
- 进程提前结束或断电
- 剪贴板计时和退出回调可能来不及执行;明文残留先定位,再用明确的清理入口处理。诊断不会自动删除,不能声称断电当场已清除。
- 暂存清理发现链接或删除失败
- 停止不适合的删除并报告具体范围,不顺着链接清别处文件。
真实入口
E:\Projects\Tools\vault-tool\vault_tool.py_view_in_memory、_extract_to_folder、锁页、剪贴板与清理
E:\Projects\Tools\vault-tool\test_vault_tool.py选择性提取、大小提示、清理与隔离剪贴板验证
E:\.agents\skills\vault-workflow\references\local-ui-security.md与CLI(命令行工具)区分的本地GUI剪贴板和内存说明
如何验证
- 虚构样例已验证内存查看不创建 decrypted/,只筛选 ledger(追加式账本) 时只提取对应 CSV,随后清理。
- 测试替身只证明调用合同,不证明真实系统剪贴板计时已经完成。
- 本轮不对用户真实原文、系统剪贴板内容、断电或强杀做验收。
与其他模块的关系
日常内容使用由本模块负责;GUI 文本编辑和它的结果状态在 AI 与本地入口模块,密码与依赖问题在密码与格式模块。
