Document the VSCode-like local-first product shape, demote Convex to a control-plane role, and retire stale architecture drafts. Add local workspace migration/export references plus smoke coverage for no-Convex managed workspace startup, local markdown title/body/options persistence, asset upload behavior, and Convex fixture export. Verification: git diff --cached --check; node scripts/check-local-first-convex-guard.js --staged; node scripts/task444-convex-workspace-export-local-fixture-smoke.js; node scripts/task166-local-first-managed-workspace-no-convex-smoke.js; node scripts/task167-local-markdown-title-body-options-no-convex-smoke.js
65 lines
1.9 KiB
Markdown
65 lines
1.9 KiB
Markdown
# 7-31 [done][bug] 页面 AI block_edit_workflow 丢弃读取类回答摘要 v1
|
||
|
||
> 发现时间:2026-05-18
|
||
>
|
||
> 状态:`[done]`
|
||
>
|
||
> 关联主线:`07-ai`
|
||
|
||
## 1. 用户可见症状
|
||
|
||
在页面 AI 使用 `ACP · Reasonix` 输入:
|
||
|
||
```text
|
||
检查你是否能读取到本页第一段,同时请修改第二段为:测试123
|
||
```
|
||
|
||
`block_edit_workflow` 即使完成写入,前端也只显示固定文案:
|
||
|
||
```text
|
||
已通过页面 markdown 编辑快路径完成写入。
|
||
```
|
||
|
||
用户要求中的“是否能读取到第一段”没有被回答。
|
||
|
||
## 2. 根因
|
||
|
||
`page_ai_workflow.rs` 的模型提示已经要求模型输出:
|
||
|
||
```json
|
||
{"operations": [...], "summary": "..."}
|
||
```
|
||
|
||
但路由只提取 `operations`,丢弃了 `summary`,并在成功响应中固定返回“已通过页面 markdown 编辑快路径完成写入。”。
|
||
|
||
这会让读写混合请求退化为纯写入反馈。
|
||
|
||
## 3. 修复
|
||
|
||
- 新增 `MarkdownEditPlan`,同时解析模型输出中的 `operations` 与 `summary`。
|
||
- `block_edit_workflow` 成功响应优先返回模型 `summary`,缺失时才使用固定 fallback。
|
||
- 系统提示明确要求:如果用户要求读取某段,`summary` 必须包含从 `page_text` 读取到的原文。
|
||
- 新增回归测试 `block_edit_workflow_surfaces_model_summary_for_read_and_edit_request`,覆盖“读取第一段 + 修改第二段”的真实快路径响应。
|
||
|
||
## 4. 验证
|
||
|
||
RED:
|
||
|
||
```bash
|
||
cargo test --manifest-path rust/Cargo.toml -p mnote-web block_edit_workflow_surfaces_model_summary_for_read_and_edit_request -- --nocapture
|
||
```
|
||
|
||
旧实现失败,`payload.message` 不包含 `已读取第一段:第一段`。
|
||
|
||
GREEN:
|
||
|
||
```bash
|
||
cargo test --manifest-path rust/Cargo.toml -p mnote-web page_ai_workflow -- --nocapture
|
||
```
|
||
|
||
结果:`5 passed`。
|
||
|
||
## 5. 剩余边界
|
||
|
||
本修复只保证 fast workflow 成功响应不丢模型摘要;复杂多步推理、review session、流式 apply 仍属于 Phase C 冻结范围。
|