# Duowei Table Pro 更新日志

本文件记录 Duowei Table Pro 面向用户的功能变化。当前条目依据生产发布记录、可信更新验收记录、发布产物和 `1.0.1` 之后的源码差异整理。

> [!NOTE] 发布标识
> `CHANGELOG.md` 是本项目唯一的更新日志。本次版本为 `1.3.0 / releaseSequence=9`，上一线上版本为 `1.2.0 / releaseSequence=8`。发布序号用于防止版本回退，语义版本用于向用户表达功能变化；下方继续保留历次线上版本记录。

## [1.3.0] - 2026-09-11

### 版本摘要

本版本累计收录自上次线上版本 `1.2.0 / releaseSequence=8`（2026-08-31）以来的全部用户可见变化。四条主线：新增个人微信收件箱同步；附件单元格可直接粘贴剪贴板图片，灯箱改为整表浏览；把 iPad 等平板从“桌面骨架 + 手机交互”的拼接状态整理为独立布局，用长按补齐触屏上一直缺失的右键菜单、列/行排序、子任务层级调整和日历/时间轴改期；绑定笔记同步改为“先观察再写回”，自动继承笔记属性且不再覆盖未读取过的属性。

### 新增

- 新增个人微信收件箱同步：把发给扫码绑定的 ClawBot 会话的文字、图片、语音、文件和视频追加到本地 `.duowei` 表格。设置页新增“个人微信收件箱”区块（本机一键安装 / 自动连接本机服务、服务地址、目标多维表格、API Token、测试连接、立即同步、自动同步间隔），命令面板新增“创建个人微信收件箱表格”“同步个人微信收件箱”“测试个人微信收件箱连接”。同步方向仅为微信 → 表格，默认每 3 秒检查一次，Token 只保存在 Obsidian `SecretStorage`。需要另行安装本机微信收件服务，安装、扫码、后台运行和排查见 `微信消息同步安装及使用手册.md`。
- 附件单元格支持 Ctrl/Cmd+V 与右键粘贴剪贴板图片，自动保存到配置的附件目录并追加到当前格，不覆盖已有附件。附件编辑框、移动端编辑抽屉和记录详情同步支持；图片保存期间的提交会等待完成，取消编辑不会把迟到的图片写回。
- 图片灯箱改为整表浏览：点开任意缩略图后，方向键、两侧箭头或（未放大时）按住横向滑动即可按当前视图的行序、列序翻看整张表的图片，底部显示“记录标题 · 字段名”与页码。画廊与看板卡片的缩略图共用同一入口。超大表最多收集前 500 张图片，超出范围的缩略图仍按原样只翻本单元格。
- 新增“手机端隐藏 Obsidian 底部导航栏”开关，默认开启：仅在当前查看独立多维表格时隐藏宿主导航，保留表格操作栏；离开表格、关闭开关或停用插件时自动恢复。
- 子任务拖动排序与层级调整：开启子任务嵌套显示后，按住行号拖动任务可在同级之间排序、拖到目标行中部设为其子任务、向左拖或拖到顶层任务旁提升层级；后代随父任务一起移动，拒绝拖入自己的后代，支持撤销/重做。搜索、筛选、排序或分组时不可拖动。
- 触屏长按通道（iPhone / iPad / Android）：长按单元格打开与桌面右键完全相同的菜单；长按列头后移动可调整列顺序，长按行号后移动可调整记录顺序或子任务层级，长按原地松手则打开对应菜单；日历、时间轴中的日程卡片、时间条和“未排期”记录都可长按后拖到目标日期或时段。此前这些拖拽依赖 HTML5 拖放，在 iOS / iPadOS 上根本没有入口。
- 绑定笔记自动继承属性：打开带绑定笔记的表格、绑定笔记或笔记属性发生变化时，笔记 frontmatter 中尚未映射的属性会自动作为新字段加入表格，同步键即属性名，类型按现有值推断；新字段在所有视图中默认隐藏，可在“字段”面板中显示或删除。

### 改进

- 平板布局成为独立的第三态：iPad 等平板保留桌面端的信息密度和工具栏，但触摸热区、浮层和拖拽通道按触屏处理；编辑抽屉不再铺满整屏，而是收成有界卡片并对齐来源单元格，仍贴住键盘上沿。
- iPad 接上触控板或妙控键盘后，悬停预览、选中即打字、拖拽填充等依赖精确指针的桌面能力会实时恢复，拔掉后自动退回触屏方式。
- 字段类型从单选/多选改为文本或长文本时，写入的是用户看到的选项名（多选以逗号分隔），不再是内部选项 ID；转附件字段时的同类修正一并沿用。
- 绑定笔记写回改为“先观察再写回”：只有显式的表格编辑才会写回笔记；写回前核对源笔记中该属性是否已被改动，已改动时保留双方内容并提示“属性在源笔记中已变化”，不覆盖源笔记；同一笔记的多个待写入属性整体校验，不会出现只写了一半的情况。
- 更新弹窗只显示发布者提供的精简摘要（不超过 900 字、8 行），完整更新日志改到官网产品页与安装包内的 `CHANGELOG.md` 查看；客户端最多接收 16 KiB 的更新说明。

### 修复

- 修复同一图片重复粘贴生成多个附件的问题：按文件内容去重，复用当前格已有图片（兼容旧随机文件名），新文件使用稳定的内容哈希命名，并保护连续粘贴、多个视图同时粘贴的并发写入。已有的重复附件不会自动删除。
- 修复“同步所有绑定记录”可能清空笔记属性的问题：表格尚未读取过的字段先从笔记导入现有值，不再把空值写回；metadata 缓存缺失或笔记读取失败时不写回。
- 修复 iPad 上右键菜单、列排序、行排序和日历/时间轴改期没有入口的问题（见“触屏长按通道”）。
- 修复 iPad 上编辑抽屉铺满 1366pt 宽屏、以及接键盘后仍按手机方式预冻结表格导致的整表重排与分屏跳动。

### 升级说明

- 从 `1.2.0 / 8` 可直接更新到 `1.3.0 / 9`，最低支持 Obsidian `1.11.4`。在插件设置的“授权与更新”中手动检查并安装更新；插件启动时不会自动联网检查。
- 更新只替换 `main.js`、`manifest.json` 和 `styles.css`，不会覆盖 `data.json`、表格或附件。首次安装包附带完整使用手册与本文件；已安装用户也可在官网产品页查看两份文档。
- 个人微信收件箱需要在电脑上额外安装并登录本机微信收件服务，插件本身不包含该服务；未安装时相关设置和命令可以保留不用。
- 自动继承的笔记属性字段默认隐藏，不改变现有视图的显示；如果不希望某些属性进入表格，可在“字段”面板中删除对应字段，删除不会修改笔记。
- 旧手册中“平板仍使用桌面端行内编辑器”的描述已失效：iPad 与手机一样使用编辑抽屉，只是平板抽屉为对齐单元格的有界卡片。

## [1.2.0] - 2026-08-31

### 版本摘要

本版本累计收录自上次线上版本 `1.1.1 / releaseSequence=7`（2026-08-28）以来的全部用户可见变化。三条主线：新增 Zotero 数据源、把外部删除统一为可审核流程，以及对表格视图的读写体验做一轮系统性整理（长内容可读可编、行高列宽按真实排版度量、新增记录改为就地入口、菜单重新分组）。

### 新增

- 新增桌面端 Zotero 本地文库同步：可从个人文库、群组文库或 Collection 导入文献元数据、PDF 和笔记，也可连接已有表格。默认仅拉取，启用写回后可按字段设置同步方向。
- 表格视图新增“自动行高（按内容）”：换行模式下行高随每条记录的内容变化，密度档位退化为最小高度，手动拖过的行高仍然优先。
- 列宽新增三个入口：字段菜单的“自适应列宽（本列）”、显示菜单的“所有列自适应内容”和“列宽适应窗口”；双击列宽手柄可在“贴合内容”与“默认宽度”之间切换。
- 日期格式改为“日期部分 + 时间部分”两段式面板，带实时预览；新增相对日期（今天 / 昨天 / N 天前）与 12 小时制。
- 新增“向上填充”：选区左上角出现手柄，可从下往上填充。
- 新增单元格内容浮层：长文本、Markdown 内容放不下时，活动单元格出现“展开”入口，可只读查看全文并一键转入编辑。
- 新增键盘快捷键面板（更多操作 → 键盘快捷键），按分组列出快捷键，可停留、可滚动。
- 新增命令“在当前多维表格新增记录”，可在命令面板搜索并绑定快捷键。
- 选项与标签顺序可调整：字段编辑面板支持拖拽或方向键排序选项，多选单元格可调整已选标签的显示顺序，选项输入框支持一次粘贴多行批量新增。
- 选项颜色、单元格样式与表头样式新增自定义取色器。

### 改进

- 新增记录改为就地入口：表格内容末尾常驻“+ 新增记录”行（数据填满视口时也在），把鼠标移到两行之间会在行号列出现 `+` 并亮出插入位置指示线；新增后自动滚动到新行并把光标放进第一格。工具栏上的“新增行”按钮与其下拉随之下线，“在顶部新增行”移入“更多操作”。
- 拖拽列宽与行高不再整表重渲染：改为按帧刷新列轨道变量与行偏移，松手才提交，大表拖动明显跟手。
- 换行行高与可显示行数改为按真实排版度量计算，密度档位按整数行定义；此前“舒适”档固定给 4 行但实际只放得下 3 行多，最后一行必被截断。
- 长文本编辑不再受列宽限制：编辑态展开为浮层，窗口底部空间不足时向上翻转。
- 列宽自适应改为按真实渲染宽度计算：选项芯片、缩略图、评分星级和表头角标都计入，大表改为抽样测量。
- 单元格右键菜单重新分组（打开详情 → 复制/粘贴 → 插入行/复制行 → 填充与样式 → 笔记联动 → 清空与删除），新增“粘贴”，不可用的项不再灰着占位。
- “更多操作”菜单重新分组（查找 → 数据进出 → 同步联动 → 历史与恢复 → 帮助），同步的三个入口收进同一组。
- 工具栏精简：移除重复的第二个 `···` 菜单，冻结列与统计概览并入“显示”菜单，分隔线两侧间距对齐。
- 新建/编辑字段面板的类型选择改为与“修改字段类型”一致的双列卡片，并保留搜索。
- “展开记录”按钮从行号列移到标题单元格右端，视觉减重并淡入，行号在悬停时不再消失。
- 同步中心改进：支持完整校验、冲突复核和旧连接安全迁移。
- 统一外部删除审核：删除已绑定记录时先保存快照，用户可选择恢复本地、保留远端或确认删除远端，避免静默级联删除。

### 修复

- 日期时间字段在未设置格式时显示数据库原始值（如 `2026-08-30T09:00`），现在按“日期 + 时:分”显示，且不改变存储值。
- 双击表头打开字段编辑面板时，面板会飞到窗口左上角（首次点击已重绘表头，锚点元素失效）。视图标签的同类问题一并修复。
- 多选/长文本等 Markdown 单元格内容被静默截断且没有省略号，现在按行数截断或以底部渐隐提示“还有内容”。
- 选区左上角的填充手柄被冻结列遮挡。
- 绑定笔记与公式字段引用的建议列表条目被主题按钮样式压成定高，两行内容互相重叠。
- 单选/多选字段转为附件字段时写入的是选项 ID 而非选项名。

### 移除

- 移除“向右填充”及其快捷键 `Ctrl/Cmd + R`。多维表格的列是不同类型的字段，横向填充会静默清空数字列、写入未经校验的日期，并给选项字段追加选项；跨列改值请使用“批量修改选区”。
- 移除工具栏的“新增行”按钮及其下拉菜单，改由上述就地入口承担。

### 升级说明

- 从 `1.1.1 / 7` 可直接更新到 `1.2.0 / 8`，最低支持 Obsidian `1.11.4`。在插件设置的“授权与更新”中手动检查并安装更新；插件启动时不会自动联网检查。
- 更新只替换 `main.js`、`manifest.json` 和 `styles.css`，不会覆盖 `data.json`、表格或附件。首次安装包附带完整使用手册与本文件；已安装用户也可在官网产品页查看两份文档。
- 现有 `.duowei` 文件无需手工转换；首次打开旧 Zotero 连接时可能创建 `Zotero 文献笔记` 文件夹，升级前建议备份 Vault。
- 开启自动换行的表格，行高会按真实行盒重新计算（紧凑/标准/舒适分别对应 2/3/4 行），升级后行高会略有变化，这是修正而非回归。
- 依赖“向右填充”的操作请改用“批量修改选区”或复制粘贴。
- Zotero 的令牌与写入 Key 只保存在当前设备；换电脑后需要重新连接并按需重新授权。

## [1.1.1] - 2026-08-28

### 版本摘要

本版本累计收录自上次线上版本 `1.1.0 / releaseSequence=6`（2026-08-24）以来的全部更新，集中解决 Microsoft 设备代码登录兼容性，以及手机或窄容器画廊属性显示拥挤的问题；同时把设置说明、README 和完整使用手册更新到与当前源码一致。

### 修复

- Microsoft 设备代码登录补齐 `openid profile offline_access` 与实际启用的 Microsoft Graph 权限，并统一引导用户打开官方设备登录地址 `https://microsoft.com/devicelogin`。
- Microsoft 自有 Entra 应用配置错误时，错误提示会明确说明设备代码请求本身不发送 `redirect_uri`，并引导管理员添加“移动和桌面应用程序”回复地址、开启公共客户端流。
- 手机及窄容器画廊统一使用单列卡片和单列属性摘要；字段名宽度受限，标签、笔记链接和长文本可以在值列中安全收缩或换行，避免横向溢出。
- 窄容器强制手机布局时也会应用完整画廊样式，不再只依赖 Obsidian 的全局 `body.is-phone` 状态。

### 文档

- 补充 Microsoft Entra 与 Google Cloud OAuth 应用注册、普通用户授权、表格绑定、同步边界、令牌保存和故障排查全过程。
- 补充手机及窄容器画廊布局说明，并纠正 Microsoft/Google 令牌与 `SecretStorage` 凭据的存储边界。
- 更新高级设置中的 Microsoft Client ID 说明和项目 README，明确公共客户端流、个人 Microsoft 账户兼容回复地址及设备代码请求不发送 `redirect_uri`。

### 验证

- Microsoft To Do 与 Outlook 双向同步回归测试通过。
- 手机记录与画廊布局回归测试通过。

### 升级说明

- 从 `1.1.0 / 6` 可直接更新到 `1.1.1 / 7`，现有 `.duowei` 文件无需迁移或手工转换。
- 自动更新只替换 `main.js`、`manifest.json` 和 `styles.css` 三个运行文件；不会覆盖插件设置 `data.json`、用户表格、附件或 Vault 中的其他文件。
- 首次安装包同时附带本文件和完整使用手册；升级前仍建议备份 Vault 与插件目录。

## [1.1.0] - 2026-08-24

### 版本摘要

相较上一线上版本 `1.0.1 / 5`，本版本新增可靠自动化规则引擎、Notion 与飞书多维表格双向同步、Microsoft To Do 与 Outlook 日历同步、Google Tasks 与 Google Calendar 同步、附件同步和统一同步中心，并重做批量编辑及手机端记录操作。最低支持的 Obsidian 版本由 `1.10.0` 提升到 `1.11.4`。

### 新增

- 新增自动化中心，支持字段变化、记录创建、日期到期、创建子任务和仅手动运行五类触发器；规则可配置 AND/OR 条件树、流程分支、有界记录遍历、执行来源、级联深度和失败处理策略。
- 新增自动化动作：修改或批量修改记录、跨表创建记录、写入 Frontmatter、更新 Markdown 标记区块、发送通知、调用 Webhook，以及创建 Google 主日历事件。
- 新增自动化 Dry-run、一次性执行凭证、资源锁、逐动作 Journal、崩溃恢复、逆序补偿、人工处理队列、运行历史、依赖检查和死信处理；外部副作用不会在结果不确定时盲目重试。
- 新增自动化规则配方与 8 组可直接查看的样例，覆盖状态流转、工单分流、日期提醒、子任务、跨表更新、笔记同步、Webhook 和历史批处理。
- 新增 Notion Data Source 与飞书多维表格双向同步，支持从远端导入成本地 `.duowei`、把本地表发布为新远端表，以及连接已有表继续同步。
- 新增统一同步中心，可配置字段映射和同步方向，执行同步预览，查看新增、更新、冲突、附件和待审核删除，并逐项处理三方合并冲突。
- 新增 Microsoft To Do 双向同步，可把一张本地表绑定到一个任务列表，同步标题、完成状态、到期时间、提醒、备注和重要性；可选把任务投影为 Outlook 默认日历中的全天事件。
- 新增 Google Tasks 与 Google Calendar 双向同步，可把本地记录连接到任务列表或日历，并通过字段映射控制标题、状态、日期、备注和事件时间等信息的同步方向。
- Microsoft 与 Google 连接均采用按用户授权的 OAuth 流程；插件提供浏览器授权、绑定检查、手动同步、错误提示和解除绑定入口。删除或解除本地绑定默认不会静默级联删除远端数据。
- 新增 Notion 与飞书附件同步。本地文件使用内容指纹去重和断点状态恢复；支持 Notion File Upload、Notion HTTPS 外部文件以及飞书 `bitable_file`，单文件安全直传上限为 20 MB。
- 新增表格型远端的记录缺失与删除审核：可恢复本地记录、解除旧绑定、保留远端，或在明确确认后删除对应远端记录，不执行静默级联删除。
- 新增手机“记录卡片布局”，可在专业表格与记录卡片之间切换；提供全屏新建记录、全屏记录详情、显式批量选择、批量删除和常驻底部操作栏。
- 新增手机全屏任务的左缘右滑返回、逐视图滚动位置恢复、系统安全区和 Obsidian 宿主导航栏避让。

### 交互与体验改进

- 批量修改升级为原位会话：支持设置、替换、转换和清空，网格内实时预览结果；排序、筛选或外部修改导致数据版本变化时会终止旧会话，避免写错记录。
- 多单元格选择工具条支持折叠为选中数量提示，折叠不会清空选择；触屏拖选时暂时抑制工具条，并扩大移动端选择手柄命中区域。
- 手机顶部重复工具栏收敛到底部“视图 / 新增 / 搜索 / 更多”等入口；查找替换、字段选项和日期选择统一采用适合窄屏的底部抽屉。
- 手机软键盘弹出时按真实 `visualViewport` 调整全屏表单和详情页，隐藏被键盘遮挡的底栏，避免宿主窗口异常压缩、焦点丢失和中间空白。
- 看板与可排序画廊增加显式拖拽手柄；卡片主体继续响应纵向滚动，降低触屏浏览时误拖动的概率。
- 手机画廊压缩封面高度并以双列显示属性摘要；单选、多选在卡片中保留选项名称和颜色，并在选项过多时显示剩余数量。
- 视图重命名、复制和删除始终作用于用户点击的视图；已删除的默认视图不再被自动补回，并继续保证复制后的视图名称唯一。
- 画廊中的笔记链接显示可读标题而不是完整 Vault 路径，完整值保留在悬停提示中。
- 保存状态改为仅在保存中和短暂成功阶段显示，空闲后自动隐藏；错误与冲突状态持续可见，切换设置后立即刷新已打开表格。

### 同步、数据与安全改进

- Notion 与飞书共用字段级三方合并、增量游标、事务 Journal、请求限速、断点恢复和进度反馈；同一张本地表同一时刻只允许一个表格型远端连接。
- 支持文本、长文本、数字、勾选、日期、日期时间、单选、多选、URL、邮箱、电话和附件字段；公式、汇总、关联、人员等复杂远端字段保持只读或不参与映射。
- Notion 新建记录按本地顺序串行追加，拉取时按创建时间升序，降低首次导入和分页顺序漂移；飞书强化 OAuth 刷新、批量记录和附件接口处理。
- Notion Token、飞书 App ID/App Secret 和 Webhook 密钥使用 Obsidian `SecretStorage` 保存，不写入 `.duowei`、插件 `data.json`、同步日志、规则或 Dry-run 结果。Microsoft 与 Google 的访问令牌、刷新令牌当前保存在插件 `data.json`，不会写入 `.duowei`；该文件不得公开、提交到 Git 或放入多人可读的配置同步目录。
- Webhook 固定使用 HTTPS `POST application/json`，支持 Bearer、API Key 和 HMAC-SHA256 三种受控凭证；携带稳定幂等键，可把受类型约束的 JSON 响应字段写回当前记录。
- 表格写入统一经过 Mutation Service 与表格会话；批量动作、同步和自动化在提交前校验表格或记录 revision，降低并发编辑覆盖新数据的风险。

### 修复

- 修复取消 CSV/TSV 文件选择后隐藏文件输入残留，以及重复打开导入器时可能累积无效 DOM 的问题。
- 修复多选区批量修改面板遮挡目标单元格、未配置操作时可能误清空，以及排序或筛选后可能把旧位置当作写入目标的问题。
- 修复删除默认视图后再次打开表格会被自动创建、右键视图操作可能落到当前视图而不是点击目标的问题。
- 修复手机软键盘引发网格或表单重建、输入框闪退、底部按钮被系统工具栏遮挡，以及查找替换输入框横向溢出的问题。
- 修复看板和画廊卡片在触屏纵向滑动时容易进入拖拽的问题。
- 修复表单提交成功时出现重复完成提示的问题。


### 升级说明

> [!IMPORTANT]
> 当前版本依赖 Obsidian `1.11.4` 开始提供的原生 `SecretStorage`。使用 Obsidian `1.10.x` 的用户必须先升级 Obsidian，再安装本版本。

- 现有 `.duowei` 文件无需手工转换；解析器会继续规范化旧结构。升级前仍建议备份 Vault 和插件目录。
- Notion、飞书及 Webhook 凭证按设备保存在 `SecretStorage`，新设备首次使用时需要重新授权或重新保存密钥。Microsoft 与 Google 令牌保存在插件 `data.json`；不要共享该文件，新设备建议重新登录授权。
- 日期到期规则依赖 Obsidian 正在运行；应用关闭或被移动系统挂起时不能准点执行，只能在重新打开后按规则的补跑窗口处理。
- 本版本已统一使用语义版本 `1.1.0` 和生产发布序号 `6`；自动更新只分发 `main.js`、`manifest.json`、`styles.css` 三个运行文件，首次下载的安装包同时附带本文件和完整使用手册。

## [1.0.1] - 2026-07-29

### 版本定位

`1.0.1 / releaseSequence=5` 是上一线上稳定版本，重点修复私有更新的安装目录识别并完成真实升级链路验收；该版本不要求迁移 `.duowei` 数据结构。

### 改进与修复

- 修复私有更新安装目录识别：更新器改用 Obsidian 报告的实际插件目录，兼容安装目录名与插件 ID 不一致的情况。
- 更新仍只替换 `main.js`、`manifest.json` 和 `styles.css` 三个运行文件；用户设置 `data.json`、表格文件和插件目录中的其他文件不参与覆盖。
- 保留签名清单验签、逐文件 SHA-256 完整性校验、安装前备份、失败回滚和安装后插件重载流程。
- 最低支持 Obsidian `1.10.0`。

### 可信更新验收

- 已在 Windows 实际插件目录完成 `1.0.0 / releaseSequence=4` 到 `1.0.1 / releaseSequence=5` 的生产升级测试。
- 私有 OSS 下载得到的发布文件与登记清单哈希一致，许可证发布序号、签名包和完整性校验均通过。
- 安装前回滚备份、插件重载和再次检查“已是最新版本”均通过；升级前后的 `data.json` 保持不变。
- 上述结果记录于 `2026-07-29` 的可信更新验收；当时尚未形成 macOS、Linux、iPhone、iPad 与 Android 的等价实机证据。

## [1.0.0] - 2026-07-29

### 正式版本

- Duowei Table Pro 首个正式语义版本，上一实际发布版本为 `0.1.9`。
- 建立 Pro 私有更新流程，覆盖手动检查更新、授权下载、发布清单验签、文件完整性校验、桌面端与移动端安装以及失败回滚。
- 以 `releaseSequence=4` 重新签名发布同版本，兼容 `schemaVersion=2` 设备许可证；旧的 `releaseSequence=3` 已撤回并保留审计记录。
