跨平台凭据与计划继续执行
日期:2026-10-05;应用版本 0.2.1。Windows 仓库 cwd:
D:/workspace/projs/github/owent/llm-usage。开工工作树无修改;基于
0c5d63c19151e7d6f72a33c513f7ac9ddc0e2ad5 的未提交工作树验证,未提交/推送/发布。
设计设计依据:接收器认证规范、
平台检查规范、计划。
本页保留该轮历史结果;2026-10-06 Windows 写后缺失观察、有界回查修正、
跨进程处理确认后的 200 轮并行与旧撤销异常边界见
来源规则升级。后续最终安装包与接收器复验见
M8 容器样本,本页旧包摘要不作为最新制品。
实现与核验结果
Linux 原实现一律拒绝系统凭据。现使用 secret-service 5.2.0 的 DH 会话、
当前用户默认集合与全集合查找;锁定、重复项和唯一 session 临时项都拒绝,
默认别名指向 session 同样拒绝。别名可修改的依据见
Secret Service Aliases。
不创建集合、不解锁;后台读取无提示,操作限定 3 秒。同步接口在独立线程运行
限时异步任务,嵌套 Tauri runtime 不引发 panic。错误只返回固定代码。
写入已保存但回复失败、或保存后回查失败时,仅回收与本次写入完全相同的项,
外部替换保留。
macOS 使用 security-framework 3.7.0、security-framework-sys 2.17.0,
所有查询/写入/删除均指定非同步 Keychain 和认证 UI Fail。库遗漏的 Apple Fail
常量以单个原生符号声明补齐;aarch64-apple-darwin 类型检查通过,未原生运行。
两平台随机源为 getrandom 0.3.4;Windows 原生实现保留。
核验了库正式发布元数据和下载源码,而后实施;来源: Secret Service 规范、 secret-service 5.2.0、 Keychain PasswordOptions、 Apple UI Fail。 这些来源不证明真实 Agent exporter 已验收。
Rust CI 从 Linux 单作业扩为 Windows/macOS/Linux 三平台矩阵,保留 fail-fast=false。
Linux 原生验证另用独立 D-Bus、一次性加密 keyring 和随机测试密码;密码/绑定仅经
stdin,服务探测先检查名称所有者,避免触发第二守护进程。真实 Linux 制品报告发现
Debian control.tar.gz/data.tar.gz 被列为发布制品;现报告及上传仅取安装包、
macOS .app.tar.gz 与校验和报告,新增回归及真实打包目录复核通过。
环境与结果
Windows:Windows 11 x64、Node 24.21.0、Rust 1.98.0;Edge/WebView2。 WSL:Debian 13.7 x86_64、内核 6.18.40.1、Node 24.21.0、Rust 1.98.1, WebKitGTK 2.54.0、gnome-keyring 48.0。按用户授权用 sudo apt 安装缺失系统依赖, 用 rustup 补齐 Clippy/rustfmt;Windows/WSL 的 npm、target 和活库不共用。 Linux 独立副本包含当前未提交源码;revision/差异清单保存在根 build/platform-auth/。
| 命令 / 检查 | 退出码 / 实际结果 | 范围 |
|---|---|---|
Windows npm run verify |
0;Rust 904(核心 808、应用 96),前端 21、脚本 4;类型无错误/告警 | Markdown、资源、fmt、Clippy、SQLite/格式/集成、前端构建;应用默认忽略 8 项环境测试 |
Windows npm run build:desktop |
0;release/NSIS 产出 | 未安装 |
Windows npm run test:headless |
0;11 项、3 事件/75 token | 隔离合成源,真实可执行文件/SQLite |
Windows npm run test:desktop -- --runs 1 |
0;17 项、3 个首屏样本,P95 850.1 ms | 真实 WebView2/IPC/托盘/暂停/分钟任务;不代替完整资源或辅助技术实测 |
Windows npm run test:receiver |
0;8 项,自有凭据残留 0 | 合成 exporter 安装清单,真实 IPC/HTTP/凭据库 |
| Windows 显式原生凭据测试 | 0;跨进程读取/撤销、真实 HTTP 撤销/另一来源继续,各 1 项 | 仅随机自有凭据;不写真实 IDE 配置 |
Windows npm run test:browser |
0 | Edge 模拟 IPC,十语言/主题/选区/遥测批量配置 |
Debian cargo clippy --workspace --all-targets --locked -- -D warnings |
0 | 最终平台实现与测试目标 |
Debian cargo test --locked,最终应用专项复测 |
0;核心 808、应用 95;应用默认忽略 9 项 | 核心完整格式/SQLite/适配器,Linux 超时/嵌套 runtime;显式原生项另列 |
Debian npm run test:credentials:linux |
0;6 项(五个原生测试,缺服务项也用于临时默认集合) | 缺服务且无监听、跨进程持久读取/撤销、真实 HTTP/来源隔离、重复及临时集合/默认别名拒绝、锁定;一次性 keyring 与守护进程已回收 |
Debian npm run build:desktop -- --bundles deb,appimage |
0;release、deb、AppImage 均产出 | 标准系统依赖,未使用旧 sysroot/WebKit 路径补丁;未安装 |
Debian ELF / 提取 AppImage test:headless |
均 0;各 11 项、3 事件/75 token | AppImage 原样提取后执行 AppRun;不代表 FUSE 挂载、WSLg 或原生 GUI 验收 |
macOS 模块交叉 cargo check / cargo clippy(aarch64-apple-darwin、--locked) |
均 0;Clippy -D warnings |
Windows 临时最小检查工程直接引用实际模块;类型检查,无原生链接/运行 |
| 制品报告脚本回归及真实 Linux 目录 | 0;4 项;实际报告仅 deb/AppImage 两项 | Debian 暂存文件不作为发行包 |
| 最终文档与差异 | 0;182 Markdown、9 份受影响 Markdown 的 97 个本地链接/章节链接、git diff --check |
临时产物全部位于根 build/ |
Windows 完整命令输出及 Linux 分项日志在 build/platform-auth/;Linux 临时检查库
位于独立副本的根 build/。终端初始 PowerShell 启动及子进程受到限制,改用允许的 cmd/执行
方式重试,不计为产品失败。
Windows 显式原生测试的一次并行复测在第二次建立凭据时返回
credential_store_unavailable;单项与 --test-threads=1 复测均退出 0。
失败日志保留为 windows-native-final.log。实际模块的临时诊断副本仅扩充读/写错误码,
两线程 40 次建立/撤销未复现错误,自有项残留 0。沿失败日志时间戳确定唯一合成
测试目录,凭据命名空间内核对完整绑定,仅该目录的一项自有凭据仍存在,已精确回收;
不回收其他应用/测试目录。结果在 windows-vault-concurrency.log。
这证明失败路径曾留下凭据,原因尚未确认;系统存储失败后的回收可靠性继续待查,
不据诊断未复现报成已修复。
Debian 重跑曾出现两项既有测试环境准备失败:source_intervals 按 PID 重开已禁用的
来源库,process_guard 按 PID 重开含 active 主键的库。只读核对旧合成库分别
发现五个禁用来源与五个已存在运行;现两项均每次独立建目录,拒绝复用并在
成功后关闭/回收。保留该原始状态记录于 pid-fixture-evidence.log,修复后应用 95 项通过。
制品
| 制品 | 字节 | SHA-256 |
|---|---|---|
| Windows 主程序 | 9,901,568 | 09de6cfa17d37e9195e910db3647ea58cab2417fe059f352b4d9d62835eae1a8 |
| Windows NSIS | 3,913,043 | 993e255bff157f8e980180503bde5053378f3411f37333674ea587ba226919d8 |
| Linux deb | 5,440,738 | 3895d451211bf69beb87e570168431dc460831e1d157c701199a4891cd8b1a9f |
| Linux AppImage | 111,122,936 | 9caebe7f4507d78190a504f0ce5a19645e006c99135a87d48ebb38fbea3ccea3 |
Windows 包在 desktop/src-tauri/target/release/bundle/nsis/;Linux 包已复制到 根 build/platform-auth/artifacts/。deb 的 Depends 与架构已查;未做安装/升级/卸载。 当前 Windows 主程序/NSIS 另复制到该目录的 windows/,报告只覆盖本轮版本, 不将原 bundle/ 中的旧版本标为本轮 revision;本轮报告均记录基准 SHA 与 uncommitted。
真实样本与剩余条件
审阅既有 local_availability 后,分别在 Windows 与 Debian 只读执行真实注册表
discover/detect,最多探测每根前三个文件,仅输出数量和版本元数据。
Windows Gemini/Qwen、Junie 及其余缺样本来源未发现;Zed 一个库的 threads 为 0 行,
不能据此确认用量格式。Debian 当前默认发现无可用来源,未启动 Agent/模型请求制造数据。
已有 Codex/pi/omp/Kilo/ZCode/Kimi/Copilot 等发现结果不重复当作新来源验收。
本记录时点未触发远端 CI,也未执行安装验收。后续 Windows 安装往返、Debian Podman GTK/WebKit/FUSE/Orca 和新增来源实际样本结果见 最新验收; macOS 原生 Keychain/HTTP 两项显式测试结果见 本批 CI。 macOS 桌面和特定硬件已取消本轮要求。其余来源版本、遥测、DPI/辅助技术、 宿主注销/登录、出站审计,以及后置 F1/明细 Merge/用量与费用提醒条件统一见 Plan.md。