47 lines
2.3 KiB
Markdown
47 lines
2.3 KiB
Markdown
# 5-35 导航页 breadcrumb 与 fetch guard follow-up v1
|
||||
|
|
|
|||
|
|
> 状态:process
|
|||
|
|
>
|
|||
|
|
> Owner:05-editor-mainline / 03-rust-web
|
|||
|
|
>
|
|||
|
|
> 创建时间:2026-06-01
|
|||
|
|
>
|
|||
|
|
> 来源:`design/05-editor-mainline/done/5-33-navigation-page-route-guard-checklist-v1.md` 归档后拆出的增强尾项。
|
|||
|
|
|
|||
|
|
## 背景
|
|||
|
|
|
|||
|
|
`5-33` 已完成导航页主路径:`/` 与 local-folder / folder scope 无明确页面时显示导航页,不再自动打开默认 Markdown;recent folders/pages、删除页 fallback、未登录 route guard、导航页首屏不注入 editor / aggregate 均已有测试和 browser smoke。
|
|||
|
|
|
|||
|
|
剩余问题不应继续阻塞主清单,但仍属于工作区体验尾项:
|
|||
|
|
|
|||
|
|
- 文档页 breadcrumb 的文件夹段应逐级回到对应 folder navigation page。
|
|||
|
|
- 浏览器交互 fetch 返回 `401/404/410` 时,当前页面应有统一恢复策略,而不是只依赖服务端 HTML route guard。
|
|||
|
|
|
|||
|
|
## 目标
|
|||
|
|
|
|||
|
|
- 点击文档页 breadcrumb 文件夹段时,进入对应 `fileTreeScope` 的导航页,并保持 Sidebar Explorer scope 一致。
|
|||
|
|
- 当前页面相关 fetch 返回 `404/410` 时,回到当前资源所在父 folder navigation page,并显示轻量提示。
|
|||
|
|
- 当前交互 fetch 返回 `401` 时,跳转 `/auth?next=<current-url>`。
|
|||
|
|
- 保留普通业务错误 toast,不把所有 API 错误都吞成导航跳转。
|
|||
|
|
|
|||
|
|
## 非目标
|
|||
|
|
|
|||
|
|
- 不重新打开 `5-33` 的导航页主清单。
|
|||
|
|
- 不新增第二套 route truth;canonical route guard 仍在 Rust HTML shell。
|
|||
|
|
- 不改变 FileTree 普通文件夹点击只展开的行为。
|
|||
|
|
- 不为所有后台 API 加全局 silent redirect。
|
|||
|
|
|
|||
|
|
## 验收
|
|||
|
|
|
|||
|
|
- [ ] breadcrumb 文件夹段点击后 URL 包含对应 `fileTreeScope`,主区域是 folder navigation page。
|
|||
|
|
- [ ] Sidebar Explorer 与主区域 scope 一致。
|
|||
|
|
- [ ] 当前文档相关 fetch 返回 `404/410` 时回到父 folder navigation page。
|
|||
|
|
- [ ] 当前交互 fetch 返回 `401` 时跳转 auth 并携带 `next`。
|
|||
|
|
- [ ] `task500-navigation-page-route-guard-smoke.js` 继续通过,或新增 `task5xx-navigation-breadcrumb-fetch-guard-smoke.js` 覆盖本文尾项。
|
|||
|
|
|
|||
|
|
## 建议验证
|
|||
|
|
|
|||
|
|
- `cargo test --manifest-path rust/Cargo.toml -p mnote-web root_entry -- --test-threads=1`
|
|||
|
|
- `cargo test --manifest-path rust/Cargo.toml -p mnote-web local_folder -- --test-threads=1`
|
|||
|
|
- `node scripts/task500-navigation-page-route-guard-smoke.js`
|