Files
mnote/bugs/04-tree-domain/done/4-47-stream-support-retired-resource-delete-command-v1.md
T
lix-2026 a2cb1338c8 chore: 保存当前架构收口与 bug 修复快照
归档本轮 P0/P1 bug 修复、设计审查迁移、AI selection scope 收口与 stream contract 调整,并保留当前 05 主线迁移起点。
2026-05-18 17:01:35 +08:00

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`