修复 #454:解压不再改写目标目录属性
v5.0.5 的 Linux/macOS tar 资产包含 ./ 目录条目(uid/gid 1001:1001、mode 0755)。Linux GNU tar 的 root 解压与保留权限解压会把归档属性应用到解压目标,可能影响同一目录中的其他服务。本轮用独占测试目录独立复现了旧布局的属主/权限改写。
v5.0.6 的三平台资产均改为独立的版本化顶层目录,各保留九个发行文件:
hermes-feishu-card-v5.0.6-linux/hermes-feishu-card-v5.0.6-macos/hermes-feishu-card-v5.0.6-windows/
tar 统一 uid/gid 为 0,目录与 shell 安装器为 0755,其余文件为 0644;ZIP 使用对应 Unix 类型与 mode,不表示 uid/gid。上传前校验实际资产的完整清单、路径、类型、文件字节、元数据与 checksums,拒绝根条目、越界路径、链接和重复文件。
解压后先进入对应平台子目录,再运行安装器。 Linux 示例:cd hermes-feishu-card-v5.0.6-linux && ./install.sh --version v5.0.6。Windows 进入 hermes-feishu-card-v5.0.6-windows 后运行 ./install.ps1。详见安装说明。既有 tag 和旧资产均保留历史。
验收
- PR #455 完整 CI、精确主线 CI、tag 发布门禁及对应 CodeQL 通过。Python 3.9–3.14、macOS、Windows、SDK、Docker、PowerShell 和上游兼容检查保留。
- Linux GNU tar root/非 root、默认/
-p,以及 macOS 实际解压均验证 0700/1777 目标的 inode、uid/gid、mode 与哨兵保持不变。旧布局负向对照有效;所有 root 测试仅在 CI 独占目录内执行。 - 精确公开 tag 的官方安装、重复安装和还原通过。真实 Hermes PM 选中的普通 wheel 141 个资源与 tag 源码逐字一致;13 个源码目标和 HFC 自有配置 preimage 精确还原。未把整个初始 setup/config 或未启动的服务记作恢复/ready 通过。
- 四个实际发行资产、checksums、完整清单及实际解压已验收。四个资产已通过无登录匿名下载复核,API digest、checksums 与已验收草稿字节一致,公开文件的实际解压也通过。
本版只修改打包、发布流程和版本文档;运行时代码除版本号外与 v5.0.5 一致。报告者宿主服务恢复尚未代验,也未新增 Gateway/model、真实飞书 API 或客户端视觉/点击验收。
感谢 leavrcn 提供 #454 的问题报告与证据。该署名对应问题证据;代码作者保留在 Git 历史中,既有贡献者记录继续保留。