Files
Nexus/docs/design/plans/2026-06-11-browser-nav-bookmarks.md
T
Nexus Agent e833b923c8 feat(browser): 远程浏览器 Worker 桥接与顶栏固定悬浮窗
接入 Playwright Worker、会话 WebSocket 与全局浏览器面板(固定于 App Bar 下);
含验证码 stealth、设置项默认音与 URL 安全校验;附带 worker 部署与设计文档。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 06:49:20 +08:00

44 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 实施说明 — 浏览器网站导航(收藏)
> 设计:`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.url``addressDraft`
4. 侧栏:`sidebarMode: 'nav' | 'history' | null`
5. 对话框:`v-dialog` 名称 + URL`normalizeBrowserUrl` 校验
6. 空白页:`v-chip` / 列表展示 `navLinks`,点击 `openUrl`
## 测试要点
```bash
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`)已上线