Fix/frontend review findings #3

Merged
Kronecker merged 16 commits from fix/frontend-review-findings into main 2026-08-30 00:16:35 +08:00
Owner

变更概述

本 PR 完成第一阶段全部前端页面,并根据多轮代码审阅修复前端构建、接口契约、状态一致性、Markdown 渲染和文件编辑安全问题。

主要功能

  • 完成 Workspace、Search、Chat、Agent、Tasks 页面。
  • 完成 Skill、Plugin、Theme、Settings 管理页面。
  • 接通 FastAPI HTTP 接口和 Chat、Agent SSE。
  • 增加完整路由、功能型二级侧栏和可收起主导航。
  • 增加 Ctrl+P 命令面板。
  • 支持 Provider、Model、RAG、Tool、Permission 和 Agent Trace。
  • 支持主题切换和编辑器偏好设置。

Markdown 与编辑器

  • 使用 marked 解析 GFM Markdown。
  • 使用 DOMPurify 清洗渲染结果,避免 HTML 注入。
  • 编辑器支持 Markdown 输入和实时预览。
  • Chat 回答支持标题、列表、引用、代码块、表格和图片等格式。
  • 自动保存使用正文和文件路径快照。
  • 文件切换前等待当前保存完成。
  • 保存失败或存在编辑冲突时阻止切换,避免丢稿。
  • 修复快速切换文件造成的异步读取覆盖。

Workspace 修复

  • 修复文件和文件夹重命名后路径未同步的问题。
  • 递归更新文件夹子节点、打开文件和编辑器路径。
  • 修复删除活动文件后标题与正文错位。
  • Web Mock 在当前运行期间保存编辑内容。
  • 修复根目录新增文件路径和文件树更新。

Chat 与 Agent

  • Chat 支持:

    • TextDelta
    • ThinkingDelta
    • ToolCallStart
    • ToolCallDelta
    • ToolCallEnd
    • Usage
    • Citation
    • Error
    • Done
  • Agent Trace 支持历史事件重放和事件去重。

  • 修复 PermissionRequest 跨 Run 残留。

  • ToolResult 和终态事件会正确清理权限弹窗。

  • 同步更新 Run 的运行、等待权限、完成、失败和取消状态。

Task、Search 与 Settings

  • 修复 Task note_id 创建、更新和解除关联。
  • 暂时移除后端尚未持久化的 Priority、Source 编辑入口。
  • Vector、Embedding、Model 或 Provider 不可用时自动降级到 FTS。
  • 接通自动保存间隔、默认编辑模式、拼写检查、字号、行高和行宽。
  • 修复主题外观恢复顺序,防止本地配置被默认值覆盖。
  • 增加实际可用的 Sepia 护眼主题。
  • 支持恢复最近使用的 Vault。

接口与工程修复

  • 对齐 FastAPI OpenAPI Contract。
  • 区分前端 View Model 和 API Wire DTO。
  • 修复 SSE 跨 Chunk、CRLF 和多行数据解析。
  • 修复 TypeScript 路径别名和缺失组件导致的构建失败。
  • 删除统一占位页面,所有业务路由均指向真实页面。

安全说明

  • Markdown HTML 必须经过 DOMPurify 清洗。
  • 前端不保存或回显 API Key 明文。
  • 高影响 Agent Tool 不会被默认批准。
  • 文件切换、删除和冲突状态不会静默覆盖未保存正文。

验证结果

pnpm install --frozen-lockfile    passed
pnpm build                        passed
uv run pytest                     62 passed
git diff --check                  passed
Vite frontend                     HTTP 200
Vite /health proxy                ok
Vite /api/providers proxy         ok

后端测试在 Windows 下存在 .pytest_cache 无写入权限警告,但不影响 62 项测试结果。

文档

已更新:

  • docs/前端壳子与接口层开发说明.md
  • docs/前端合并审阅问题与修复复盘.md

合并建议

当前分支包含远程 main 的全部提交,无已知冲突或合并阻塞问题,可以合并。

## 变更概述 本 PR 完成第一阶段全部前端页面,并根据多轮代码审阅修复前端构建、接口契约、状态一致性、Markdown 渲染和文件编辑安全问题。 ### 主要功能 - 完成 Workspace、Search、Chat、Agent、Tasks 页面。 - 完成 Skill、Plugin、Theme、Settings 管理页面。 - 接通 FastAPI HTTP 接口和 Chat、Agent SSE。 - 增加完整路由、功能型二级侧栏和可收起主导航。 - 增加 `Ctrl+P` 命令面板。 - 支持 Provider、Model、RAG、Tool、Permission 和 Agent Trace。 - 支持主题切换和编辑器偏好设置。 ### Markdown 与编辑器 - 使用 `marked` 解析 GFM Markdown。 - 使用 DOMPurify 清洗渲染结果,避免 HTML 注入。 - 编辑器支持 Markdown 输入和实时预览。 - Chat 回答支持标题、列表、引用、代码块、表格和图片等格式。 - 自动保存使用正文和文件路径快照。 - 文件切换前等待当前保存完成。 - 保存失败或存在编辑冲突时阻止切换,避免丢稿。 - 修复快速切换文件造成的异步读取覆盖。 ### Workspace 修复 - 修复文件和文件夹重命名后路径未同步的问题。 - 递归更新文件夹子节点、打开文件和编辑器路径。 - 修复删除活动文件后标题与正文错位。 - Web Mock 在当前运行期间保存编辑内容。 - 修复根目录新增文件路径和文件树更新。 ### Chat 与 Agent - Chat 支持: - `TextDelta` - `ThinkingDelta` - `ToolCallStart` - `ToolCallDelta` - `ToolCallEnd` - `Usage` - `Citation` - `Error` - `Done` - Agent Trace 支持历史事件重放和事件去重。 - 修复 PermissionRequest 跨 Run 残留。 - ToolResult 和终态事件会正确清理权限弹窗。 - 同步更新 Run 的运行、等待权限、完成、失败和取消状态。 ### Task、Search 与 Settings - 修复 Task `note_id` 创建、更新和解除关联。 - 暂时移除后端尚未持久化的 Priority、Source 编辑入口。 - Vector、Embedding、Model 或 Provider 不可用时自动降级到 FTS。 - 接通自动保存间隔、默认编辑模式、拼写检查、字号、行高和行宽。 - 修复主题外观恢复顺序,防止本地配置被默认值覆盖。 - 增加实际可用的 Sepia 护眼主题。 - 支持恢复最近使用的 Vault。 ### 接口与工程修复 - 对齐 FastAPI OpenAPI Contract。 - 区分前端 View Model 和 API Wire DTO。 - 修复 SSE 跨 Chunk、CRLF 和多行数据解析。 - 修复 TypeScript 路径别名和缺失组件导致的构建失败。 - 删除统一占位页面,所有业务路由均指向真实页面。 ### 安全说明 - Markdown HTML 必须经过 DOMPurify 清洗。 - 前端不保存或回显 API Key 明文。 - 高影响 Agent Tool 不会被默认批准。 - 文件切换、删除和冲突状态不会静默覆盖未保存正文。 ### 验证结果 ```text pnpm install --frozen-lockfile passed pnpm build passed uv run pytest 62 passed git diff --check passed Vite frontend HTTP 200 Vite /health proxy ok Vite /api/providers proxy ok ``` 后端测试在 Windows 下存在 `.pytest_cache` 无写入权限警告,但不影响 62 项测试结果。 ### 文档 已更新: - `docs/前端壳子与接口层开发说明.md` - `docs/前端合并审阅问题与修复复盘.md` ### 合并建议 当前分支包含远程 `main` 的全部提交,无已知冲突或合并阻塞问题,可以合并。
Kronecker added 16 commits 2026-08-30 00:16:27 +08:00
Kronecker merged commit 32f6bd6468 into main 2026-08-30 00:16:35 +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#3