For AI agents: the complete documentation index is available at https://a3s-lab.github.io/Office/docs/0.296.0/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/Office/docs/0.296.0/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/Office/docs/0.296.0/editor-quality-roadmap.md.

编辑器质量路线图

A3S Office 仍处于 1.0 之前。当前优先级不是继续增加零散菜单,而是把核心编辑、文件 往返和渲染一致性做深,并为每项能力建立可重复的测试证据。

共享受控输入法完整性

Document、可视化 Markdown 与 Presentation 文本现在共用一条组合输入感知的受控状态 边界。拼音等预编辑文字只留在编辑器本地,宿主只接收最终确认值;组合期间到达的宿主 权威替换会等到输入结算后再应用。普通键盘输入不会进入额外定时器路径。聚焦组件回归与 独立 WebKit Playwright 门禁把这一行为固化为 P0 文字输入合同。

第一优先级:文档视觉一致性

Document 的目标是同一份 DOCX 在字体可用、页面设置相同的前提下,与 传统 Office / Word 保持可解释、可测量的页面一致性。重点包括:

  1. 字体解析、主题字体、替代字体与中西文混排。
  2. 字号、字距、行高、段前段后、缩进和制表位。
  3. 纸张、边距、分节、分页规则、孤行控制与自动分页。
  4. 页眉页脚、页码、首页与奇偶页差异。
  5. 表格宽度、行高、合并单元格、跨页续排与重复标题行。
  6. 图片和浮动对象的环绕、锚点、偏移、层级与裁剪。
  7. 编辑、只读预览和 PDF 导出复用同一排版结果。

验收必须使用真实 OOXML 样本、固定字体清单、固定视口和逐页截图。简单 HTML 内容或 单张页面截图不能证明整体兼容性。

当前 传统 Office 参考门已经从 Arial 与表格几何扩展到三组文字矩阵:30 行常用字体矩阵覆盖 Arial、Times New Roman、Calibri、Segoe UI 和 Microsoft YaHei 的两种字号与两种自动 行距倍数;36 行 CJK 矩阵覆盖 Microsoft YaHei、SimSun、SimHei、FangSong、KaiTi 和 DengXian 的拉丁文本与中文文本;18 行文档网格矩阵覆盖三种字体、两种字号和明确的行网格。 浏览器使用实测 传统 Office 字体行进高度,但不会改写原始 OOXML 行距倍数。DOCX 导入和导出还会 保留每个分节的 docGrid 类型与行间距,以及每个文字运行的 snapToGrid 覆盖。确定性 浏览器流程要求单页、精确语义标记、零控制台消息和零页面错误;传统 Office 对比会拒绝超过 3 像素 的文字带顶部漂移或超过 4 像素的相邻文字带行进漂移。当前常用字体、CJK 字体和文档网格 矩阵的最大“顶部 / 行进”漂移分别为 3/1、2/2 和 1/1 像素。

手机端段落间距和段落分页面板现已限制在视口内,并扩展到最大 320 px;数字输入、步进 按钮、复选项和重置操作均提供 44 px 触控区域。确定性手机流程会验证段前间距和“段落 不跨页”语义已经写入文档,同时检查关闭后精确恢复触发按钮焦点、可访问结构、控制台 和页面错误。

手机端开始功能区发生溢出时,左右翻页按钮现在固定占据两侧安全区,翻页后不会因按钮 出现或消失而改变工具栏宽度。项目符号和编号库限制在视口内,清除、重新编号、起始值 输入、步进和提交操作均提供 44 px 触控区域。列表命令关闭弹层后通过 TipTap 恢复逻辑 选区与正文焦点,避免“正文看似聚焦、再次打开却丢失当前列表设置”。确定性手机流程已 覆盖两段功能区翻页、方块项目符号、大写罗马编号、自定义起始值、命令后焦点恢复和 Escape 返回编号库触发按钮。

Writer 现在用一个互斥类型状态提供全部大写和小型大写。功能区、标准快捷键、格式刷、 字符格式修订、页眉页脚与撤销使用同一条命令路径,DOCX 导入、导出和重新打开会准确保留 w:capsw:smallCaps。源文字不会被改写;包含大小写塑形效果的段落由浏览器权威 测量,因为转换后的字形还无法安全映射到排版内核的源 UTF-16 偏移,其余符合条件的段落 继续使用 Worker/WASM。

Writer 原生字体现在会分别保留 asciihAnsieastAsiacs 四个槽,以及准确的 直接字体、主题身份和独立的浏览器解析字体。多脚本文字会拆成有界 TextStyle 片段;共享的 Cmd/Ctrl+D 弹窗分别提供拉丁、东亚和复杂文字混合状态、“跟随样式”、分片段预览,并与 其他高级字符属性共用单步撤销。正文、页眉页脚、脚注尾注、格式刷、字符格式修订、严格或 过渡导入、兼容性诊断、准确导出与重开共用同一类型模型。真实 DOCX 闭环会验证段落和字符 样式继承、主题解析、独立槽编辑、原生 w:rFonts 输出及重开;仅本地 A3S Test 门禁覆盖 快捷键、语义控件、预览、焦点恢复和撤销。

Writer 的 Office 2010 OpenType 排版现在让普通文字与结构化公式共用一个封闭语义模型。 “字体高级设置”弹窗可编辑全部 16 种连字组合、数字字形与间距、1-20 样式集及上下文替代, 并提供独立混合状态、“跟随样式”、逐运行局部补丁和单步撤销。正文与页眉页脚、脚注尾注、 批注、格式刷、字符格式修订与拒绝修订、准确 w14 命名空间导出、重开、诊断及浏览器权威 塑形测量都会作为永久本地门禁。

Writer 字符间距现在使用一个 -31,680 到 31,680 twips 的有符号 w:spacing 值,并保留 显式零值。Cmd/Ctrl+D 与正文或页眉页脚功能区会打开同一个可访问“字体高级设置”弹窗, 支持混合选区保持不变、准确恢复选区、实时预览、数值校验和单步撤销。格式刷、字符格式 修订、正文/页眉/页脚导入、导出和重开都会保留原生值。CSS 只负责绘制投影,相同的字宽 调整仍可走 Worker/WASM 排版路径。

Writer 字符水平缩放现在使用一个 1% 到 600% 的原生 w:w 整数。缺少属性时保持继承, 显式 100% 作为直接重置保留,空元素按原生规则解释为 100%。同一个“字体高级设置”弹窗 分别处理缩放、间距和位置的混合选区,任意组合只生成一个事务和一条撤销记录。正文、 页眉页脚、格式刷、字符格式修订、严格或过渡 DOCX 导入、导出与重开都会保留准确值。 CSS 使用 font-stretch 投影;排版协议支持准确逐运行水平缩放之前,非 100% 运行明确使用 浏览器权威测量。该能力不会虚构独立快捷键。

Writer 字距调整现在保留一个 0 到 3,277 半磅单位的原生 w:kern 阈值。显式 零值对所有字号生效,正值在有效 w:sz >= w:kern 时启用,缺失时继承,全层级 缺失时保持关闭。共享的“字体高级设置”弹窗会独立处理字距调整、缩放、间距和 位置的混合选区,可清除直接格式,且任意组合只生成一个事务和一条撤销记录。 所有可编辑 Word story、继承样式、格式刷、字符格式修订、严格或过渡 DOCX 导入、导出和 重开都会保留准确值。CSS、预览/PDF 和 Worker/WASM 排版共用同一有效状态;格式错误或 命名空间伪造的属性会安全拒绝。该能力不会虚构独立快捷键。

Writer 东亚着重号现在用一个封闭的原生 w:em 状态保留 nonedotcommacircleunderDot。直接格式缺失时继续继承,显式 none 会关闭继承着重号,且不会与 “跟随样式”混淆。共享的“字体高级设置”弹窗分别处理着重号、缩放、间距、字距调整和位置, 所有已修改属性只生成一个事务和一条撤销记录。所有可编辑 Word story、继承样式、格式刷、 字符格式修订、严格或过渡 DOCX 导入、导出和重开都会保留类型值。CSS 负责可见投影;可见 着重号使用浏览器权威行测量以计入行外字形,计算样式仍为显式“无”时则继续使用 Worker/WASM。格式错误或命名空间伪造的属性会安全拒绝。该能力不会虚构独立快捷键。

Writer 隐藏文字现在通过同一个 w:vanish 模型保留继承、原生隐藏和显式可见重置三种 状态。共享高级字体弹窗独立处理混合状态,Cmd/Ctrl+Shift+H 使用标准编辑器作用域切换, 每次操作仍只生成一条撤销记录。正文、页眉页脚、脚注尾注、格式刷、字符格式修订、严格或 过渡样式继承、准确导出与重开都会保留该值,且不会替换已有字符样式。隐藏文字默认不显示, 在预览和 PDF 中始终隐藏;“视图”功能区只在编辑时用点状下划线揭示。格式错误或命名空间 伪造的值会安全拒绝,未修改的评论 XML 继续源保留,相关段落使用浏览器权威行测量。

Writer 原生空心、阴影、阳文和阴文现在通过准确的 w:outlinew:shadoww:embossw:imprint 保留四个独立可空状态。缺失值继续继承,显式 false 保持直接重置;空心与 阴影可以组合,阳文和阴文则与其他启用效果互斥。共享高级字体弹窗分别保留各项混合状态, 原子清除冲突,并只提交一条撤销记录。所有可编辑 Word story、文档默认值、继承样式、 格式刷、字符格式修订、严格或过渡导入、诊断、准确导出与重开共用同一类型模型。有界 CSS 与 PDF 投影只影响绘制,因此符合条件的段落仍走 Worker/WASM。聚焦 Rstest、桌面/紧凑 Playwright 和仅本地 A3S Test 1.0.0 会覆盖公开 Playground 模板,GitHub Actions 与 Pages 不安装或调用 A3S Test。

Writer 字符边框现在会在 25 种可见线型以及 nilnone 之间保留一个准确原生 w:bdr 值,同时保留带 tint/shade 的直接或主题颜色、2–96 个八分之一磅单位的宽度、0–31 磅 间距,以及显式阴影和框架标志。“开始”字体组提供直接开关,共享高级字体弹窗则安全保留 混合选区,并区分“跟随样式”“显式无边框”和完整可编辑边框。线型、颜色、宽度、间距、 阴影和框架会与其他已修改字符属性一起通过一个事务和一条撤销记录提交;格式刷复用同一 Mark,且不会宣传非标准快捷键。文档默认值、样式、正文、页眉页脚、脚注尾注、字符格式 修订、严格或过渡导入、诊断、准确导出与重开共用同一类型模型。可见边框的 CSS 边框与 内边距会改变行内几何,因此使用浏览器权威行测量;显式重置仍可走 Worker/WASM,浏览器与 PDF 线型则保持有界视觉近似。聚焦 Rstest、桌面/紧凑 Playwright 和仅本地固定版本的 A3S Test 1.0.0 门禁会覆盖公开“字符边框”Playground 模板、单步撤销、可访问性以及空浏览器 诊断,Actions 与 Pages 不安装或调用 A3S Test。

Writer 字符底纹现在会为全部规范图案、直接或自动前景/背景颜色、彼此独立且带 tint/shade 的主题通道以及显式 nil 保留一个准确原生 w:shd 值。文档默认值、段落和字符样式、条件 表格样式、全部可编辑 Word story、字符格式修订、严格或过渡导入、诊断、准确导出与重开 共用同一封闭模型。高级字体弹窗会保持未修改的混合选区,并区分“跟随样式”“显式无底纹” 和可编辑图案/颜色;格式刷与单步撤销使用同一个 TextStyle 属性。原生 w:highlight 保持 独立并优先绘制,不会覆盖底纹语义。CSS 图案投影不改变行内几何,因此符合条件的内容仍走 Worker/WASM。聚焦 Rstest 与公开“字符底纹”Playground 模板覆盖语义编辑和往返路径; 浏览器 ACL 覆盖仅在本地运行,绝不加入 Actions 或 Pages。

Writer 校对语言现在会分别保留原生 w:lang 的拉丁、东亚和双向文字槽,以及显式 w:noProof true 或 false 状态。文档默认值、继承样式、全部可编辑 Word story、字符格式 修订、严格或过渡导入、诊断、准确导出与重开共用同一封闭模型。“审阅”和页眉页脚编辑 复用一个可访问且混合选区安全的弹窗,提供有界 BCP 47 输入、逐槽“跟随样式”、准确焦点 恢复、一个事务和一条撤销记录。规范 DOM 语言与校对属性不会和整篇文档的浏览器拼写检查 开关混在一起;经过校验的有效语言还会进入 Worker/WASM 的 RustyBuzz 塑形。聚焦 Rstest、 桌面/紧凑 Playwright 与仅本地 A3S Test 门禁会覆盖公开“校对语言”Playground 模板,且不会 把 A3S Test 加入 Actions 或 Pages。内置词典、语法与翻译仍属于宿主或提供方边界。

Writer 目录现在使用一个可选择、不可直接改写的类型化块,支持 1 到 9 级语义标题或原生 大纲级别段落、超链接、页码显示与对齐、点线/短横线/下划线/无前导符、稳定标题目标和最多 512 个缓存项。插入、 修改当前目录和显式更新全部目录分别只产生一个事务和一条撤销记录。共享大纲收集器是唯一 标题来源,实时分页域解析器是唯一页码来源;缺少段落身份的入选项会在插入或修改目录的 同一事务中获得身份。原生 DOCX 导出、导入和第二次导出会保留真实 w:sdt/TOC 域、缓存项、标题书签和准确前导符;常见无损开关会恢复为可编辑状态,自定义 样式映射、部分页码范围、错误范围和不支持的分隔符则明确进入诊断。聚焦 Rstest、响应式 UI 覆盖、公开“可更新目录”Playground 模板和仅本地 A3S Test 门禁会验证入口、编辑、更新、焦点 恢复、撤销、可访问性和空浏览器诊断,Actions 与 Pages 不安装或调用 A3S Test。

Writer 原生索引现在使用稳定且可选择的 documentIndexEntry 行内原子节点,以及一个可选择的 documentIndex 生成块。主次索引项、交叉引用、页码粗体/斜体意图、一到四栏、缩进式或 连续式布局、对齐和四种前导符保持类型化。共享分页域解析器是唯一页码来源;同页的规范化 重复项会合并,同时保留全部标记身份。每次标记或编辑、插入或自定义块、更新全部索引都只 产生一个事务和一条撤销记录。最多 2,048 个标记生成 512 个缓存行,超过任一边界都会明确 显示截断。原生 DOCX 导出、导入、重开和第二次导出会保留 w:fldSimple XE 域、真实 w:sdt/INDEX 域、Index1/Index2 缓存行、交叉引用、页码强调、栏数和前导符。只有可 无损表示的常见开关会恢复为可编辑状态;范围标记、自定义类型、区域设置控制、损坏结构和 未知开关继续进入诊断。聚焦 Rstest、响应式 UI 覆盖、公开“原生索引”Playground 模板和仅 本地 A3S Test 门禁会验证入口、标记、更新、焦点恢复、撤销、原生重开、可访问结构、控制台 与页面错误,Actions 与 Pages 不安装或调用 A3S Test。

Writer 常用字段切片现在补齐了 PAGENUMPAGESSECTIONSECTIONPAGESDATETIMENUMWORDSNUMCHARS。页码字段读取唯一的 Worker/WASM 实测分页结果;统计字段排除生成的 字段结果,保留行内原子两侧的字边界,并把空格与换行分隔开。交叉引用弹窗可以把正文书签 插入为带稳定身份的 PAGEREF,书签规范化重命名时会同步目标,目标删除后显示明确的缺失状态。 原生 DOCX 只把有界的常用开关恢复为可编辑行内字段;不支持的开关、缺失目标、嵌套、跨段、删除 或损坏结构会保留缓存文字并分别进入兼容性诊断。聚焦 Rstest、原生 DOCX 双重往返、桌面/紧凑 Playwright 和仅本地 A3S Test 手机流程覆盖统计、目标页码、F9、单步撤销、可访问结构以及空浏览器 诊断,Actions 与 Pages 不安装或调用 A3S Test。

在这个包级保留边界之上,正文 Writer 现在提供更小且可编辑的内容控件切片:直接位于段落的 行内控件可以选择纯文本或富文本,并保留显示名称、程序标签、多行状态、外观、颜色以及独立的 内容锁和控件锁。选区、预览、分页和撤销共用同一个行内节点,普通事务不能悄悄绕过锁。过渡与 严格 w:sdt 导入/导出会分配无冲突的原生身份并保留支持的运行格式。数据绑定、占位符、重复 区域、日期/下拉/图片/表单控件、块级或嵌套控件以及关系绑定语义仍是有明确诊断的后续边界。

Writer 文档比较与合并现在形成一个已完成的有界纵向切片。“审阅”可以把 DOCX、HTML 或 TXT 与当前受控基线比较,确定性对齐相同布局的段落和标题,并在一个事务和一条撤销记录 中生成可审阅的插入、删除、字符格式、段落格式以及同一分节内有界文字移动修订。只有在同一 简单段落或标题中,或同一分节内对齐的简单文字块之间,唯一、文字格式一致且分隔空白可安全 携带的词法范围才会配成一条移动;重复、格式不一致、富文本、跨分节、表格或超出上限的候选 会保留为普通修订或诊断。只有拒绝审阅副本全部修订后能够准确重建当前基线时,合并才会接纳 该副本。公开“文档比较”Playground 模板、双语参考、聚焦 Rstest、响应式 Playwright、原生 w:ins/w:del/w:rPrChange/w:pPrChange 重开覆盖以及仅本地 A3S Test 门禁共同验证 已交付路径。准确的纯文字整段插入和删除现在也会通过匹配的原生 w:pPr/w:rPr 段落标记 往返,并保留一项原子块决定。孤立段落分隔符合并/拆分修订、混合内容标记、变化的复杂结构、 跨分节/范围移动生成和多副本结构冲突处理仍是明确失败关闭的后续工作。已有的严格或过渡纯文字 w:moveFrom/w:moveTo 配对现在会导入 为一条原子审核项并原生往返;富内容、范围标记、关系绑定或未配对的移动仍会明确诊断,不会 被压平。

Writer 字符基线位置现在使用一个 -3,168 到 3,168 半磅单位的有符号 w:position 值, 并保留显式零值。同一个“字体高级设置”弹窗提供标准、提升和降低,且分别判断缩放、间距与位置的 混合选区;同时修改三项仍只生成一个事务和一条撤销记录。正文、页眉页脚、格式刷、字符 格式修订、严格或过渡 DOCX 导入、导出与重开都会保留准确值。CSS 使用数值 vertical-align 投影偏移;当位置与原生上下标同时存在时,上下标优先显示。排版协议能够 传递逐运行基线偏移之前,这类段落明确使用浏览器权威测量。

Writer 下划线现在由一个类型化 Mark 保存全部 18 种原生 w:u 值、直接 RGB 或 theme/tint/shade 颜色身份,以及显式 none 重置。开始功能区、选区工具栏、页眉页脚、 格式刷、字符格式修订、撤销、DOCX 导出与重开使用同一状态;CSS 只负责有边界的浏览器 视觉投影,不改变 Worker/WASM 排版资格。单下划线、双下划线和仅字下划线的标准快捷键 也复用同一组命令。

Writer 删除线现在使用一个 none | single | double 类型化 Mark,不再把原生状态压平为 布尔值。独立的 w:strikew:dstrike 继承、显式重置、正文和页眉页脚编辑、格式刷、 字符格式修订、撤销、导出与重开都会保留准确状态。可访问拆分控件提供完整样式,但不会 虚构快捷键;TipTap 无关的 Mod+Shift+S 绑定已禁用。CSS 投影仍然只影响绘制,不改变 Worker/WASM 排版资格。

表格几何已经把排版算法、自动 / 百分比 / 像素首选宽度、左中右对齐、缩进、表级四边 单元格边距和单元格级边距覆盖拆成独立属性。tblLayouttblWjctblIndtblCellMartcMartblGridtcW 分别往返,不再把网格列宽误当作整表首选 宽度,也不会在新增或删除表格时把带网格宽度的导入自适应表格误改为固定布局。真实 DOCX 样本和 A3S Test 已验证居中的 62.5% 表格、首个单元格边距覆盖以及编辑 / 预览几何一致。 表格布局功能区的“表格属性”弹窗现在包含表格、行、列和单元格四个页签。它把自动、 百分比或厘米首选宽度、左中右位置和左缩进,与当前行高及规则、跨页断行、重复标题行、 当前列宽、单元格垂直对齐和四边边距统一到一个完整草稿中。确定后只产生一次 TipTap 事务和 一条撤销记录;取消和 Escape 不修改文档,并把焦点还给原触发按钮。用户没有修改的导入尺寸和 部分边距继承会保留原始像素值,不再因弹窗中两位小数的厘米回显发生量化漂移。390 像素宽的 确定性 A3S Test 已覆盖四个页签和触控尺寸、一次改为 72% 左对齐并缩进 0.5 厘米、1.2 厘米 固定行高、禁止跨页断行和重复标题、4 厘米列宽、单元格垂直居中和 0.4 厘米左边距,同时验证 未修改的 8 像素上边距和 16 像素右边距、取消安全、预览一致性以及零控制台和页面错误。 自适应表格的列宽字段仍显示实际渲染宽度,非标准首选宽度显示为“当前宽度”。

Word 图片操作现在通过一个“图片属性”弹窗统一管理厘米宽高、每张图片独立的纵横比锁定、 嵌入 / 四周 / 上下环绕、左中右位置、文字距离、90° 旋转、水平/垂直翻转和替代文字。完整草稿只提交一次 TipTap 事务和一条独立撤销记录;没有改动的导入像素尺寸不会经过厘米回显重新量化。确定、取消和 Escape 都会保留图片选区,并把焦点还给原功能区按钮。390 像素宽的确定性 A3S Test 同时验证尺寸与比例、环绕和位置、旋转与翻转、替代文字、触控尺寸、取消安全以及零控制台和页面错误。 功能区和弹窗共享同一个有限 90° 变换模型;DOCX 导出/重开会校验 a:xfrmrotflipHflipV,任意角度或格式错误的值则通过兼容性诊断明确报告并安全归一化。

表格设计功能区现在把边框颜色和线型作为可复用的“边框笔”,选择颜色或线型不会直接 覆盖所有单元格。用户可以明确应用所有、外侧、内部、上、下、左、右、内部横向或内部 纵向框线,也可以一次清除选区边框。每个单元格的上、右、下、左边框分别进入 TipTap 属性,编辑与预览复用同一份数据;DOCX 导入会把表级外侧和内部边框解析到对应单元格边, 导出后重新打开不会再把混合边框压成统一样式。表格和单元格直接声明的主题色现在会通过 DOCX 主题解析,themeTintthemeShadethemeFillTintthemeFillShade 都会转换为确定的 RGB;编辑、预览与重新导出保持相同颜色,不再错误使用 OOXML 中的 旧备用色。DOCX 表格样式现在会从默认或显式样式出发,以有深度限制且可处理循环的 basedOn 链解析基础样式;tblLook 标志或位掩码、横纵带状尺寸、跨列和行网格偏移 共同决定整表、横纵带状、首末行列和四角单元格条件。条件样式中的填充、逐边边框、字体、 文字颜色、粗体、斜体、下划线和删除线会按 Word 优先级进入同一份编辑与预览模型;段落 对齐、方向、缩进、间距与行距规则、分页规则和制表位也复用同一优先级链,表格、单元格、 段落和文字的直接格式仍可覆盖它们。主题派生颜色在导出时物化为稳定 RGB。真实 DOCX 样本的 A3S Test 流程已验证首行、正文带状行、末行及其条件段落排版在编辑和预览中的 效果,以及零控制台和页面错误。支持范围之外的少见条件段落属性、导出后保留语义主题 引用、嵌套表格和复杂合并单元格流仍属于待完善的文件保真范围。

高度超过一整页正文区域、且允许跨页的表格行,现在会按测量得到的段落边界继续分页,不再 作为一个不可拆分的大块溢出页面;续页会复用同一排版路径重复标题行。真实 DOCX 样本使用 一个包含 120 个段落的正文行,稳定生成 3 个物理页面。A3S Test 确定性流程已经验证第 2、 第 3 页的单元格分页断点与重复标题行、键盘访问第 120 条和表格后正文,以及零控制台和页面 错误。合并单元格、嵌套表格等更复杂的跨页组合仍属于后续文件保真范围。

当前 Word 导航窗格已经从文字摘要升级为实时物理页面栅格缩略图,并与 PDF 导出共享 页面裁剪边界。当前页和相邻页优先生成,其余页面按可视窗口进入串行队列;内容变化会 防抖刷新,离屏图片会释放。捕获不依赖整份字体集合或后台标签页可能暂停的动画帧。 页面按钮也已采用带物理滚动占位的有界窗口,并在窗口外稀疏保留当前页和键盘游标页。 真实 120 页 DOCX 的确定性流程已经覆盖挂载上限、Home/End 首尾跳转、选择和焦点保持; 标题树与搜索结果现已复用同一窗口模型,超过 48 条后最多挂载 32 个连续条目,并在窗口 外稀疏保留当前项、选中项和键盘游标项。该真实样本同时提供 120 个标题和 120 个正文 匹配,确定性流程已覆盖首尾键盘访问、第 120 条精确选择、物理占位几何,以及零控制台 和页面错误。修订审阅超过 48 条后也复用该有界窗口,最多挂载 32 个连续条目,并用物理 占位保持完整滚动距离。方向键、PageUp/PageDown、Home 和 End 可以访问整条审阅队列; 接受或拒绝一条修订后,焦点会续接到下一条的同类操作。真实 120 条原生 OOXML 修订的 DOCX 流程已经验证挂载上限、首尾访问、120 到 119 的决策变化、焦点续接、占位几何, 以及零控制台和页面错误。字符与 paragraph-formatting 段落格式修订现在是两种独立审核类型。段落跟踪会为一次 跨段命令保存一个规范的完整旧属性起点,在后续未决修改中继续保留,并原子处理整组节点。 接受、拒绝和原格式命令分别拥有独立撤销边界。严格与过渡 w:pPrChange 导入导出会保留 受支持的旧段落属性,损坏或不支持的记录仍属于结构诊断。浏览器/Yrs 协作会收敛独立的 不可变决定类型,并禁止 suggest 参与者修改段落修订元数据。两套聚焦 A3S Test 使用公开 Playground 验证两条拒绝路径,同时采集截图、可访问性和空控制台/页面错误证据。 纯文字移动修订现在形成一个带明确源/目标角色的成对审核类型。接受或拒绝会原子处理两侧, 定位只指向目标侧,浏览器/Yrs 写入一条不可变 changeKind: "move" 决定,严格或过渡 DOCX 导出与重开会保留原生 w:moveFrom/w:moveTo,不泄露私有标记。聚焦模型、协作、诊断、面板与 DOCX 测试共同覆盖这个有界子集。 批注审阅超过 48 条后最多挂载 32 张连续卡片,并在窗口外保留 当前批注和含未发送回复的批注;锚点几何通过一次线性扫描收集,连线只为已挂载卡片 绘制,已测量的卡片高度会在离开窗口后复用。方向键、PageUp/PageDown、Home 和 End 可以访问全部批注,键盘跳转会同步文档选区、物理页、批注窗口和焦点;删除批注后, 焦点与选区会续接到相邻的保留批注。真实 120 条原生 OOXML 批注 DOCX 已验证锚点导入、 挂载上限、首尾访问、120 到 119 的删除变化、页面同步,以及零控制台和页面错误。 页面信息也已按增量分页边界派生:尾部编辑会复用稳定物理页面前缀已经解析的首页、默认页 和偶数页页眉页脚、页码、摘要与跳转位置,只重新派生回退边界及其后的页面。真实 120 页 DOCX 流程已经验证编辑最后一页时复用 118 页、仅派生末尾 2 页,同时保持页面导航、焦点、 控制台和页面错误稳定。

核心功能验收

编辑器先做深的能力必要证据
Document输入、格式、分页、表格、图片、批注、修订、DOCX 往返单元测试、真实 DOCX 对照、逐页视觉回归、键盘 E2E
Markdown源码与可视化同步、撤销重做、扩展序列化、阅读排版Markdown 往返、选区与历史测试、桌面分栏与手机整屏切换 E2E
Spreadsheet单元格编辑、公式、原生 Table/ListObject、工作表、快捷键、XLSX 往返计算夹具、结构与协作测试、键盘 E2E、原生工作簿对照
Presentation场景图、对象编辑、母版版式、放映、PPTX 往返几何单元测试、幻灯片截图、放映 E2E
PDF页面渲染、导航、搜索、表单、批注、页面组织、保存PDFium 页面证据、长文档导航 E2E、二进制页面顺序与旋转校验、保存后重开

首个 PDF 工作台纵向切片已经完成插入空白页、删除、旋转、重排、抽取、合并和拆分。 页面引擎按需进入独立 Web Worker;每次修改只替换一个完整 Blob 并增加一条撤销记录, 工具栏始终先消费原生 PDF 历史,再消费页面历史。主文件、合并文件和每个结果分别受 256 MiB、128 MiB 与 4,096 页上限约束。签名、加密、格式损坏和无法安全重写的目录结构 会明确失败;抽取与拆分则报告没有复制的文档级对象。桌面 Playwright 验证真实拖放、 下载后二进制页序和旋转、保存及 PDFium 重开,紧凑布局验证溢出入口与精确焦点归还; 本地 A3S Test 1.0.0 ACL 验证公开流程且保持空浏览器诊断,Actions 与 Pages 不安装或 调用 A3S Test。

第二十二个原生 Table/ListObject 切片之后,结构化引用计算切片已经接入同一份 Rust/WASM 与 JavaScript 解析器、表格目录、依赖图和无历史投影路径。它支持表名/displayName、工作表 限定、连续列、#All#Headers#Data#Totals#This Row 与表内 [@Column] 公式;每次请求最多 1,024 张表,每个结构化区域最多 100,000 个单元格。不连续、三维、外部、 缺失或超预算引用会明确失败。现在支持在新插入的表格正文空单元格中自动填充计算列。规则 只从单一且一致的当前行公式推断,持久化在表格元数据中,并保留手工值、公式、样式和例外; 检测到冲突时会删除规则。稠密与稀疏工作表、Yjs 校验以及原生 XLSX <calculatedColumnFormula> 往返均有覆盖。常用汇总行创作也已覆盖:表格设计弹窗、每列的 汇总函数/标签/自定义公式、忽略筛选行的 SUBTOTAL、直接编辑协调、结构移动、重命名安全性、 稠密/稀疏投影、Yjs 校验和原生 XLSX 汇总元数据都有聚焦证据。切片器、查询表和高级集成仍属于 后续边界。聚焦 Rust、浏览器内核、会话、XLSX 与 Playground 测试已覆盖该切片,并保持 Actions 与 Pages 不安装或调用 A3S Test。

第二十三个 Spreadsheet 纵向切片在第二十二个原生 Table/ListObject 切片之上,补齐 开始与字体组的高频 传统 Office 字号和框线键盘路径。可见的增大/减小字号按钮共享 Cmd/Ctrl+Shift+.Cmd/Ctrl+]Cmd/Ctrl+Shift+,Cmd/Ctrl+[;混合选择会 逐个单元格沿 9 至 72 点阶梯步进,相同结果压缩为原生矩形,并通过一次 Fortune 批处理和 一条撤销记录提交。Cmd/Ctrl+Shift+& 写入黑色细实线外侧框线, Cmd/Ctrl+Shift+_ 清除选区框线。一次手势最多处理 10,000 个单元格,宿主输入框、公式栏、 单元格文字编辑与模态控件保留原生键盘行为。聚焦 Rstest、桌面/紧凑 Playwright 与本地 A3S Test 1.0.0 ACL 共同保护该切片,GitHub Actions 与 Pages 不安装也不调用 A3S Test。

当前第二十四个 Spreadsheet 纵向切片补齐原生下划线保真度。开始与字体组提供无、单、双、 单会计用和双会计用下划线的 传统 Office 风格拆分控件,设置单元格格式使用同一组类型化选项,并 保留未触碰的混合选择。Cmd/Ctrl+U 会关闭任意已启用变体,并从关闭状态启用单下划线; 一次操作只发布一次受控更新和一条撤销记录,随后恢复网格焦点。Fortune un 0 至 4 是 唯一浏览器状态,原生 XLSX 字体会准确往返 OOXML u 值,SheetJS 回退导入则归一布尔、 数字和命名变体。聚焦 Rstest、桌面/紧凑 Playwright 与本地 A3S Test 1.0.0 ACL 共同保护 该切片,控制台与页面错误证据为空;GitHub Actions 与 Pages 不安装也不调用 A3S Test。

当前第二十五个 Spreadsheet 纵向切片补齐 传统 Office 常用文字方向与行列显隐。开始与对齐组通过 一个支持键盘的单选菜单提供横排、两种 45 度倾斜、竖排、向上旋转和向下旋转。数值角度 写入 Fortune rt,逐字堆叠写入 tr='3';XLSX 导入导出准确映射 OOXML 0 至 180 与 255,包括以大于 90 的值表示负角度。一次文字方向操作最多处理 10,000 个单元格,并保持 一次原生批处理、一次受控更新和一条撤销记录。行和列菜单新增隐藏与取消隐藏,网格内的 Cmd/Ctrl+9Cmd/Ctrl+0Cmd/Ctrl+Shift+9Cmd/Ctrl+Shift+0 走同一组类型化 命令;预检会在分配索引前拒绝超过 10,000 行或 1,000 列的请求。宿主输入框、公式栏、 单元格文字编辑、弹出菜单、对话框、只读视图和重复按键保留原生行为。聚焦 Rstest 与 XLSX、 桌面/紧凑 Playwright Canvas 像素证据和本地 A3S Test 1.0.0 语义回归共同保护该切片; GitHub Actions 与 Pages 不安装也不调用 A3S Test。

当前第二十六个 Spreadsheet 纵向切片补齐常用直接颜色的“未设置”状态与 传统 Office 字体强调 别名。“自动颜色”删除 Fortune fc,“无填充”删除 bgCtrl+2Ctrl+3Ctrl+4 通过共享命令目录、类型化命令路径、单步撤销和最终网格焦点分别接入加粗、斜体与 下划线。导入的直接字体、实心填充和边框颜色会保留经过校验的 theme、indexed、automatic、 调色板、渲染 RGB 与 tint 来源,并在无关编辑与 Yjs 传输中存续。只有渲染值与无冲突调色板 槽位仍一致时,XLSX 重建才写回语义引用;已修改或冲突的颜色会安全退化为显式 RGB。聚焦 Rstest、真实导入/编辑/导出/重开夹具、桌面/紧凑 Playwright 与本地 A3S Test 1.0.0 语义回归共同保护该切片。GitHub Actions 与 Pages 不安装也不调用 A3S Test。

当前第二十七个 Spreadsheet 纵向切片独立保留 OOXML 斜下与斜上单元格框线方向。功能区、 设置单元格格式、选择性粘贴、内置样式、Yjs 传输、插入行、XLSX 导出与重新打开都保留准确 方向;只对可见单元格运行的 Canvas 钩子绘制规范导入元数据,不会把稀疏工作表变密。每次 操作最多处理 4,096 个单元格,只做一次索引读取、一次原生批处理、一次受控更新和一条撤销记录。

当前第二十八个 Spreadsheet 纵向切片通过开始与数字组加入静态本地日期 Ctrl+; 和分钟精度 本地时间 Ctrl+Shift+; 输入。每项命令只修改活动单元格,保留无关样式,在一次批处理中写入 标量与原生数字格式,并创建一条撤销记录。只读、非活动、受保护、合并、数据透视表和非法目标 会在修改前失败。

当前第二十九个 Spreadsheet 纵向切片加入准确的从上方复制语义。Ctrl+' 原样复制源公式, 不会平移相对引用;源单元格没有公式时复制标量。Ctrl+Shift+' 只复制计算或显示值,并清除 目标公式。一次原生写入保留全部目标样式,只产生一次受控更新和一条撤销记录,成功后同步公式栏。 公式复制会拒绝外部、非法、数组、动态数组、数据表和溢出来源;两项命令都应用目标保护、合并、 数据透视表、边界、活动工作表和可编辑性预检。聚焦 Rstest、桌面/紧凑 Playwright 与仅本地 A3S Test 1.0.0 回归共同验证公式原样复制、缓存值、样式保留、修订次数、焦点、可访问性和空浏览器 诊断,不会把 A3S Test 加入 GitHub Actions 或 Pages。

第三十个 Spreadsheet 纵向切片补齐常用字体对话框键盘入口。 Cmd/Ctrl+Shift+FCmd/Ctrl+Shift+P 复用既有类型化“设置单元格格式”命令和捕获选区, 打开字体页后分别聚焦字体或字号下拉框。命令目录继续统一提供编辑器按键与 aria-keyshortcuts;非法路由会安全失败,宿主输入、公式栏、单元格编辑和模态控件不被捕获, Escape 精确返回原网格节点。字体预览保留真实文字颜色,并按相对亮度选择深色或浅色中性画布, 保证浅色字体仍清晰可见。聚焦 Rstest、桌面/紧凑 Playwright 与仅本地 A3S Test 1.0.0 回归 覆盖路由、焦点、对比度、可访问性和空浏览器诊断,Actions 配置保持不变。

第三十一个 Spreadsheet 纵向切片保留共享字符串与内联字符串中的原生 XLSX 单元格富文本, 覆盖导入、整单元格格式修改、导出和重新打开。Fortune 既有 ct.s 片段会保留字体、字号、 颜色、粗体、斜体、删除线、四种下划线与首尾空白。仍匹配的主题、索引、自动和色调身份继续按 语义保留,修改后的颜色则以 RGB 导出。一次“设置单元格格式”意图会不可变地更新所有片段, 同时保持内联字符串类型、一次受控修订和一条撤销记录。安全上限为每单元格 32,767 个字符、 512 个片段,以及每次导入 10,000 个富文本单元格和 100,000 个物化片段。聚焦 Rstest、 导入/导出/重开夹具、桌面/紧凑 Playwright 与仅本地 A3S Test 1.0.0 回归共同验证保真度、 焦点、可访问性和空诊断。在该切片中,插入光标后的局部片段创作仍是明确的后续工作。

第三十二个 Spreadsheet 纵向切片补齐常用的局部片段格式能力。在活动单元格编辑器或公式栏中 选中非空文字后,字体、字号、颜色、粗体、斜体、删除线与下划线会先进入同一个有边界的片段 模型,再决定是否回退到整单元格命令。普通字符串只在合法命令成功后转换为原生内联字符串; 已有片段会拆分并合并相邻同样式片段,不会修改未选中文字或仍匹配的语义颜色来源。直接点击 功能区后,只要编辑器仍活动,就会恢复所选文字。非法坐标、非法格式值、公式单元格、拆开 UTF-16 代理对的选择,以及超过 32,767 个字符或 512 个片段的结果都会安全失败。支持字体属性 之外的富文本插入与编辑仍属于后续工作。

第三十三个 Spreadsheet 纵向切片补齐公式栏与 F2 单元格编辑器中的原生富文本直接插入和删除。 一个纯粹且有边界的协调模型会从上一份受控文字推导单段连续替换,让插入字符继承被替换片段或 紧邻的前一个片段,并保留未受影响片段的边界、字体样式,以及主题、索引、自动或色调颜色身份。 经过认证的增量单元格操作只投影精确坐标;没有单元格操作的非结构回调,仅在文字完全不变时才 能恢复源片段;结构批次绝不按旧坐标推断。公式栏与 F2 每次提交只发布一次受控修订和一条撤销 记录,文字未变化的聚焦回调不会发布修订。UTF-16 合法性、32,767 字符和 512 片段上限继续安全 失败。带格式粘贴与同次提交中的多处不连续编辑仍是后续工作。

第三十四个 Spreadsheet 纵向切片补齐公式栏与 F2 编辑器中的常用带格式富文本粘贴。粘贴事件会 为精确工作表对象、单元格坐标、受控源文字、UTF-16 选择范围、剪贴板普通文字和净化字体片段建立 一次性且有边界的授权。增量与兼容投影只有在经过认证的单元格操作提交完全符合预测的替换结果时 才能消费该授权。未修改源片段继续保留边界,以及主题、索引、自动或色调颜色身份;粘贴的字体、 字号、显式 RGB、粗体、斜体、删除线与下划线只作用于插入范围。符合条件的普通和空单元格会转换 为原生内联字符串。HTML 在解析后立即丢弃并限制为 256,000 个字符,单元格文字和结果片段继续 遵守 32,767/512 上限。文字不匹配、非法输入、结构操作和无效 UTF-16 会安全回退到继承样式或 普通文字,不会授权剪贴板样式。一次提交仍只产生一次受控修订和一条撤销记录。聚焦 Rstest、 注册/回退投影测试、桌面/紧凑真实剪贴板 Playwright,以及四个仅本地 A3S Test 1.0.0 场景共同 覆盖该路径并保持空诊断。同次提交中的多处不连续编辑与非字体内联对象仍是后续工作。

第三十五个 Spreadsheet 纵向切片保留全部 17 种原生 OOXML 非实心图案填充。一个专用单元格 字段保存准确图案类型、渲染后的前景色与背景色,以及经过校验的 theme、indexed、automatic 或 tint 来源;Fortune bg 继续作为背景投影,并在用户明确修改颜色后使过期元数据失效。 只面向可见单元格的 Canvas 钩子会在文字下方绘制背景和过程式图案,条件格式与 Table 填充 优先,不会栅格化隐藏单元格。格式刷、选择性粘贴格式、无关格式修改、Yjs 传输、导出和重开 都会保留该字段;新填充、无填充、清除格式与内置单元格样式会移除它。非法颜色安全失败, 语义调色板冲突则导出显式 RGB。聚焦 Rstest、桌面/紧凑 Canvas 像素证据和仅本地运行的 A3S Test 1.0.0 图案画廊门禁覆盖全部图案身份与空浏览器诊断;GitHub Actions 与 Pages 不安装也不调用 A3S Test。

第三十六个 Spreadsheet 纵向切片保留原生 OOXML 线性与路径渐变填充。一个专用单元格 字段保存精确且有限的线性角度,或经过校验的 0–1 路径内矩形边界,以及 2 到 256 个位置 非递减的色标、渲染颜色和可选 theme、indexed、automatic 或 tint 来源。Fortune bg 使用第一个色标作为投影,并在用户明确修改颜色后使过期元数据失效。共享的可见单元格 Canvas 拦截器会在文字下方绘制原生线性渐变,或最多 96 层嵌套矩形路径轮廓;条件格式与 Table 填充继续优先,隐藏单元格不会产生绘制工作。格式刷、选择性粘贴格式、无关格式修改、 Yjs 传输、导出和重开都会保留该字段。显式填充、无填充、清除格式与内置单元格样式会同时 清除两类原生填充元数据。未知类型、非法颜色、倒序或越界色标、非法几何、存在歧义的 XML, 以及过多色标都会安全失败。准备调色板发生冲突时写出显式 RGB,不会伪造语义引用。聚焦 Rstest、桌面/紧凑 Canvas 像素证据和仅本地运行的 A3S Test 1.0.0 画廊门禁覆盖该流程, 不会把 A3S Test 加入 Actions 或 Pages。

第三十七个 Spreadsheet 纵向切片把原生填充创作加入共享的“设置单元格格式”对话框。一个类型化 联合模型覆盖无填充、纯色、全部 17 种图案,以及线性或路径渐变。图案颜色、精确渐变几何和 2 到 256 个有序色标都可编辑,生产 Canvas 渲染器负责实时预览,新增色标会在最大间隔中按相邻 颜色插值。切换模式会保留未激活草稿,混合选区只有在明确编辑后才会统一,倒序色标或非法路径 几何会阻止应用。一次应用仍只产生一次受控更新和一条撤销记录,用户创作的图案与渐变可通过 XLSX 导出和重开保留。聚焦 Rstest、桌面/紧凑 Playwright 与仅本地 A3S Test 1.0.0 覆盖编辑、 应用、重开、撤销、响应式边界、可访问性和空浏览器诊断,不会把 A3S Test 加入 Actions 或 Pages。

第三十八个 Spreadsheet 纵向切片通过独立编辑器扩展加入离线多关键字“自定义排序”。可访问弹窗 冻结一个连续区域,允许覆盖标题推断,并可添加、删除或调整最多 64 个互不重复的升序/降序值 关键字。稳定的数值与自然文字顺序会把空白置于末尾;完整单元格行在一个原生批次中移动,相对 公式行引用随之平移,一次撤销即可恢复来源。合并、保护、数据透视表、不完整或超预算矩阵、 结构化表格、工作表 AutoFilter,以及坐标归属的超链接、导入公式或边框侧车都会在修改前失败 关闭。聚焦 Rstest、桌面/紧凑 Playwright 与仅本地 A3S Test 1.0.0 覆盖优先级、公式移动、 撤销、焦点、可访问性和空浏览器诊断,不会把 A3S Test 加入 Actions 或 Pages。

第三十九个 Spreadsheet 纵向切片为部分列、窄矩形与单单元格选区加入传统 Office“排序提醒”。Sort 与 AutoFilter 复用同一套稠密/稀疏当前区域模型;精确和扩展候选区域分别经过保护、合并、数据透视 表、语义表格、AutoFilter、坐标侧车、行数与面积守卫。可访问弹窗默认扩展,单个单元格的精确 候选保持禁用。快速排序与自定义排序都会用原始实时选区认证冻结目标,选区变化会在修改前失败。 浏览器深测还暴露并修复了把格式化公式结果误判为标题的问题。聚焦 Rstest、桌面/紧凑 Playwright 与仅本地 A3S Test 1.0.0 覆盖范围选择、快速/自定义转换、公式移动、撤销、焦点、 可访问性和空浏览器诊断,不会把 A3S Test 加入 Actions 或 Pages。

第四十个 Spreadsheet 纵向切片为每个排序关键字加入离线自定义序列。一个有界模型统一持有七个 不可变的中英文月份/星期序列、换行/逗号解析、Unicode 规范化、重复检测,以及 256 个项目、 单项 128 个码点和总计 4,096 个码点的限制。已列值先于未列出的自然升序值,空白始终置后, 相同序位可继续由后续关键字稳定区分。弹窗只为当前挂载的编辑器会话保留最多 32 个用户序列; 请求会复制自身序列,受控工作簿保持不变;类型化宿主存储边界在下文第四十四个切片补齐。 聚焦 Rstest、桌面/紧凑 Playwright 与 仅本地 A3S Test 1.0.0 覆盖非法输入、复用、公式移动、单步撤销、可访问性和空浏览器诊断, 不会把 A3S Test 加入 Actions 或 Pages。

第四十一个 Spreadsheet 纵向切片为每个排序关键字加入离线外观次序。类型化“排序依据”联合覆盖 值、自定义序列、有效单元格颜色、有效字体颜色与条件格式图标;外观目标可以置于顶端或底端, 重复条件可表达完整视觉优先级。独立的有界模型合并直接原生样式与已计算条件格式输出,保留无 填充和自动字体颜色身份,也不会把原生渐变或图案压平成虚假纯色。命令在复用公式安全整行批处理 与单步撤销之前,会从受控工作表状态和实时区域重新构建有效快照。聚焦 Rstest、桌面/紧凑 Playwright 与仅本地锁定版本的 A3S Test 1.0.0 覆盖四层同列颜色/字体/图标优先级、公式移动、撤销、 焦点、响应式容纳、可访问性和空诊断,不会把 A3S Test 加入 Actions 或 Pages。

第四十二个 Spreadsheet 纵向切片加入传统 Office 兼容的从左到右自定义排序。嵌套选项弹窗无需复制主 编辑器即可切换关键字轴,横向移动时禁用标题保留,并把外观位置从顶端/底端映射为左侧/右侧。 一个方向中立的矩阵模型可稳定重排完整行或列,只沿移动轴平移相对公式、保留绝对引用,并在单次 原生写入与撤销记录之前拒绝任何越界平移。聚焦 Rstest、桌面/紧凑 Playwright 与仅本地锁定 版本的 A3S Test 1.0.0 门禁覆盖多行优先级、横向外观次序、公式移动、原子失败、撤销、焦点、 响应式容纳、可访问性和空诊断,不会把 A3S Test 加入 Actions 或 Pages。

第四十三个 Spreadsheet 纵向切片补齐“排序选项”中的常用离线文字比较。一个类型化排序规则模型 统一规范拼音/笔画与是否区分大小写,为每个请求只编译一次本地简体中文比较器,让数字文字保持 字符次序、真实数字继续使用数值次序,并用实际排序行为跨运行时标签别名探测所选规则;确实不支持时才于修改前拒绝。行移动与列 移动共用同一稳定比较器。浏览器重复深测还暴露并修复了受控重挂载竞态:宿主直接聚焦的网格 overlay 现在也会进入既有有界焦点交接。聚焦 Rstest、桌面/紧凑重复 Playwright 与仅本地锁定 版本的 A3S Test 1.0.0 门禁覆盖两种中文次序、小写并列、公式、撤销、即时键盘焦点、可访问性和 空诊断,不会把 A3S Test 加入 Actions 或 Pages。

第四十四个 Spreadsheet 纵向切片通过明确的类型化宿主存储复用用户创建的自定义排序序列。React、 Vue 与 Web Component 适配层接收一个 SpreadsheetSortCustomListStore;内置本地存储实现使用 注入的后端、带版本载荷、规范校验、去重以及与弹窗一致的 32 条上限。未配置存储时仍保持挂载 会话行为,损坏读取会失败 关闭,写入被拒时会提示错误并把新序列保留在本次会话,受控工作簿始终不拥有偏好。聚焦 Rstest、 桌面/紧凑 Playwright 与仅本地锁定版本的 A3S Test 1.0.0 门禁覆盖存储往返、整页刷新复用、公式 安全排序、单步撤销、可访问性与空诊断,不会把 A3S Test 加入 Actions 或 Pages。

第四十五个 Spreadsheet 纵向切片通过 A3S 自有的可访问弹窗和类型化命令扩展加入常用工作表 AutoFilter 条件。等于、不等于、包含、不包含、开头/结尾、数字比较与区间、空白和非空白共用 一套稠密/稀疏求值器。每个活动列独立拥有隐藏行,它们的并集驱动显示;明确的重叠记录会在替换 条件、清除、关闭筛选和撤销时保留手工隐藏行。命令会在一次受控更新前重新认证可编辑的活动 工作表、精确筛选区域和目标列,冻结选区可跨过 Fortune 重挂载。原生工作表条件复用表格筛选 联合类型并通过 XLSX 往返。会绕过公式安全类型化排序路径的供应商排序操作已从表头菜单移除。 聚焦 Rstest、桌面/紧凑 Playwright 与仅本地锁定版本的 A3S Test 1.0.0 门禁覆盖多列所有权、 手工重叠、XLSX 重开、撤销、焦点、可访问性与空诊断,不会把 A3S Test 加入 Actions 或 Pages。 后续切片会补齐同列 AND/OR、通配符、前几项/后几项、动态求值及表格/AutoFilter 所属区域排序。

第四十六个 Spreadsheet 纵向切片加入恰好两个以 AND 或 OR 连接的同列自定义 AutoFilter 条件。 固定的非递归双元素结构扩展了封闭筛选模型、协作校验、命令重新认证、稠密/稀疏求值器以及共享的 工作表/表格 OOXML 路径。可访问弹窗可添加或移除第二个条件,恢复受控或导入条件对,校验两项操作数, 并加入“开头不是”和“结尾不是”。通用原生 <customFilters and="1|0"> 条件对可保留关系往返, 规范的介于/不介于形式保持稳定。聚焦 Rstest、桌面/紧凑 Playwright 与仅本地锁定版本的 A3S Test 1.0.0 门禁覆盖 AND/OR 语义、非法嵌套、响应式容纳、XLSX 重开、撤销、可访问性和空诊断,不会把 A3S Test 加入 Actions 或 Pages。后续切片会补齐通配符、前几项/后几项、动态求值及 表格/AutoFilter 所属区域排序。

第四十七个 Spreadsheet 纵向切片完成本地前几项/后几项 AutoFilter 创作与求值。数值列菜单显示 自有“前 10 项”入口并默认十项;共享弹窗可创作前/后 1–500 项和前/后 1–100%,且只接受整数。 稠密/稀疏模型计算一个数值阈值,百分比项目数向上取整,保留全部边界并列值,并排除文本、布尔值、 空白与非有限值。命令重新认证、手工隐藏和多列所有权、工作表/表格原生 <top10> 往返以及导入 工作簿重算共用同一封闭条件联合。聚焦 Rstest、桌面/紧凑 Playwright 与仅本地锁定版本的 A3S Test 1.0.0 门禁覆盖仅数值列入口、默认值与编辑流程、应用、撤销、可访问性、XLSX 重开和空诊断。 后续切片会补齐通配符、动态求值及表格/AutoFilter 所属区域排序;大型排名 Worker/WASM 卸载 仍待完成。

第四十八个 Spreadsheet 纵向切片完成本地通配符 AutoFilter 创作与求值。两个明确的非递归 自定义条件类型可保留任意 *?~ 表达式,现有等于和文本操作数继续保持字面量语义。 受控 token 编译器会规范化 Unicode 文本,处理零个或多个字符、单字符和转义操作符,并应用共享的 32,767 字符筛选操作数上限。两个类型都可位于固定 AND/OR 条件对的任一位置,并经过同一命令与 协作重新认证边界。

工作表和表格 OOXML 会保留任意正向与否定 <customFilter> 值;规范的边缘星号模式仍会归一化为 包含、开头是或结尾是条件。聚焦模型、编译器、命令、弹窗、Hook、协作和 XLSX Rstest,加上桌面/ 紧凑 Playwright 与仅本地锁定版本的 A3S Test 1.0.0 门禁,覆盖 Unicode、转义、双条件创作、导入/ 重开、撤销、可访问性和空诊断。后续切片会补齐动态求值及表格/AutoFilter 所属区域排序;大型排名 Worker/WASM 卸载仍待完成。

第四十九个 Spreadsheet 纵向切片完成封闭原生家族的本地动态 AutoFilter 创作与求值。数值列提供 严格的高于/低于平均值条件;类型化日期列无需操作数即可提供相对日、周、月、季度和年区间、年初 至今、第 1–4 季度及第 1–12 月。纯编译器接收明确时钟,使用周日起始且包含起点/不包含终点的 区间,以流式方式消费聚合输入而不保留整列,跨时区恢复已导入 SheetJS 日期,并且绝不把未格式化 数字当作日期。命令重新认证、稠密/稀疏行所有权、手工隐藏保留、工作表/表格 <dynamicFilter> 往返和已导入工作簿重算共用既有封闭条件联合。聚焦 Rstest 会在 UTC、Asia/Shanghai 与 America/Los_Angeles 下运行;桌面/紧凑 Playwright 和仅本地锁定版本的 A3S Test 1.0.0 门禁覆盖 创作、应用、撤销、可访问性与空诊断。大型聚合/排名 Worker/WASM 卸载仍待完成;下方第五十一个 切片会补齐表格/AutoFilter 所属区域排序,第五十二个切片会补齐源级 1904 日期系统保留。

第五十个 Spreadsheet 纵向切片补齐“自定义排序”中的有界自定义序列偏好管理。一个响应式、键盘 可访问的弹窗保持七个内置序列只读,并在一次原子确认前暂存最多 32 个用户序列的创建、编辑、删除 与调整顺序。重复和大小校验复用规范序列模型;未发生变化的确认不会写入类型化存储;取消会丢弃 草稿;写入被拒时会提示错误并把完整的已修改集合保留在当前挂载会话。活动排序关键字会跟随已编辑 序列,删除对应序列时则回到值升序。聚焦 Rstest 与桌面/紧凑 Playwright 覆盖边界、偏好顺序持久化、 重挂载、响应式容纳、焦点归还、可访问性和空诊断。

第五十一个 Spreadsheet 纵向切片把“自定义排序”接入原生表格与工作表 AutoFilter 所有权。任意内部 选区都会解析为精确可排序所属区域;表格汇总行被排除,结构标题保持固定,并禁用按行移动。请求携带 所有者指纹,命令会在修改前重新推导,因此表格被替换、标题/汇总行状态变化或筛选区域移动都会 失败关闭。筛选活动时只发布一次受控工作簿更新:类型化工作表/表格条件针对已排序的稠密或稀疏 单元格重新求值,Fortune 不透明值/颜色筛选会按稳定排序置换迁移隐藏行所有权,独立手工隐藏继续 保留。原生区域读取遗漏隐藏行时会回退到受控单元格;排序区域与筛选重扫各自受明确的一百万单元格 预算约束。聚焦 Rstest、仅本地 A3S Test 门禁及桌面/紧凑 Playwright 覆盖表格公式、原生筛选 可见性、单步撤销、焦点、响应式容纳、可访问性和空诊断。

第五十二个 Spreadsheet 纵向切片把工作簿日期系统提升为明确的受控模型字段。XLSX 导入会保留 原生 1900 或 1904 epoch 及日期类型的精确数值序列;导出会恢复 workbookPr date1904 与数值 公式缓存,不再经过 JavaScript Date 转换。动态日期筛选、菜单列画像、编辑或排序后的筛选重算, 以及 Ctrl+; 创作均消费同一个 epoch。协作层会独立于计算设置验证和合并该字段。聚焦单元测试、 真实包重开测试及本地 A3S Test 浏览器覆盖会验证 1904 序列 0、筛选所有权、受控重开、可访问性 与空诊断。

统一交互质量

所有编辑器共用的设计系统必须覆盖菜单、弹窗、颜色选择器、输入控件、滚动条、焦点环、 右键菜单和响应式布局。每个命令都要满足鼠标、键盘和可访问名称的基本要求;手机界面 不能用遮挡正文的悬浮控件代替合理布局。

办公侧边栏现在分别保存桌面持久栏和手机临时抽屉的展开状态。窗口跨入手机断点时, 桌面侧栏会在同一次渲染中退出,不会短暂变成遮挡工作区的模态抽屉,也不会抢走搜索框 等当前焦点;恢复桌面宽度后仍沿用用户原有的桌面折叠偏好。

共享 Office 下拉列表在桌面端继续保持紧凑密度,手机端则改为 44 像素选项行和更高的 视口内滚动区域。Word 字体确定性流程会用 End 访问完整分组列表、应用末项后把焦点还给 正文,并验证重新打开后按 Escape 会把焦点精确归还字体下拉框。

Markdown 桌面端默认保留可调整的左侧源码和右侧预览,预览直接使用完整阅读界面,不再 嵌套卡片。手机端改为“源码 / 预览”整屏切换,避免把两个窗格压缩成不可用的上下半屏; 确定性流程同时验证受控内容同步、44 px 触控操作和最终预览状态。

手机端 Spreadsheet 查找栏现已限制在视口内,输入框及上一个、下一个、关闭操作均至少 为 40 px。确定性流程会验证搜索结果精确定位到目标单元格,并在 Escape 关闭后把焦点 归还表格。

共享右键菜单在桌面端继续跟随鼠标或键盘选区定位;宽度低于 640 px 时改为贴合安全区的 底部操作面板。每项操作至少 44 px,高内容量菜单在面板内部滚动,Escape 仍把焦点精确 归还编辑目标。Spreadsheet 的确定性流程同时保存手机布局截图、可访问结构、控制台和 页面错误证据。

Spreadsheet 工作簿任务窗格在桌面端保持为有界侧栏,在手机端则成为焦点受控的模态 对话框。打开后功能区、表格画布和工作表栏不可交互,Tab 与 Shift+Tab 不会离开窗格; Escape 会先取消未保存草稿,再关闭窗格并把焦点精确归还原功能区按钮。确定性浏览器 流程覆盖模态语义、焦点顺序、背景隔离、截图、可访问结构、控制台和页面错误。

Presentation 图表检查器在桌面端保持为有界侧栏;响应式布局一旦让它覆盖画布,就切换 为焦点受控的模态对话框。打开后功能区、幻灯片工作区和状态栏不可交互,关闭按钮获得 初始焦点,Tab 与 Shift+Tab 始终留在窗格内。未保存字段会先消费第一次 Escape,第二次 才关闭窗格并把焦点归还所选图表。确定性手机流程已覆盖模态语义、双向焦点循环、背景 隔离、草稿取消、截图、可访问结构,以及零控制台和页面错误。

Presentation 批注审阅在桌面端保留为停靠条,在手机端则覆盖编辑器形成完整的模态审阅 界面。手机界面使用可读的批注字号和 44 px 主要操作,打开后功能区、幻灯片工作区和 状态栏不可交互,Tab 与 Shift+Tab 始终留在审阅界面;未提交批注会先消费第一次 Escape, 再次按下才关闭。关闭后焦点会精确归还“新建批注”“查看批注”或幻灯片批注标记。确定性 手机流程覆盖两类功能区触发路径、模态语义、背景隔离、双向焦点循环、截图、可访问结构、 控制台和页面错误。

文件往返原则

  • 未修改内容应尽量保持原文件语义与包结构。
  • 不支持字段必须明确记录,不能无提示丢弃。
  • 导入、编辑、导出后重新读取,并比较结构化结果。
  • 写入失败不能覆盖源文件。
  • 浏览器与本地 CLI 对同一公共语义使用兼容的类型定义。

测试分层

类型与纯函数单元测试
  → 编辑器组件交互测试
  → 导入 / 导出往返测试
  → A3S Test 确定性 E2E
  → 固定环境视觉回归
  → 传统 Office / Word 等参考渲染的逐页差异报告

Agentic 测试用于探索问题和形成稳定路径;确认后的流程应收敛为确定性测试。任何浏览器 会话都必须有范围地创建和清理,不能通过进程名关闭用户正在使用的 Chrome。

发布门槛

版本发布前至少需要通过类型检查、单元测试、组件构建、Playground 构建、关键 E2E、 视觉合同和包内容校验。文档中的属性、限制与发布版本必须对应,latest 可以描述尚未 发布的主分支能力,历史版本页面则保持冻结。

完整任务清单和每项实现状态见 English 完整路线图