# TODO — v0.5.0
## 最终目录结构
```
src/
├── main.rs
├── lib.rs
├── code/ # 业务层:纯抽象,不暴露 git 概念
│ ├── mod.rs
│ ├── model.rs # SyncStatus(Synced / PendingPush / PendingPull / Conflict)
│ ├── sync.rs # sync 命令逻辑
│ └── status.rs # status 命令逻辑
├── git/ # 事实源底层:所有 git 操作
│ ├── mod.rs
│ └── submodule.rs # RepoState, SubmoduleStatus, scan, fetch, push, commit + GitSubmoduleEditor + HealthIssue
└── release/ # 发布子领域
├── mod.rs
├── stage.rs # stage 命令(预发布)
├── publish.rs # publish 命令(正式发布)
└── util.rs # 共享工具(validate_version, create_tag, extract_notes…)
```
## 已完成
- [x] 三子领域拆分(code / git / release)
- [x] 删除旧 `commands/` 和 `model/` 目录
- [x] 更新全部导入路径和集成测试
## 已完成
- [x] `code status` 的 `offline` 参数实际生效(`RepoState::scan_offline` 跳过 fetch)
- [x] `HealthIssue.status` 从 `SubmoduleStatus` 改为 `String`
- [x] `python.rs`: 删除 `retire_submodule` 绑定、修复测试路径
- [x] `release/` 导出层级统一:工具函数在 mod 层重新导出
- [x] `code/sync.rs` 做实:返回 `SyncStatus` 业务状态