R9.3, R9.4: AutoFilter without the header query (GitHub #4); paste on Windows
Patch 0053: under LOK, Calc takes the first row as header instead of asking asynchronously; the worker closed the query and crashed. Patch 0049 includes doc.hxx (gcc on Linux did not build it). arboard read a missing HTML clipboard format as an error on Windows; the clipboard checks the format first, and paste errors show the whole chain. ElyTable tests compare CSV and selection text the platform's way (P3-09).
This commit is contained in:
19 files changed
+118
-20
No files matched your search
+3
-1
@@ -149,7 +149,7 @@ P0 次序:W-01、K-01、L-01、O-01、W-02、L-02、W-03、L-03、W-04、L-04
|
||||
- [ ] P3-06 Windows:删不掉内核仍开着文件的标签工作目录(错误 32),写入失败无从模拟(`tests::more::a_kernel_write_failure_stays_visible`)
|
||||
- [ ] P3-07 Windows:测试以 `kill -9` 杀 worker,Git Bash 的 kill 不认 Windows 进程号,worker 不死(`view::tests::commands::a_dead_worker_reaches_apps_while_idle`)
|
||||
- [ ] P3-08 Windows(AMD):多个 worker 同时启动时内核的 OpenCL 探测卡在驱动的 `clCreateCommandQueue` 里数分钟(`openclwrapper::switchOpenCLDevice`);测试以 `SAL_DISABLE_OPENCL=1` 绕开;是否在 `ely.xcd` 关掉 `UseOpenCL` 待用户定
|
||||
- [ ] P3-09 Windows:内核给的选区文字与文本导出以 CRLF 换行,三个 ElyTable 单测按 LF 比对(`tests::data::sort_filter_duplicates_and_columns_run_from_their_dialogs`、`a_column_button_sorts_its_own_block_not_the_cursors`、`tests::output::exports_write_the_shown_sheet_as_text`);导出该用哪种换行待定
|
||||
- [x] P3-09 Windows:内核给的选区文字与文本导出以 CRLF 换行,三个 ElyTable 单测按 LF 比对(`tests::data::sort_filter_duplicates_and_columns_run_from_their_dialogs`、`a_column_button_sorts_its_own_block_not_the_cursors`、`tests::output::exports_write_the_shown_sheet_as_text`);导出该用哪种换行待定。2026-10-20:导出照内核随系统的换行(同 LibreOffice),测试按平台比对;选区文字的测试按行比对
|
||||
- [ ] P3-10 Windows:`crates/ely-office/tests/restart.rs` 设 `HOME` 想用临时目录,但 Windows 上 `data_dir` 取已知文件夹(不看 `HOME`),测试在真实的 ElyDoc 配置里运行;中途被杀即留下挡路的 `lok-verify.fodt` 文件夹,真实 ElyDoc 的内核核对随之失败(2026-10-14 审查中出现,已手动删去)
|
||||
- [ ] P3-11 ElyShow:正编辑表格单元格时在幻灯片空白处右键,内核(Impress)只结束编辑、不发 `LOK_CALLBACK_CONTEXT_MENU`,再右键一次才有幻灯片菜单;Windows 实测,他端未核;修需内核补丁
|
||||
- [ ] P3-12 Windows:`output::tests::targets_skip_hidden_slides_and_pad_numbers` 以 `/` 拼的路径比对,Windows 的 `join` 用 `\`,单测恒失败(代码无误)
|
||||
@@ -158,4 +158,6 @@ P0 次序:W-01、K-01、L-01、O-01、W-02、L-02、W-03、L-03、W-04、L-04
|
||||
- [ ] P3-15 Windows:全量并行单测中偶有一个 LOK worker 读到的 BuildId 为 `development`(`desktop/source/app/app.cxx` 读不到 bootstrap 的 buildid 时的默认值),握手照规则拒绝;同一时刻别的 worker 读到正确的 8221e31,内核与 worker 都未重建,单独重跑即过(2026-10-14 ElyDoc `review::tests::one_unreadable_time_spares_the_other_notes`,三次重跑皆过)。疑为并发时读 `version.ini` 偶发失败,原因未查
|
||||
- [ ] P3-16 发布:`ci.sh` 在三端各自调用 `packaging/source.sh` 并上传同名的源码包与上游源码包,发布里同名文件出现三份(Gitea 允许重名);上游源码包打的是各机的 `engines/mupdf-src`,含构建留下的文件,三份大小不同(v0.1.5:Linux 108 MB,macOS 161 MB)。v0.1.5 手动删去后到的两份,留 Linux 的一份。应只出一份,且上游包只含源码
|
||||
- [ ] P3-17 ElyTable(Windows,0.1.5 安装版,2026-10-15 录视频时见):A1 选中后按两次 Ctrl+= 缩放到 150%,网格停在半滚动处:第 5 行被表头截去一半,第 1–4 行看不见,Ctrl+Home 也回不到 A1。应保持首行与首列在视图内(同 R2.7 的按键缩放)
|
||||
- [ ] P3-18 Windows:`tests::menu::right_clicks_open_excel_rows_on_cells_and_headers` 第二次右键 A2(先 `cell.goto D9`)等不到菜单;不带 R9.3、R9.4 的源码同样失败,原因未查
|
||||
- [ ] P3-19 Windows:ElyTable 全量单测并行跑(默认线程数或 6)时,`output` 的测试与 worker 一起停在零 CPU、不再前进;逐个跑(`--test-threads=1`)不停,原因未查
|
||||
|
||||
@@ -317,3 +317,8 @@
|
||||
|
||||
- [x] R9.1 #2 ElyShow 点“编辑母版”即反复报“no visibility”(§10):根因在内核:母版视图里 `getParts` 数母版、`getPartName` 给母版名,`getPartInfo` 却按同一序号读幻灯片;母版多于幻灯片时末几个序号无页,信息里没有 `visible`,`Doc::sheets` 照规则报错,每次重读都报;序号在幻灯片数以内时母版带着同号幻灯片的隐藏与尺寸。补丁 `0052-lok-impress-master-view-part-info.patch`:母版视图里按 `getPartName` 的读法取母版页。测试:`client/tests/show.rs` 的 `the_master_view_lists_its_masters`(隐藏一张幻灯片,进母版视图、加两个母版,三个母版都列出且都显示)在未打补丁的内核上报同一句“no visibility”,打上后通过;show 与 slides 的内核测试全过,`lo-patches.sh` 照样从中途接着打。Windows 内核已重建。未验证:macOS(报告所在的平台)与 Linux 的内核尚未重建,发布前在各自的共享引擎上重建
|
||||
- [x] R9.2 合并 PR #1(用户定):选区画在已画好的图块之上,Omarchy 等主题的选区色不透明时盖住所选文字;画选区时不透明度至多 0.3,更低的照用(`view/render.rs`)。合并前在 Windows 上跑其测试 `selection_keeps_document_text_readable_across_themes` 通过,去掉上限即以对比度 1:1 失败;在 GitHub 以合并提交并入(bddf765),本地 main 随之合并
|
||||
- [x] R9.3 #4 ElyTable 开自动筛选即内核崩溃(§9,用户 2026-10-20 定:发 0.1.9 前修好):选中整列(点列标)而该列看不出标题(全是文字或全空)时,Calc 以异步询问框问“首行作标题吗”;worker 在宣告它的回调里当场关掉,询问框的回调在半建成的对话框上加上筛选,下一次画图块即访问违例(Windows 0xc0000005,macOS SIGSEGV)。单格、数据块、首行、有数字列的整列都不问,不崩。补丁 `0053-lok-calc-autofilter-header-without-asking.patch`:LOK 下不问,首行作标题(询问框的默认,同 Excel)。测试:`client/tests/filter.rs` 的 `a_whole_column_without_a_clear_header_filters_from_its_first_row`(整列文字开筛选、画图块、条目不含首行)在未打补丁的内核上开筛选即失败。 审查两轮(与 R9.4 同审):第 1 轮一处注释超过十字,已改;第 2 轮通过。同时查出补丁 0049 用 `GetDoc()` 却未含 `doc.hxx`,Linux 的 gcc 编不过(MSVC 与 clang 经别的头文件带入),补上;三端源码树都为 53 个补丁,macOS 与 Linux 内核随之重建。
|
||||
- [x] R9.4 Windows 上粘贴不可用(用户 2026-10-20 报,提示只写“the clipboard reads”):arboard 3.6.1 在 Windows 读 HTML 时不先查有无该格式,剪贴板只有纯文字(记事本、浏览器地址栏等)时报未知错误而不是“无此内容”,`clipboard::read` 先读 HTML,任何纯文字粘贴都失败;macOS 与 Linux 照报“无此内容”。`ely_platform::clipboard` 在 Windows 先以 `IsClipboardFormatAvailable` 查 “HTML Format”;粘贴失败的提示写出整条原因(`{:#}`,原先只有最外一层)。测试:`clipboard.rs` 的往返测试写纯文字后读回、无 HTML;`view/tests/input.rs` 把外来纯文字粘进文档(都要 `ELY_CLIPBOARD_TEST=1`,会覆盖剪贴板);去掉查验即两者都失败。
|
||||
- [ ] R9.5 发布 0.1.9(用户 2026-10-20 定:先修好粘贴与 #2、#4 再发):首批六个应用;版本号,打标签由发布流程三端建包、签名公证、上传,发布说明中英两段
|
||||
- [ ] R9.6 Gitea 上的过渡发布(用户 2026-10-20 定):0.1.8 及更早的应用在 Gitea 查更新,在 Gitea 推上 main 与 v0.1.9,发同名发布、同样的文件;其清单指向 GitHub 的下载,0.1.9 起从 GitHub 查
|
||||
- [ ] R9.7 更新日志:0.1.9 发好后在用户桌面写中英两段的更新说明
|
||||
@@ -0,0 +1,3 @@
|
||||
FAIL
|
||||
|
||||
- crates/ely-lok/src/client/tests/filter.rs:156 — The new doc comment contains 11 words, exceeding agents.md's ten-word limit. Running `python tests/scripts/comments.py` reports this added line and exits with status 1. Shorten the comment to ten words or fewer.
|
||||
@@ -0,0 +1 @@
|
||||
PASS
|
||||
Reference in new issue
Block a user