# 开发进度（按日期 & 里程碑）

> 说明：本页用于统筹底座与业务改造的实际进度，按日期记录，按里程碑（M1–M6）分栏。与 `ai/planner.md` 的目标与验收标准对应，便于管理与追踪。

## 时间轴（Timeline）

| 日期 | 模块/范围 | 主要事项 | 关联里程碑 | 状态 |
|---|---|---|---|---|
| 2025-08-26 | Core 基座 | 统一异常响应、统一成功响应、配置校验方案落地（Joi） | M1 | 已完成 |
| 2025-08-26 | Database | 事务封装（TransactionManager）、BaseRepository 分页/过滤、Redis 分布式锁 | M2 | 已完成 |
| 2025-08-26 | Security | `SiteScopeGuard` 多租隔离、`IdempotencyService`、`RateLimitService`、`AuditService` | M3 | 已完成 |
| 2025-08-26 | Events/Queues | 事件契约（AJV）、发布助手、订阅装饰器、事件总线模式配置（Outbox/Kafka） | M4 | 已完成 |
| 2025-08-26 | Observability | 健康聚合器与指示器（DB/Redis/事件/队列/存储）、HTTP 指标、/health /metrics 控制器 | M5 | 已完成 |
| 2025-08-26 | Vendor/Storage | `StorageAdapter` 标准、Local 实现、`StorageRegistry`（siteId 解析：站点启用>平台默认>local）、`STORAGE_ADAPTER_FACTORY` Provider | M6 | 已完成 |
| 2025-08-26 | Upload | 服务重构完成，使用 `STORAGE_ADAPTER_FACTORY`，修复所有编译错误 | M6（落地示例） | 已完成 |

> 说明：状态枚举建议采用：已完成 / 进行中 / 待开始 / 阻塞。

## 里程碑视图（M1–M6）

### M1 基础通信与契约
- [x] 全局异常过滤：`core/http/filters/http-exception.filter.ts`
- [x] 统一成功响应拦截：`core/http/interceptors/response.interceptor.ts`
- [x] 配置校验（Joi）：`config/schema/validation.ts`
- [x] 应用装配：在 `app.module.ts` 全局注册 `APP_FILTER` 与 `APP_INTERCEPTOR`

### M2 事务与数据访问
- [x] 事务封装：`core/database/transaction.manager.ts`
- [x] BaseRepository：`core/database/base-repository.ts`（分页/排序/过滤白名单）
- [x] Redis 分布式锁：`core/database/redis-lock.service.ts`

### M3 安全与多租
- [x] 多租站点隔离：`core/security/site-scope.guard.ts`
- [x] 幂等：`core/security/idempotency.service.ts`
- [x] 限流：`core/security/rate-limit.service.ts`
- [x] 审计：`core/audit/audit.service.ts`

### M4 事件与队列
- [x] 事件契约与校验：`core/event-bus/contract.validator.ts`、`core/event-bus/contracts/*`
- [x] 发布助手：`core/event-bus/publish.helper.ts`
- [x] 订阅装饰器：`core/event-bus/subscribe.decorator.ts`
- [x] 事件总线配置：`config/eventbus.config.ts`

### M5 可观测与稳定性
- [x] 健康聚合器：`core/observability/health/health-aggregator.ts`
- [x] 健康指示器：DB/Redis/EventBus/Queue/Storage
- [x] 健康控制器：`core/observability/health/health.controller.ts`
- [x] HTTP 指标：`core/observability/metrics/http-metrics.service.ts`、`core/observability/metrics/metrics.controller.ts`

### M6 Vendor 外设标准（Storage）
- [x] 接口：`vendor/storage/interfaces/storage-adapter.ts`
- [x] 适配器：`vendor/storage/adapters/local.adapter.ts`
- [x] Token：`vendor/storage/tokens.ts`
- [x] 工厂/注册表：`vendor/storage/providers/registry.ts`、`vendor/storage/providers/storage.provider.ts`
- [x] 健康检查联动：`core/observability/health/indicators/storage.indicator.ts`
- [x] 示例接线（upload）：`common/upload/upload.service.ts`

## 下一步计划
- [x] 在 `app.module.ts` 中注册：
  - [x] 全局异常过滤器（`APP_FILTER` -> `HttpExceptionFilter`）
  - [x] 统一响应拦截器（`APP_INTERCEPTOR` -> `ResponseInterceptor`）
  - [x] 确认 `/health` 与 `/metrics` 控制器装配
- [ ] `settings/storage` 平台端与站点端 API 最小可用实现与测试
- [ ] `upload` 成功入库 `sys_attachment`（实体+仓储+用例），并发布事件/入队任务（缩略图等）

## 附：参考
- 架构概览：`structure/overview.md`
- 规范/流程/对齐：`ai/index.md`、`ai/workflow.md`、`ai/checklists.md`、`ai/mapping.md`、`ai/integration.md`、`ai/planner.md` 