70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
# Batch B2 Worker F:Local Search Index Page Settings Panel
|
||||
|
|
|
|||
|
|
项目根目录:`/mnt/Data1T/mnote`
|
|||
|
|
|
|||
|
|
你不是单独在代码库里工作,可能有其他 worker 并行执行。不要回滚、覆盖或格式化与你任务无关的文件;不要提交 git。
|
|||
|
|
|
|||
|
|
## 背景
|
|||
|
|
|
|||
|
|
Batch B Worker C 运行 `scripts/task452-local-search-index-browser-smoke.js`:
|
|||
|
|
|
|||
|
|
- `/api/search/documents` 返回 200,结果包含 `LOCAL-SEARCH-*` token。
|
|||
|
|
- 失败点在 page-settings 索引页签:`wolai-page-settings-local-index-backlinks` / `wolai-page-settings-local-index-tags` 30 秒内没有渲染出 `"Search Smoke"` 和 `"#alpha"`。
|
|||
|
|
- 结果文件:`tmp/task452-local-search-index-browser-smoke/result.json`。
|
|||
|
|
|
|||
|
|
初步入口:
|
|||
|
|
|
|||
|
|
- `rust/crates/mnote-web/src/ssr/pages/layout.rs`
|
|||
|
|
- `pageSettingsLocalIndexScopeKey`
|
|||
|
|
- `pageSettingsLocalIndexIsAvailable`
|
|||
|
|
- `renderPageSettingsLocalIndex`
|
|||
|
|
- `loadPageSettingsLocalIndex`
|
|||
|
|
- `setActivePageSettingsTab`
|
|||
|
|
- Rust API 单测在 `rust/crates/mnote-web/src/routes/search.rs` 已覆盖 `/api/search/local-index/backlinks` 和 `/api/search/local-index/tags` 授权读取。
|
|||
|
|
|
|||
|
|
## 目标
|
|||
|
|
|
|||
|
|
系统化排查并最小修复 `task452`:
|
|||
|
|
|
|||
|
|
1. 先复现或读取 `tmp/task452.../result.json`,确认不是搜索 API 问题。
|
|||
|
|
2. 明确 root cause:例如 `currentRootUri()`、`currentDocumentId()`、`resolveWorkspaceId(document.body)`、tab 激活、fetch 失败、payload shape、或 UI render 条件。
|
|||
|
|
3. 用最小补丁修复 page-settings 本地索引 panel 的渲染。
|
|||
|
|
4. 保持 local-first 口径:本地索引 panel 只在 `sourceKind=local_folder` + `rootUri` + 当前文档可识别时工作。
|
|||
|
|
|
|||
|
|
## 允许修改范围
|
|||
|
|
|
|||
|
|
- `rust/crates/mnote-web/src/ssr/pages/layout.rs`
|
|||
|
|
- `scripts/task452-local-search-index-browser-smoke.js`(仅允许增加诊断或同步当前真实 UI 语义;不要弱化核心断言)
|
|||
|
|
- 可新增 `.codex/reasonix-tasks/results/batch-b2-worker-f-local-index-panel.md`
|
|||
|
|
|
|||
|
|
不要修改搜索后端、Convex、OnlyOffice、AI 工具链。
|
|||
|
|
|
|||
|
|
## 验收命令
|
|||
|
|
|
|||
|
|
至少运行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
node --check scripts/task452-local-search-index-browser-smoke.js
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果本地 `http://127.0.0.1:3000` 可用,请实跑:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/google-chrome-stable node scripts/task452-local-search-index-browser-smoke.js
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如改动 `layout.rs` 影响 Rust 编译,请运行相关 targeted test 或至少:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cargo test -p mnote-web search_local_index_backlinks_and_tags_read_authorized_root -- --test-threads=1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 输出要求
|
|||
|
|
|
|||
|
|
最终说明:
|
|||
|
|
|
|||
|
|
- 根因判断,必须指向具体函数或数据流。
|
|||
|
|
- 修改了哪些文件。
|
|||
|
|
- 验证命令和结果。
|
|||
|
|
- `task452` 仍失败时,说明新的失败点,不要把失败写成完成。
|