63 lines
1.9 KiB
Markdown
63 lines
1.9 KiB
Markdown
# Reasonix Worker A:OnlyOffice local-folder 不再误请求 media/sign
|
||||
|
|
|
|||
|
|
你是编码 worker,不是审查员。你不独占代码库,可能有其他 worker 同时修改不同文件;不要回滚、覆盖或清理他人的改动。
|
|||
|
|
|
|||
|
|
## Project Root
|
|||
|
|
|
|||
|
|
`/mnt/Data1T/mnote`
|
|||
|
|
|
|||
|
|
## 背景
|
|||
|
|
|
|||
|
|
详见:
|
|||
|
|
|
|||
|
|
- `bugs/05-editor-mainline/process/2026-05-21-office-edit-sign-plugin-gap-review-v1.md`
|
|||
|
|
- `bugs/05-editor-mainline/process/5-34-local-folder-media-sign-office-url-contract-v1.md`
|
|||
|
|
|
|||
|
|
当前 `/onlyoffice` 页面只要有 `assetId` 就请求 `/api/media/sign`。local-folder asset 形如 `local:asset:<path>`,本来应直接使用传入的 local open `fileUrl`,因此这个请求会产生误导性的 404。
|
|||
|
|
|
|||
|
|
## Ownership
|
|||
|
|
|
|||
|
|
你负责:
|
|||
|
|
|
|||
|
|
- `rust/crates/mnote-web/src/routes/onlyoffice.rs`
|
|||
|
|
- 与 above 契约直接相关的 `mnote-web` 单测
|
|||
|
|
- 更新 `bugs/05-editor-mainline/process/5-34-local-folder-media-sign-office-url-contract-v1.md` 的本轮执行记录
|
|||
|
|
|
|||
|
|
不要修改:
|
|||
|
|
|
|||
|
|
- `rust/crates/mnote-web/src/ssr/pages/layout.rs`
|
|||
|
|
- ACP / Hermes 相关文件
|
|||
|
|
- git 状态无关文件
|
|||
|
|
|
|||
|
|
## 任务
|
|||
|
|
|
|||
|
|
1. 让 `/onlyoffice` 页面识别 local-folder asset / local fileUrl,并在这种情况下跳过 `/api/media/sign`。
|
|||
|
|
2. 保持非 local asset 仍可请求 `/api/media/sign`。
|
|||
|
|
3. 保持 doc key 安全化,不引入 `/`、`:`、中文等危险字符。
|
|||
|
|
4. 补或调整单测,确保页面脚本包含该判断。
|
|||
|
|
|
|||
|
|
## 设计约束
|
|||
|
|
|
|||
|
|
- local 判断应保守:优先基于 `assetId` 前缀 `local:` / `local-file:`,以及 `fileUrl` path 为 `/api/local-folder/files/open`。
|
|||
|
|
- 不要把 `/api/media/sign` 改成本地文件签名端点。
|
|||
|
|
- 不要改变 callback 或 edit/save 逻辑。
|
|||
|
|
|
|||
|
|
## 验收命令
|
|||
|
|
|
|||
|
|
请至少运行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cargo test -p mnote-web onlyoffice -- --test-threads=1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果失败,记录失败原因和相关输出。
|
|||
|
|
|
|||
|
|
## 最终输出
|
|||
|
|
|
|||
|
|
在 final 中列出:
|
|||
|
|
|
|||
|
|
- 修改文件
|
|||
|
|
- 关键实现点
|
|||
|
|
- 运行过的命令和结果
|
|||
|
|
- 未完成项或风险
|