docs: 继续收口设计稿状态与主线口径
This commit is contained in:
+15
-11
@@ -1,7 +1,11 @@
|
||||
# 5-10 [process] Wolai 页面设置与 AI 交互壳对齐方案 v1
|
||||
# 5-10 [done] Wolai 页面设置与 AI 交互壳对齐方案 v1
|
||||
|
||||
> 更新时间:2026-05-06
|
||||
>
|
||||
> 状态说明:
|
||||
> - 本稿对应的页面设置 `popover`、页面 AI `drawer`、入口位置与最小接线方案已在当前 `mnote-web` 文档壳中落地,故迁入 `done/`
|
||||
> - 本稿中的 deferred 项继续由后续独立任务推进,不影响这一轮“页面设置 + 页面 AI 交互壳”完成判定
|
||||
>
|
||||
> 关联文档:
|
||||
> - `/mnt/Data1T/mnote/ARCHITECTURE.md`
|
||||
> - `/mnt/Data1T/mnote/design/01-05-current-priority-overview.md`
|
||||
@@ -348,7 +352,7 @@ Wolai 里页面设置和 AI 的第一感受,首先是:
|
||||
|
||||
负责。
|
||||
|
||||
因此本轮入口层优先落在 React compat 主路径,而不是先去大改 Rust SSR 占位按钮。
|
||||
因此本轮入口层最终落在当前 `mnote-web` / Rust SSR 文档壳主路径,而不是回到 React compat 交互 owner。
|
||||
|
||||
首批调整建议:
|
||||
|
||||
@@ -358,9 +362,9 @@ Wolai 里页面设置和 AI 的第一感受,首先是:
|
||||
|
||||
理由:
|
||||
|
||||
- 当前现网入口真正在这里
|
||||
- 直接改这里可以最小改动验证体验
|
||||
- 先把交互壳对齐,再决定 Rust SSR 侧是否同步收口
|
||||
- 当前 `3000` 主壳 owner 已是 `mnote-web`
|
||||
- 页面设置与页面 AI 的入口、容器和状态合同已经在 Rust SSR 文档壳中集中落地
|
||||
- 继续把入口回接到 React compat 会重新制造双 owner 歧义
|
||||
|
||||
## 7.2 页面设置面板组件
|
||||
|
||||
@@ -437,15 +441,15 @@ Wolai 里页面设置和 AI 的第一感受,首先是:
|
||||
|
||||
Rust `mnote-web` 当前在文档壳中已有顶栏占位按钮与右下角浮动按钮。
|
||||
|
||||
本轮不把 Rust SSR 作为首批真实交互 owner,原因是:
|
||||
当前实现已经把 Rust SSR 作为这一轮真实交互 owner,原因是:
|
||||
|
||||
- 当前现网文档页真实入口仍由 React compat 壳主导
|
||||
- 先在 React compat 层做对入口与容器,风险更低
|
||||
- 等行为稳定后,再决定是否把 Rust SSR 占位按钮收口到同一 contract
|
||||
- 当前 `3000` 文档页主壳就是 `mnote-web`
|
||||
- 页面设置与页面 AI 的入口、容器和状态合同已收口到同一份 Rust shell/runtime contract
|
||||
- React compat 不再承担这一轮页面设置与页面 AI 的默认交互 owner
|
||||
|
||||
这意味着本轮的正确做法是:
|
||||
这意味着本轮完成后的正确做法是:
|
||||
|
||||
> **先统一产品行为合同,再决定是否让 Rust SSR 与 React compat 共用同一套入口渲染。**
|
||||
> **以 Rust SSR / `mnote-web` 文档壳作为默认行为 owner;React compat 只保留兼容与过渡边界。**
|
||||
|
||||
---
|
||||
|
||||
+6
-2
@@ -1,9 +1,13 @@
|
||||
# 5-11 [process] Wolai 页面设置与 AI 交互壳连续执行 checklist v1
|
||||
# 5-11 [done] Wolai 页面设置与 AI 交互壳连续执行 checklist v1
|
||||
|
||||
> 更新时间:2026-05-06
|
||||
>
|
||||
> 状态说明:
|
||||
> - 本清单覆盖的页面设置 A/B、页面 AI C、集成护栏 D 均已完成并有 `task160/161/162` 证据,故迁入 `done/`
|
||||
> - `X1-X6` 属于明确 deferred 项,不构成这轮完成阻塞
|
||||
>
|
||||
> 本清单服务于:
|
||||
> - `/mnt/Data1T/mnote/design/05-editor-mainline/process/5-10-wolai-page-settings-and-ai-surface-alignment-v1.md`
|
||||
> - `/mnt/Data1T/mnote/design/05-editor-mainline/done/5-10-wolai-page-settings-and-ai-surface-alignment-v1.md`
|
||||
>
|
||||
> 执行口径继续统一服从:
|
||||
> - `/home/lix/.codex/skills/wolai-aline/SKILL.md`
|
||||
@@ -6,7 +6,7 @@
|
||||
>
|
||||
> 现在的问题不再是“这套模板能不能迁进来”,而是:
|
||||
>
|
||||
> **我们已经做出了一版 `leptos-tiptap` 编辑器,接下来应该从官方模板中保留什么行为模型,并优先把它接入主编辑器。**
|
||||
> **默认主编辑器已经切到页面内 `leptos-tiptap` island;当前问题转为:应该从官方模板保留什么行为模型,并优先把哪些能力继续收口到当前主编辑器主链。**
|
||||
|
||||
## 1. 修正后的总判断
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
这份文档只解决一个已经开始偏掉的问题:
|
||||
|
||||
> **当 `mnote` 决定继续采用 `Tiptap + leptos-tiptap` 作为主编辑器输入 runtime 时,如何避免把“过渡桥接层”误当成“Rust + Leptos 主线已经成立”。**
|
||||
> **当 `mnote` 已经采用 `Tiptap + leptos-tiptap` 作为默认主编辑器输入 runtime 时,如何避免把剩余过渡适配层误当成“Rust + Leptos 主线已经完全成立”。**
|
||||
|
||||
当前需要纠偏的不是:
|
||||
|
||||
@@ -50,27 +50,26 @@
|
||||
|
||||
### 2.2 当前偏差也已经很明确
|
||||
|
||||
当前未提交改动里的主要偏差不是“换成了 `leptos-tiptap`”,而是:
|
||||
当前需要继续纠偏的主要偏差不是“换成了 `leptos-tiptap`”,而是:
|
||||
|
||||
- 在真实文档页主链里,已经把 `BlockNoteEditor` 直接替成了新的 `EditorHost`
|
||||
- 默认文档页主链虽然已经切到页面内 `leptos-tiptap` island
|
||||
- `/mnt/Data1T/mnote/wolai-frontend/src/components/editor/document-content.tsx`
|
||||
- 这个 `EditorHost` 当前又固定只挂 `leptos-tiptap`
|
||||
- `/mnt/Data1T/mnote/wolai-frontend/src/components/editor/editor-host.tsx`
|
||||
- 当前 host 的真实承载方式是 `iframe + postMessage + 8123 runtime + TS converter + 旧 /api/documents/save`
|
||||
- `/mnt/Data1T/mnote/wolai-frontend/src/components/editor/leptos-tiptap-editor-host.tsx`
|
||||
- 但仍保留 TS converter、fallback host、兼容保存链与部分 host/runtime 过渡层
|
||||
- `/mnt/Data1T/mnote/wolai-frontend/src/lib/documents/tiptap-content-converter.ts`
|
||||
- `/mnt/Data1T/mnote/wolai-frontend/src/components/editor/blocknote-editor.tsx`
|
||||
|
||||
这条线的问题不是“代码不能运行”,而是:
|
||||
|
||||
> **它把 `leptos-tiptap` 先落成了一个“跨 iframe 的外来 runtime”,而不是一个真正受 Rust truth 和 Leptos 页面模型约束的主编辑区。**
|
||||
> **它虽然已经是页面内主编辑器,但剩余 fallback / adapter / 兼容保存链还没有完全退到过渡边界。**
|
||||
|
||||
### 2.3 当前最该回退的不是 Tiptap,而是默认主链切换方式
|
||||
|
||||
当前最该回退的是:
|
||||
当前最该继续收口的是:
|
||||
|
||||
- **默认主文档页直接切到 `iframe host`**
|
||||
- **把 TS converter + `/api/documents/save` 当成正式保存边界**
|
||||
- **把 `documentEditorHost = leptos_tiptap` 提前写成事实默认值**
|
||||
- **把 TS converter 继续降级为过渡适配层**
|
||||
- **把 fallback host / 兼容保存链继续收回到非主路径**
|
||||
- **让默认 `leptos-tiptap` 主链更多直接消费 Rust-first projection / command 边界**
|
||||
|
||||
当前不该回退的是:
|
||||
|
||||
|
||||
+3
-3
@@ -133,12 +133,12 @@
|
||||
|
||||
| 项 | Wolai Hermes | 本地 `3000` | 后续处理 |
|
||||
| --- | --- | --- | --- |
|
||||
| 首屏入口 | owner 登录态直接显示 `Hermes` 正文页,标题、正文、页面树同屏 | 默认是聚合 / 预览壳,正文编辑器需点击 `打开当前页面` 才出现 | 拆成 P0/P1 独立任务;先用 smoke 固化“普通文档首屏直接进入正文体验”或明确产品降级 |
|
||||
| 首屏入口 | owner 登录态直接显示 `Hermes` 正文页,标题、正文、页面树同屏 | `task130` 后已改为根页直接进入 document shell + editor island;历史上曾停留在聚合 / 预览壳 | 后续仅继续收口侧栏数据、视觉密度与 owner/published 状态差异 |
|
||||
| 侧栏数据与选中态 | 真实空间树,当前页在 `个人 / 软件开发 / Hermes` 路径下,红色选中态明显 | anonymous 示例树,当前页为 `1111`,行密度和图标体系仍偏本地化 | Sidebar checklist 必须同时验视觉和真实 active path |
|
||||
| 搜索入口 | 左侧放大镜可打开全局搜索;本轮 `Ctrl+K` 未稳定打开,`Ctrl+P` 在另一轮可 toggle | 顶栏搜索可打开;侧栏搜索曾修为 modal;`Ctrl+P` 可 toggle | 搜索任务不得只测一个入口;需记录每个入口、快捷键和 URL |
|
||||
| 搜索控件 | modal 居中,遮罩、结果行、快捷键提示完整;switch 视觉可见 | modal 结构接近,`role="switch"` 可测;不同输入下结果为空或本地数据结果 | switch 默认状态必须同时记录截图和 `aria-checked`,结果态需拆数据差异与控件差异 |
|
||||
| 搜索结果 | 输入 `Hermes` 命中页面和块,结果有红色高亮和路径 | 本地同词可出现空态或示例数据结果,取决于当前页面数据 | 建立固定本地 fixture 或 smoke 种子,不能用随机工作区数据验视觉 |
|
||||
| 正文编辑区 | 首屏正文 `contenteditable=true`,标题也可编辑 | 首屏无可见编辑区;点击后出现 title textarea 与 `.tiptap.ProseMirror` | 文档画布任务必须先消除“打开当前页面”入口语义差异或显式记录降级 |
|
||||
| 正文编辑区 | 首屏正文 `contenteditable=true`,标题也可编辑 | 当前已在首屏直接出现主编辑区;剩余差异转为标题区、正文密度与块交互细节 | 文档画布任务继续聚焦主编辑器体验,而不是首屏入口纠偏 |
|
||||
| 编辑焦点风险 | Wolai 标题和正文均可编辑,测试输入曾误落到标题,已清理 | 本地输入 / 撤销可完成,但页面结构不同 | editable-test mode 前必须先断言焦点 block 类型,优先在正文末尾新建唯一测试块 |
|
||||
| 块 hover | 正文块左侧出现轻量块控制入口,视觉很克制 | 本地显示 `+` 与拖拽/块句柄按钮,但位置、密度、内容列差异明显 | E2-E4 必须以截图和 hover 点位复核,不可只看按钮存在 |
|
||||
|
||||
@@ -357,7 +357,7 @@ mnote 当前差距:
|
||||
|
||||
- 当前本地文档页标题偏靠左且偏低,内容列与真实 Wolai 相比没有稳定对齐。
|
||||
- 当前显示“个人空间 / 工作区首页”元信息和横向分割线,这不是 Wolai 普通文档页默认观感。
|
||||
- 当前正文首块是“打开当前页面”链接,和目标 `Hermes` 的普通块 / 任务块 / 段落展示差异较大。
|
||||
- 历史上首屏正文首块曾是“打开当前页面”链接;`task130` 之后这条差异已收口,当前重点转向主编辑区密度、块 hover 和 toolbar 细节。
|
||||
- 右下角绿色 AI 浮动按钮比 Wolai 更重,真实 Wolai 是更轻的 AI 方形入口和问号入口。
|
||||
|
||||
### 4.5 主编辑器块级体验
|
||||
|
||||
@@ -27,17 +27,16 @@
|
||||
|
||||
| 项 | Wolai 证据 | 本地证据 | 当前结论 |
|
||||
| --- | --- | --- | --- |
|
||||
| 首屏 | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/doc-baseline-mini/wolai-initial.png` | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/doc-baseline-mini/local-initial.png` | 本地首屏仍是聚合/预览壳,需点击 `打开当前页面` 才进入正文,和 Wolai 直接正文页不一致 |
|
||||
| 首屏 | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/doc-baseline-mini/wolai-initial.png` | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/doc-baseline-mini/local-initial.png` | 历史基线显示本地首屏曾停留在聚合/预览壳;该差异已由 `task130` 收口,当前保留为基线证据 |
|
||||
| 搜索 modal | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/baseline-20260430/wolai-03-search-modal-controls-filled.png` | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/baseline-20260430/local-03-search-modal-controls-filled.png` | 容器接近;结果态、数据、入口矩阵仍需拆开验;switch 状态必须截图 + `aria-checked` 双证据 |
|
||||
| 块 hover | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/baseline-20260430/wolai-08-block-hover-insert-entry.png` | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/baseline-20260430/local-14-block-hover-insert-entry.png` | 本地已有 `+` 与手柄入口,但位置、密度、页面状态不同,不可判定已对齐 |
|
||||
| 编辑清理 | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/baseline-20260430/wolai-14-title-suffix-after.png` | `/mnt/Data1T/mnote/tmp/wolai-editor-parity/baseline-20260430/local-16-editor-after-undo-cleanup.png` | Wolai 标题和正文都可编辑,editable-test 前必须先确认焦点 block 类型 |
|
||||
|
||||
当前必须优先拆解的差异:
|
||||
当前仍需优先拆解的差异:
|
||||
|
||||
1. 普通文档首屏入口语义:Wolai 直接显示正文页,本地仍需点击 `打开当前页面`。
|
||||
2. 搜索入口矩阵:Wolai 左侧搜索可打开,`Ctrl+K` 本轮未稳定;本地顶栏搜索可打开,侧栏入口和快捷键要继续按 smoke 验证。
|
||||
3. 搜索结果数据:Wolai 对 `Hermes` 有真实结果,本地依赖当前工作区示例数据;后续需要固定 fixture 或种子。
|
||||
4. 编辑器测试焦点:写入前必须确认当前焦点在正文测试块,不在标题或 breadcrumb 渲染副本。
|
||||
1. 搜索入口矩阵:Wolai 左侧搜索可打开,`Ctrl+K` 本轮未稳定;本地侧栏入口和快捷键要继续按 smoke 验证。
|
||||
2. 搜索结果数据:Wolai 对 `Hermes` 有真实结果,本地依赖当前工作区示例数据;后续需要固定 fixture 或种子。
|
||||
3. 编辑器测试焦点:写入前必须确认当前焦点在正文测试块,不在标题或 breadcrumb 渲染副本。
|
||||
|
||||
|
||||
### 2.1 task129 Phase A 执行记录
|
||||
@@ -69,8 +68,7 @@ subagent 复测:
|
||||
主线程截图复核结论:
|
||||
|
||||
- Wolai Hermes 为 owner 登录态,直接显示正文页和 `全网公开` 状态。
|
||||
- 本地 `3000` 工作区可见,但首屏仍停留在聚合 / 预览入口,需要点击 `打开当前页面` 才进入正文。
|
||||
- `task129` 只证明取证工具链可用,不证明 UI 已对齐;后续首个实现任务应优先处理 `D9 普通文档首屏入口语义`。
|
||||
- `task129` 只证明取证工具链可用,不证明 UI 已对齐;其中暴露出的 `D9 普通文档首屏入口语义` 已在后续 `task130` 中收口。
|
||||
|
||||
### 2.2 task130 D9 执行记录
|
||||
|
||||
|
||||
Reference in New Issue
Block a user