Files
ElyOffice/tasks/reviews/R1.1-r1.md
T

3.0 KiB
Raw Blame History

FAIL

packaging/macos/bundle.sh:149 — 正式签名分支为 CEF helper 开启 hardened runtime,却未附加 JIT entitlement。Apple Silicon 上,对临时 ElyMark 包按该分支开启 runtime,固定 disable-library-validation 以排除 ad-hoc 签名的 Team ID 差异后,renderer 报 V8 process OOM (Failed to reserve virtual memory for CodeRange),应用报 TS_PROCESS_CRASHED,Markdown 正文加载失败;保持其他选项相同、增加 com.apple.security.cs.allow-jit 后,两次出现 mark: shown as "visual"。修复方向:为执行 V8 的 helper 配置所需 entitlement,并覆盖正式签名选项下的真实页面加载。

scripts/build-git.sh:19 — Git 构建继承主机 SDK 的最低部署版本,打包却统一声明 macOS 14.0。本机 SDK 27.0 下重新运行该脚本,Git 的 LC_BUILD_VERSION 为 minos 27.0;现有 ElyTree.app 内的 Git 与 HTTPS helper 同样为 27.0,而 Info.plist 的 LSMinimumSystemVersion 为 14.0,必需运行程序的部署目标超出 PRD §4.1 支持范围。设置 MACOSX_DEPLOYMENT_TARGET=14.0 后重新构建,Git 的 minos 成为 14.0。修复方向:在构建中固定受支持的部署目标,并校验包内全部可执行文件的最低系统版本。

apps/ely-table/src/text.rs:244 — 每个异步 CSV 打开请求直接替换唯一的导入对话框,前一个请求被静默丢弃。以 ely-table a.csv b.csv 启动,两份输入均记录 table: import asks,AX 树仅出现 Open b.csv;按 Open 后仅产生 b.csv 标签,A1 为 second,a.csv 的导入询问及标签均消失。重新构建 ElyTable 后复跑,异步读回顺序相反,仅 a.csv 被导入,进一步确认胜出的文件取决于读回顺序。访达传入多份 CSV 也进入此路径。修复方向:保留待处理的导入请求,逐个完成或取消后继续处理,加入多文件系统打开的回归验证。

packaging/macos/release.sh:20 — 发行流程只封装应用生成 DMG,缺少 PRD §21.2、§21.3 要求的许可证、资源来源及对应发行资料。实际执行 bundle.sh ely-pdf debug 后,包内只有应用、worker、Info.plist、签名、图标和三份 traineddata,MuPDF/应用许可证与 OCR 来源记录均缺失;现有 ElyTree.app 的 Git 目录也没有 COPYING/LICENSE 或对应源码取得说明,dist 只有六组 app/DMG。修复方向:保留所打包组件及资源的许可证与来源,并随对应版本生成源码、锁定依赖清单、补丁、构建资料和第三方通知,资料缺失时阻断发行。

tests/scripts/icons.sh:34 — 图标测试只检查 PNG 尺寸及两个透明像素,完全不可见的图标仍获通过。在隔离副本中将 ely-doc.png 替换为 512×512 全透明 RGBA 图像后,执行原测试仍退出 0,输出 icons: 8 apps, squircle on macOS, shapeless on Linux and Windows,Linux 包会据此携带空白应用图标。修复方向:验证渲染文件确有对应的可见应用标记,并让清空标记的变异触发测试失败。