44 lines
2.1 KiB
Markdown
44 lines
2.1 KiB
Markdown
# 4-47 [done][bug] stream_support 回归样例仍保留退役 tree.resource.delete 命名
|
|||
|
|
|
||
|
|
> 发现时间:2026-05-18
|
||
|
|
>
|
||
|
|
> 状态:`[done]`
|
||
|
|
>
|
||
|
|
> 关联主线:`04-tree-domain`
|
||
|
|
|
||
|
|
## 1. 问题定义
|
||
|
|
|
||
|
|
当前资源生命周期正式命令面使用 `tree.resource.archive / restore / purge / rename`,删除到垃圾箱语义应表达为 `tree.resource.archive`。但 `stream_support` 的 remove asset delta 回归样例仍保留 `tree.resource.delete`。
|
||
|
|
|
||
|
|
该残留不在 runtime command dispatcher 中,但会让 stream 合同样例继续暗示退役命名合法,增加后续实现和测试口径漂移风险。
|
||
|
|
|
||
|
|
## 2. 证据
|
||
|
|
|
||
|
|
- [stream_support.rs](/mnt/Data1T/mnote/rust/crates/mnote-web/src/routes/stream_support.rs:1057) 测试样例仍写 `"command_name": "tree.resource.delete"`。
|
||
|
|
- [tree.rs](/mnt/Data1T/mnote/rust/crates/mnote-web/src/routes/tree.rs:714) 当前 tree shell dispatcher 已公开 `tree.resource.archive`。
|
||
|
|
- [mapping.rs](/mnt/Data1T/mnote/rust/crates/storage-convex-bridge/src/mapping.rs:47) storage bridge 已映射 `tree.resource.archive`,没有 `tree.resource.delete`。
|
||
|
|
|
||
|
|
## 3. 影响
|
||
|
|
|
||
|
|
- 回归样例与当前资源命令面不一致。
|
||
|
|
- 后续维护者可能继续按 `delete` 扩写 stream / resource lifecycle 合同。
|
||
|
|
- 与 `design/04-tree-domain/process/4-27-resource-lifecycle-command-cutover-v1.md` 中“delete 改为 archive”的口径冲突。
|
||
|
|
|
||
|
|
## 4. 修复结果
|
||
|
|
|
||
|
|
- [stream_support.rs](/mnt/Data1T/mnote/rust/crates/mnote-web/src/routes/stream_support.rs) 的 remove asset delta 回归样例已把 `tree.resource.delete` 改为 `tree.resource.archive`。
|
||
|
|
- `rg` 已确认 Rust route / storage bridge 中不再残留 `tree.resource.delete`。
|
||
|
|
- 对应 `stream_change_preserves_remove_asset_delta_fields` 回归测试已通过。
|
||
|
|
|
||
|
|
## 5. 验证证据
|
||
|
|
|
||
|
|
```bash
|
||
|
|
rg -n "tree\\.resource\\.delete" rust/crates/mnote-web/src/routes
|
||
|
|
cargo test --manifest-path rust/Cargo.toml -p mnote-web stream_change_preserves_remove_asset_delta_fields -- --nocapture
|
||
|
|
```
|
||
|
|
|
||
|
|
验证结果:
|
||
|
|
|
||
|
|
- `rg` 无输出。
|
||
|
|
- `stream_change_preserves_remove_asset_delta_fields` 通过:`1 passed`。
|