Files
Nexus/docs/design/plans/2026-06-11-browser-nav-bookmarks.md
2026-07-08 22:31:31 +08:00

1.6 KiB
Raw Permalink Blame History

实施说明 — 浏览器网站导航(收藏)

设计:docs/design/specs/2026-06-11-browser-nav-bookmarks-design.md

涉及文件(计划)

文件 动作
server/utils/browser_ui_state.py nav_links 解析与上限
server/api/browser.py BrowserNavLinkState / PUT 字段
tests/test_browser_ui_state.py test_parse_nav_links
frontend/src/composables/useGlobalBrowser.ts navLinks + add/update/remove + persist
frontend/src/components/GlobalBrowserPanel.vue 侧栏 Tab、列表、添加/编辑对话框、空白页快捷入口
docs/changelog/2026-06-11-browser-nav-bookmarks.md 完成后记录

前端步骤

  1. BrowserNavLink 类型与 applyServerState / persistState 带上 nav_links
  2. addNavLink(title, url) · updateNavLink(id, …) · removeNavLink(id)
  3. addCurrentPageToNav() — 取 activeTab.urladdressDraft
  4. 侧栏:sidebarMode: 'nav' | 'history' | null
  5. 对话框:v-dialog 名称 + URLnormalizeBrowserUrl 校验
  6. 空白页:v-chip / 列表展示 navLinks,点击 openUrl

测试要点

pytest tests/test_browser_ui_state.py -q
cd frontend && npm run type-check
  • 添加 3 条导航 → PUT → GET 往返一致
  • 超 64 条截断;非法 URL 过滤
  • UI:编辑后刷新仍显示

回滚

  • 前端未发版:仅后端多返回空 nav_links,兼容
  • 回滚前端:导航 UI 消失,DB 中 JSON 保留无害

依赖

  • 全局浮动浏览器(GlobalBrowserPanel + /api/browser/state)已上线