Files
mnote/.codex/reasonix-tasks/2026-05-21-batch-b2-worker-f-local-index-panel.md
T

70 lines
2.7 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.
# Batch B2 Worker FLocal 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` 仍失败时,说明新的失败点,不要把失败写成完成。