Files
mnote/design/05-editor-mainline/process/5-35-navigation-breadcrumb-fetch-guard-followup-v1.md
T

47 lines
2.3 KiB
Markdown
Raw Normal View History

2026-06-01 09:29:12 +08:00
# 5-35 导航页 breadcrumb 与 fetch guard follow-up v1
> 状态:process
>
> Owner05-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 无明确页面时显示导航页,不再自动打开默认 Markdownrecent 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 truthcanonical 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`