Feat/model usage charts and paper cards完善第二阶段功能与验收:后台索引、图表交互、扩展社区及第三阶段规划 #31

Merged
Kronecker merged 12 commits from feat/model-usage-charts-and-paper-cards into main 2026-09-06 03:02:16 +08:00
Owner

变更说明

本 PR 汇总当前分支相对 main 的第二阶段功能完善、交互修复与验收补充。

分支:feat/model-usage-charts-and-paper-cards
审阅提交:a5c44c4

1. 工作区打开与后台索引

修复新增本地笔记后,打开 Vault 必须等待向量计算完成、导致入口长时间停留的问题。

  • 打开 Vault 时先登记文件、笔记元数据与全文索引,返回可使用的文件树。
  • 向量计算自动在后台执行,重复打开不会重复创建同一后台任务。
  • 模型计算期间不占用笔记写入锁,允许继续编辑和执行文件操作。
  • 索引提交前校验笔记快照;计算期间发生修改时,丢弃过期结果并重新计算。
  • 增加入口等待状态、请求超时、错误提示与重试入口。
  • 状态栏定期刷新后台索引状态。

2. 保存流程

修复保存请求等待模型计算的问题。

  • 正文和全文索引写入成功后返回保存结果,向量随后按笔记在后台更新。
  • 后台写入前核对当前笔记版本,防止旧计算结果覆盖新内容。
  • 向量计算失败不回滚已经保存的正文。
  • 将待处理状态保存在本地,重新打开 Vault 后可以继续处理。
  • 保存请求期间继续输入的内容会自动补存。

“已保存”表示正文和全文索引已写入,不表示后台向量计算已经完成。

3. Mermaid 渲染与大图交互

  • 大图窗口及内部图表居中展示。
  • 打开大图时按可用宽高适配,避免宽图右侧或长图底部初始不可见。
  • 清除上一次大图的滚动位置,避免再次打开时沿用旧位置。
  • 支持大图直接使用滚轮缩放,以及行内预览中键启用滚轮控制。
  • 限制滚轮缩放速度,使用当前显示宽度作为行内缩放基准,修复首次缩放突然变大。
  • 缩放过程中根据鼠标位置调整滚动位置。
  • 保留 Mermaid 的 HTML 标签,修复大图文字丢失问题。
  • 隔离编辑器段落内边距对 SVG 标签的影响,修复类图关系标注“1”“many”等文字裁切。

4. AI 对话、Provider 与用量统计

  • 完善全局人设和预设对话设置,并在请求时拼入系统提示词。
  • 添加模型上下文预算、阈值检测及可选历史摘要压缩。
  • 对无法安全压缩的工具调用历史、附件和超预算请求给出明确提示。
  • 完善用量趋势与按模型分段展示,保留本地模型和提供商来源区分。
  • 区分未提供的统计指标与实际零消耗。
  • 完善对话侧栏、模型选择及统一展开组件。
  • 修复 Agent 事件流中断后的恢复、事件去重与手动重连。

5. Skill、Plugin 与社区准备

  • 统一安装弹窗,支持 ZIP 包解析。
  • 校验压缩包路径、文件数量、解压体积及不支持的条目类型。
  • 持久化安装路径、启用状态和插件授权信息。
  • 启动恢复时校验包内容,发生变化时要求重新安装并检查权限。
  • 区分应用管理的解压目录与用户目录,卸载不删除用户目录安装源。
  • 提供可运行的 Skill、Plugin 示例及对应社区包。
  • 为工作区补充插件命令入口和选中文本快照传递。

6. 主题、编辑器与文档

  • 统一弹窗、主题预览和扩展安装交互。
  • 补齐纸间时光主题对新增组件的支持。
  • 修复 Markdown 行内代码输入等编辑问题。
  • 补充本地功能演示笔记。
  • 补充第二阶段验收工具和记录。
  • 完整编写第三阶段规划,涵盖各社区、Sync Server、Tauri Rust 桌面容器等。

自动化验证

以下结果对应本次审阅的代码:

检查 结果
后端测试 621 项通过
前端测试 345 项通过
前端生产构建 通过
与最新 main 模拟合并 无冲突
本地与远程分支提交核对 均为 a5c44c4

复现命令

在 backend 目录运行:

.venv/Scripts/python.exe -m pytest -q -p no:cacheprovider

在 frontend 目录运行:

npm test -- --run
npm run build

在仓库根目录运行:

git fetch gitea
git merge-tree --write-tree HEAD gitea/main
git rev-parse HEAD
git ls-remote gitea refs/heads/feat/model-usage-charts-and-paper-cards

merge-tree 用于检查合并结果,不会将当前工作区切换为合并状态。

重点回归覆盖

后台打开与保存

backend/tests/test_workspace_background.py 覆盖:

  • 模型计算未完成时,打开 Vault 仍能返回文件树和笔记 ID。
  • 重复打开复用后台任务。
  • 模型等待期间仍能执行文件操作。
  • 计算期间修改文件,后台重新计算最新内容。
  • 连续保存时,最终内容、标题及标签保持最新版本。
  • 模型失败时正文仍然保留。
  • 待处理任务可在重新打开 Vault 后恢复。

frontend/src/services/apiClient.spec.ts 覆盖:

  • 挂起请求达到期限后中止,并返回可识别的超时错误。
  • 请求成功后清除超时计时器。

frontend/src/stores/editorSave.spec.ts 覆盖:

  • 上一次保存尚未完成时继续输入,后续内容能够自动补存。

Mermaid

frontend/src/components/common/DiagramInteractions.spec.ts 及编辑器图表相关测试覆盖:

  • 行内预览控制按钮。
  • 中键启用滚轮缩放,移动鼠标后退出控制。
  • 大幅滚轮输入仍保持有界缩放速度。
  • 首次缩放基于实际显示宽度,而非 SVG 原始宽度。
  • 缩放时调整滚动位置以跟随鼠标指向。
  • 大图打开时适配窗口并重置旧滚动位置。
  • 保留 HTML 节点与边标签,同时移除危险 HTML 属性。

另外已在浏览器检查类图标签布局:“1”“many”和“contains”的段落内边距为 0,实际文字高度未超出 SVG 标签框。

建议合并前手动复核

以下步骤便于复核交互体验,不代表所有排列组合均已自动化覆盖。

工作区入口

  1. 在测试 Vault 中添加一份 Markdown 文件。
  2. 刷新前端并打开 Vault。
  3. 确认无需等待向量计算即可进入工作区,新文件可打开。
  4. 后台计算期间尝试编辑或新建文件夹。
  5. 确认状态栏能够显示后台索引状态。

保存

  1. 修改笔记并保存。
  2. 保存期间继续输入内容。
  3. 等待自动保存后切换文件,再重新打开。
  4. 确认最后输入的内容完整保留。
  5. 在隔离测试环境中模拟模型不可用,确认正文仍能保存,并显示索引失败状态。

图表

  1. 打开“03 Mermaid 图表集.md”。
  2. 检查流程图、时序图、类图、状态图、ER 图和甘特图。
  3. 检查类图的“1”“many”“contains”是否完整显示。
  4. 打开甘特图大图,确认初始可见完整排期。
  5. 连续滚轮缩放,确认没有突然跳大。
  6. 将鼠标放在不同位置缩放,检查跟随效果。
  7. 关闭后重新打开,确认没有沿用上次滚动位置。

扩展安装

  1. 使用社区示例 ZIP 安装 Skill 和 Plugin。
  2. 检查安装后的功能入口。
  3. 修改启用状态和插件授权后重启后端。
  4. 确认安装记录及状态恢复。
  5. 在测试副本中修改包内容,确认恢复校验能够识别变化。

验证边界

  • 本轮没有重新进行所有真实厂商 API 的专项验收。
  • 无参考转写或说话人标注的音频结果,不能据此认定识别准确率达标。
  • 生产构建仍有较大分块提示,未阻断构建。
  • 本地尚未提交的笔记和架构文档额外修改不属于此次提交内容。
## 变更说明 本 PR 汇总当前分支相对 main 的第二阶段功能完善、交互修复与验收补充。 分支:feat/model-usage-charts-and-paper-cards 审阅提交:a5c44c4 ### 1. 工作区打开与后台索引 修复新增本地笔记后,打开 Vault 必须等待向量计算完成、导致入口长时间停留的问题。 - 打开 Vault 时先登记文件、笔记元数据与全文索引,返回可使用的文件树。 - 向量计算自动在后台执行,重复打开不会重复创建同一后台任务。 - 模型计算期间不占用笔记写入锁,允许继续编辑和执行文件操作。 - 索引提交前校验笔记快照;计算期间发生修改时,丢弃过期结果并重新计算。 - 增加入口等待状态、请求超时、错误提示与重试入口。 - 状态栏定期刷新后台索引状态。 ### 2. 保存流程 修复保存请求等待模型计算的问题。 - 正文和全文索引写入成功后返回保存结果,向量随后按笔记在后台更新。 - 后台写入前核对当前笔记版本,防止旧计算结果覆盖新内容。 - 向量计算失败不回滚已经保存的正文。 - 将待处理状态保存在本地,重新打开 Vault 后可以继续处理。 - 保存请求期间继续输入的内容会自动补存。 “已保存”表示正文和全文索引已写入,不表示后台向量计算已经完成。 ### 3. Mermaid 渲染与大图交互 - 大图窗口及内部图表居中展示。 - 打开大图时按可用宽高适配,避免宽图右侧或长图底部初始不可见。 - 清除上一次大图的滚动位置,避免再次打开时沿用旧位置。 - 支持大图直接使用滚轮缩放,以及行内预览中键启用滚轮控制。 - 限制滚轮缩放速度,使用当前显示宽度作为行内缩放基准,修复首次缩放突然变大。 - 缩放过程中根据鼠标位置调整滚动位置。 - 保留 Mermaid 的 HTML 标签,修复大图文字丢失问题。 - 隔离编辑器段落内边距对 SVG 标签的影响,修复类图关系标注“1”“many”等文字裁切。 ### 4. AI 对话、Provider 与用量统计 - 完善全局人设和预设对话设置,并在请求时拼入系统提示词。 - 添加模型上下文预算、阈值检测及可选历史摘要压缩。 - 对无法安全压缩的工具调用历史、附件和超预算请求给出明确提示。 - 完善用量趋势与按模型分段展示,保留本地模型和提供商来源区分。 - 区分未提供的统计指标与实际零消耗。 - 完善对话侧栏、模型选择及统一展开组件。 - 修复 Agent 事件流中断后的恢复、事件去重与手动重连。 ### 5. Skill、Plugin 与社区准备 - 统一安装弹窗,支持 ZIP 包解析。 - 校验压缩包路径、文件数量、解压体积及不支持的条目类型。 - 持久化安装路径、启用状态和插件授权信息。 - 启动恢复时校验包内容,发生变化时要求重新安装并检查权限。 - 区分应用管理的解压目录与用户目录,卸载不删除用户目录安装源。 - 提供可运行的 Skill、Plugin 示例及对应社区包。 - 为工作区补充插件命令入口和选中文本快照传递。 ### 6. 主题、编辑器与文档 - 统一弹窗、主题预览和扩展安装交互。 - 补齐纸间时光主题对新增组件的支持。 - 修复 Markdown 行内代码输入等编辑问题。 - 补充本地功能演示笔记。 - 补充第二阶段验收工具和记录。 - 完整编写第三阶段规划,涵盖各社区、Sync Server、Tauri Rust 桌面容器等。 ## 自动化验证 以下结果对应本次审阅的代码: | 检查 | 结果 | | --- | --- | | 后端测试 | 621 项通过 | | 前端测试 | 345 项通过 | | 前端生产构建 | 通过 | | 与最新 main 模拟合并 | 无冲突 | | 本地与远程分支提交核对 | 均为 a5c44c4 | ### 复现命令 在 backend 目录运行: .venv/Scripts/python.exe -m pytest -q -p no:cacheprovider 在 frontend 目录运行: npm test -- --run npm run build 在仓库根目录运行: git fetch gitea git merge-tree --write-tree HEAD gitea/main git rev-parse HEAD git ls-remote gitea refs/heads/feat/model-usage-charts-and-paper-cards merge-tree 用于检查合并结果,不会将当前工作区切换为合并状态。 ## 重点回归覆盖 ### 后台打开与保存 backend/tests/test_workspace_background.py 覆盖: - 模型计算未完成时,打开 Vault 仍能返回文件树和笔记 ID。 - 重复打开复用后台任务。 - 模型等待期间仍能执行文件操作。 - 计算期间修改文件,后台重新计算最新内容。 - 连续保存时,最终内容、标题及标签保持最新版本。 - 模型失败时正文仍然保留。 - 待处理任务可在重新打开 Vault 后恢复。 frontend/src/services/apiClient.spec.ts 覆盖: - 挂起请求达到期限后中止,并返回可识别的超时错误。 - 请求成功后清除超时计时器。 frontend/src/stores/editorSave.spec.ts 覆盖: - 上一次保存尚未完成时继续输入,后续内容能够自动补存。 ### Mermaid frontend/src/components/common/DiagramInteractions.spec.ts 及编辑器图表相关测试覆盖: - 行内预览控制按钮。 - 中键启用滚轮缩放,移动鼠标后退出控制。 - 大幅滚轮输入仍保持有界缩放速度。 - 首次缩放基于实际显示宽度,而非 SVG 原始宽度。 - 缩放时调整滚动位置以跟随鼠标指向。 - 大图打开时适配窗口并重置旧滚动位置。 - 保留 HTML 节点与边标签,同时移除危险 HTML 属性。 另外已在浏览器检查类图标签布局:“1”“many”和“contains”的段落内边距为 0,实际文字高度未超出 SVG 标签框。 ## 建议合并前手动复核 以下步骤便于复核交互体验,不代表所有排列组合均已自动化覆盖。 ### 工作区入口 1. 在测试 Vault 中添加一份 Markdown 文件。 2. 刷新前端并打开 Vault。 3. 确认无需等待向量计算即可进入工作区,新文件可打开。 4. 后台计算期间尝试编辑或新建文件夹。 5. 确认状态栏能够显示后台索引状态。 ### 保存 1. 修改笔记并保存。 2. 保存期间继续输入内容。 3. 等待自动保存后切换文件,再重新打开。 4. 确认最后输入的内容完整保留。 5. 在隔离测试环境中模拟模型不可用,确认正文仍能保存,并显示索引失败状态。 ### 图表 1. 打开“03 Mermaid 图表集.md”。 2. 检查流程图、时序图、类图、状态图、ER 图和甘特图。 3. 检查类图的“1”“many”“contains”是否完整显示。 4. 打开甘特图大图,确认初始可见完整排期。 5. 连续滚轮缩放,确认没有突然跳大。 6. 将鼠标放在不同位置缩放,检查跟随效果。 7. 关闭后重新打开,确认没有沿用上次滚动位置。 ### 扩展安装 1. 使用社区示例 ZIP 安装 Skill 和 Plugin。 2. 检查安装后的功能入口。 3. 修改启用状态和插件授权后重启后端。 4. 确认安装记录及状态恢复。 5. 在测试副本中修改包内容,确认恢复校验能够识别变化。 ## 验证边界 - 本轮没有重新进行所有真实厂商 API 的专项验收。 - 无参考转写或说话人标注的音频结果,不能据此认定识别准确率达标。 - 生产构建仍有较大分块提示,未阻断构建。 - 本地尚未提交的笔记和架构文档额外修改不属于此次提交内容。
Kronecker added 12 commits 2026-09-06 03:01:44 +08:00
Author
Owner

已审阅 feat/model-usage-charts-and-paper-cards 相对 main 的改动。

审阅提交:a5c44c4
结论:未发现阻断合并的问题,建议合并。

审阅重点

  1. 工作区打开与保存

    • 确认正文保存不再等待模型计算。
    • 检查后台任务去重、待处理状态持久化和失败处理。
    • 检查计算期间修改笔记时的快照校验,避免旧结果覆盖新内容。
    • 检查连续输入时的自动补存行为。
  2. Mermaid

    • 检查大图尺寸适配、滚动位置重置及缩放基准。
    • 检查滚轮速度限制与鼠标位置跟随。
    • 检查 HTML 标签保留和编辑器样式造成的文字裁切。
  3. 扩展与模型调用

    • 检查 ZIP 路径及解压限制。
    • 检查安装状态恢复、包内容校验和卸载目录边界。
    • 检查上下文预算与压缩失败时对原始对话的保留。
    • 检查 Agent 事件流重连及去重逻辑。

验证证据

  • 后端全量测试:621 项通过。
  • 前端全量测试:345 项通过。
  • 前端生产构建:通过。
  • 浏览器验证:工作区能够正常进入;类图关系标签实际高度未超出 SVG 标签框。
  • git merge-tree 模拟合并:与最新 main 无冲突。
  • git ls-remote 核对:远程分支与本地审阅提交一致。

复核方法

在 backend 目录运行:

.venv/Scripts/python.exe -m pytest -q -p no:cacheprovider

在 frontend 目录运行:

npm test -- --run
npm run build

手动重点复核:

  • 新增笔记后打开 Vault,不等待向量计算即可进入。
  • 保存期间继续输入,重新打开后内容完整。
  • 模型不可用时正文仍保存成功,索引失败单独呈现。
  • 类图关系标签完整,甘特图大图初始适配。
  • Skill、Plugin 安装状态在重启后恢复。

本结论针对 a5c44c4,不将自动化通过等同于所有真实厂商和设备场景均已验收。若 PR 后续增加提交,需重新检查新增改动及合并状态。

已审阅 feat/model-usage-charts-and-paper-cards 相对 main 的改动。 审阅提交:a5c44c4 结论:未发现阻断合并的问题,建议合并。 ## 审阅重点 1. 工作区打开与保存 - 确认正文保存不再等待模型计算。 - 检查后台任务去重、待处理状态持久化和失败处理。 - 检查计算期间修改笔记时的快照校验,避免旧结果覆盖新内容。 - 检查连续输入时的自动补存行为。 2. Mermaid - 检查大图尺寸适配、滚动位置重置及缩放基准。 - 检查滚轮速度限制与鼠标位置跟随。 - 检查 HTML 标签保留和编辑器样式造成的文字裁切。 3. 扩展与模型调用 - 检查 ZIP 路径及解压限制。 - 检查安装状态恢复、包内容校验和卸载目录边界。 - 检查上下文预算与压缩失败时对原始对话的保留。 - 检查 Agent 事件流重连及去重逻辑。 ## 验证证据 - 后端全量测试:621 项通过。 - 前端全量测试:345 项通过。 - 前端生产构建:通过。 - 浏览器验证:工作区能够正常进入;类图关系标签实际高度未超出 SVG 标签框。 - git merge-tree 模拟合并:与最新 main 无冲突。 - git ls-remote 核对:远程分支与本地审阅提交一致。 ## 复核方法 在 backend 目录运行: .venv/Scripts/python.exe -m pytest -q -p no:cacheprovider 在 frontend 目录运行: npm test -- --run npm run build 手动重点复核: - 新增笔记后打开 Vault,不等待向量计算即可进入。 - 保存期间继续输入,重新打开后内容完整。 - 模型不可用时正文仍保存成功,索引失败单独呈现。 - 类图关系标签完整,甘特图大图初始适配。 - Skill、Plugin 安装状态在重启后恢复。 本结论针对 a5c44c4,不将自动化通过等同于所有真实厂商和设备场景均已验收。若 PR 后续增加提交,需重新检查新增改动及合并状态。
Kronecker merged commit b265a5528a into main 2026-09-06 03:02:16 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Kronecker/NotesAgentic#31