Files
ElyOffice/tasks/BUGS.md
T

13 KiB
Raw Blame History

缺陷清单进度

docs/BugList.md 的 93 条,按清单次序逐条处理:先核对当前代码,已由先前改动修好的写明出处,其余修好、审查、提交、推送后勾上。

0.1.2 先做(用户 2026-10-09 定:先修致命与高,加自动更新,发布 0.1.2;其余随后按清单次序)

次序:S-03、P-01、X-01、D-01、D-02、P-02、P-03、P-04、M-01、X-02、X-03、K-01(Linux、Windows,本机不能运行)、UPD-1、REL-1、REL-2。K-01 不进 0.1.2:只影响 Linux 与 Windows 的 worker,本机不能运行验证,0.1.2 只发 macOS;留在下面的清单里,未勾。T-05 已改一半(审查查出缩放后尺寸不重测),暂放,补丁存在草稿区。

  • UPD-1 自动更新:应用内检查新版本、下载、校验,经用户同意后替换并重启;发布时生成更新清单,不再要点 GitHub 链接 — 启动检查默认关、菜单“检查更新…”、退出后再装、失败记录先于重开、经 Gitea API 找清单;R1–R4 授权、提交点、保存询问、版本绑定、横幅位置、取消退出、记录先后;R5 两处(启动检查失败记日志、以替身 open 断言先后)已修并以变异验证,五轮上限后由 UPD-2 复核通过

  • T-01 内核的图块与命中按像素网格,Ely 的光标、选区、表头按文档 twips,越远越错位 — R2.16 已修(图块 twips 与打印 twips 互换)

  • T-02 单元格光标露出边缘即把视图滚到中央,点击与拖选时视图跳动 — R1 拖选中仍滚、超宽格跳回起点;R2 PASS

  • T-03 视口比工作表宽时网格先居中再左移一次 — 载入回复带文档种类,表格不居中;R1 测试漏几何到达前的首帧;R2 PASS

  • T-04 从不调用 setClientZoom,内核命中与几何按默认缩放算 — R2.16 已修(worker 每次报可见区前 setClientZoom)

  • T-05 文档尺寸按内核像素取整,表尾被裁 — 内核尺寸按其测量时的比例换到当前比例(加载即设比例、缩放即改比例并重测、迟到的测量也换算);R1–R4 缩放后未重测、表尾锚点被截、连续缩放迟到、首次测量无比例与文件超行;R5 PASS

  • T-06 滚轮向下被内核平铺区卡住 — 表格的可滚范围先行两屏、止于表尾;R1 PASS

  • T-07 表头点选、行高列宽拖动是“按编号的命令”,而每次点击与拖选都推进修订,紧接着的表头操作被当作过期拒绝 — 行列号不再算作按编号的命令;R1 PASS

  • T-08 自动筛选的列菜单对光标所在的表而不是按钮所在的表筛选、排序 — 先把光标移到按钮所在格再排序或筛选;R1 PASS

  • T-09 导入文本文件时整文件的 UTF-8 校验在界面线程跑 — 编码与分隔符的猜测随读文件在后台;R1 PASS

  • T-10 CSV 导入对话框开着时打开任何别的对话框,待导入的文件静默消失 — 被挤开的导入回到队头,已读完的保留列类型;R2 PASS

  • T-11 对话框比其标签活得久:导出、定义名称、重命名不可见却“开着”,挡住导入;名称表的“转到”激活已关闭的标签 — 关标签时一并关掉其对话框与选项列表;R1 PASS

  • T-12 打印区域是整列或整行时页面设置无法应用 — 打印区域可为整列、整行(每端至多一个 $);R2 PASS

  • T-13 打印失败报成“导出失败”(非 macOS 必现) — print_later 自己以“打印失败”报错,五个应用同;R1 PASS

  • T-14 导入扫描把整个文件的每个字段都建成字符串 — split 逐行给出,扫描只留预览行与列标记;R1 PASS

  • T-15 非 UTF-8 文本的默认编码跟系统区域而不是界面语言 — 默认编码按应用所显示的语言;R1 PASS

  • S-01 切换幻灯片后主画布不重画 — 已由 be31260(R2.4)修好并有单测,此处补勾

  • S-02 deck.rs 超过 500 行 — 随 S-03 把 Extra 移到 extra.rs,deck.rs 463 行

  • S-03 ElyShow 的缩放一两帧后弹回“适合幻灯片”,缩放功能不可用 — 只在标签首次观察时适合一次;R1 PASS

  • S-04 选屏对话框被别的对话框顶掉后,show_starting 卡住、放映副本泄漏 — 有对话框开着时不再顶掉它,提示先完成;选屏对话框被拒即丢副本;R2 PASS

  • S-05 一条批注的时间恰为午夜或只有日期,整个批注栏不显示 — 读不出时间的批注只占一行汇总,其余照常显示(jiff 本可读只有日期的时间);R2 PASS

  • S-06 导出或打印的“从–到”填 0 时导出全部幻灯片 — 键入的页码夹到 1..=末页;R1 PASS

  • S-07 母版视图下演示检查的行按幻灯片序号跳转 — 母版视图下点行提示先关母版,不跳;R1 PASS

  • S-08 刚编辑过幻灯片就进备注栏键入,备注可能丢 — 发出的备注待读回确认,键入中读回只移基线不动草稿;R2 PASS

  • S-09 改尺寸失败后 size_asked 一直留着 — 所要尺寸带输入序号,发送前先记、未入队即清,命令落地后的读回即清;R2 PASS

  • S-10 开始放映的两处拒绝无提示(规则 2) — 三处拒绝都提示(另含读回时已换标签);R2 PASS

  • P-01 文件系统的 PermissionDenied 被拼成不存在的文案键,应用崩溃 — worker 的拒绝改为自有错误类型 Refused;R1 测试不跨平台、不看提示;组件库 f834f55 加 Toaster::shown;R2 PASS

  • P-02 每次编辑落地清掉全部图块与缩略图,页面空白、刚画的墨迹消失 — 图块随 R2.6;缩略图在编辑后留到重画;R1、R2 测试未证实际绘制;R3 PASS

  • P-03 “编辑文字和图片”先命中图片对象再命中文字;一点抖动就移动了背景图 — 包住文字块的对象让位于文字,移动须过 3 个窗口像素;R1 漏掉同点的小图;R2 PASS

  • P-04 TEXT_BLOCKS 对每个文字块重跑一遍整页内容过滤,编辑工具长时间无反应 — 整页一遍干跑判定全部文字块(1000 块 1.5 s→0.1 s);R1 转向文字后错位、共用原点只计一块;R2 PASS

  • P-05 连续快画或快点被拒:“文档在此间已改动,未执行” — 按坐标的编辑排队、跑在出队时的状态上,只在页面变动时拒绝;R2 PASS

  • P-06 默认字体“原字体”在 Type 1/Type 3 字体的文件上失败,只给引擎原话 — 原字体写不了新字(非 CID 编码、页面内直接字体、不在本页)时面板提示换字体;R2 PASS

  • P-07 含连字的文字块永远不可编辑 — 字形按 stext 的写法展开(多字字形、连字码点),整页、单块与删除同一判法;R3 PASS

  • P-08 页面读取失败后每帧重试、每帧弹提示 — 失败的读取按页或种类记下,编辑后重读;签名读取以保存计数判过期

  • P-09 识别文字的写入被拒后仍弹“成功” — on_same 回报是否执行;被拒时只有警告

  • P-10 预览回复被丢弃时“应用”静默无事 — 预览回复照常交回,版本已变即提示,不显示过期预览

  • P-11 撤销或重做在 MuPDF 侧失败后 worker 的步数不再同步 — 撤销失败后重读历史标记

  • P-12 unhook 中途抛出时泄漏保留的对象 — 保留的链接随保留随计数

  • P-13 优化导出的“之前”大小取磁盘文件而非当前文档 — 有未保存编辑时不与磁盘文件比大小

  • P-14 文字块含控制字符时 JSON 回复不可解析 — 共用 JSON 写入:控制字符转义,非法字节与孤立代理为 U+FFFD

  • D-01 导出或打印对话框开着时关闭其标签即崩溃 — Docs 实现 tab_closed,关标签即撤下其导出对话框;R1 PASS

  • D-02 邮件合并以当前标签为模板,预览后生成的每份都是同一条记录 — 选数据时记下模板标签,预览副本不作模板;R1 测试绕过选 CSV 入口;R2 PASS

  • D-03 界面线程同步持 worker 锁读内核(样式、字体、书签、公式、分节名) — 后台读取,回来核对标签、视图与对话框请求号

  • D-04 一条批注的时间读不出,全部批注与修订都不显示 — 逐条解析,读不出的批注写明作者与原因(AX 可读、可滚动),修订照留

  • D-05 邮件合并某条记录失败时内核文档泄漏

  • D-06 导航栏大纲点击按当前列表取下标,后台重读后可能越界

  • D-07 导航栏隐藏时仍随每次光标移动重读大纲与书签

  • D-08 Linux、Windows 上“打印…”可用,导出 PDF 后才报“此平台未构建”

  • M-01 键入期间外部以相同内容重写文件,丢掉上次停顿之后键入的全部文字 — 先等页面送出未送的键;同文只接过文件与字节、标签为已保存;磁盘回到上次保存的文字时保留编辑并恢复自动保存;R1–R4 字节、自动保存、在途写入、已保存基线;R5 PASS

  • M-02 refresh 归零版本计数却不换代,在途的一键让标签一直“未落定”

  • M-03 干净标签接过磁盘文字后关闭仍问“是否保存”

  • M-04 第二次打印或导出 PDF 悄悄取消第一次,没有文件也没有错误

  • M-05 点页面里的链接什么也不发生

  • M-06 on_app_quit 无条件删恢复点与崩溃锁,AppKit 直接终止时丢未保存内容

  • M-07 崩溃恢复的未命名副本按“第一个显示的未命名标签”配对,内容可能落错标签

  • M-08 页面重载后悬着的渲染回调永不完成,导出既不成功也不报错

  • M-09 导出的保存面板出错被当作取消

  • M-10 关闭查找框只清当前标签的高亮

  • M-11 页面把搜索词写进应用日志

  • M-12 浏览器创建完成前 WebView 已释放,浏览器泄漏

  • M-13 编辑器构建失败时页面空白且不上报

  • M-14 render_pdf 在界面线程内嵌图片并写文件

  • G-01 打开“文件历史”或“逐行追溯”后,中间区不再响应任何别的选择

  • G-02 进行中操作读取失败被吞掉;git am 冲突无提示条无错误

  • G-03 新建的空仓库在“仓库”页显示两段 Git 致命错误(引用日志、LFS)

  • G-04 停止取回/拉取/推送失败的提示写成“克隆没有停下”

  • G-05 合并结果保存失败报成“Git 失败”,tree.error.save 是死文案

  • G-06 首次提交后紧接着取消暂存,按过期的“已有提交”判定跑成 git rm --cached

  • G-07 任一引用没有创建日期,整个分支页读不出

  • G-08 清理预览后文件被外部删除,对话框只给裸 OS 错误

  • G-09 后台读取回来的对话框覆盖用户同时打开的对话框

  • G-10 选中的分支、标签、位置是窗口级的,跨仓库标签串台

  • G-11 已选边的冲突块再选另一边,提示“结果已手改”

  • G-12 符号链接父目录下,当前打开的工作树被当成别的工作树而可“移除”

  • G-13 非 macOS 平台的死入口

  • G-14 repo.rs 的孤立文档注释

  • K-01 非 macOS 的 worker 不运行 VCL 主循环,内核的回调与异步输入永远不送达

  • K-02 图块的代际在画完之后才取,画到一半的作废被盖掉

  • K-03 rect_of 宽容解析把读不出的载荷悄悄吞掉

  • K-04 Sheets.current 用 as u64 转有符号的 part

  • X-01 设置窗口在前时 Cmd+Q 直接退出,跳过未保存询问并抹掉恢复点 — 退出一律经主窗口宿主的流程(route_quit),延后到动作结束、先把宿主窗口提到前面;R1 主窗口 Cmd+Q 不问;R2 询问被设置窗口挡住;R3 PASS

  • X-02 共用 settings.json 读不出时 Doc、Table、Show 根本起不来 — 作者名取启动时读入的设置;R1 重启失败丢作者、脚本退出码、client.rs 超行;R2 作者更新的先后与停机期间的更新;R3 PASS

  • X-03 第二个实例启动即清掉运行中实例的工作目录与恢复点 — 每个应用一个实例锁,第二份被拒并报出持锁进程(Unix fcntl F_GETLK);R1–R3 进程号竞争、Windows 断言;R4 PASS

  • X-04 属性栏字号菜单的 expect("sizes are numbers") 是脆弱点,但当前不可达

  • X-05 恢复点写不成时每 10 秒弹一次提示

  • X-06 session.lock 空或损坏即永久关闭恢复功能

  • X-07 加密文档的恢复点每次写入都解密全部已有点,且持 worker 锁

  • X-08 另存为在等待关闭或退出时被拒绝,关闭链悬空,ElyMark 的会话清单冻结

  • X-09 保存期间落地的编辑可能让自动保存停摆

  • X-10 别的标签的文件所在卷消失时,本标签的另存为失败并被标为保存失败

  • X-11 worker 的 stderr 中继遇到第一行非 UTF-8 即永久停止

  • X-12 恢复路径在界面线程做文件 I/O

  • X-13 非 macOS 构建里仍提供只会报“未构建”的入口

  • X-14 agents.md 引用的 docs/engineering-risks.md 不存在

0.1.2 发布

  • UPD-2 复核 UPD-1 第五轮的两处修复:启动检查(含 Gitea 查询)失败写日志;失败记录先于重开,以替身 open 断言 — R1 PASS
  • REL-1 dmg 里有指向“应用程序”的快捷方式,可直接拖入安装(用户 2026-10-09 报) — release.sh 在 dmg 里放“应用程序”替身,随 UPD-1 审查
  • REL-2 修完上列各条后打包、发布 0.1.2,官网指向新发布页 — v0.1.2 发在 git.zacharyzhang.com(六个 dmg、两个源码包、六份更新清单;release-macos.sh 通过;经 API 取清单与 dmg 散列核对一致),官网显示 0.1.2