# 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`。
