添加qiming-rcoder模块

This commit is contained in:
Codex
2026-06-01 13:54:52 +08:00
parent 8092c4b1f8
commit 4b1a580132
539 changed files with 151650 additions and 0 deletions

View File

@@ -0,0 +1,135 @@
# Implementation Plan
## 任务概述
将分散在多个文件中的容器停止逻辑统一到 docker_manager crate 的新模块中,提供两种清理策略:启动时清理和运行时清理。
## 任务列表
- [x] 1. 创建 container_stop 模块基础结构
-`crates/docker_manager/src/` 创建 `container_stop.rs` 文件
- 定义模块常量(超时时间等)
-`lib.rs` 中导出新模块
- _Requirements: 3.6, 5.1_
- [x] 2. 实现启动时清理功能
- [x] 2.1 实现 startup_cleanup_containers 函数
- 实现容器模式匹配查找
- 实现 5 秒超时停止逻辑
- 实现 409 错误过滤
- 返回 CleanupResult 统计信息
- _Requirements: 1.1, 1.2, 1.3, 1.4_
- [x] 2.2 实现 stop_container_startup_mode 辅助函数
- 调用 DockerManager::stop_container_by_id_with_timeout
- 使用 STARTUP_CLEANUP_TIMEOUT_SECONDS 常量
- 实现错误处理和日志记录
- _Requirements: 1.2, 4.1, 4.2_
- [x] 2.3 实现 is_409_conflict_error 辅助函数
- 检查 DockerError 是否包含 "409" 和 "already in progress"
- 返回布尔值
- _Requirements: 1.3_
- [x] 3. 实现运行时清理功能
- [x] 3.1 实现 runtime_cleanup_container 函数
- 实现单个容器停止逻辑
- 使用 3 秒优雅停止超时
- 超时后立即强制停止
- _Requirements: 2.1, 2.2, 2.3_
- [x] 3.2 实现 runtime_cleanup_containers 批量清理函数
- 批量处理多个容器 ID
- 返回 CleanupResult 统计信息
- _Requirements: 2.4, 2.5_
- [x] 3.3 实现 stop_container_runtime_mode 辅助函数
- 调用 DockerManager::stop_container_by_id_with_timeout
- 使用 RUNTIME_CLEANUP_TIMEOUT_SECONDS 常量
- 实现错误处理和日志记录
- _Requirements: 2.2, 4.1, 4.4_
- [x] 4. 更新 main.rs 使用新的启动清理接口
- [x] 4.1 导入 container_stop 模块
- 添加 `use docker_manager::container_stop;`
- _Requirements: 3.3, 5.2_
- [x] 4.2 替换 startup_cleanup_orphaned_containers 函数
- 调用 `container_stop::startup_cleanup_containers`
- 更新错误处理逻辑
- 更新日志输出
- _Requirements: 3.3, 4.2, 4.3_
- [x] 4.3 删除旧的 startup_cleanup_orphaned_containers 实现
- 删除 `startup_cleanup_orphaned_containers` 函数
- 删除 `find_and_cleanup_orphaned_containers` 函数(如果不再使用)
- _Requirements: 5.5_
- [x] 5. 更新 cleanup_task.rs 使用新的运行时清理接口
- [x] 5.1 导入 container_stop 模块
-`destroy_docker_container` 方法中添加导入
- _Requirements: 3.4, 5.3_
- [x] 5.2 替换容器停止逻辑
-`stop_container_by_id_with_timeout` 调用替换为 `container_stop::runtime_cleanup_container`
- 简化错误处理逻辑
- 更新日志输出
- _Requirements: 3.4, 4.4_
- [x] 5.3 清理 cleanup_single_orphaned_container 方法
- 使用新的 runtime_cleanup_container 接口
- 删除重复的停止逻辑
- _Requirements: 5.5_
- [x] 6. 更新 container_manager.rs如需要
- [x] 6.1 检查是否有容器停止逻辑
- 搜索 `stop_container` 相关调用
- 确定是否需要更新
- _Requirements: 3.5, 5.4_
- [x] 6.2 如有需要,替换为新接口
- 导入 container_stop 模块
- 替换停止逻辑
- _Requirements: 3.5, 5.4_
- [x] 7. 添加文档和注释
- [x] 7.1 为 container_stop.rs 添加模块级文档
- 说明两种清理策略的区别
- 提供使用示例
- _Requirements: 5.5_
- [x] 7.2 为公共函数添加详细文档注释
- 包含参数说明
- 包含返回值说明
- 包含使用示例
- _Requirements: 4.5_
- [x] 8. 验证和测试
- [x] 8.1 编译检查
- 运行 `cargo check` 确保无编译错误
- 运行 `cargo clippy` 检查代码质量
- _Requirements: 5.5_
- [x] 8.2 功能测试
- 测试启动时清理(模拟 409 错误场景)
- 测试运行时清理(验证 3 秒超时)
- 验证日志输出正确
- _Requirements: 1.5, 2.5, 4.1-4.5_